From 772f105c65d72f645667cdc6c70255a8c59792ea Mon Sep 17 00:00:00 2001 From: annv Date: Tue, 7 Mar 2023 10:52:05 +0700 Subject: [PATCH] minigame --- app.js | 60 + automation.js | 92 + check_work.js | 112 + node_modules/.bin/chromedriver | 12 + node_modules/.bin/chromedriver.cmd | 17 + node_modules/.bin/chromedriver.ps1 | 28 + node_modules/.bin/extract-zip | 12 + node_modules/.bin/extract-zip.cmd | 17 + node_modules/.bin/extract-zip.ps1 | 28 + node_modules/.bin/geckodriver | 12 + node_modules/.bin/geckodriver.cmd | 17 + node_modules/.bin/geckodriver.ps1 | 28 + node_modules/.bin/mkdirp | 12 + node_modules/.bin/mkdirp.cmd | 17 + node_modules/.bin/mkdirp.ps1 | 28 + node_modules/.bin/rimraf | 12 + node_modules/.bin/rimraf.cmd | 17 + node_modules/.bin/rimraf.ps1 | 28 + node_modules/.package-lock.json | 895 ++ node_modules/@sindresorhus/is/dist/index.d.ts | 232 + node_modules/@sindresorhus/is/dist/index.js | 434 + node_modules/@sindresorhus/is/dist/types.d.ts | 25 + node_modules/@sindresorhus/is/dist/types.js | 3 + node_modules/@sindresorhus/is/license | 9 + node_modules/@sindresorhus/is/package.json | 96 + node_modules/@sindresorhus/is/readme.md | 669 + node_modules/@szmarczak/http-timer/LICENSE | 21 + node_modules/@szmarczak/http-timer/README.md | 93 + .../http-timer/dist/source/index.d.ts | 32 + .../http-timer/dist/source/index.js | 126 + .../@szmarczak/http-timer/package.json | 72 + .../@testim/chrome-version/.eslintrc.json | 33 + .../chrome-version/.github/workflows/ci.yml | 19 + .../@testim/chrome-version/CODE_OF_CONDUCT.md | 76 + node_modules/@testim/chrome-version/LICENSE | 21 + .../chrome-version/chrome-finder/darwin.js | 51 + .../chrome-version/chrome-finder/index.d.ts | 9 + .../chrome-version/chrome-finder/index.js | 39 + .../chrome-version/chrome-finder/linux.js | 112 + .../chrome-version/chrome-finder/util.js | 56 + .../chrome-version/chrome-finder/win32.js | 30 + .../@testim/chrome-version/example.js | 6 + node_modules/@testim/chrome-version/index.js | 106 + .../@testim/chrome-version/package.json | 27 + node_modules/@testim/chrome-version/readme.MD | 27 + .../@testim/chrome-version/test/test.js | 370 + node_modules/@types/cacheable-request/LICENSE | 21 + .../@types/cacheable-request/README.md | 16 + .../@types/cacheable-request/index.d.ts | 137 + .../@types/cacheable-request/package.json | 35 + .../@types/http-cache-semantics/LICENSE | 21 + .../@types/http-cache-semantics/README.md | 16 + .../@types/http-cache-semantics/index.d.ts | 170 + .../@types/http-cache-semantics/package.json | 25 + node_modules/@types/keyv/LICENSE | 21 + node_modules/@types/keyv/README.md | 16 + node_modules/@types/keyv/index.d.ts | 90 + node_modules/@types/keyv/package.json | 32 + node_modules/@types/node/LICENSE | 21 + node_modules/@types/node/README.md | 16 + node_modules/@types/node/assert.d.ts | 961 ++ node_modules/@types/node/assert/strict.d.ts | 8 + node_modules/@types/node/async_hooks.d.ts | 501 + node_modules/@types/node/buffer.d.ts | 2258 +++ node_modules/@types/node/child_process.d.ts | 1369 ++ node_modules/@types/node/cluster.d.ts | 410 + node_modules/@types/node/console.d.ts | 412 + node_modules/@types/node/constants.d.ts | 18 + node_modules/@types/node/crypto.d.ts | 3964 ++++++ node_modules/@types/node/dgram.d.ts | 545 + .../@types/node/diagnostics_channel.d.ts | 153 + node_modules/@types/node/dns.d.ts | 659 + node_modules/@types/node/dns/promises.d.ts | 370 + node_modules/@types/node/dom-events.d.ts | 126 + node_modules/@types/node/domain.d.ts | 170 + node_modules/@types/node/events.d.ts | 678 + node_modules/@types/node/fs.d.ts | 3872 ++++++ node_modules/@types/node/fs/promises.d.ts | 1138 ++ node_modules/@types/node/globals.d.ts | 300 + node_modules/@types/node/globals.global.d.ts | 1 + node_modules/@types/node/http.d.ts | 1651 +++ node_modules/@types/node/http2.d.ts | 2134 +++ node_modules/@types/node/https.d.ts | 542 + node_modules/@types/node/index.d.ts | 134 + node_modules/@types/node/inspector.d.ts | 2741 ++++ node_modules/@types/node/module.d.ts | 114 + node_modules/@types/node/net.d.ts | 869 ++ node_modules/@types/node/os.d.ts | 466 + node_modules/@types/node/package.json | 237 + node_modules/@types/node/path.d.ts | 191 + node_modules/@types/node/perf_hooks.d.ts | 625 + node_modules/@types/node/process.d.ts | 1482 ++ node_modules/@types/node/punycode.d.ts | 117 + node_modules/@types/node/querystring.d.ts | 131 + node_modules/@types/node/readline.d.ts | 653 + .../@types/node/readline/promises.d.ts | 143 + node_modules/@types/node/repl.d.ts | 424 + node_modules/@types/node/stream.d.ts | 1340 ++ .../@types/node/stream/consumers.d.ts | 12 + node_modules/@types/node/stream/promises.d.ts | 42 + node_modules/@types/node/stream/web.d.ts | 330 + node_modules/@types/node/string_decoder.d.ts | 67 + node_modules/@types/node/test.d.ts | 446 + node_modules/@types/node/timers.d.ts | 94 + node_modules/@types/node/timers/promises.d.ts | 93 + node_modules/@types/node/tls.d.ts | 1028 ++ node_modules/@types/node/trace_events.d.ts | 171 + node_modules/@types/node/ts4.8/assert.d.ts | 961 ++ .../@types/node/ts4.8/assert/strict.d.ts | 8 + .../@types/node/ts4.8/async_hooks.d.ts | 501 + node_modules/@types/node/ts4.8/buffer.d.ts | 2259 +++ .../@types/node/ts4.8/child_process.d.ts | 1369 ++ node_modules/@types/node/ts4.8/cluster.d.ts | 410 + node_modules/@types/node/ts4.8/console.d.ts | 412 + node_modules/@types/node/ts4.8/constants.d.ts | 18 + node_modules/@types/node/ts4.8/crypto.d.ts | 3964 ++++++ node_modules/@types/node/ts4.8/dgram.d.ts | 545 + .../node/ts4.8/diagnostics_channel.d.ts | 153 + node_modules/@types/node/ts4.8/dns.d.ts | 659 + .../@types/node/ts4.8/dns/promises.d.ts | 370 + .../@types/node/ts4.8/dom-events.d.ts | 126 + node_modules/@types/node/ts4.8/domain.d.ts | 170 + node_modules/@types/node/ts4.8/events.d.ts | 678 + node_modules/@types/node/ts4.8/fs.d.ts | 3872 ++++++ .../@types/node/ts4.8/fs/promises.d.ts | 1138 ++ node_modules/@types/node/ts4.8/globals.d.ts | 294 + .../@types/node/ts4.8/globals.global.d.ts | 1 + node_modules/@types/node/ts4.8/http.d.ts | 1651 +++ node_modules/@types/node/ts4.8/http2.d.ts | 2134 +++ node_modules/@types/node/ts4.8/https.d.ts | 542 + node_modules/@types/node/ts4.8/index.d.ts | 88 + node_modules/@types/node/ts4.8/inspector.d.ts | 2741 ++++ node_modules/@types/node/ts4.8/module.d.ts | 114 + node_modules/@types/node/ts4.8/net.d.ts | 869 ++ node_modules/@types/node/ts4.8/os.d.ts | 466 + node_modules/@types/node/ts4.8/path.d.ts | 191 + .../@types/node/ts4.8/perf_hooks.d.ts | 625 + node_modules/@types/node/ts4.8/process.d.ts | 1482 ++ node_modules/@types/node/ts4.8/punycode.d.ts | 117 + .../@types/node/ts4.8/querystring.d.ts | 131 + node_modules/@types/node/ts4.8/readline.d.ts | 653 + .../@types/node/ts4.8/readline/promises.d.ts | 143 + node_modules/@types/node/ts4.8/repl.d.ts | 424 + node_modules/@types/node/ts4.8/stream.d.ts | 1340 ++ .../@types/node/ts4.8/stream/consumers.d.ts | 12 + .../@types/node/ts4.8/stream/promises.d.ts | 42 + .../@types/node/ts4.8/stream/web.d.ts | 330 + .../@types/node/ts4.8/string_decoder.d.ts | 67 + node_modules/@types/node/ts4.8/test.d.ts | 446 + node_modules/@types/node/ts4.8/timers.d.ts | 94 + .../@types/node/ts4.8/timers/promises.d.ts | 93 + node_modules/@types/node/ts4.8/tls.d.ts | 1028 ++ .../@types/node/ts4.8/trace_events.d.ts | 171 + node_modules/@types/node/ts4.8/tty.d.ts | 206 + node_modules/@types/node/ts4.8/url.d.ts | 897 ++ node_modules/@types/node/ts4.8/util.d.ts | 1926 +++ node_modules/@types/node/ts4.8/v8.d.ts | 396 + node_modules/@types/node/ts4.8/vm.d.ts | 509 + node_modules/@types/node/ts4.8/wasi.d.ts | 158 + .../@types/node/ts4.8/worker_threads.d.ts | 689 + node_modules/@types/node/ts4.8/zlib.d.ts | 517 + node_modules/@types/node/tty.d.ts | 206 + node_modules/@types/node/url.d.ts | 897 ++ node_modules/@types/node/util.d.ts | 1926 +++ node_modules/@types/node/v8.d.ts | 396 + node_modules/@types/node/vm.d.ts | 509 + node_modules/@types/node/wasi.d.ts | 158 + node_modules/@types/node/worker_threads.d.ts | 689 + node_modules/@types/node/zlib.d.ts | 517 + node_modules/@types/responselike/LICENSE | 21 + node_modules/@types/responselike/README.md | 16 + node_modules/@types/responselike/index.d.ts | 34 + node_modules/@types/responselike/package.json | 25 + node_modules/@types/yauzl/LICENSE | 21 + node_modules/@types/yauzl/README.md | 16 + node_modules/@types/yauzl/index.d.ts | 98 + node_modules/@types/yauzl/package.json | 27 + node_modules/adm-zip/LICENSE | 21 + node_modules/adm-zip/README.md | 65 + node_modules/adm-zip/adm-zip.js | 783 ++ node_modules/adm-zip/headers/entryHeader.js | 338 + node_modules/adm-zip/headers/index.js | 2 + node_modules/adm-zip/headers/mainHeader.js | 129 + node_modules/adm-zip/methods/deflater.js | 33 + node_modules/adm-zip/methods/index.js | 3 + node_modules/adm-zip/methods/inflater.js | 31 + node_modules/adm-zip/methods/zipcrypto.js | 170 + node_modules/adm-zip/package.json | 48 + node_modules/adm-zip/util/constants.js | 142 + node_modules/adm-zip/util/errors.js | 35 + node_modules/adm-zip/util/fattr.js | 79 + node_modules/adm-zip/util/fileSystem.js | 11 + node_modules/adm-zip/util/index.js | 4 + node_modules/adm-zip/util/utils.js | 246 + node_modules/adm-zip/zipEntry.js | 333 + node_modules/adm-zip/zipFile.js | 384 + 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/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 | 452 + node_modules/axios/LICENSE | 7 + node_modules/axios/MIGRATION_GUIDE.md | 3 + node_modules/axios/README.md | 1310 ++ node_modules/axios/SECURITY.md | 6 + node_modules/axios/dist/axios.js | 2959 ++++ node_modules/axios/dist/axios.js.map | 1 + node_modules/axios/dist/axios.min.js | 2 + node_modules/axios/dist/axios.min.js.map | 1 + node_modules/axios/dist/browser/axios.cjs | 3185 +++++ node_modules/axios/dist/browser/axios.cjs.map | 1 + node_modules/axios/dist/esm/axios.js | 3207 +++++ node_modules/axios/dist/esm/axios.js.map | 1 + node_modules/axios/dist/esm/axios.min.js | 2 + node_modules/axios/dist/esm/axios.min.js.map | 1 + node_modules/axios/dist/node/axios.cjs | 4178 ++++++ node_modules/axios/dist/node/axios.cjs.map | 1 + node_modules/axios/index.d.cts | 528 + node_modules/axios/index.d.ts | 543 + node_modules/axios/index.js | 41 + node_modules/axios/lib/adapters/README.md | 37 + node_modules/axios/lib/adapters/adapters.js | 59 + node_modules/axios/lib/adapters/http.js | 644 + node_modules/axios/lib/adapters/xhr.js | 249 + node_modules/axios/lib/axios.js | 86 + node_modules/axios/lib/cancel/CancelToken.js | 121 + .../axios/lib/cancel/CanceledError.js | 25 + node_modules/axios/lib/cancel/isCancel.js | 5 + node_modules/axios/lib/core/Axios.js | 197 + node_modules/axios/lib/core/AxiosError.js | 100 + node_modules/axios/lib/core/AxiosHeaders.js | 286 + .../axios/lib/core/InterceptorManager.js | 71 + node_modules/axios/lib/core/README.md | 8 + node_modules/axios/lib/core/buildFullPath.js | 21 + .../axios/lib/core/dispatchRequest.js | 81 + node_modules/axios/lib/core/mergeConfig.js | 105 + node_modules/axios/lib/core/settle.js | 27 + node_modules/axios/lib/core/transformData.js | 28 + node_modules/axios/lib/defaults/index.js | 166 + .../axios/lib/defaults/transitional.js | 7 + 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 | 191 + .../axios/lib/helpers/AxiosURLSearchParams.js | 58 + .../axios/lib/helpers/HttpStatusCode.js | 71 + node_modules/axios/lib/helpers/README.md | 7 + .../lib/helpers/ZlibHeaderTransformStream.js | 28 + node_modules/axios/lib/helpers/bind.js | 7 + node_modules/axios/lib/helpers/buildURL.js | 63 + node_modules/axios/lib/helpers/combineURLs.js | 15 + node_modules/axios/lib/helpers/cookies.js | 52 + .../axios/lib/helpers/deprecatedMethod.js | 26 + .../axios/lib/helpers/formDataToJSON.js | 92 + .../axios/lib/helpers/formDataToStream.js | 110 + node_modules/axios/lib/helpers/fromDataURI.js | 53 + .../axios/lib/helpers/isAbsoluteURL.js | 15 + .../axios/lib/helpers/isAxiosError.js | 14 + .../axios/lib/helpers/isURLSameOrigin.js | 67 + node_modules/axios/lib/helpers/null.js | 2 + .../axios/lib/helpers/parseHeaders.js | 55 + .../axios/lib/helpers/parseProtocol.js | 6 + node_modules/axios/lib/helpers/readBlob.js | 15 + node_modules/axios/lib/helpers/speedometer.js | 55 + node_modules/axios/lib/helpers/spread.js | 28 + node_modules/axios/lib/helpers/throttle.js | 33 + node_modules/axios/lib/helpers/toFormData.js | 219 + .../axios/lib/helpers/toURLEncodedForm.js | 18 + node_modules/axios/lib/helpers/validator.js | 91 + .../lib/platform/browser/classes/FormData.js | 3 + .../browser/classes/URLSearchParams.js | 4 + .../axios/lib/platform/browser/index.js | 63 + node_modules/axios/lib/platform/index.js | 3 + .../lib/platform/node/classes/FormData.js | 3 + .../platform/node/classes/URLSearchParams.js | 4 + node_modules/axios/lib/platform/node/index.js | 12 + node_modules/axios/lib/utils.js | 711 + node_modules/axios/package.json | 207 + .../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/bluebird/LICENSE | 21 + node_modules/bluebird/README.md | 57 + node_modules/bluebird/changelog.md | 1 + .../bluebird/js/browser/bluebird.core.js | 3914 ++++++ .../bluebird/js/browser/bluebird.core.min.js | 31 + node_modules/bluebird/js/browser/bluebird.js | 5778 ++++++++ .../bluebird/js/browser/bluebird.min.js | 31 + node_modules/bluebird/js/release/any.js | 21 + node_modules/bluebird/js/release/assert.js | 55 + node_modules/bluebird/js/release/async.js | 120 + node_modules/bluebird/js/release/bind.js | 67 + node_modules/bluebird/js/release/bluebird.js | 11 + node_modules/bluebird/js/release/call_get.js | 123 + node_modules/bluebird/js/release/cancel.js | 129 + .../bluebird/js/release/catch_filter.js | 42 + node_modules/bluebird/js/release/context.js | 69 + .../bluebird/js/release/debuggability.js | 1009 ++ .../bluebird/js/release/direct_resolve.js | 46 + node_modules/bluebird/js/release/each.js | 30 + node_modules/bluebird/js/release/errors.js | 116 + node_modules/bluebird/js/release/es5.js | 80 + node_modules/bluebird/js/release/filter.js | 12 + node_modules/bluebird/js/release/finally.js | 146 + .../bluebird/js/release/generators.js | 223 + node_modules/bluebird/js/release/join.js | 165 + node_modules/bluebird/js/release/map.js | 175 + node_modules/bluebird/js/release/method.js | 55 + node_modules/bluebird/js/release/nodeback.js | 51 + node_modules/bluebird/js/release/nodeify.js | 58 + node_modules/bluebird/js/release/promise.js | 819 ++ .../bluebird/js/release/promise_array.js | 186 + node_modules/bluebird/js/release/promisify.js | 314 + node_modules/bluebird/js/release/props.js | 118 + node_modules/bluebird/js/release/queue.js | 73 + node_modules/bluebird/js/release/race.js | 49 + node_modules/bluebird/js/release/reduce.js | 183 + node_modules/bluebird/js/release/schedule.js | 62 + node_modules/bluebird/js/release/settle.js | 47 + node_modules/bluebird/js/release/some.js | 148 + .../js/release/synchronous_inspection.js | 103 + node_modules/bluebird/js/release/thenables.js | 86 + node_modules/bluebird/js/release/timers.js | 93 + node_modules/bluebird/js/release/using.js | 226 + node_modules/bluebird/js/release/util.js | 421 + node_modules/bluebird/package.json | 78 + node_modules/brace-expansion/LICENSE | 21 + node_modules/brace-expansion/README.md | 129 + node_modules/brace-expansion/index.js | 201 + node_modules/brace-expansion/package.json | 47 + node_modules/buffer-crc32/LICENSE | 19 + node_modules/buffer-crc32/README.md | 47 + node_modules/buffer-crc32/index.js | 111 + node_modules/buffer-crc32/package.json | 39 + node_modules/cacheable-lookup/LICENSE | 21 + node_modules/cacheable-lookup/README.md | 240 + node_modules/cacheable-lookup/index.d.ts | 139 + node_modules/cacheable-lookup/package.json | 45 + node_modules/cacheable-lookup/source/index.js | 436 + node_modules/cacheable-request/LICENSE | 21 + node_modules/cacheable-request/README.md | 206 + node_modules/cacheable-request/package.json | 56 + node_modules/cacheable-request/src/index.js | 251 + node_modules/chownr/LICENSE | 15 + node_modules/chownr/README.md | 3 + node_modules/chownr/chownr.js | 167 + node_modules/chownr/package.json | 32 + node_modules/chromedriver/LICENSE.txt | 201 + node_modules/chromedriver/README.md | 327 + node_modules/chromedriver/bin/chromedriver | 13 + node_modules/chromedriver/install.js | 397 + node_modules/chromedriver/lib/chromedriver.js | 47 + .../lib/chromedriver/chromedriver.exe | Bin 0 -> 12822528 bytes node_modules/chromedriver/package.json | 46 + node_modules/clone-response/LICENSE | 21 + node_modules/clone-response/README.md | 62 + node_modules/clone-response/package.json | 41 + node_modules/clone-response/src/index.js | 17 + 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/compare-versions/LICENSE | 21 + node_modules/compare-versions/README.md | 113 + .../compare-versions/lib/esm/index.d.ts | 58 + .../compare-versions/lib/esm/index.js | 165 + .../compare-versions/lib/esm/index.js.map | 1 + .../compare-versions/lib/umd/index.js | 178 + .../compare-versions/lib/umd/index.js.map | 1 + node_modules/compare-versions/package.json | 44 + node_modules/compare-versions/src/index.ts | 197 + 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/core-util-is/LICENSE | 19 + node_modules/core-util-is/README.md | 3 + node_modules/core-util-is/lib/util.js | 107 + node_modules/core-util-is/package.json | 38 + node_modules/debug/LICENSE | 20 + node_modules/debug/README.md | 481 + node_modules/debug/package.json | 59 + node_modules/debug/src/browser.js | 269 + node_modules/debug/src/common.js | 274 + node_modules/debug/src/index.js | 10 + node_modules/debug/src/node.js | 263 + node_modules/decompress-response/index.d.ts | 22 + node_modules/decompress-response/index.js | 58 + node_modules/decompress-response/license | 9 + .../node_modules/mimic-response/index.d.ts | 17 + .../node_modules/mimic-response/index.js | 77 + .../node_modules/mimic-response/license | 9 + .../node_modules/mimic-response/package.json | 42 + .../node_modules/mimic-response/readme.md | 78 + node_modules/decompress-response/package.json | 56 + node_modules/decompress-response/readme.md | 48 + node_modules/deep-is/.travis.yml | 5 + node_modules/deep-is/LICENSE | 22 + node_modules/deep-is/README.markdown | 70 + node_modules/deep-is/example/cmp.js | 11 + node_modules/deep-is/index.js | 102 + node_modules/deep-is/package.json | 58 + node_modules/deep-is/test/NaN.js | 16 + node_modules/deep-is/test/cmp.js | 23 + node_modules/deep-is/test/neg-vs-pos-0.js | 15 + node_modules/defer-to-connect/LICENSE | 21 + node_modules/defer-to-connect/README.md | 38 + .../defer-to-connect/dist/source/index.d.ts | 10 + .../defer-to-connect/dist/source/index.js | 47 + node_modules/defer-to-connect/package.json | 71 + 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/end-of-stream/LICENSE | 21 + node_modules/end-of-stream/README.md | 54 + node_modules/end-of-stream/index.js | 94 + node_modules/end-of-stream/package.json | 37 + node_modules/extract-zip/LICENSE | 23 + node_modules/extract-zip/cli.js | 19 + node_modules/extract-zip/index.d.ts | 21 + node_modules/extract-zip/index.js | 173 + node_modules/extract-zip/package.json | 80 + node_modules/extract-zip/readme.md | 57 + node_modules/fd-slicer/.npmignore | 2 + node_modules/fd-slicer/.travis.yml | 7 + node_modules/fd-slicer/CHANGELOG.md | 49 + node_modules/fd-slicer/LICENSE | 21 + node_modules/fd-slicer/README.md | 199 + node_modules/fd-slicer/index.js | 296 + node_modules/fd-slicer/package.json | 36 + node_modules/fd-slicer/test/test.js | 350 + node_modules/follow-redirects/LICENSE | 18 + node_modules/follow-redirects/README.md | 155 + 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 | 621 + node_modules/follow-redirects/package.json | 59 + node_modules/form-data/License | 19 + node_modules/form-data/README.md.bak | 358 + node_modules/form-data/Readme.md | 358 + node_modules/form-data/index.d.ts | 62 + node_modules/form-data/lib/browser.js | 2 + node_modules/form-data/lib/form_data.js | 501 + node_modules/form-data/lib/populate.js | 10 + node_modules/form-data/package.json | 68 + node_modules/fs-minipass/LICENSE | 15 + node_modules/fs-minipass/README.md | 70 + node_modules/fs-minipass/index.js | 422 + node_modules/fs-minipass/package.json | 39 + 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/geckodriver/AUTHORS | 26 + node_modules/geckodriver/LICENSE | 373 + node_modules/geckodriver/README.md | 151 + node_modules/geckodriver/bin/geckodriver | 10 + node_modules/geckodriver/geckodriver.exe | Bin 0 -> 3877704 bytes node_modules/geckodriver/geckodriver.zip | Bin 0 -> 1661089 bytes node_modules/geckodriver/index.js | 130 + node_modules/geckodriver/lib/geckodriver.d.ts | 12 + node_modules/geckodriver/lib/geckodriver.js | 21 + node_modules/geckodriver/package.json | 40 + node_modules/geckodriver/test/index.js | 37 + node_modules/get-stream/buffer-stream.js | 52 + node_modules/get-stream/index.d.ts | 108 + node_modules/get-stream/index.js | 60 + node_modules/get-stream/license | 9 + node_modules/get-stream/package.json | 50 + node_modules/get-stream/readme.md | 124 + 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 + .../source/as-promise/create-rejection.d.ts | 2 + .../source/as-promise/create-rejection.js | 30 + .../got/dist/source/as-promise/index.d.ts | 3 + .../got/dist/source/as-promise/index.js | 175 + .../as-promise/normalize-arguments.d.ts | 3 + .../source/as-promise/normalize-arguments.js | 78 + .../dist/source/as-promise/parse-body.d.ts | 3 + .../got/dist/source/as-promise/parse-body.js | 25 + .../got/dist/source/as-promise/types.d.ts | 256 + .../got/dist/source/as-promise/types.js | 42 + .../source/core/calculate-retry-delay.d.ts | 5 + .../dist/source/core/calculate-retry-delay.js | 29 + node_modules/got/dist/source/core/index.d.ts | 1124 ++ node_modules/got/dist/source/core/index.js | 1505 ++ .../source/core/utils/dns-ip-version.d.ts | 5 + .../dist/source/core/utils/dns-ip-version.js | 17 + .../dist/source/core/utils/get-body-size.d.ts | 3 + .../dist/source/core/utils/get-body-size.js | 32 + .../dist/source/core/utils/get-buffer.d.ts | 4 + .../got/dist/source/core/utils/get-buffer.js | 16 + .../dist/source/core/utils/is-form-data.d.ts | 8 + .../dist/source/core/utils/is-form-data.js | 4 + .../source/core/utils/is-response-ok.d.ts | 2 + .../dist/source/core/utils/is-response-ok.js | 8 + .../source/core/utils/options-to-url.d.ts | 14 + .../dist/source/core/utils/options-to-url.js | 53 + .../dist/source/core/utils/proxy-events.d.ts | 3 + .../dist/source/core/utils/proxy-events.js | 17 + .../got/dist/source/core/utils/timed-out.d.ts | 29 + .../got/dist/source/core/utils/timed-out.js | 121 + .../got/dist/source/core/utils/unhandle.d.ts | 11 + .../got/dist/source/core/utils/unhandle.js | 22 + .../source/core/utils/url-to-options.d.ts | 15 + .../dist/source/core/utils/url-to-options.js | 24 + .../dist/source/core/utils/weakable-map.d.ts | 8 + .../dist/source/core/utils/weakable-map.js | 29 + node_modules/got/dist/source/create.d.ts | 5 + node_modules/got/dist/source/create.js | 240 + node_modules/got/dist/source/index.d.ts | 4 + node_modules/got/dist/source/index.js | 132 + node_modules/got/dist/source/types.d.ts | 344 + node_modules/got/dist/source/types.js | 2 + .../got/dist/source/utils/deep-freeze.d.ts | 1 + .../got/dist/source/utils/deep-freeze.js | 12 + .../source/utils/deprecation-warning.d.ts | 2 + .../dist/source/utils/deprecation-warning.js | 13 + node_modules/got/license | 9 + node_modules/got/package.json | 130 + node_modules/got/readme.md | 2477 ++++ node_modules/http-cache-semantics/LICENSE | 9 + node_modules/http-cache-semantics/README.md | 203 + node_modules/http-cache-semantics/index.js | 674 + .../http-cache-semantics/package.json | 18 + node_modules/http2-wrapper/LICENSE | 21 + node_modules/http2-wrapper/README.md | 470 + node_modules/http2-wrapper/package.json | 54 + node_modules/http2-wrapper/source/agent.js | 670 + node_modules/http2-wrapper/source/auto.js | 149 + .../http2-wrapper/source/client-request.js | 445 + .../http2-wrapper/source/incoming-message.js | 58 + node_modules/http2-wrapper/source/index.js | 28 + .../source/utils/calculate-server-name.js | 27 + .../http2-wrapper/source/utils/errors.js | 45 + .../source/utils/is-request-pseudo-header.js | 13 + .../source/utils/proxy-events.js | 7 + .../source/utils/url-to-options.js | 25 + 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/immediate/LICENSE.txt | 20 + node_modules/immediate/README.md | 93 + node_modules/immediate/dist/immediate.js | 75 + node_modules/immediate/dist/immediate.min.js | 1 + node_modules/immediate/lib/browser.js | 69 + node_modules/immediate/lib/index.js | 73 + node_modules/immediate/package.json | 42 + 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/ip-regex/index.d.ts | 70 + node_modules/ip-regex/index.js | 36 + node_modules/ip-regex/license | 9 + node_modules/ip-regex/package.json | 44 + node_modules/ip-regex/readme.md | 86 + node_modules/is-url/.travis.yml | 3 + node_modules/is-url/History.md | 25 + node_modules/is-url/LICENSE-MIT | 19 + node_modules/is-url/Readme.md | 19 + node_modules/is-url/index.js | 47 + node_modules/is-url/package.json | 13 + node_modules/is-url/test/index.js | 149 + node_modules/is2/.jshintrc | 43 + node_modules/is2/LICENSE | 20 + node_modules/is2/README.md | 164 + node_modules/is2/index.d.ts | 1478 ++ node_modules/is2/index.js | 1310 ++ node_modules/is2/package.json | 56 + node_modules/is2/tests.js | 1572 +++ node_modules/isarray/.npmignore | 1 + node_modules/isarray/.travis.yml | 4 + node_modules/isarray/Makefile | 6 + node_modules/isarray/README.md | 60 + node_modules/isarray/component.json | 19 + node_modules/isarray/index.js | 5 + node_modules/isarray/package.json | 45 + node_modules/isarray/test.js | 20 + node_modules/json-buffer/.travis.yml | 3 + node_modules/json-buffer/LICENSE | 22 + node_modules/json-buffer/README.md | 24 + node_modules/json-buffer/index.js | 58 + node_modules/json-buffer/package.json | 34 + node_modules/json-buffer/test/index.js | 63 + node_modules/jszip/.codeclimate.yml | 16 + node_modules/jszip/.editorconfig | 8 + node_modules/jszip/.eslintrc.js | 43 + node_modules/jszip/.github/workflows/pr.yaml | 58 + node_modules/jszip/.jekyll-metadata | Bin 0 -> 24628 bytes node_modules/jszip/.travis.yml | 17 + node_modules/jszip/CHANGES.md | 204 + node_modules/jszip/LICENSE.markdown | 651 + node_modules/jszip/README.markdown | 33 + node_modules/jszip/deps.js | 37 + node_modules/jszip/dist/jszip.js | 11577 ++++++++++++++++ node_modules/jszip/dist/jszip.min.js | 13 + node_modules/jszip/graph.svg | 601 + node_modules/jszip/index.d.ts | 330 + node_modules/jszip/lib/base64.js | 106 + node_modules/jszip/lib/compressedObject.js | 74 + node_modules/jszip/lib/compressions.js | 14 + node_modules/jszip/lib/crc32.js | 77 + node_modules/jszip/lib/defaults.js | 11 + node_modules/jszip/lib/external.js | 18 + node_modules/jszip/lib/flate.js | 85 + .../jszip/lib/generate/ZipFileWorker.js | 539 + node_modules/jszip/lib/generate/index.js | 57 + node_modules/jszip/lib/index.js | 55 + node_modules/jszip/lib/license_header.js | 11 + node_modules/jszip/lib/load.js | 88 + .../lib/nodejs/NodejsStreamInputAdapter.js | 74 + .../lib/nodejs/NodejsStreamOutputAdapter.js | 42 + node_modules/jszip/lib/nodejsUtils.js | 57 + node_modules/jszip/lib/object.js | 384 + .../jszip/lib/readable-stream-browser.js | 10 + node_modules/jszip/lib/reader/ArrayReader.js | 57 + node_modules/jszip/lib/reader/DataReader.js | 116 + .../jszip/lib/reader/NodeBufferReader.js | 19 + node_modules/jszip/lib/reader/StringReader.js | 38 + .../jszip/lib/reader/Uint8ArrayReader.js | 22 + node_modules/jszip/lib/reader/readerFor.js | 28 + node_modules/jszip/lib/signature.js | 7 + .../jszip/lib/stream/ConvertWorker.js | 26 + node_modules/jszip/lib/stream/Crc32Probe.js | 24 + .../jszip/lib/stream/DataLengthProbe.js | 29 + node_modules/jszip/lib/stream/DataWorker.js | 116 + .../jszip/lib/stream/GenericWorker.js | 263 + node_modules/jszip/lib/stream/StreamHelper.js | 214 + node_modules/jszip/lib/support.js | 38 + node_modules/jszip/lib/utf8.js | 275 + node_modules/jszip/lib/utils.js | 501 + node_modules/jszip/lib/zipEntries.js | 261 + node_modules/jszip/lib/zipEntry.js | 293 + node_modules/jszip/lib/zipObject.js | 133 + node_modules/jszip/package.json | 67 + node_modules/jszip/sponsors.md | 21 + node_modules/jszip/tsconfig.json | 101 + node_modules/jszip/vendor/FileSaver.js | 247 + node_modules/keyv/README.md | 427 + node_modules/keyv/package.json | 58 + node_modules/keyv/src/index.d.ts | 116 + node_modules/keyv/src/index.js | 264 + node_modules/lie/README.md | 62 + node_modules/lie/dist/lie.js | 350 + node_modules/lie/dist/lie.min.js | 1 + node_modules/lie/dist/lie.polyfill.js | 358 + node_modules/lie/dist/lie.polyfill.min.js | 1 + node_modules/lie/lib/browser.js | 273 + node_modules/lie/lib/index.js | 298 + node_modules/lie/license.md | 7 + node_modules/lie/lie.d.ts | 244 + node_modules/lie/package.json | 69 + node_modules/lie/polyfill.js | 4 + node_modules/lowercase-keys/index.d.ts | 16 + node_modules/lowercase-keys/index.js | 10 + node_modules/lowercase-keys/license | 9 + node_modules/lowercase-keys/package.json | 38 + node_modules/lowercase-keys/readme.md | 32 + 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/mimic-response/index.js | 32 + node_modules/mimic-response/license | 9 + node_modules/mimic-response/package.json | 37 + node_modules/mimic-response/readme.md | 54 + node_modules/minimatch/LICENSE | 15 + node_modules/minimatch/README.md | 230 + node_modules/minimatch/minimatch.js | 947 ++ node_modules/minimatch/package.json | 33 + node_modules/minipass/LICENSE | 15 + node_modules/minipass/README.md | 728 + node_modules/minipass/index.d.ts | 155 + node_modules/minipass/index.js | 649 + node_modules/minipass/package.json | 56 + node_modules/minizlib/LICENSE | 26 + node_modules/minizlib/README.md | 60 + node_modules/minizlib/constants.js | 115 + node_modules/minizlib/index.js | 348 + node_modules/minizlib/package.json | 42 + node_modules/mkdirp/CHANGELOG.md | 15 + node_modules/mkdirp/LICENSE | 21 + node_modules/mkdirp/bin/cmd.js | 68 + node_modules/mkdirp/index.js | 31 + node_modules/mkdirp/lib/find-made.js | 29 + node_modules/mkdirp/lib/mkdirp-manual.js | 64 + node_modules/mkdirp/lib/mkdirp-native.js | 39 + node_modules/mkdirp/lib/opts-arg.js | 23 + node_modules/mkdirp/lib/path-arg.js | 29 + node_modules/mkdirp/lib/use-native.js | 10 + node_modules/mkdirp/package.json | 44 + node_modules/mkdirp/readme.markdown | 266 + node_modules/ms/index.js | 162 + node_modules/ms/license.md | 21 + node_modules/ms/package.json | 37 + node_modules/ms/readme.md | 60 + node_modules/normalize-url/index.d.ts | 267 + node_modules/normalize-url/index.js | 216 + node_modules/normalize-url/license | 9 + node_modules/normalize-url/package.json | 50 + node_modules/normalize-url/readme.md | 286 + 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/p-cancelable/index.d.ts | 176 + node_modules/p-cancelable/index.js | 111 + node_modules/p-cancelable/license | 9 + node_modules/p-cancelable/package.json | 49 + node_modules/p-cancelable/readme.md | 153 + node_modules/pako/CHANGELOG.md | 164 + node_modules/pako/LICENSE | 21 + node_modules/pako/README.md | 191 + node_modules/pako/dist/pako.js | 6818 +++++++++ node_modules/pako/dist/pako.min.js | 1 + node_modules/pako/dist/pako_deflate.js | 3997 ++++++ node_modules/pako/dist/pako_deflate.min.js | 1 + node_modules/pako/dist/pako_inflate.js | 3300 +++++ node_modules/pako/dist/pako_inflate.min.js | 1 + node_modules/pako/index.js | 14 + node_modules/pako/lib/deflate.js | 400 + node_modules/pako/lib/inflate.js | 423 + node_modules/pako/lib/utils/common.js | 105 + node_modules/pako/lib/utils/strings.js | 187 + node_modules/pako/lib/zlib/README | 59 + node_modules/pako/lib/zlib/adler32.js | 51 + node_modules/pako/lib/zlib/constants.js | 68 + node_modules/pako/lib/zlib/crc32.js | 59 + node_modules/pako/lib/zlib/deflate.js | 1874 +++ node_modules/pako/lib/zlib/gzheader.js | 58 + node_modules/pako/lib/zlib/inffast.js | 345 + node_modules/pako/lib/zlib/inflate.js | 1556 +++ node_modules/pako/lib/zlib/inftrees.js | 343 + node_modules/pako/lib/zlib/messages.js | 32 + node_modules/pako/lib/zlib/trees.js | 1222 ++ node_modules/pako/lib/zlib/zstream.js | 47 + node_modules/pako/package.json | 44 + 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/pend/LICENSE | 23 + node_modules/pend/README.md | 41 + node_modules/pend/index.js | 55 + node_modules/pend/package.json | 18 + node_modules/pend/test.js | 137 + node_modules/process-nextick-args/index.js | 45 + node_modules/process-nextick-args/license.md | 19 + .../process-nextick-args/package.json | 25 + node_modules/process-nextick-args/readme.md | 18 + node_modules/proxy-from-env/.eslintrc | 29 + node_modules/proxy-from-env/.travis.yml | 10 + node_modules/proxy-from-env/LICENSE | 20 + node_modules/proxy-from-env/README.md | 131 + node_modules/proxy-from-env/index.js | 108 + node_modules/proxy-from-env/package.json | 34 + node_modules/proxy-from-env/test.js | 483 + node_modules/pump/.travis.yml | 5 + node_modules/pump/LICENSE | 21 + node_modules/pump/README.md | 65 + node_modules/pump/index.js | 82 + node_modules/pump/package.json | 24 + node_modules/pump/test-browser.js | 66 + node_modules/pump/test-node.js | 53 + node_modules/quick-lru/index.d.ts | 97 + node_modules/quick-lru/index.js | 123 + node_modules/quick-lru/license | 9 + node_modules/quick-lru/package.json | 43 + node_modules/quick-lru/readme.md | 111 + node_modules/readable-stream/.travis.yml | 34 + node_modules/readable-stream/CONTRIBUTING.md | 38 + node_modules/readable-stream/GOVERNANCE.md | 136 + node_modules/readable-stream/LICENSE | 47 + node_modules/readable-stream/README.md | 58 + .../doc/wg-meetings/2015-01-30.md | 60 + .../readable-stream/duplex-browser.js | 1 + node_modules/readable-stream/duplex.js | 1 + .../readable-stream/lib/_stream_duplex.js | 131 + .../lib/_stream_passthrough.js | 47 + .../readable-stream/lib/_stream_readable.js | 1019 ++ .../readable-stream/lib/_stream_transform.js | 214 + .../readable-stream/lib/_stream_writable.js | 687 + .../lib/internal/streams/BufferList.js | 79 + .../lib/internal/streams/destroy.js | 74 + .../lib/internal/streams/stream-browser.js | 1 + .../lib/internal/streams/stream.js | 1 + node_modules/readable-stream/package.json | 52 + node_modules/readable-stream/passthrough.js | 1 + .../readable-stream/readable-browser.js | 7 + node_modules/readable-stream/readable.js | 19 + node_modules/readable-stream/transform.js | 1 + .../readable-stream/writable-browser.js | 1 + node_modules/readable-stream/writable.js | 8 + node_modules/resolve-alpn/LICENSE | 22 + node_modules/resolve-alpn/README.md | 60 + node_modules/resolve-alpn/index.js | 43 + node_modules/resolve-alpn/package.json | 34 + node_modules/responselike/LICENSE | 19 + node_modules/responselike/README.md | 77 + node_modules/responselike/package.json | 39 + node_modules/responselike/src/index.js | 34 + 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/safe-buffer/LICENSE | 21 + node_modules/safe-buffer/README.md | 584 + node_modules/safe-buffer/index.d.ts | 187 + node_modules/safe-buffer/index.js | 62 + node_modules/safe-buffer/package.json | 37 + node_modules/selenium-webdriver/CHANGES.md | 1240 ++ node_modules/selenium-webdriver/LICENSE | 202 + node_modules/selenium-webdriver/NOTICE | 2 + node_modules/selenium-webdriver/README.md | 231 + .../bidi/browsingContext.js | 194 + .../selenium-webdriver/bidi/filterBy.js | 46 + node_modules/selenium-webdriver/bidi/index.js | 224 + .../selenium-webdriver/bidi/logEntries.js | 87 + .../selenium-webdriver/bidi/logInspector.js | 269 + .../bin/linux/selenium-manager | Bin 0 -> 4052456 bytes .../bin/macos/selenium-manager | Bin 0 -> 3516512 bytes .../bin/windows/selenium-manager.exe | Bin 0 -> 3461120 bytes node_modules/selenium-webdriver/chrome.js | 288 + node_modules/selenium-webdriver/chromium.js | 945 ++ .../common/seleniumManager.js | 91 + .../devtools/CDPConnection.js | 40 + .../devtools/networkinterceptor.js | 88 + node_modules/selenium-webdriver/edge.js | 211 + .../example/chrome_android.js | 45 + .../example/chrome_mobile_emulation.js | 46 + .../example/firefox_channels.js | 84 + .../example/google_search.js | 50 + .../example/google_search_test.js | 70 + .../selenium-webdriver/example/headless.js | 63 + .../selenium-webdriver/example/logging.js | 64 + node_modules/selenium-webdriver/firefox.js | 852 ++ node_modules/selenium-webdriver/http/index.js | 346 + node_modules/selenium-webdriver/http/util.js | 166 + node_modules/selenium-webdriver/ie.js | 516 + node_modules/selenium-webdriver/index.js | 801 ++ node_modules/selenium-webdriver/io/exec.js | 166 + node_modules/selenium-webdriver/io/index.js | 351 + node_modules/selenium-webdriver/io/zip.js | 221 + .../lib/atoms/find-elements.js | 123 + .../lib/atoms/get-attribute.js | 101 + .../lib/atoms/is-displayed.js | 101 + .../lib/atoms/mutation-listener.js | 55 + node_modules/selenium-webdriver/lib/by.js | 432 + .../selenium-webdriver/lib/capabilities.js | 554 + .../selenium-webdriver/lib/command.js | 210 + node_modules/selenium-webdriver/lib/error.js | 610 + node_modules/selenium-webdriver/lib/http.js | 652 + node_modules/selenium-webdriver/lib/input.js | 1063 ++ .../selenium-webdriver/lib/logging.js | 661 + .../selenium-webdriver/lib/promise.js | 271 + node_modules/selenium-webdriver/lib/proxy.js | 222 + node_modules/selenium-webdriver/lib/select.js | 466 + .../selenium-webdriver/lib/session.js | 77 + .../selenium-webdriver/lib/symbols.js | 37 + node_modules/selenium-webdriver/lib/until.js | 452 + node_modules/selenium-webdriver/lib/util.js | 52 + .../lib/virtual_authenticator.js | 254 + .../selenium-webdriver/lib/webdriver.js | 3346 +++++ .../selenium-webdriver/lib/webelement.js | 66 + node_modules/selenium-webdriver/net/index.js | 117 + .../selenium-webdriver/net/portprober.js | 76 + node_modules/selenium-webdriver/package.json | 52 + node_modules/selenium-webdriver/proxy.js | 32 + .../selenium-webdriver/remote/index.js | 633 + .../selenium-webdriver/remote/util.js | 93 + node_modules/selenium-webdriver/safari.js | 168 + .../selenium-webdriver/testing/index.js | 506 + node_modules/setimmediate/LICENSE.txt | 20 + node_modules/setimmediate/package.json | 30 + node_modules/setimmediate/setImmediate.js | 186 + node_modules/string_decoder/.travis.yml | 50 + node_modules/string_decoder/LICENSE | 48 + node_modules/string_decoder/README.md | 47 + .../string_decoder/lib/string_decoder.js | 296 + node_modules/string_decoder/package.json | 31 + node_modules/tar/LICENSE | 15 + node_modules/tar/README.md | 1042 ++ node_modules/tar/index.js | 18 + node_modules/tar/lib/create.js | 104 + node_modules/tar/lib/extract.js | 107 + node_modules/tar/lib/get-write-flag.js | 20 + node_modules/tar/lib/header.js | 288 + node_modules/tar/lib/high-level-opt.js | 29 + node_modules/tar/lib/large-numbers.js | 99 + node_modules/tar/lib/list.js | 132 + node_modules/tar/lib/mkdir.js | 213 + node_modules/tar/lib/mode-fix.js | 23 + node_modules/tar/lib/normalize-unicode.js | 11 + .../tar/lib/normalize-windows-path.js | 8 + node_modules/tar/lib/pack.js | 397 + node_modules/tar/lib/parse.js | 481 + node_modules/tar/lib/path-reservations.js | 148 + node_modules/tar/lib/pax.js | 143 + node_modules/tar/lib/read-entry.js | 100 + node_modules/tar/lib/replace.js | 223 + node_modules/tar/lib/strip-absolute-path.js | 24 + .../tar/lib/strip-trailing-slashes.js | 13 + node_modules/tar/lib/types.js | 44 + node_modules/tar/lib/unpack.js | 877 ++ node_modules/tar/lib/update.js | 36 + node_modules/tar/lib/warn-mixin.js | 21 + node_modules/tar/lib/winchars.js | 23 + node_modules/tar/lib/write-entry.js | 525 + node_modules/tar/package.json | 59 + node_modules/tcp-port-used/.jshintrc | 44 + node_modules/tcp-port-used/LICENSE | 20 + node_modules/tcp-port-used/README.md | 200 + node_modules/tcp-port-used/index.js | 369 + .../tcp-port-used/node_modules/debug/LICENSE | 19 + .../node_modules/debug/README.md | 455 + .../node_modules/debug/package.json | 59 + .../node_modules/debug/src/browser.js | 269 + .../node_modules/debug/src/common.js | 261 + .../node_modules/debug/src/index.js | 10 + .../node_modules/debug/src/node.js | 263 + node_modules/tcp-port-used/package.json | 34 + node_modules/tcp-port-used/test.js | 740 + node_modules/tmp/CHANGELOG.md | 288 + node_modules/tmp/LICENSE | 21 + node_modules/tmp/README.md | 365 + node_modules/tmp/lib/tmp.js | 780 ++ node_modules/tmp/package.json | 58 + node_modules/util-deprecate/History.md | 16 + node_modules/util-deprecate/LICENSE | 24 + node_modules/util-deprecate/README.md | 53 + node_modules/util-deprecate/browser.js | 67 + node_modules/util-deprecate/node.js | 6 + node_modules/util-deprecate/package.json | 27 + 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 | 500 + node_modules/ws/browser.js | 8 + node_modules/ws/index.js | 13 + node_modules/ws/lib/buffer-util.js | 131 + node_modules/ws/lib/constants.js | 12 + 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 | 514 + node_modules/ws/lib/receiver.js | 627 + node_modules/ws/lib/sender.js | 478 + node_modules/ws/lib/stream.js | 159 + node_modules/ws/lib/subprotocol.js | 62 + node_modules/ws/lib/validation.js | 130 + node_modules/ws/lib/websocket-server.js | 535 + node_modules/ws/lib/websocket.js | 1307 ++ node_modules/ws/package.json | 64 + node_modules/ws/wrapper.mjs | 8 + node_modules/yallist/LICENSE | 15 + node_modules/yallist/README.md | 204 + node_modules/yallist/iterator.js | 8 + node_modules/yallist/package.json | 29 + node_modules/yallist/yallist.js | 426 + node_modules/yauzl/LICENSE | 21 + node_modules/yauzl/README.md | 658 + node_modules/yauzl/index.js | 796 ++ node_modules/yauzl/package.json | 40 + package-lock.json | 902 ++ package.json | 7 + table.js | 38 + 1032 files changed, 260918 insertions(+) create mode 100644 app.js create mode 100644 automation.js create mode 100644 check_work.js create mode 100644 node_modules/.bin/chromedriver create mode 100644 node_modules/.bin/chromedriver.cmd create mode 100644 node_modules/.bin/chromedriver.ps1 create mode 100644 node_modules/.bin/extract-zip create mode 100644 node_modules/.bin/extract-zip.cmd create mode 100644 node_modules/.bin/extract-zip.ps1 create mode 100644 node_modules/.bin/geckodriver create mode 100644 node_modules/.bin/geckodriver.cmd create mode 100644 node_modules/.bin/geckodriver.ps1 create mode 100644 node_modules/.bin/mkdirp create mode 100644 node_modules/.bin/mkdirp.cmd create mode 100644 node_modules/.bin/mkdirp.ps1 create mode 100644 node_modules/.bin/rimraf create mode 100644 node_modules/.bin/rimraf.cmd create mode 100644 node_modules/.bin/rimraf.ps1 create mode 100644 node_modules/.package-lock.json create mode 100644 node_modules/@sindresorhus/is/dist/index.d.ts create mode 100644 node_modules/@sindresorhus/is/dist/index.js create mode 100644 node_modules/@sindresorhus/is/dist/types.d.ts create mode 100644 node_modules/@sindresorhus/is/dist/types.js create mode 100644 node_modules/@sindresorhus/is/license create mode 100644 node_modules/@sindresorhus/is/package.json create mode 100644 node_modules/@sindresorhus/is/readme.md create mode 100644 node_modules/@szmarczak/http-timer/LICENSE create mode 100644 node_modules/@szmarczak/http-timer/README.md create mode 100644 node_modules/@szmarczak/http-timer/dist/source/index.d.ts create mode 100644 node_modules/@szmarczak/http-timer/dist/source/index.js create mode 100644 node_modules/@szmarczak/http-timer/package.json create mode 100644 node_modules/@testim/chrome-version/.eslintrc.json create mode 100644 node_modules/@testim/chrome-version/.github/workflows/ci.yml create mode 100644 node_modules/@testim/chrome-version/CODE_OF_CONDUCT.md create mode 100644 node_modules/@testim/chrome-version/LICENSE create mode 100644 node_modules/@testim/chrome-version/chrome-finder/darwin.js create mode 100644 node_modules/@testim/chrome-version/chrome-finder/index.d.ts create mode 100644 node_modules/@testim/chrome-version/chrome-finder/index.js create mode 100644 node_modules/@testim/chrome-version/chrome-finder/linux.js create mode 100644 node_modules/@testim/chrome-version/chrome-finder/util.js create mode 100644 node_modules/@testim/chrome-version/chrome-finder/win32.js create mode 100644 node_modules/@testim/chrome-version/example.js create mode 100644 node_modules/@testim/chrome-version/index.js create mode 100644 node_modules/@testim/chrome-version/package.json create mode 100644 node_modules/@testim/chrome-version/readme.MD create mode 100644 node_modules/@testim/chrome-version/test/test.js create mode 100644 node_modules/@types/cacheable-request/LICENSE create mode 100644 node_modules/@types/cacheable-request/README.md create mode 100644 node_modules/@types/cacheable-request/index.d.ts create mode 100644 node_modules/@types/cacheable-request/package.json create mode 100644 node_modules/@types/http-cache-semantics/LICENSE create mode 100644 node_modules/@types/http-cache-semantics/README.md create mode 100644 node_modules/@types/http-cache-semantics/index.d.ts create mode 100644 node_modules/@types/http-cache-semantics/package.json create mode 100644 node_modules/@types/keyv/LICENSE create mode 100644 node_modules/@types/keyv/README.md create mode 100644 node_modules/@types/keyv/index.d.ts create mode 100644 node_modules/@types/keyv/package.json create mode 100644 node_modules/@types/node/LICENSE create mode 100644 node_modules/@types/node/README.md create mode 100644 node_modules/@types/node/assert.d.ts create mode 100644 node_modules/@types/node/assert/strict.d.ts create mode 100644 node_modules/@types/node/async_hooks.d.ts create mode 100644 node_modules/@types/node/buffer.d.ts create mode 100644 node_modules/@types/node/child_process.d.ts create mode 100644 node_modules/@types/node/cluster.d.ts create mode 100644 node_modules/@types/node/console.d.ts create mode 100644 node_modules/@types/node/constants.d.ts create mode 100644 node_modules/@types/node/crypto.d.ts create mode 100644 node_modules/@types/node/dgram.d.ts create mode 100644 node_modules/@types/node/diagnostics_channel.d.ts create mode 100644 node_modules/@types/node/dns.d.ts create mode 100644 node_modules/@types/node/dns/promises.d.ts create mode 100644 node_modules/@types/node/dom-events.d.ts create mode 100644 node_modules/@types/node/domain.d.ts create mode 100644 node_modules/@types/node/events.d.ts create mode 100644 node_modules/@types/node/fs.d.ts create mode 100644 node_modules/@types/node/fs/promises.d.ts create mode 100644 node_modules/@types/node/globals.d.ts create mode 100644 node_modules/@types/node/globals.global.d.ts create mode 100644 node_modules/@types/node/http.d.ts create mode 100644 node_modules/@types/node/http2.d.ts create mode 100644 node_modules/@types/node/https.d.ts create mode 100644 node_modules/@types/node/index.d.ts create mode 100644 node_modules/@types/node/inspector.d.ts create mode 100644 node_modules/@types/node/module.d.ts create mode 100644 node_modules/@types/node/net.d.ts create mode 100644 node_modules/@types/node/os.d.ts create mode 100644 node_modules/@types/node/package.json create mode 100644 node_modules/@types/node/path.d.ts create mode 100644 node_modules/@types/node/perf_hooks.d.ts create mode 100644 node_modules/@types/node/process.d.ts create mode 100644 node_modules/@types/node/punycode.d.ts create mode 100644 node_modules/@types/node/querystring.d.ts create mode 100644 node_modules/@types/node/readline.d.ts create mode 100644 node_modules/@types/node/readline/promises.d.ts create mode 100644 node_modules/@types/node/repl.d.ts create mode 100644 node_modules/@types/node/stream.d.ts create mode 100644 node_modules/@types/node/stream/consumers.d.ts create mode 100644 node_modules/@types/node/stream/promises.d.ts create mode 100644 node_modules/@types/node/stream/web.d.ts create mode 100644 node_modules/@types/node/string_decoder.d.ts create mode 100644 node_modules/@types/node/test.d.ts create mode 100644 node_modules/@types/node/timers.d.ts create mode 100644 node_modules/@types/node/timers/promises.d.ts create mode 100644 node_modules/@types/node/tls.d.ts create mode 100644 node_modules/@types/node/trace_events.d.ts create mode 100644 node_modules/@types/node/ts4.8/assert.d.ts create mode 100644 node_modules/@types/node/ts4.8/assert/strict.d.ts create mode 100644 node_modules/@types/node/ts4.8/async_hooks.d.ts create mode 100644 node_modules/@types/node/ts4.8/buffer.d.ts create mode 100644 node_modules/@types/node/ts4.8/child_process.d.ts create mode 100644 node_modules/@types/node/ts4.8/cluster.d.ts create mode 100644 node_modules/@types/node/ts4.8/console.d.ts create mode 100644 node_modules/@types/node/ts4.8/constants.d.ts create mode 100644 node_modules/@types/node/ts4.8/crypto.d.ts create mode 100644 node_modules/@types/node/ts4.8/dgram.d.ts create mode 100644 node_modules/@types/node/ts4.8/diagnostics_channel.d.ts create mode 100644 node_modules/@types/node/ts4.8/dns.d.ts create mode 100644 node_modules/@types/node/ts4.8/dns/promises.d.ts create mode 100644 node_modules/@types/node/ts4.8/dom-events.d.ts create mode 100644 node_modules/@types/node/ts4.8/domain.d.ts create mode 100644 node_modules/@types/node/ts4.8/events.d.ts create mode 100644 node_modules/@types/node/ts4.8/fs.d.ts create mode 100644 node_modules/@types/node/ts4.8/fs/promises.d.ts create mode 100644 node_modules/@types/node/ts4.8/globals.d.ts create mode 100644 node_modules/@types/node/ts4.8/globals.global.d.ts create mode 100644 node_modules/@types/node/ts4.8/http.d.ts create mode 100644 node_modules/@types/node/ts4.8/http2.d.ts create mode 100644 node_modules/@types/node/ts4.8/https.d.ts create mode 100644 node_modules/@types/node/ts4.8/index.d.ts create mode 100644 node_modules/@types/node/ts4.8/inspector.d.ts create mode 100644 node_modules/@types/node/ts4.8/module.d.ts create mode 100644 node_modules/@types/node/ts4.8/net.d.ts create mode 100644 node_modules/@types/node/ts4.8/os.d.ts create mode 100644 node_modules/@types/node/ts4.8/path.d.ts create mode 100644 node_modules/@types/node/ts4.8/perf_hooks.d.ts create mode 100644 node_modules/@types/node/ts4.8/process.d.ts create mode 100644 node_modules/@types/node/ts4.8/punycode.d.ts create mode 100644 node_modules/@types/node/ts4.8/querystring.d.ts create mode 100644 node_modules/@types/node/ts4.8/readline.d.ts create mode 100644 node_modules/@types/node/ts4.8/readline/promises.d.ts create mode 100644 node_modules/@types/node/ts4.8/repl.d.ts create mode 100644 node_modules/@types/node/ts4.8/stream.d.ts create mode 100644 node_modules/@types/node/ts4.8/stream/consumers.d.ts create mode 100644 node_modules/@types/node/ts4.8/stream/promises.d.ts create mode 100644 node_modules/@types/node/ts4.8/stream/web.d.ts create mode 100644 node_modules/@types/node/ts4.8/string_decoder.d.ts create mode 100644 node_modules/@types/node/ts4.8/test.d.ts create mode 100644 node_modules/@types/node/ts4.8/timers.d.ts create mode 100644 node_modules/@types/node/ts4.8/timers/promises.d.ts create mode 100644 node_modules/@types/node/ts4.8/tls.d.ts create mode 100644 node_modules/@types/node/ts4.8/trace_events.d.ts create mode 100644 node_modules/@types/node/ts4.8/tty.d.ts create mode 100644 node_modules/@types/node/ts4.8/url.d.ts create mode 100644 node_modules/@types/node/ts4.8/util.d.ts create mode 100644 node_modules/@types/node/ts4.8/v8.d.ts create mode 100644 node_modules/@types/node/ts4.8/vm.d.ts create mode 100644 node_modules/@types/node/ts4.8/wasi.d.ts create mode 100644 node_modules/@types/node/ts4.8/worker_threads.d.ts create mode 100644 node_modules/@types/node/ts4.8/zlib.d.ts create mode 100644 node_modules/@types/node/tty.d.ts create mode 100644 node_modules/@types/node/url.d.ts create mode 100644 node_modules/@types/node/util.d.ts create mode 100644 node_modules/@types/node/v8.d.ts create mode 100644 node_modules/@types/node/vm.d.ts create mode 100644 node_modules/@types/node/wasi.d.ts create mode 100644 node_modules/@types/node/worker_threads.d.ts create mode 100644 node_modules/@types/node/zlib.d.ts create mode 100644 node_modules/@types/responselike/LICENSE create mode 100644 node_modules/@types/responselike/README.md create mode 100644 node_modules/@types/responselike/index.d.ts create mode 100644 node_modules/@types/responselike/package.json create mode 100644 node_modules/@types/yauzl/LICENSE create mode 100644 node_modules/@types/yauzl/README.md create mode 100644 node_modules/@types/yauzl/index.d.ts create mode 100644 node_modules/@types/yauzl/package.json create mode 100644 node_modules/adm-zip/LICENSE create mode 100644 node_modules/adm-zip/README.md create mode 100644 node_modules/adm-zip/adm-zip.js create mode 100644 node_modules/adm-zip/headers/entryHeader.js create mode 100644 node_modules/adm-zip/headers/index.js create mode 100644 node_modules/adm-zip/headers/mainHeader.js create mode 100644 node_modules/adm-zip/methods/deflater.js create mode 100644 node_modules/adm-zip/methods/index.js create mode 100644 node_modules/adm-zip/methods/inflater.js create mode 100644 node_modules/adm-zip/methods/zipcrypto.js create mode 100644 node_modules/adm-zip/package.json create mode 100644 node_modules/adm-zip/util/constants.js create mode 100644 node_modules/adm-zip/util/errors.js create mode 100644 node_modules/adm-zip/util/fattr.js create mode 100644 node_modules/adm-zip/util/fileSystem.js create mode 100644 node_modules/adm-zip/util/index.js create mode 100644 node_modules/adm-zip/util/utils.js create mode 100644 node_modules/adm-zip/zipEntry.js create mode 100644 node_modules/adm-zip/zipFile.js create mode 100644 node_modules/agent-base/README.md create mode 100644 node_modules/agent-base/dist/src/index.d.ts create mode 100644 node_modules/agent-base/dist/src/index.js create mode 100644 node_modules/agent-base/dist/src/index.js.map create mode 100644 node_modules/agent-base/dist/src/promisify.d.ts create mode 100644 node_modules/agent-base/dist/src/promisify.js create mode 100644 node_modules/agent-base/dist/src/promisify.js.map create mode 100644 node_modules/agent-base/package.json create mode 100644 node_modules/agent-base/src/index.ts create mode 100644 node_modules/agent-base/src/promisify.ts create mode 100644 node_modules/asynckit/LICENSE create mode 100644 node_modules/asynckit/README.md create mode 100644 node_modules/asynckit/bench.js create mode 100644 node_modules/asynckit/index.js create mode 100644 node_modules/asynckit/lib/abort.js create mode 100644 node_modules/asynckit/lib/async.js create mode 100644 node_modules/asynckit/lib/defer.js create mode 100644 node_modules/asynckit/lib/iterate.js create mode 100644 node_modules/asynckit/lib/readable_asynckit.js create mode 100644 node_modules/asynckit/lib/readable_parallel.js create mode 100644 node_modules/asynckit/lib/readable_serial.js create mode 100644 node_modules/asynckit/lib/readable_serial_ordered.js create mode 100644 node_modules/asynckit/lib/state.js create mode 100644 node_modules/asynckit/lib/streamify.js create mode 100644 node_modules/asynckit/lib/terminator.js create mode 100644 node_modules/asynckit/package.json create mode 100644 node_modules/asynckit/parallel.js create mode 100644 node_modules/asynckit/serial.js create mode 100644 node_modules/asynckit/serialOrdered.js create mode 100644 node_modules/asynckit/stream.js create mode 100644 node_modules/axios/CHANGELOG.md create mode 100644 node_modules/axios/LICENSE create mode 100644 node_modules/axios/MIGRATION_GUIDE.md create mode 100644 node_modules/axios/README.md create mode 100644 node_modules/axios/SECURITY.md create mode 100644 node_modules/axios/dist/axios.js create mode 100644 node_modules/axios/dist/axios.js.map create mode 100644 node_modules/axios/dist/axios.min.js create mode 100644 node_modules/axios/dist/axios.min.js.map create mode 100644 node_modules/axios/dist/browser/axios.cjs create mode 100644 node_modules/axios/dist/browser/axios.cjs.map create mode 100644 node_modules/axios/dist/esm/axios.js create mode 100644 node_modules/axios/dist/esm/axios.js.map create mode 100644 node_modules/axios/dist/esm/axios.min.js create mode 100644 node_modules/axios/dist/esm/axios.min.js.map create mode 100644 node_modules/axios/dist/node/axios.cjs create mode 100644 node_modules/axios/dist/node/axios.cjs.map create mode 100644 node_modules/axios/index.d.cts create mode 100644 node_modules/axios/index.d.ts create mode 100644 node_modules/axios/index.js create mode 100644 node_modules/axios/lib/adapters/README.md create mode 100644 node_modules/axios/lib/adapters/adapters.js create mode 100644 node_modules/axios/lib/adapters/http.js create mode 100644 node_modules/axios/lib/adapters/xhr.js create mode 100644 node_modules/axios/lib/axios.js create mode 100644 node_modules/axios/lib/cancel/CancelToken.js create mode 100644 node_modules/axios/lib/cancel/CanceledError.js create mode 100644 node_modules/axios/lib/cancel/isCancel.js create mode 100644 node_modules/axios/lib/core/Axios.js create mode 100644 node_modules/axios/lib/core/AxiosError.js create mode 100644 node_modules/axios/lib/core/AxiosHeaders.js create mode 100644 node_modules/axios/lib/core/InterceptorManager.js create mode 100644 node_modules/axios/lib/core/README.md create mode 100644 node_modules/axios/lib/core/buildFullPath.js create mode 100644 node_modules/axios/lib/core/dispatchRequest.js create mode 100644 node_modules/axios/lib/core/mergeConfig.js create mode 100644 node_modules/axios/lib/core/settle.js create mode 100644 node_modules/axios/lib/core/transformData.js create mode 100644 node_modules/axios/lib/defaults/index.js create mode 100644 node_modules/axios/lib/defaults/transitional.js create mode 100644 node_modules/axios/lib/env/README.md create mode 100644 node_modules/axios/lib/env/classes/FormData.js create mode 100644 node_modules/axios/lib/env/data.js create mode 100644 node_modules/axios/lib/helpers/AxiosTransformStream.js create mode 100644 node_modules/axios/lib/helpers/AxiosURLSearchParams.js create mode 100644 node_modules/axios/lib/helpers/HttpStatusCode.js create mode 100644 node_modules/axios/lib/helpers/README.md create mode 100644 node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js create mode 100644 node_modules/axios/lib/helpers/bind.js create mode 100644 node_modules/axios/lib/helpers/buildURL.js create mode 100644 node_modules/axios/lib/helpers/combineURLs.js create mode 100644 node_modules/axios/lib/helpers/cookies.js create mode 100644 node_modules/axios/lib/helpers/deprecatedMethod.js create mode 100644 node_modules/axios/lib/helpers/formDataToJSON.js create mode 100644 node_modules/axios/lib/helpers/formDataToStream.js create mode 100644 node_modules/axios/lib/helpers/fromDataURI.js create mode 100644 node_modules/axios/lib/helpers/isAbsoluteURL.js create mode 100644 node_modules/axios/lib/helpers/isAxiosError.js create mode 100644 node_modules/axios/lib/helpers/isURLSameOrigin.js create mode 100644 node_modules/axios/lib/helpers/null.js create mode 100644 node_modules/axios/lib/helpers/parseHeaders.js create mode 100644 node_modules/axios/lib/helpers/parseProtocol.js create mode 100644 node_modules/axios/lib/helpers/readBlob.js create mode 100644 node_modules/axios/lib/helpers/speedometer.js create mode 100644 node_modules/axios/lib/helpers/spread.js create mode 100644 node_modules/axios/lib/helpers/throttle.js create mode 100644 node_modules/axios/lib/helpers/toFormData.js create mode 100644 node_modules/axios/lib/helpers/toURLEncodedForm.js create mode 100644 node_modules/axios/lib/helpers/validator.js create mode 100644 node_modules/axios/lib/platform/browser/classes/FormData.js create mode 100644 node_modules/axios/lib/platform/browser/classes/URLSearchParams.js create mode 100644 node_modules/axios/lib/platform/browser/index.js create mode 100644 node_modules/axios/lib/platform/index.js create mode 100644 node_modules/axios/lib/platform/node/classes/FormData.js create mode 100644 node_modules/axios/lib/platform/node/classes/URLSearchParams.js create mode 100644 node_modules/axios/lib/platform/node/index.js create mode 100644 node_modules/axios/lib/utils.js create mode 100644 node_modules/axios/package.json create mode 100644 node_modules/balanced-match/.github/FUNDING.yml create mode 100644 node_modules/balanced-match/LICENSE.md create mode 100644 node_modules/balanced-match/README.md create mode 100644 node_modules/balanced-match/index.js create mode 100644 node_modules/balanced-match/package.json create mode 100644 node_modules/bluebird/LICENSE create mode 100644 node_modules/bluebird/README.md create mode 100644 node_modules/bluebird/changelog.md create mode 100644 node_modules/bluebird/js/browser/bluebird.core.js create mode 100644 node_modules/bluebird/js/browser/bluebird.core.min.js create mode 100644 node_modules/bluebird/js/browser/bluebird.js create mode 100644 node_modules/bluebird/js/browser/bluebird.min.js create mode 100644 node_modules/bluebird/js/release/any.js create mode 100644 node_modules/bluebird/js/release/assert.js create mode 100644 node_modules/bluebird/js/release/async.js create mode 100644 node_modules/bluebird/js/release/bind.js create mode 100644 node_modules/bluebird/js/release/bluebird.js create mode 100644 node_modules/bluebird/js/release/call_get.js create mode 100644 node_modules/bluebird/js/release/cancel.js create mode 100644 node_modules/bluebird/js/release/catch_filter.js create mode 100644 node_modules/bluebird/js/release/context.js create mode 100644 node_modules/bluebird/js/release/debuggability.js create mode 100644 node_modules/bluebird/js/release/direct_resolve.js create mode 100644 node_modules/bluebird/js/release/each.js create mode 100644 node_modules/bluebird/js/release/errors.js create mode 100644 node_modules/bluebird/js/release/es5.js create mode 100644 node_modules/bluebird/js/release/filter.js create mode 100644 node_modules/bluebird/js/release/finally.js create mode 100644 node_modules/bluebird/js/release/generators.js create mode 100644 node_modules/bluebird/js/release/join.js create mode 100644 node_modules/bluebird/js/release/map.js create mode 100644 node_modules/bluebird/js/release/method.js create mode 100644 node_modules/bluebird/js/release/nodeback.js create mode 100644 node_modules/bluebird/js/release/nodeify.js create mode 100644 node_modules/bluebird/js/release/promise.js create mode 100644 node_modules/bluebird/js/release/promise_array.js create mode 100644 node_modules/bluebird/js/release/promisify.js create mode 100644 node_modules/bluebird/js/release/props.js create mode 100644 node_modules/bluebird/js/release/queue.js create mode 100644 node_modules/bluebird/js/release/race.js create mode 100644 node_modules/bluebird/js/release/reduce.js create mode 100644 node_modules/bluebird/js/release/schedule.js create mode 100644 node_modules/bluebird/js/release/settle.js create mode 100644 node_modules/bluebird/js/release/some.js create mode 100644 node_modules/bluebird/js/release/synchronous_inspection.js create mode 100644 node_modules/bluebird/js/release/thenables.js create mode 100644 node_modules/bluebird/js/release/timers.js create mode 100644 node_modules/bluebird/js/release/using.js create mode 100644 node_modules/bluebird/js/release/util.js create mode 100644 node_modules/bluebird/package.json create mode 100644 node_modules/brace-expansion/LICENSE create mode 100644 node_modules/brace-expansion/README.md create mode 100644 node_modules/brace-expansion/index.js create mode 100644 node_modules/brace-expansion/package.json create mode 100644 node_modules/buffer-crc32/LICENSE create mode 100644 node_modules/buffer-crc32/README.md create mode 100644 node_modules/buffer-crc32/index.js create mode 100644 node_modules/buffer-crc32/package.json create mode 100644 node_modules/cacheable-lookup/LICENSE create mode 100644 node_modules/cacheable-lookup/README.md create mode 100644 node_modules/cacheable-lookup/index.d.ts create mode 100644 node_modules/cacheable-lookup/package.json create mode 100644 node_modules/cacheable-lookup/source/index.js create mode 100644 node_modules/cacheable-request/LICENSE create mode 100644 node_modules/cacheable-request/README.md create mode 100644 node_modules/cacheable-request/package.json create mode 100644 node_modules/cacheable-request/src/index.js create mode 100644 node_modules/chownr/LICENSE create mode 100644 node_modules/chownr/README.md create mode 100644 node_modules/chownr/chownr.js create mode 100644 node_modules/chownr/package.json create mode 100644 node_modules/chromedriver/LICENSE.txt create mode 100644 node_modules/chromedriver/README.md create mode 100644 node_modules/chromedriver/bin/chromedriver create mode 100644 node_modules/chromedriver/install.js create mode 100644 node_modules/chromedriver/lib/chromedriver.js create mode 100644 node_modules/chromedriver/lib/chromedriver/chromedriver.exe create mode 100644 node_modules/chromedriver/package.json create mode 100644 node_modules/clone-response/LICENSE create mode 100644 node_modules/clone-response/README.md create mode 100644 node_modules/clone-response/package.json create mode 100644 node_modules/clone-response/src/index.js create mode 100644 node_modules/combined-stream/License create mode 100644 node_modules/combined-stream/Readme.md create mode 100644 node_modules/combined-stream/lib/combined_stream.js create mode 100644 node_modules/combined-stream/package.json create mode 100644 node_modules/combined-stream/yarn.lock create mode 100644 node_modules/compare-versions/LICENSE create mode 100644 node_modules/compare-versions/README.md create mode 100644 node_modules/compare-versions/lib/esm/index.d.ts create mode 100644 node_modules/compare-versions/lib/esm/index.js create mode 100644 node_modules/compare-versions/lib/esm/index.js.map create mode 100644 node_modules/compare-versions/lib/umd/index.js create mode 100644 node_modules/compare-versions/lib/umd/index.js.map create mode 100644 node_modules/compare-versions/package.json create mode 100644 node_modules/compare-versions/src/index.ts create mode 100644 node_modules/concat-map/.travis.yml create mode 100644 node_modules/concat-map/LICENSE create mode 100644 node_modules/concat-map/README.markdown create mode 100644 node_modules/concat-map/example/map.js create mode 100644 node_modules/concat-map/index.js create mode 100644 node_modules/concat-map/package.json create mode 100644 node_modules/concat-map/test/map.js create mode 100644 node_modules/core-util-is/LICENSE create mode 100644 node_modules/core-util-is/README.md create mode 100644 node_modules/core-util-is/lib/util.js create mode 100644 node_modules/core-util-is/package.json create mode 100644 node_modules/debug/LICENSE create mode 100644 node_modules/debug/README.md create mode 100644 node_modules/debug/package.json create mode 100644 node_modules/debug/src/browser.js create mode 100644 node_modules/debug/src/common.js create mode 100644 node_modules/debug/src/index.js create mode 100644 node_modules/debug/src/node.js create mode 100644 node_modules/decompress-response/index.d.ts create mode 100644 node_modules/decompress-response/index.js create mode 100644 node_modules/decompress-response/license create mode 100644 node_modules/decompress-response/node_modules/mimic-response/index.d.ts create mode 100644 node_modules/decompress-response/node_modules/mimic-response/index.js create mode 100644 node_modules/decompress-response/node_modules/mimic-response/license create mode 100644 node_modules/decompress-response/node_modules/mimic-response/package.json create mode 100644 node_modules/decompress-response/node_modules/mimic-response/readme.md create mode 100644 node_modules/decompress-response/package.json create mode 100644 node_modules/decompress-response/readme.md create mode 100644 node_modules/deep-is/.travis.yml create mode 100644 node_modules/deep-is/LICENSE create mode 100644 node_modules/deep-is/README.markdown create mode 100644 node_modules/deep-is/example/cmp.js create mode 100644 node_modules/deep-is/index.js create mode 100644 node_modules/deep-is/package.json create mode 100644 node_modules/deep-is/test/NaN.js create mode 100644 node_modules/deep-is/test/cmp.js create mode 100644 node_modules/deep-is/test/neg-vs-pos-0.js create mode 100644 node_modules/defer-to-connect/LICENSE create mode 100644 node_modules/defer-to-connect/README.md create mode 100644 node_modules/defer-to-connect/dist/source/index.d.ts create mode 100644 node_modules/defer-to-connect/dist/source/index.js create mode 100644 node_modules/defer-to-connect/package.json create mode 100644 node_modules/delayed-stream/.npmignore create mode 100644 node_modules/delayed-stream/License create mode 100644 node_modules/delayed-stream/Makefile create mode 100644 node_modules/delayed-stream/Readme.md create mode 100644 node_modules/delayed-stream/lib/delayed_stream.js create mode 100644 node_modules/delayed-stream/package.json create mode 100644 node_modules/end-of-stream/LICENSE create mode 100644 node_modules/end-of-stream/README.md create mode 100644 node_modules/end-of-stream/index.js create mode 100644 node_modules/end-of-stream/package.json create mode 100644 node_modules/extract-zip/LICENSE create mode 100644 node_modules/extract-zip/cli.js create mode 100644 node_modules/extract-zip/index.d.ts create mode 100644 node_modules/extract-zip/index.js create mode 100644 node_modules/extract-zip/package.json create mode 100644 node_modules/extract-zip/readme.md create mode 100644 node_modules/fd-slicer/.npmignore create mode 100644 node_modules/fd-slicer/.travis.yml create mode 100644 node_modules/fd-slicer/CHANGELOG.md create mode 100644 node_modules/fd-slicer/LICENSE create mode 100644 node_modules/fd-slicer/README.md create mode 100644 node_modules/fd-slicer/index.js create mode 100644 node_modules/fd-slicer/package.json create mode 100644 node_modules/fd-slicer/test/test.js create mode 100644 node_modules/follow-redirects/LICENSE create mode 100644 node_modules/follow-redirects/README.md create mode 100644 node_modules/follow-redirects/debug.js create mode 100644 node_modules/follow-redirects/http.js create mode 100644 node_modules/follow-redirects/https.js create mode 100644 node_modules/follow-redirects/index.js create mode 100644 node_modules/follow-redirects/package.json create mode 100644 node_modules/form-data/License create mode 100644 node_modules/form-data/README.md.bak create mode 100644 node_modules/form-data/Readme.md create mode 100644 node_modules/form-data/index.d.ts create mode 100644 node_modules/form-data/lib/browser.js create mode 100644 node_modules/form-data/lib/form_data.js create mode 100644 node_modules/form-data/lib/populate.js create mode 100644 node_modules/form-data/package.json create mode 100644 node_modules/fs-minipass/LICENSE create mode 100644 node_modules/fs-minipass/README.md create mode 100644 node_modules/fs-minipass/index.js create mode 100644 node_modules/fs-minipass/package.json create mode 100644 node_modules/fs.realpath/LICENSE create mode 100644 node_modules/fs.realpath/README.md create mode 100644 node_modules/fs.realpath/index.js create mode 100644 node_modules/fs.realpath/old.js create mode 100644 node_modules/fs.realpath/package.json create mode 100644 node_modules/geckodriver/AUTHORS create mode 100644 node_modules/geckodriver/LICENSE create mode 100644 node_modules/geckodriver/README.md create mode 100644 node_modules/geckodriver/bin/geckodriver create mode 100644 node_modules/geckodriver/geckodriver.exe create mode 100644 node_modules/geckodriver/geckodriver.zip create mode 100644 node_modules/geckodriver/index.js create mode 100644 node_modules/geckodriver/lib/geckodriver.d.ts create mode 100644 node_modules/geckodriver/lib/geckodriver.js create mode 100644 node_modules/geckodriver/package.json create mode 100644 node_modules/geckodriver/test/index.js create mode 100644 node_modules/get-stream/buffer-stream.js create mode 100644 node_modules/get-stream/index.d.ts create mode 100644 node_modules/get-stream/index.js create mode 100644 node_modules/get-stream/license create mode 100644 node_modules/get-stream/package.json create mode 100644 node_modules/get-stream/readme.md create mode 100644 node_modules/glob/LICENSE create mode 100644 node_modules/glob/README.md create mode 100644 node_modules/glob/common.js create mode 100644 node_modules/glob/glob.js create mode 100644 node_modules/glob/package.json create mode 100644 node_modules/glob/sync.js create mode 100644 node_modules/got/dist/source/as-promise/create-rejection.d.ts create mode 100644 node_modules/got/dist/source/as-promise/create-rejection.js create mode 100644 node_modules/got/dist/source/as-promise/index.d.ts create mode 100644 node_modules/got/dist/source/as-promise/index.js create mode 100644 node_modules/got/dist/source/as-promise/normalize-arguments.d.ts create mode 100644 node_modules/got/dist/source/as-promise/normalize-arguments.js create mode 100644 node_modules/got/dist/source/as-promise/parse-body.d.ts create mode 100644 node_modules/got/dist/source/as-promise/parse-body.js create mode 100644 node_modules/got/dist/source/as-promise/types.d.ts create mode 100644 node_modules/got/dist/source/as-promise/types.js create mode 100644 node_modules/got/dist/source/core/calculate-retry-delay.d.ts create mode 100644 node_modules/got/dist/source/core/calculate-retry-delay.js create mode 100644 node_modules/got/dist/source/core/index.d.ts create mode 100644 node_modules/got/dist/source/core/index.js create mode 100644 node_modules/got/dist/source/core/utils/dns-ip-version.d.ts create mode 100644 node_modules/got/dist/source/core/utils/dns-ip-version.js create mode 100644 node_modules/got/dist/source/core/utils/get-body-size.d.ts create mode 100644 node_modules/got/dist/source/core/utils/get-body-size.js create mode 100644 node_modules/got/dist/source/core/utils/get-buffer.d.ts create mode 100644 node_modules/got/dist/source/core/utils/get-buffer.js create mode 100644 node_modules/got/dist/source/core/utils/is-form-data.d.ts create mode 100644 node_modules/got/dist/source/core/utils/is-form-data.js create mode 100644 node_modules/got/dist/source/core/utils/is-response-ok.d.ts create mode 100644 node_modules/got/dist/source/core/utils/is-response-ok.js create mode 100644 node_modules/got/dist/source/core/utils/options-to-url.d.ts create mode 100644 node_modules/got/dist/source/core/utils/options-to-url.js create mode 100644 node_modules/got/dist/source/core/utils/proxy-events.d.ts create mode 100644 node_modules/got/dist/source/core/utils/proxy-events.js create mode 100644 node_modules/got/dist/source/core/utils/timed-out.d.ts create mode 100644 node_modules/got/dist/source/core/utils/timed-out.js create mode 100644 node_modules/got/dist/source/core/utils/unhandle.d.ts create mode 100644 node_modules/got/dist/source/core/utils/unhandle.js create mode 100644 node_modules/got/dist/source/core/utils/url-to-options.d.ts create mode 100644 node_modules/got/dist/source/core/utils/url-to-options.js create mode 100644 node_modules/got/dist/source/core/utils/weakable-map.d.ts create mode 100644 node_modules/got/dist/source/core/utils/weakable-map.js create mode 100644 node_modules/got/dist/source/create.d.ts create mode 100644 node_modules/got/dist/source/create.js create mode 100644 node_modules/got/dist/source/index.d.ts create mode 100644 node_modules/got/dist/source/index.js create mode 100644 node_modules/got/dist/source/types.d.ts create mode 100644 node_modules/got/dist/source/types.js create mode 100644 node_modules/got/dist/source/utils/deep-freeze.d.ts create mode 100644 node_modules/got/dist/source/utils/deep-freeze.js create mode 100644 node_modules/got/dist/source/utils/deprecation-warning.d.ts create mode 100644 node_modules/got/dist/source/utils/deprecation-warning.js create mode 100644 node_modules/got/license create mode 100644 node_modules/got/package.json create mode 100644 node_modules/got/readme.md create mode 100644 node_modules/http-cache-semantics/LICENSE create mode 100644 node_modules/http-cache-semantics/README.md create mode 100644 node_modules/http-cache-semantics/index.js create mode 100644 node_modules/http-cache-semantics/package.json create mode 100644 node_modules/http2-wrapper/LICENSE create mode 100644 node_modules/http2-wrapper/README.md create mode 100644 node_modules/http2-wrapper/package.json create mode 100644 node_modules/http2-wrapper/source/agent.js create mode 100644 node_modules/http2-wrapper/source/auto.js create mode 100644 node_modules/http2-wrapper/source/client-request.js create mode 100644 node_modules/http2-wrapper/source/incoming-message.js create mode 100644 node_modules/http2-wrapper/source/index.js create mode 100644 node_modules/http2-wrapper/source/utils/calculate-server-name.js create mode 100644 node_modules/http2-wrapper/source/utils/errors.js create mode 100644 node_modules/http2-wrapper/source/utils/is-request-pseudo-header.js create mode 100644 node_modules/http2-wrapper/source/utils/proxy-events.js create mode 100644 node_modules/http2-wrapper/source/utils/url-to-options.js create mode 100644 node_modules/https-proxy-agent/README.md create mode 100644 node_modules/https-proxy-agent/dist/agent.d.ts create mode 100644 node_modules/https-proxy-agent/dist/agent.js create mode 100644 node_modules/https-proxy-agent/dist/agent.js.map create mode 100644 node_modules/https-proxy-agent/dist/index.d.ts create mode 100644 node_modules/https-proxy-agent/dist/index.js create mode 100644 node_modules/https-proxy-agent/dist/index.js.map create mode 100644 node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts create mode 100644 node_modules/https-proxy-agent/dist/parse-proxy-response.js create mode 100644 node_modules/https-proxy-agent/dist/parse-proxy-response.js.map create mode 100644 node_modules/https-proxy-agent/package.json create mode 100644 node_modules/immediate/LICENSE.txt create mode 100644 node_modules/immediate/README.md create mode 100644 node_modules/immediate/dist/immediate.js create mode 100644 node_modules/immediate/dist/immediate.min.js create mode 100644 node_modules/immediate/lib/browser.js create mode 100644 node_modules/immediate/lib/index.js create mode 100644 node_modules/immediate/package.json create mode 100644 node_modules/inflight/LICENSE create mode 100644 node_modules/inflight/README.md create mode 100644 node_modules/inflight/inflight.js create mode 100644 node_modules/inflight/package.json create mode 100644 node_modules/inherits/LICENSE create mode 100644 node_modules/inherits/README.md create mode 100644 node_modules/inherits/inherits.js create mode 100644 node_modules/inherits/inherits_browser.js create mode 100644 node_modules/inherits/package.json create mode 100644 node_modules/ip-regex/index.d.ts create mode 100644 node_modules/ip-regex/index.js create mode 100644 node_modules/ip-regex/license create mode 100644 node_modules/ip-regex/package.json create mode 100644 node_modules/ip-regex/readme.md create mode 100644 node_modules/is-url/.travis.yml create mode 100644 node_modules/is-url/History.md create mode 100644 node_modules/is-url/LICENSE-MIT create mode 100644 node_modules/is-url/Readme.md create mode 100644 node_modules/is-url/index.js create mode 100644 node_modules/is-url/package.json create mode 100644 node_modules/is-url/test/index.js create mode 100644 node_modules/is2/.jshintrc create mode 100644 node_modules/is2/LICENSE create mode 100644 node_modules/is2/README.md create mode 100644 node_modules/is2/index.d.ts create mode 100644 node_modules/is2/index.js create mode 100644 node_modules/is2/package.json create mode 100644 node_modules/is2/tests.js create mode 100644 node_modules/isarray/.npmignore create mode 100644 node_modules/isarray/.travis.yml create mode 100644 node_modules/isarray/Makefile create mode 100644 node_modules/isarray/README.md create mode 100644 node_modules/isarray/component.json create mode 100644 node_modules/isarray/index.js create mode 100644 node_modules/isarray/package.json create mode 100644 node_modules/isarray/test.js create mode 100644 node_modules/json-buffer/.travis.yml create mode 100644 node_modules/json-buffer/LICENSE create mode 100644 node_modules/json-buffer/README.md create mode 100644 node_modules/json-buffer/index.js create mode 100644 node_modules/json-buffer/package.json create mode 100644 node_modules/json-buffer/test/index.js create mode 100644 node_modules/jszip/.codeclimate.yml create mode 100644 node_modules/jszip/.editorconfig create mode 100644 node_modules/jszip/.eslintrc.js create mode 100644 node_modules/jszip/.github/workflows/pr.yaml create mode 100644 node_modules/jszip/.jekyll-metadata create mode 100644 node_modules/jszip/.travis.yml create mode 100644 node_modules/jszip/CHANGES.md create mode 100644 node_modules/jszip/LICENSE.markdown create mode 100644 node_modules/jszip/README.markdown create mode 100644 node_modules/jszip/deps.js create mode 100644 node_modules/jszip/dist/jszip.js create mode 100644 node_modules/jszip/dist/jszip.min.js create mode 100644 node_modules/jszip/graph.svg create mode 100644 node_modules/jszip/index.d.ts create mode 100644 node_modules/jszip/lib/base64.js create mode 100644 node_modules/jszip/lib/compressedObject.js create mode 100644 node_modules/jszip/lib/compressions.js create mode 100644 node_modules/jszip/lib/crc32.js create mode 100644 node_modules/jszip/lib/defaults.js create mode 100644 node_modules/jszip/lib/external.js create mode 100644 node_modules/jszip/lib/flate.js create mode 100644 node_modules/jszip/lib/generate/ZipFileWorker.js create mode 100644 node_modules/jszip/lib/generate/index.js create mode 100644 node_modules/jszip/lib/index.js create mode 100644 node_modules/jszip/lib/license_header.js create mode 100644 node_modules/jszip/lib/load.js create mode 100644 node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js create mode 100644 node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js create mode 100644 node_modules/jszip/lib/nodejsUtils.js create mode 100644 node_modules/jszip/lib/object.js create mode 100644 node_modules/jszip/lib/readable-stream-browser.js create mode 100644 node_modules/jszip/lib/reader/ArrayReader.js create mode 100644 node_modules/jszip/lib/reader/DataReader.js create mode 100644 node_modules/jszip/lib/reader/NodeBufferReader.js create mode 100644 node_modules/jszip/lib/reader/StringReader.js create mode 100644 node_modules/jszip/lib/reader/Uint8ArrayReader.js create mode 100644 node_modules/jszip/lib/reader/readerFor.js create mode 100644 node_modules/jszip/lib/signature.js create mode 100644 node_modules/jszip/lib/stream/ConvertWorker.js create mode 100644 node_modules/jszip/lib/stream/Crc32Probe.js create mode 100644 node_modules/jszip/lib/stream/DataLengthProbe.js create mode 100644 node_modules/jszip/lib/stream/DataWorker.js create mode 100644 node_modules/jszip/lib/stream/GenericWorker.js create mode 100644 node_modules/jszip/lib/stream/StreamHelper.js create mode 100644 node_modules/jszip/lib/support.js create mode 100644 node_modules/jszip/lib/utf8.js create mode 100644 node_modules/jszip/lib/utils.js create mode 100644 node_modules/jszip/lib/zipEntries.js create mode 100644 node_modules/jszip/lib/zipEntry.js create mode 100644 node_modules/jszip/lib/zipObject.js create mode 100644 node_modules/jszip/package.json create mode 100644 node_modules/jszip/sponsors.md create mode 100644 node_modules/jszip/tsconfig.json create mode 100644 node_modules/jszip/vendor/FileSaver.js create mode 100644 node_modules/keyv/README.md create mode 100644 node_modules/keyv/package.json create mode 100644 node_modules/keyv/src/index.d.ts create mode 100644 node_modules/keyv/src/index.js create mode 100644 node_modules/lie/README.md create mode 100644 node_modules/lie/dist/lie.js create mode 100644 node_modules/lie/dist/lie.min.js create mode 100644 node_modules/lie/dist/lie.polyfill.js create mode 100644 node_modules/lie/dist/lie.polyfill.min.js create mode 100644 node_modules/lie/lib/browser.js create mode 100644 node_modules/lie/lib/index.js create mode 100644 node_modules/lie/license.md create mode 100644 node_modules/lie/lie.d.ts create mode 100644 node_modules/lie/package.json create mode 100644 node_modules/lie/polyfill.js create mode 100644 node_modules/lowercase-keys/index.d.ts create mode 100644 node_modules/lowercase-keys/index.js create mode 100644 node_modules/lowercase-keys/license create mode 100644 node_modules/lowercase-keys/package.json create mode 100644 node_modules/lowercase-keys/readme.md create mode 100644 node_modules/mime-db/HISTORY.md create mode 100644 node_modules/mime-db/LICENSE create mode 100644 node_modules/mime-db/README.md create mode 100644 node_modules/mime-db/db.json create mode 100644 node_modules/mime-db/index.js create mode 100644 node_modules/mime-db/package.json create mode 100644 node_modules/mime-types/HISTORY.md create mode 100644 node_modules/mime-types/LICENSE create mode 100644 node_modules/mime-types/README.md create mode 100644 node_modules/mime-types/index.js create mode 100644 node_modules/mime-types/package.json create mode 100644 node_modules/mimic-response/index.js create mode 100644 node_modules/mimic-response/license create mode 100644 node_modules/mimic-response/package.json create mode 100644 node_modules/mimic-response/readme.md create mode 100644 node_modules/minimatch/LICENSE create mode 100644 node_modules/minimatch/README.md create mode 100644 node_modules/minimatch/minimatch.js create mode 100644 node_modules/minimatch/package.json create mode 100644 node_modules/minipass/LICENSE create mode 100644 node_modules/minipass/README.md create mode 100644 node_modules/minipass/index.d.ts create mode 100644 node_modules/minipass/index.js create mode 100644 node_modules/minipass/package.json create mode 100644 node_modules/minizlib/LICENSE create mode 100644 node_modules/minizlib/README.md create mode 100644 node_modules/minizlib/constants.js create mode 100644 node_modules/minizlib/index.js create mode 100644 node_modules/minizlib/package.json create mode 100644 node_modules/mkdirp/CHANGELOG.md create mode 100644 node_modules/mkdirp/LICENSE create mode 100644 node_modules/mkdirp/bin/cmd.js create mode 100644 node_modules/mkdirp/index.js create mode 100644 node_modules/mkdirp/lib/find-made.js create mode 100644 node_modules/mkdirp/lib/mkdirp-manual.js create mode 100644 node_modules/mkdirp/lib/mkdirp-native.js create mode 100644 node_modules/mkdirp/lib/opts-arg.js create mode 100644 node_modules/mkdirp/lib/path-arg.js create mode 100644 node_modules/mkdirp/lib/use-native.js create mode 100644 node_modules/mkdirp/package.json create mode 100644 node_modules/mkdirp/readme.markdown create mode 100644 node_modules/ms/index.js create mode 100644 node_modules/ms/license.md create mode 100644 node_modules/ms/package.json create mode 100644 node_modules/ms/readme.md create mode 100644 node_modules/normalize-url/index.d.ts create mode 100644 node_modules/normalize-url/index.js create mode 100644 node_modules/normalize-url/license create mode 100644 node_modules/normalize-url/package.json create mode 100644 node_modules/normalize-url/readme.md create mode 100644 node_modules/once/LICENSE create mode 100644 node_modules/once/README.md create mode 100644 node_modules/once/once.js create mode 100644 node_modules/once/package.json create mode 100644 node_modules/p-cancelable/index.d.ts create mode 100644 node_modules/p-cancelable/index.js create mode 100644 node_modules/p-cancelable/license create mode 100644 node_modules/p-cancelable/package.json create mode 100644 node_modules/p-cancelable/readme.md create mode 100644 node_modules/pako/CHANGELOG.md create mode 100644 node_modules/pako/LICENSE create mode 100644 node_modules/pako/README.md create mode 100644 node_modules/pako/dist/pako.js create mode 100644 node_modules/pako/dist/pako.min.js create mode 100644 node_modules/pako/dist/pako_deflate.js create mode 100644 node_modules/pako/dist/pako_deflate.min.js create mode 100644 node_modules/pako/dist/pako_inflate.js create mode 100644 node_modules/pako/dist/pako_inflate.min.js create mode 100644 node_modules/pako/index.js create mode 100644 node_modules/pako/lib/deflate.js create mode 100644 node_modules/pako/lib/inflate.js create mode 100644 node_modules/pako/lib/utils/common.js create mode 100644 node_modules/pako/lib/utils/strings.js create mode 100644 node_modules/pako/lib/zlib/README create mode 100644 node_modules/pako/lib/zlib/adler32.js create mode 100644 node_modules/pako/lib/zlib/constants.js create mode 100644 node_modules/pako/lib/zlib/crc32.js create mode 100644 node_modules/pako/lib/zlib/deflate.js create mode 100644 node_modules/pako/lib/zlib/gzheader.js create mode 100644 node_modules/pako/lib/zlib/inffast.js create mode 100644 node_modules/pako/lib/zlib/inflate.js create mode 100644 node_modules/pako/lib/zlib/inftrees.js create mode 100644 node_modules/pako/lib/zlib/messages.js create mode 100644 node_modules/pako/lib/zlib/trees.js create mode 100644 node_modules/pako/lib/zlib/zstream.js create mode 100644 node_modules/pako/package.json create mode 100644 node_modules/path-is-absolute/index.js create mode 100644 node_modules/path-is-absolute/license create mode 100644 node_modules/path-is-absolute/package.json create mode 100644 node_modules/path-is-absolute/readme.md create mode 100644 node_modules/pend/LICENSE create mode 100644 node_modules/pend/README.md create mode 100644 node_modules/pend/index.js create mode 100644 node_modules/pend/package.json create mode 100644 node_modules/pend/test.js create mode 100644 node_modules/process-nextick-args/index.js create mode 100644 node_modules/process-nextick-args/license.md create mode 100644 node_modules/process-nextick-args/package.json create mode 100644 node_modules/process-nextick-args/readme.md create mode 100644 node_modules/proxy-from-env/.eslintrc create mode 100644 node_modules/proxy-from-env/.travis.yml create mode 100644 node_modules/proxy-from-env/LICENSE create mode 100644 node_modules/proxy-from-env/README.md create mode 100644 node_modules/proxy-from-env/index.js create mode 100644 node_modules/proxy-from-env/package.json create mode 100644 node_modules/proxy-from-env/test.js create mode 100644 node_modules/pump/.travis.yml create mode 100644 node_modules/pump/LICENSE create mode 100644 node_modules/pump/README.md create mode 100644 node_modules/pump/index.js create mode 100644 node_modules/pump/package.json create mode 100644 node_modules/pump/test-browser.js create mode 100644 node_modules/pump/test-node.js create mode 100644 node_modules/quick-lru/index.d.ts create mode 100644 node_modules/quick-lru/index.js create mode 100644 node_modules/quick-lru/license create mode 100644 node_modules/quick-lru/package.json create mode 100644 node_modules/quick-lru/readme.md create mode 100644 node_modules/readable-stream/.travis.yml create mode 100644 node_modules/readable-stream/CONTRIBUTING.md create mode 100644 node_modules/readable-stream/GOVERNANCE.md create mode 100644 node_modules/readable-stream/LICENSE create mode 100644 node_modules/readable-stream/README.md create mode 100644 node_modules/readable-stream/doc/wg-meetings/2015-01-30.md create mode 100644 node_modules/readable-stream/duplex-browser.js create mode 100644 node_modules/readable-stream/duplex.js create mode 100644 node_modules/readable-stream/lib/_stream_duplex.js create mode 100644 node_modules/readable-stream/lib/_stream_passthrough.js create mode 100644 node_modules/readable-stream/lib/_stream_readable.js create mode 100644 node_modules/readable-stream/lib/_stream_transform.js create mode 100644 node_modules/readable-stream/lib/_stream_writable.js create mode 100644 node_modules/readable-stream/lib/internal/streams/BufferList.js create mode 100644 node_modules/readable-stream/lib/internal/streams/destroy.js create mode 100644 node_modules/readable-stream/lib/internal/streams/stream-browser.js create mode 100644 node_modules/readable-stream/lib/internal/streams/stream.js create mode 100644 node_modules/readable-stream/package.json create mode 100644 node_modules/readable-stream/passthrough.js create mode 100644 node_modules/readable-stream/readable-browser.js create mode 100644 node_modules/readable-stream/readable.js create mode 100644 node_modules/readable-stream/transform.js create mode 100644 node_modules/readable-stream/writable-browser.js create mode 100644 node_modules/readable-stream/writable.js create mode 100644 node_modules/resolve-alpn/LICENSE create mode 100644 node_modules/resolve-alpn/README.md create mode 100644 node_modules/resolve-alpn/index.js create mode 100644 node_modules/resolve-alpn/package.json create mode 100644 node_modules/responselike/LICENSE create mode 100644 node_modules/responselike/README.md create mode 100644 node_modules/responselike/package.json create mode 100644 node_modules/responselike/src/index.js create mode 100644 node_modules/rimraf/CHANGELOG.md create mode 100644 node_modules/rimraf/LICENSE create mode 100644 node_modules/rimraf/README.md create mode 100644 node_modules/rimraf/bin.js create mode 100644 node_modules/rimraf/package.json create mode 100644 node_modules/rimraf/rimraf.js create mode 100644 node_modules/safe-buffer/LICENSE create mode 100644 node_modules/safe-buffer/README.md create mode 100644 node_modules/safe-buffer/index.d.ts create mode 100644 node_modules/safe-buffer/index.js create mode 100644 node_modules/safe-buffer/package.json create mode 100644 node_modules/selenium-webdriver/CHANGES.md create mode 100644 node_modules/selenium-webdriver/LICENSE create mode 100644 node_modules/selenium-webdriver/NOTICE create mode 100644 node_modules/selenium-webdriver/README.md create mode 100644 node_modules/selenium-webdriver/bidi/browsingContext.js create mode 100644 node_modules/selenium-webdriver/bidi/filterBy.js create mode 100644 node_modules/selenium-webdriver/bidi/index.js create mode 100644 node_modules/selenium-webdriver/bidi/logEntries.js create mode 100644 node_modules/selenium-webdriver/bidi/logInspector.js create mode 100644 node_modules/selenium-webdriver/bin/linux/selenium-manager create mode 100644 node_modules/selenium-webdriver/bin/macos/selenium-manager create mode 100644 node_modules/selenium-webdriver/bin/windows/selenium-manager.exe create mode 100644 node_modules/selenium-webdriver/chrome.js create mode 100644 node_modules/selenium-webdriver/chromium.js create mode 100644 node_modules/selenium-webdriver/common/seleniumManager.js create mode 100644 node_modules/selenium-webdriver/devtools/CDPConnection.js create mode 100644 node_modules/selenium-webdriver/devtools/networkinterceptor.js create mode 100644 node_modules/selenium-webdriver/edge.js create mode 100644 node_modules/selenium-webdriver/example/chrome_android.js create mode 100644 node_modules/selenium-webdriver/example/chrome_mobile_emulation.js create mode 100644 node_modules/selenium-webdriver/example/firefox_channels.js create mode 100644 node_modules/selenium-webdriver/example/google_search.js create mode 100644 node_modules/selenium-webdriver/example/google_search_test.js create mode 100644 node_modules/selenium-webdriver/example/headless.js create mode 100644 node_modules/selenium-webdriver/example/logging.js create mode 100644 node_modules/selenium-webdriver/firefox.js create mode 100644 node_modules/selenium-webdriver/http/index.js create mode 100644 node_modules/selenium-webdriver/http/util.js create mode 100644 node_modules/selenium-webdriver/ie.js create mode 100644 node_modules/selenium-webdriver/index.js create mode 100644 node_modules/selenium-webdriver/io/exec.js create mode 100644 node_modules/selenium-webdriver/io/index.js create mode 100644 node_modules/selenium-webdriver/io/zip.js create mode 100644 node_modules/selenium-webdriver/lib/atoms/find-elements.js create mode 100644 node_modules/selenium-webdriver/lib/atoms/get-attribute.js create mode 100644 node_modules/selenium-webdriver/lib/atoms/is-displayed.js create mode 100644 node_modules/selenium-webdriver/lib/atoms/mutation-listener.js create mode 100644 node_modules/selenium-webdriver/lib/by.js create mode 100644 node_modules/selenium-webdriver/lib/capabilities.js create mode 100644 node_modules/selenium-webdriver/lib/command.js create mode 100644 node_modules/selenium-webdriver/lib/error.js create mode 100644 node_modules/selenium-webdriver/lib/http.js create mode 100644 node_modules/selenium-webdriver/lib/input.js create mode 100644 node_modules/selenium-webdriver/lib/logging.js create mode 100644 node_modules/selenium-webdriver/lib/promise.js create mode 100644 node_modules/selenium-webdriver/lib/proxy.js create mode 100644 node_modules/selenium-webdriver/lib/select.js create mode 100644 node_modules/selenium-webdriver/lib/session.js create mode 100644 node_modules/selenium-webdriver/lib/symbols.js create mode 100644 node_modules/selenium-webdriver/lib/until.js create mode 100644 node_modules/selenium-webdriver/lib/util.js create mode 100644 node_modules/selenium-webdriver/lib/virtual_authenticator.js create mode 100644 node_modules/selenium-webdriver/lib/webdriver.js create mode 100644 node_modules/selenium-webdriver/lib/webelement.js create mode 100644 node_modules/selenium-webdriver/net/index.js create mode 100644 node_modules/selenium-webdriver/net/portprober.js create mode 100644 node_modules/selenium-webdriver/package.json create mode 100644 node_modules/selenium-webdriver/proxy.js create mode 100644 node_modules/selenium-webdriver/remote/index.js create mode 100644 node_modules/selenium-webdriver/remote/util.js create mode 100644 node_modules/selenium-webdriver/safari.js create mode 100644 node_modules/selenium-webdriver/testing/index.js create mode 100644 node_modules/setimmediate/LICENSE.txt create mode 100644 node_modules/setimmediate/package.json create mode 100644 node_modules/setimmediate/setImmediate.js create mode 100644 node_modules/string_decoder/.travis.yml create mode 100644 node_modules/string_decoder/LICENSE create mode 100644 node_modules/string_decoder/README.md create mode 100644 node_modules/string_decoder/lib/string_decoder.js create mode 100644 node_modules/string_decoder/package.json create mode 100644 node_modules/tar/LICENSE create mode 100644 node_modules/tar/README.md create mode 100644 node_modules/tar/index.js create mode 100644 node_modules/tar/lib/create.js create mode 100644 node_modules/tar/lib/extract.js create mode 100644 node_modules/tar/lib/get-write-flag.js create mode 100644 node_modules/tar/lib/header.js create mode 100644 node_modules/tar/lib/high-level-opt.js create mode 100644 node_modules/tar/lib/large-numbers.js create mode 100644 node_modules/tar/lib/list.js create mode 100644 node_modules/tar/lib/mkdir.js create mode 100644 node_modules/tar/lib/mode-fix.js create mode 100644 node_modules/tar/lib/normalize-unicode.js create mode 100644 node_modules/tar/lib/normalize-windows-path.js create mode 100644 node_modules/tar/lib/pack.js create mode 100644 node_modules/tar/lib/parse.js create mode 100644 node_modules/tar/lib/path-reservations.js create mode 100644 node_modules/tar/lib/pax.js create mode 100644 node_modules/tar/lib/read-entry.js create mode 100644 node_modules/tar/lib/replace.js create mode 100644 node_modules/tar/lib/strip-absolute-path.js create mode 100644 node_modules/tar/lib/strip-trailing-slashes.js create mode 100644 node_modules/tar/lib/types.js create mode 100644 node_modules/tar/lib/unpack.js create mode 100644 node_modules/tar/lib/update.js create mode 100644 node_modules/tar/lib/warn-mixin.js create mode 100644 node_modules/tar/lib/winchars.js create mode 100644 node_modules/tar/lib/write-entry.js create mode 100644 node_modules/tar/package.json create mode 100644 node_modules/tcp-port-used/.jshintrc create mode 100644 node_modules/tcp-port-used/LICENSE create mode 100644 node_modules/tcp-port-used/README.md create mode 100644 node_modules/tcp-port-used/index.js create mode 100644 node_modules/tcp-port-used/node_modules/debug/LICENSE create mode 100644 node_modules/tcp-port-used/node_modules/debug/README.md create mode 100644 node_modules/tcp-port-used/node_modules/debug/package.json create mode 100644 node_modules/tcp-port-used/node_modules/debug/src/browser.js create mode 100644 node_modules/tcp-port-used/node_modules/debug/src/common.js create mode 100644 node_modules/tcp-port-used/node_modules/debug/src/index.js create mode 100644 node_modules/tcp-port-used/node_modules/debug/src/node.js create mode 100644 node_modules/tcp-port-used/package.json create mode 100644 node_modules/tcp-port-used/test.js create mode 100644 node_modules/tmp/CHANGELOG.md create mode 100644 node_modules/tmp/LICENSE create mode 100644 node_modules/tmp/README.md create mode 100644 node_modules/tmp/lib/tmp.js create mode 100644 node_modules/tmp/package.json create mode 100644 node_modules/util-deprecate/History.md create mode 100644 node_modules/util-deprecate/LICENSE create mode 100644 node_modules/util-deprecate/README.md create mode 100644 node_modules/util-deprecate/browser.js create mode 100644 node_modules/util-deprecate/node.js create mode 100644 node_modules/util-deprecate/package.json create mode 100644 node_modules/wrappy/LICENSE create mode 100644 node_modules/wrappy/README.md create mode 100644 node_modules/wrappy/package.json create mode 100644 node_modules/wrappy/wrappy.js create mode 100644 node_modules/ws/LICENSE create mode 100644 node_modules/ws/README.md create mode 100644 node_modules/ws/browser.js create mode 100644 node_modules/ws/index.js create mode 100644 node_modules/ws/lib/buffer-util.js create mode 100644 node_modules/ws/lib/constants.js create mode 100644 node_modules/ws/lib/event-target.js create mode 100644 node_modules/ws/lib/extension.js create mode 100644 node_modules/ws/lib/limiter.js create mode 100644 node_modules/ws/lib/permessage-deflate.js create mode 100644 node_modules/ws/lib/receiver.js create mode 100644 node_modules/ws/lib/sender.js create mode 100644 node_modules/ws/lib/stream.js create mode 100644 node_modules/ws/lib/subprotocol.js create mode 100644 node_modules/ws/lib/validation.js create mode 100644 node_modules/ws/lib/websocket-server.js create mode 100644 node_modules/ws/lib/websocket.js create mode 100644 node_modules/ws/package.json create mode 100644 node_modules/ws/wrapper.mjs create mode 100644 node_modules/yallist/LICENSE create mode 100644 node_modules/yallist/README.md create mode 100644 node_modules/yallist/iterator.js create mode 100644 node_modules/yallist/package.json create mode 100644 node_modules/yallist/yallist.js create mode 100644 node_modules/yauzl/LICENSE create mode 100644 node_modules/yauzl/README.md create mode 100644 node_modules/yauzl/index.js create mode 100644 node_modules/yauzl/package.json create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 table.js diff --git a/app.js b/app.js new file mode 100644 index 0000000..75e3cf7 --- /dev/null +++ b/app.js @@ -0,0 +1,60 @@ +const { By, until, Builder } = require("selenium-webdriver"); +require("chromedriver"); + +(async function auto_test() { + let driver = await new Builder().forBrowser("chrome").build(); + module.exports.driver = driver; + + try { + // Link Mini-game + await driver.get("https://app.adman.vn/api/preview/minigame.php?id=O4z25JLzP9"); + await driver.manage().window().maximize(); + await driver.manage().getTimeouts({ implicit: 3000, pageLoad: 3000, script: 3000 }) + + // Load jQuery 2.2.4 + driver.executeScript(` + var jquery_script = document.createElement('script'); + jquery_script.src = 'https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js'; + document.getElementsByTagName('head')[0].appendChild(jquery_script); + `) + driver.sleep(3000); + await driver.executeScript('$ = window.jQuery;'); + + // Tạo bảng kiểm tra lỗi + const { checkList, checkListForm } = require("./check_work"); + const { renderTableCheck, createCheckList } = require("./table"); + const checkListHtml = driver.executeScript(createCheckList, checkList) + await driver.executeScript(renderTableCheck, checkListHtml); + + // Xử lý bảng kiểm tra lỗi + for (let item of checkList) { + if (item.func) { + await driver.executeScript(item.func).then((data) => { + driver.executeScript(checkListForm, item.id, data); + }) + } + } + + // Xử lý Automation + const { checkAuto } = require("./automation"); + + for (let item of checkAuto) { + if (item.action === 'click') { + driver.wait(until.elementLocated(By.id(item.id)), 10000).click(); + } else if (item.action === 'sendKeys') { + driver.wait(until.elementLocated(By.id(item.id)), 10000).sendKeys(item.value); + } else if (item.action === 'function') { + const newFunc = item.value + newFunc(); + } + } + } + + catch (error) { + console.log('error', error); + + } finally { + // setTimeout(() => driver.quit(), 50000); + + } +})(); \ No newline at end of file diff --git a/automation.js b/automation.js new file mode 100644 index 0000000..0cc70dc --- /dev/null +++ b/automation.js @@ -0,0 +1,92 @@ +const { By, until } = require("selenium-webdriver"); +let { driver } = require("./app"); +const { checkListForm } = require("./check_work"); + +const checkAuto = [ + { + name: 'buttonStartPopup', + id: 'js-play-btn-popup', + action: 'click', + }, + { + name: 'inputFormEmail', + id: 'js-user-email', + action: 'sendKeys', + value: 'abs424240@mail.com', + key: 'email', + }, + // { + // name: 'inputFormName', + // id: 'js-user-name', + // action: 'sendKeys', + // value: 'webdrive', + // key: 'name', + // }, + { + name: 'inputFormMobile', + id: 'js-user-mobile', + action: 'sendKeys', + value: '0832256936', + key: 'tel', + }, + { + name: 'spinBtn', + id: 'js-spin-btn', + action: 'click', + }, + { + name: 'playAgainAndChoseReward', + action: 'function', + value: playAgainAndChoseReward, + }, +] + +// Kiểm tra element có tồn tại không +async function checkEleExitedByID(id) { + try { + } + finally { + return Object.keys(await driver.findElements(By.id(id))).length + } +} + +// Kiểm tra chọn giải thưởng +async function checkChoseReward() { + try { + } + finally { + const choseRewards = await driver.findElements(By.className("js-chose-reward-btn")); + for (let item of choseRewards) { + switch (Object.keys(await item.getText()).length > 0) { + case true: + await item.click(); + await driver.switchTo().alert().accept(); + await driver.executeScript(checkListForm, 'form-chon-giai-thuong', true) + break; + default: + break; + } + } + } +} + +// Kiểm tra chơi lại, lượt chơi tối đa và chọn giải thưởng +async function playAgainAndChoseReward() { + let playerTurns = 1; + const repeatResetBtn = setInterval(async () => { + if (await checkEleExitedByID('js-reset-btn') > 0) { + let resetBtn = driver.wait(until.elementLocated(By.id("js-reset-btn")), 10000); + resetBtn.click(); + playerTurns = playerTurns + 1; + } else { + clearInterval(repeatResetBtn); + await driver.executeScript(checkListForm, 'form-luot-choi-toi-da', playerTurns) + await checkChoseReward(); + } + }, 15000) +} + +const automation = { + checkAuto +} +module.exports = automation; \ No newline at end of file diff --git a/check_work.js b/check_work.js new file mode 100644 index 0000000..5c75dd8 --- /dev/null +++ b/check_work.js @@ -0,0 +1,112 @@ +// Danh sách công việc +const checkList = [ + { + id: 'form-thoi-gian-dem-nguoc', + label: 'Thời gian đếm ngược', + func: checkTimeDown, + }, + { + id: 'form-dang-nhap', + label: 'Form đăng nhập thông tin', + func: checkFormLogin, + }, + { + id: 'form-trang-thai-nguoi-choi', + label: 'Hiển thị trạng thái người chơi', + func: checkPlayerPresent, + }, + { + id: 'form-danh-sach-giai-thuong', + label: 'Hiển thị danh sách giải thưởng', + func: checkRewardList, + }, + { + id: 'form-danh-sach-nguoi-choi-trung-giai', + label: 'Hiển thị danh sách người chơi trúng giải', + func: checkWinerRecentList, + }, + { + id: 'form-the-le-chuong-trinh', + label: 'Hiển thị thể lệ chương trình', + func: checkPolicyGame, + }, + { + id: 'form-luot-choi-toi-da', + label: 'Số lượt chơi tối đa', + }, + { + id: 'form-chon-giai-thuong', + label: 'Chọn giải thưởng', + }, +] + +// FUNCTION +// Hàm check PASSED/FAILED +function checkListForm(id, condition) { + switch (condition) { + case true: + $(`#js-${id}`).html("PASSED"); + break; + case false: + $(`#js-${id}`).html("FAILED"); + break; + default: + $(`#js-${id}`).html(`${condition}`); + break; + } +}; + +// Kiểm tra thời gian chơi game còn lại +function checkTimeDown() { + let check_id_time = $("#js-time-game-left") + return new Promise((resolve, reject) => { + let check_1 = check_id_time.html(); + setTimeout(() => { + let check_2 = check_id_time.html(); + resolve(check_2 !== check_1); + }, 2000); + }); +} + +// Kiểm tra các ô điền thông tin người chơi đã đủ chưa +function checkFormLogin() { + const game_info = Adman.MiniGame.getInfo(); + const requireEmail = game_info.rules.require_email_before_play; + const requireTel = game_info.rules.require_mobile_before_play; + const requireName = game_info.rules.require_name_before_play; + const totalRequire = requireEmail + requireTel + requireName; + const totalRequireInput = $("#js-user-info input").length; + + return totalRequire === totalRequireInput; +} + +// Kiểm tra người chơi dang xem - dang choi - da choi +function checkPlayerPresent() { + const checkHtml = $(".js-users-status-online").html(); + return checkHtml !== "999"; +} + +// Kiểm tra danh sách giải thưởng +function checkRewardList() { + const checkHtml = $("#js-reward-product-list").html(); + return checkHtml !== ""; +} + +// Kiểm tra danh sách người chơi trúng giải +function checkWinerRecentList() { + const checkHtml = $("#js-recent-winners").html(); + return checkHtml !== ""; +} + +// Kiểm tra danh sách người chơi trúng giải +function checkPolicyGame() { + const checkHtml = $("#js-game-policy").html(); + return checkHtml !== ""; +} + +const check_work = { + checkList, + checkListForm +} +module.exports = check_work; + diff --git a/node_modules/.bin/chromedriver b/node_modules/.bin/chromedriver new file mode 100644 index 0000000..9169b39 --- /dev/null +++ b/node_modules/.bin/chromedriver @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../chromedriver/bin/chromedriver" "$@" +else + exec node "$basedir/../chromedriver/bin/chromedriver" "$@" +fi diff --git a/node_modules/.bin/chromedriver.cmd b/node_modules/.bin/chromedriver.cmd new file mode 100644 index 0000000..4cecca5 --- /dev/null +++ b/node_modules/.bin/chromedriver.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\chromedriver\bin\chromedriver" %* diff --git a/node_modules/.bin/chromedriver.ps1 b/node_modules/.bin/chromedriver.ps1 new file mode 100644 index 0000000..719e804 --- /dev/null +++ b/node_modules/.bin/chromedriver.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../chromedriver/bin/chromedriver" $args + } else { + & "$basedir/node$exe" "$basedir/../chromedriver/bin/chromedriver" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../chromedriver/bin/chromedriver" $args + } else { + & "node$exe" "$basedir/../chromedriver/bin/chromedriver" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/extract-zip b/node_modules/.bin/extract-zip new file mode 100644 index 0000000..60e5770 --- /dev/null +++ b/node_modules/.bin/extract-zip @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../extract-zip/cli.js" "$@" +else + exec node "$basedir/../extract-zip/cli.js" "$@" +fi diff --git a/node_modules/.bin/extract-zip.cmd b/node_modules/.bin/extract-zip.cmd new file mode 100644 index 0000000..6767bfe --- /dev/null +++ b/node_modules/.bin/extract-zip.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\extract-zip\cli.js" %* diff --git a/node_modules/.bin/extract-zip.ps1 b/node_modules/.bin/extract-zip.ps1 new file mode 100644 index 0000000..cf7515c --- /dev/null +++ b/node_modules/.bin/extract-zip.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../extract-zip/cli.js" $args + } else { + & "$basedir/node$exe" "$basedir/../extract-zip/cli.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../extract-zip/cli.js" $args + } else { + & "node$exe" "$basedir/../extract-zip/cli.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/geckodriver b/node_modules/.bin/geckodriver new file mode 100644 index 0000000..457688d --- /dev/null +++ b/node_modules/.bin/geckodriver @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../geckodriver/bin/geckodriver" "$@" +else + exec node "$basedir/../geckodriver/bin/geckodriver" "$@" +fi diff --git a/node_modules/.bin/geckodriver.cmd b/node_modules/.bin/geckodriver.cmd new file mode 100644 index 0000000..25adb26 --- /dev/null +++ b/node_modules/.bin/geckodriver.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\geckodriver\bin\geckodriver" %* diff --git a/node_modules/.bin/geckodriver.ps1 b/node_modules/.bin/geckodriver.ps1 new file mode 100644 index 0000000..2008bd5 --- /dev/null +++ b/node_modules/.bin/geckodriver.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../geckodriver/bin/geckodriver" $args + } else { + & "$basedir/node$exe" "$basedir/../geckodriver/bin/geckodriver" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../geckodriver/bin/geckodriver" $args + } else { + & "node$exe" "$basedir/../geckodriver/bin/geckodriver" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/mkdirp b/node_modules/.bin/mkdirp new file mode 100644 index 0000000..6ba5765 --- /dev/null +++ b/node_modules/.bin/mkdirp @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../mkdirp/bin/cmd.js" "$@" +else + exec node "$basedir/../mkdirp/bin/cmd.js" "$@" +fi diff --git a/node_modules/.bin/mkdirp.cmd b/node_modules/.bin/mkdirp.cmd new file mode 100644 index 0000000..a865dd9 --- /dev/null +++ b/node_modules/.bin/mkdirp.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mkdirp\bin\cmd.js" %* diff --git a/node_modules/.bin/mkdirp.ps1 b/node_modules/.bin/mkdirp.ps1 new file mode 100644 index 0000000..911e854 --- /dev/null +++ b/node_modules/.bin/mkdirp.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../mkdirp/bin/cmd.js" $args + } else { + & "$basedir/node$exe" "$basedir/../mkdirp/bin/cmd.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../mkdirp/bin/cmd.js" $args + } else { + & "node$exe" "$basedir/../mkdirp/bin/cmd.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/rimraf b/node_modules/.bin/rimraf new file mode 100644 index 0000000..b816825 --- /dev/null +++ b/node_modules/.bin/rimraf @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../rimraf/bin.js" "$@" +else + exec node "$basedir/../rimraf/bin.js" "$@" +fi diff --git a/node_modules/.bin/rimraf.cmd b/node_modules/.bin/rimraf.cmd new file mode 100644 index 0000000..13f45ec --- /dev/null +++ b/node_modules/.bin/rimraf.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\rimraf\bin.js" %* diff --git a/node_modules/.bin/rimraf.ps1 b/node_modules/.bin/rimraf.ps1 new file mode 100644 index 0000000..1716791 --- /dev/null +++ b/node_modules/.bin/rimraf.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../rimraf/bin.js" $args + } else { + & "$basedir/node$exe" "$basedir/../rimraf/bin.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../rimraf/bin.js" $args + } else { + & "node$exe" "$basedir/../rimraf/bin.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json new file mode 100644 index 0000000..f9e1152 --- /dev/null +++ b/node_modules/.package-lock.json @@ -0,0 +1,895 @@ +{ + "name": "mini-game-auto-test-ver1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "node_modules/@sindresorhus/is": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", + "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, + "node_modules/@szmarczak/http-timer": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", + "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@testim/chrome-version": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@testim/chrome-version/-/chrome-version-1.1.3.tgz", + "integrity": "sha512-g697J3WxV/Zytemz8aTuKjTGYtta9+02kva3C1xc7KXB8GdbfE1akGJIsZLyY/FSh2QrnE+fiB7vmWU3XNcb6A==" + }, + "node_modules/@types/cacheable-request": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", + "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + } + }, + "node_modules/@types/http-cache-semantics": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz", + "integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==" + }, + "node_modules/@types/keyv": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", + "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "18.11.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.18.tgz", + "integrity": "sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==" + }, + "node_modules/@types/responselike": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz", + "integrity": "sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/adm-zip": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.9.tgz", + "integrity": "sha512-s+3fXLkeeLjZ2kLjCBwQufpI5fuN+kIGBxu6530nVQZGVol0d7Y/M88/xw9HGGUcJjKf8LutN3VPRUBq6N7Ajg==", + "engines": { + "node": ">=6.0" + } + }, + "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==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.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==" + }, + "node_modules/axios": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.3.1.tgz", + "integrity": "sha512-78pWJsQTceInlyaeBQeYZ/QgZeWS8hGeKiIJiDKQe3hEyBb7sEMq0K4gjx+Va6WHTYO4zI/RRl8qGRzn0YMadA==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "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==" + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } + }, + "node_modules/cacheable-lookup": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", + "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", + "engines": { + "node": ">=10.6.0" + } + }, + "node_modules/cacheable-request": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz", + "integrity": "sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==", + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/chromedriver": { + "version": "109.0.0", + "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-109.0.0.tgz", + "integrity": "sha512-jdmBq11IUwfThLFiygGTZ89qbROSQI4bICQjvOVQy2Bqr1LwC+MFkhwyZp3YG99eehQbZuTlQmmfCZBfpewTNA==", + "hasInstallScript": true, + "dependencies": { + "@testim/chrome-version": "^1.1.3", + "axios": "^1.2.1", + "compare-versions": "^5.0.1", + "extract-zip": "^2.0.1", + "https-proxy-agent": "^5.0.1", + "proxy-from-env": "^1.1.0", + "tcp-port-used": "^1.0.1" + }, + "bin": { + "chromedriver": "bin/chromedriver" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/clone-response": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", + "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compare-versions": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-5.0.3.tgz", + "integrity": "sha512-4UZlZP8Z99MGEY+Ovg/uJxJuvoXuN4M6B3hKaiackiHrgzQFEe3diJi1mf1PNHbFujM7FvLrK2bpgIaImbtZ1A==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decompress-response/node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==" + }, + "node_modules/defer-to-connect": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", + "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dependencies": { + "pend": "~1.2.0" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "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==" + }, + "node_modules/geckodriver": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/geckodriver/-/geckodriver-3.2.0.tgz", + "integrity": "sha512-p+qR2RKlI/TQoCEYrSuTaYCLqsJNni96WmEukTyXmOmLn+3FLdgPAEwMZ0sG2Cwi9hozUzGAWyT6zLuhF6cpiQ==", + "hasInstallScript": true, + "dependencies": { + "adm-zip": "0.5.9", + "bluebird": "3.7.2", + "got": "11.8.5", + "https-proxy-agent": "5.0.1", + "tar": "6.1.11" + }, + "bin": { + "geckodriver": "bin/geckodriver" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "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/got": { + "version": "11.8.5", + "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", + "integrity": "sha512-o0Je4NvQObAuZPHLFoRSkdG2lTgtcynqymzg2Vupdx6PorhaT5MCbIyXG6d4D94kk8ZG57QeosgdiqfJWhEhlQ==", + "dependencies": { + "@sindresorhus/is": "^4.0.0", + "@szmarczak/http-timer": "^4.0.5", + "@types/cacheable-request": "^6.0.1", + "@types/responselike": "^1.0.0", + "cacheable-lookup": "^5.0.3", + "cacheable-request": "^7.0.2", + "decompress-response": "^6.0.0", + "http2-wrapper": "^1.0.0-beta.5.2", + "lowercase-keys": "^2.0.0", + "p-cancelable": "^2.0.0", + "responselike": "^2.0.0" + }, + "engines": { + "node": ">=10.19.0" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==" + }, + "node_modules/http2-wrapper": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", + "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", + "dependencies": { + "quick-lru": "^5.1.1", + "resolve-alpn": "^1.0.0" + }, + "engines": { + "node": ">=10.19.0" + } + }, + "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==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "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==", + "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==" + }, + "node_modules/ip-regex": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" + }, + "node_modules/is2": { + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.9.tgz", + "integrity": "sha512-rZkHeBn9Zzq52sd9IUIV3a5mfwBY+o2HePMh0wkGBM4z4qjvy2GwVxQ6nNXSfw6MmVP6gf1QIlWjiOavhM3x5g==", + "dependencies": { + "deep-is": "^0.1.3", + "ip-regex": "^4.1.0", + "is-url": "^1.2.4" + }, + "engines": { + "node": ">=v0.10.0" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==" + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/keyv": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz", + "integrity": "sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "engines": { + "node": ">=8" + } + }, + "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==", + "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==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/normalize-url": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", + "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/p-cancelable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", + "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "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==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/quick-lru": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", + "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/resolve-alpn": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", + "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==" + }, + "node_modules/responselike": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", + "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", + "dependencies": { + "lowercase-keys": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/selenium-webdriver": { + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-4.8.0.tgz", + "integrity": "sha512-s/HL8WNwy1ggHR244+tAhjhyKMJnZLt1HKJ6Gn7nQgVjB/ybDF+46Uui0qI2J7AjPNJzlUmTncdC/jg/kKkn0A==", + "dependencies": { + "jszip": "^3.10.0", + "tmp": "^0.2.1", + "ws": ">=8.11.0" + }, + "engines": { + "node": ">= 14.20.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/tcp-port-used": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz", + "integrity": "sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==", + "dependencies": { + "debug": "4.3.1", + "is2": "^2.0.6" + } + }, + "node_modules/tcp-port-used/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "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==" + }, + "node_modules/ws": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", + "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", + "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/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/node_modules/@sindresorhus/is/dist/index.d.ts b/node_modules/@sindresorhus/is/dist/index.d.ts new file mode 100644 index 0000000..dbb8cbd --- /dev/null +++ b/node_modules/@sindresorhus/is/dist/index.d.ts @@ -0,0 +1,232 @@ +/// +/// +/// +import { Class, Falsy, TypedArray, ObservableLike, Primitive } from './types'; +declare const objectTypeNames: readonly ["Function", "Generator", "AsyncGenerator", "GeneratorFunction", "AsyncGeneratorFunction", "AsyncFunction", "Observable", "Array", "Buffer", "Blob", "Object", "RegExp", "Date", "Error", "Map", "Set", "WeakMap", "WeakSet", "ArrayBuffer", "SharedArrayBuffer", "DataView", "Promise", "URL", "FormData", "URLSearchParams", "HTMLElement", ...("Int8Array" | "Uint8Array" | "Uint8ClampedArray" | "Int16Array" | "Uint16Array" | "Int32Array" | "Uint32Array" | "Float32Array" | "Float64Array" | "BigInt64Array" | "BigUint64Array")[]]; +declare type ObjectTypeName = typeof objectTypeNames[number]; +declare const primitiveTypeNames: readonly ["null", "undefined", "string", "number", "bigint", "boolean", "symbol"]; +declare type PrimitiveTypeName = typeof primitiveTypeNames[number]; +export declare type TypeName = ObjectTypeName | PrimitiveTypeName; +declare function is(value: unknown): TypeName; +declare namespace is { + var undefined: (value: unknown) => value is undefined; + var string: (value: unknown) => value is string; + var number: (value: unknown) => value is number; + var bigint: (value: unknown) => value is bigint; + var function_: (value: unknown) => value is Function; + var null_: (value: unknown) => value is null; + var class_: (value: unknown) => value is Class; + var boolean: (value: unknown) => value is boolean; + var symbol: (value: unknown) => value is symbol; + var numericString: (value: unknown) => value is string; + var array: (value: unknown, assertion?: ((value: T) => value is T) | undefined) => value is T[]; + var buffer: (value: unknown) => value is Buffer; + var blob: (value: unknown) => value is Blob; + var nullOrUndefined: (value: unknown) => value is null | undefined; + var object: (value: unknown) => value is object; + var iterable: (value: unknown) => value is Iterable; + var asyncIterable: (value: unknown) => value is AsyncIterable; + var generator: (value: unknown) => value is Generator; + var asyncGenerator: (value: unknown) => value is AsyncGenerator; + var nativePromise: (value: unknown) => value is Promise; + var promise: (value: unknown) => value is Promise; + var generatorFunction: (value: unknown) => value is GeneratorFunction; + var asyncGeneratorFunction: (value: unknown) => value is (...args: any[]) => Promise; + var asyncFunction: (value: unknown) => value is (...args: any[]) => Promise; + var boundFunction: (value: unknown) => value is Function; + var regExp: (value: unknown) => value is RegExp; + var date: (value: unknown) => value is Date; + var error: (value: unknown) => value is Error; + var map: (value: unknown) => value is Map; + var set: (value: unknown) => value is Set; + var weakMap: (value: unknown) => value is WeakMap; + var weakSet: (value: unknown) => value is WeakSet; + var int8Array: (value: unknown) => value is Int8Array; + var uint8Array: (value: unknown) => value is Uint8Array; + var uint8ClampedArray: (value: unknown) => value is Uint8ClampedArray; + var int16Array: (value: unknown) => value is Int16Array; + var uint16Array: (value: unknown) => value is Uint16Array; + var int32Array: (value: unknown) => value is Int32Array; + var uint32Array: (value: unknown) => value is Uint32Array; + var float32Array: (value: unknown) => value is Float32Array; + var float64Array: (value: unknown) => value is Float64Array; + var bigInt64Array: (value: unknown) => value is BigInt64Array; + var bigUint64Array: (value: unknown) => value is BigUint64Array; + var arrayBuffer: (value: unknown) => value is ArrayBuffer; + var sharedArrayBuffer: (value: unknown) => value is SharedArrayBuffer; + var dataView: (value: unknown) => value is DataView; + var enumCase: (value: unknown, targetEnum: T) => boolean; + var directInstanceOf: (instance: unknown, class_: Class) => instance is T; + var urlInstance: (value: unknown) => value is URL; + var urlString: (value: unknown) => value is string; + var truthy: (value: false | "" | 0 | 0n | T | null | undefined) => value is T; + var falsy: (value: false | "" | 0 | 0n | T | null | undefined) => value is Falsy; + var nan: (value: unknown) => boolean; + var primitive: (value: unknown) => value is Primitive; + var integer: (value: unknown) => value is number; + var safeInteger: (value: unknown) => value is number; + var plainObject: (value: unknown) => value is Record; + var typedArray: (value: unknown) => value is TypedArray; + var arrayLike: (value: unknown) => value is ArrayLike; + var inRange: (value: number, range: number | number[]) => value is number; + var domElement: (value: unknown) => value is HTMLElement; + var observable: (value: unknown) => value is ObservableLike; + var nodeStream: (value: unknown) => value is NodeStream; + var infinite: (value: unknown) => value is number; + var evenInteger: (value: number) => value is number; + var oddInteger: (value: number) => value is number; + var emptyArray: (value: unknown) => value is never[]; + var nonEmptyArray: (value: unknown) => value is unknown[]; + var emptyString: (value: unknown) => value is ""; + var emptyStringOrWhitespace: (value: unknown) => value is string; + var nonEmptyString: (value: unknown) => value is string; + var nonEmptyStringAndNotWhitespace: (value: unknown) => value is string; + var emptyObject: (value: unknown) => value is Record; + var nonEmptyObject: (value: unknown) => value is Record; + var emptySet: (value: unknown) => value is Set; + var nonEmptySet: (value: unknown) => value is Set; + var emptyMap: (value: unknown) => value is Map; + var nonEmptyMap: (value: unknown) => value is Map; + var propertyKey: (value: unknown) => value is string | number | symbol; + var formData: (value: unknown) => value is FormData; + var urlSearchParams: (value: unknown) => value is URLSearchParams; + var any: (predicate: Predicate | Predicate[], ...values: unknown[]) => boolean; + var all: (predicate: Predicate, ...values: unknown[]) => boolean; +} +export interface ArrayLike { + readonly [index: number]: T; + readonly length: number; +} +export interface NodeStream extends NodeJS.EventEmitter { + pipe(destination: T, options?: { + end?: boolean; + }): T; +} +export declare type Predicate = (value: unknown) => boolean; +export declare const enum AssertionTypeDescription { + class_ = "Class", + numericString = "string with a number", + nullOrUndefined = "null or undefined", + iterable = "Iterable", + asyncIterable = "AsyncIterable", + nativePromise = "native Promise", + urlString = "string with a URL", + truthy = "truthy", + falsy = "falsy", + nan = "NaN", + primitive = "primitive", + integer = "integer", + safeInteger = "integer", + plainObject = "plain object", + arrayLike = "array-like", + typedArray = "TypedArray", + domElement = "HTMLElement", + nodeStream = "Node.js Stream", + infinite = "infinite number", + emptyArray = "empty array", + nonEmptyArray = "non-empty array", + emptyString = "empty string", + emptyStringOrWhitespace = "empty string or whitespace", + nonEmptyString = "non-empty string", + nonEmptyStringAndNotWhitespace = "non-empty string and not whitespace", + emptyObject = "empty object", + nonEmptyObject = "non-empty object", + emptySet = "empty set", + nonEmptySet = "non-empty set", + emptyMap = "empty map", + nonEmptyMap = "non-empty map", + evenInteger = "even integer", + oddInteger = "odd integer", + directInstanceOf = "T", + inRange = "in range", + any = "predicate returns truthy for any value", + all = "predicate returns truthy for all values" +} +interface Assert { + undefined: (value: unknown) => asserts value is undefined; + string: (value: unknown) => asserts value is string; + number: (value: unknown) => asserts value is number; + bigint: (value: unknown) => asserts value is bigint; + function_: (value: unknown) => asserts value is Function; + null_: (value: unknown) => asserts value is null; + class_: (value: unknown) => asserts value is Class; + boolean: (value: unknown) => asserts value is boolean; + symbol: (value: unknown) => asserts value is symbol; + numericString: (value: unknown) => asserts value is string; + array: (value: unknown, assertion?: (element: unknown) => asserts element is T) => asserts value is T[]; + buffer: (value: unknown) => asserts value is Buffer; + blob: (value: unknown) => asserts value is Blob; + nullOrUndefined: (value: unknown) => asserts value is null | undefined; + object: (value: unknown) => asserts value is Record; + iterable: (value: unknown) => asserts value is Iterable; + asyncIterable: (value: unknown) => asserts value is AsyncIterable; + generator: (value: unknown) => asserts value is Generator; + asyncGenerator: (value: unknown) => asserts value is AsyncGenerator; + nativePromise: (value: unknown) => asserts value is Promise; + promise: (value: unknown) => asserts value is Promise; + generatorFunction: (value: unknown) => asserts value is GeneratorFunction; + asyncGeneratorFunction: (value: unknown) => asserts value is AsyncGeneratorFunction; + asyncFunction: (value: unknown) => asserts value is Function; + boundFunction: (value: unknown) => asserts value is Function; + regExp: (value: unknown) => asserts value is RegExp; + date: (value: unknown) => asserts value is Date; + error: (value: unknown) => asserts value is Error; + map: (value: unknown) => asserts value is Map; + set: (value: unknown) => asserts value is Set; + weakMap: (value: unknown) => asserts value is WeakMap; + weakSet: (value: unknown) => asserts value is WeakSet; + int8Array: (value: unknown) => asserts value is Int8Array; + uint8Array: (value: unknown) => asserts value is Uint8Array; + uint8ClampedArray: (value: unknown) => asserts value is Uint8ClampedArray; + int16Array: (value: unknown) => asserts value is Int16Array; + uint16Array: (value: unknown) => asserts value is Uint16Array; + int32Array: (value: unknown) => asserts value is Int32Array; + uint32Array: (value: unknown) => asserts value is Uint32Array; + float32Array: (value: unknown) => asserts value is Float32Array; + float64Array: (value: unknown) => asserts value is Float64Array; + bigInt64Array: (value: unknown) => asserts value is BigInt64Array; + bigUint64Array: (value: unknown) => asserts value is BigUint64Array; + arrayBuffer: (value: unknown) => asserts value is ArrayBuffer; + sharedArrayBuffer: (value: unknown) => asserts value is SharedArrayBuffer; + dataView: (value: unknown) => asserts value is DataView; + enumCase: (value: unknown, targetEnum: T) => asserts value is T[keyof T]; + urlInstance: (value: unknown) => asserts value is URL; + urlString: (value: unknown) => asserts value is string; + truthy: (value: unknown) => asserts value is unknown; + falsy: (value: unknown) => asserts value is unknown; + nan: (value: unknown) => asserts value is unknown; + primitive: (value: unknown) => asserts value is Primitive; + integer: (value: unknown) => asserts value is number; + safeInteger: (value: unknown) => asserts value is number; + plainObject: (value: unknown) => asserts value is Record; + typedArray: (value: unknown) => asserts value is TypedArray; + arrayLike: (value: unknown) => asserts value is ArrayLike; + domElement: (value: unknown) => asserts value is HTMLElement; + observable: (value: unknown) => asserts value is ObservableLike; + nodeStream: (value: unknown) => asserts value is NodeStream; + infinite: (value: unknown) => asserts value is number; + emptyArray: (value: unknown) => asserts value is never[]; + nonEmptyArray: (value: unknown) => asserts value is unknown[]; + emptyString: (value: unknown) => asserts value is ''; + emptyStringOrWhitespace: (value: unknown) => asserts value is string; + nonEmptyString: (value: unknown) => asserts value is string; + nonEmptyStringAndNotWhitespace: (value: unknown) => asserts value is string; + emptyObject: (value: unknown) => asserts value is Record; + nonEmptyObject: (value: unknown) => asserts value is Record; + emptySet: (value: unknown) => asserts value is Set; + nonEmptySet: (value: unknown) => asserts value is Set; + emptyMap: (value: unknown) => asserts value is Map; + nonEmptyMap: (value: unknown) => asserts value is Map; + propertyKey: (value: unknown) => asserts value is PropertyKey; + formData: (value: unknown) => asserts value is FormData; + urlSearchParams: (value: unknown) => asserts value is URLSearchParams; + evenInteger: (value: number) => asserts value is number; + oddInteger: (value: number) => asserts value is number; + directInstanceOf: (instance: unknown, class_: Class) => asserts instance is T; + inRange: (value: number, range: number | number[]) => asserts value is number; + any: (predicate: Predicate | Predicate[], ...values: unknown[]) => void | never; + all: (predicate: Predicate, ...values: unknown[]) => void | never; +} +export declare const assert: Assert; +export default is; +export { Class, TypedArray, ObservableLike, Primitive } from './types'; diff --git a/node_modules/@sindresorhus/is/dist/index.js b/node_modules/@sindresorhus/is/dist/index.js new file mode 100644 index 0000000..a80df87 --- /dev/null +++ b/node_modules/@sindresorhus/is/dist/index.js @@ -0,0 +1,434 @@ +"use strict"; +/// +/// +/// +Object.defineProperty(exports, "__esModule", { value: true }); +const typedArrayTypeNames = [ + 'Int8Array', + 'Uint8Array', + 'Uint8ClampedArray', + 'Int16Array', + 'Uint16Array', + 'Int32Array', + 'Uint32Array', + 'Float32Array', + 'Float64Array', + 'BigInt64Array', + 'BigUint64Array' +]; +function isTypedArrayName(name) { + return typedArrayTypeNames.includes(name); +} +const objectTypeNames = [ + 'Function', + 'Generator', + 'AsyncGenerator', + 'GeneratorFunction', + 'AsyncGeneratorFunction', + 'AsyncFunction', + 'Observable', + 'Array', + 'Buffer', + 'Blob', + 'Object', + 'RegExp', + 'Date', + 'Error', + 'Map', + 'Set', + 'WeakMap', + 'WeakSet', + 'ArrayBuffer', + 'SharedArrayBuffer', + 'DataView', + 'Promise', + 'URL', + 'FormData', + 'URLSearchParams', + 'HTMLElement', + ...typedArrayTypeNames +]; +function isObjectTypeName(name) { + return objectTypeNames.includes(name); +} +const primitiveTypeNames = [ + 'null', + 'undefined', + 'string', + 'number', + 'bigint', + 'boolean', + 'symbol' +]; +function isPrimitiveTypeName(name) { + return primitiveTypeNames.includes(name); +} +// eslint-disable-next-line @typescript-eslint/ban-types +function isOfType(type) { + return (value) => typeof value === type; +} +const { toString } = Object.prototype; +const getObjectType = (value) => { + const objectTypeName = toString.call(value).slice(8, -1); + if (/HTML\w+Element/.test(objectTypeName) && is.domElement(value)) { + return 'HTMLElement'; + } + if (isObjectTypeName(objectTypeName)) { + return objectTypeName; + } + return undefined; +}; +const isObjectOfType = (type) => (value) => getObjectType(value) === type; +function is(value) { + if (value === null) { + return 'null'; + } + switch (typeof value) { + case 'undefined': + return 'undefined'; + case 'string': + return 'string'; + case 'number': + return 'number'; + case 'boolean': + return 'boolean'; + case 'function': + return 'Function'; + case 'bigint': + return 'bigint'; + case 'symbol': + return 'symbol'; + default: + } + if (is.observable(value)) { + return 'Observable'; + } + if (is.array(value)) { + return 'Array'; + } + if (is.buffer(value)) { + return 'Buffer'; + } + const tagType = getObjectType(value); + if (tagType) { + return tagType; + } + if (value instanceof String || value instanceof Boolean || value instanceof Number) { + throw new TypeError('Please don\'t use object wrappers for primitive types'); + } + return 'Object'; +} +is.undefined = isOfType('undefined'); +is.string = isOfType('string'); +const isNumberType = isOfType('number'); +is.number = (value) => isNumberType(value) && !is.nan(value); +is.bigint = isOfType('bigint'); +// eslint-disable-next-line @typescript-eslint/ban-types +is.function_ = isOfType('function'); +is.null_ = (value) => value === null; +is.class_ = (value) => is.function_(value) && value.toString().startsWith('class '); +is.boolean = (value) => value === true || value === false; +is.symbol = isOfType('symbol'); +is.numericString = (value) => is.string(value) && !is.emptyStringOrWhitespace(value) && !Number.isNaN(Number(value)); +is.array = (value, assertion) => { + if (!Array.isArray(value)) { + return false; + } + if (!is.function_(assertion)) { + return true; + } + return value.every(assertion); +}; +is.buffer = (value) => { var _a, _b, _c, _d; return (_d = (_c = (_b = (_a = value) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.isBuffer) === null || _c === void 0 ? void 0 : _c.call(_b, value)) !== null && _d !== void 0 ? _d : false; }; +is.blob = (value) => isObjectOfType('Blob')(value); +is.nullOrUndefined = (value) => is.null_(value) || is.undefined(value); +is.object = (value) => !is.null_(value) && (typeof value === 'object' || is.function_(value)); +is.iterable = (value) => { var _a; return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a[Symbol.iterator]); }; +is.asyncIterable = (value) => { var _a; return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a[Symbol.asyncIterator]); }; +is.generator = (value) => { var _a, _b; return is.iterable(value) && is.function_((_a = value) === null || _a === void 0 ? void 0 : _a.next) && is.function_((_b = value) === null || _b === void 0 ? void 0 : _b.throw); }; +is.asyncGenerator = (value) => is.asyncIterable(value) && is.function_(value.next) && is.function_(value.throw); +is.nativePromise = (value) => isObjectOfType('Promise')(value); +const hasPromiseAPI = (value) => { + var _a, _b; + return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a.then) && + is.function_((_b = value) === null || _b === void 0 ? void 0 : _b.catch); +}; +is.promise = (value) => is.nativePromise(value) || hasPromiseAPI(value); +is.generatorFunction = isObjectOfType('GeneratorFunction'); +is.asyncGeneratorFunction = (value) => getObjectType(value) === 'AsyncGeneratorFunction'; +is.asyncFunction = (value) => getObjectType(value) === 'AsyncFunction'; +// eslint-disable-next-line no-prototype-builtins, @typescript-eslint/ban-types +is.boundFunction = (value) => is.function_(value) && !value.hasOwnProperty('prototype'); +is.regExp = isObjectOfType('RegExp'); +is.date = isObjectOfType('Date'); +is.error = isObjectOfType('Error'); +is.map = (value) => isObjectOfType('Map')(value); +is.set = (value) => isObjectOfType('Set')(value); +is.weakMap = (value) => isObjectOfType('WeakMap')(value); +is.weakSet = (value) => isObjectOfType('WeakSet')(value); +is.int8Array = isObjectOfType('Int8Array'); +is.uint8Array = isObjectOfType('Uint8Array'); +is.uint8ClampedArray = isObjectOfType('Uint8ClampedArray'); +is.int16Array = isObjectOfType('Int16Array'); +is.uint16Array = isObjectOfType('Uint16Array'); +is.int32Array = isObjectOfType('Int32Array'); +is.uint32Array = isObjectOfType('Uint32Array'); +is.float32Array = isObjectOfType('Float32Array'); +is.float64Array = isObjectOfType('Float64Array'); +is.bigInt64Array = isObjectOfType('BigInt64Array'); +is.bigUint64Array = isObjectOfType('BigUint64Array'); +is.arrayBuffer = isObjectOfType('ArrayBuffer'); +is.sharedArrayBuffer = isObjectOfType('SharedArrayBuffer'); +is.dataView = isObjectOfType('DataView'); +is.enumCase = (value, targetEnum) => Object.values(targetEnum).includes(value); +is.directInstanceOf = (instance, class_) => Object.getPrototypeOf(instance) === class_.prototype; +is.urlInstance = (value) => isObjectOfType('URL')(value); +is.urlString = (value) => { + if (!is.string(value)) { + return false; + } + try { + new URL(value); // eslint-disable-line no-new + return true; + } + catch (_a) { + return false; + } +}; +// Example: `is.truthy = (value: unknown): value is (not false | not 0 | not '' | not undefined | not null) => Boolean(value);` +is.truthy = (value) => Boolean(value); +// Example: `is.falsy = (value: unknown): value is (not true | 0 | '' | undefined | null) => Boolean(value);` +is.falsy = (value) => !value; +is.nan = (value) => Number.isNaN(value); +is.primitive = (value) => is.null_(value) || isPrimitiveTypeName(typeof value); +is.integer = (value) => Number.isInteger(value); +is.safeInteger = (value) => Number.isSafeInteger(value); +is.plainObject = (value) => { + // From: https://github.com/sindresorhus/is-plain-obj/blob/main/index.js + if (toString.call(value) !== '[object Object]') { + return false; + } + const prototype = Object.getPrototypeOf(value); + return prototype === null || prototype === Object.getPrototypeOf({}); +}; +is.typedArray = (value) => isTypedArrayName(getObjectType(value)); +const isValidLength = (value) => is.safeInteger(value) && value >= 0; +is.arrayLike = (value) => !is.nullOrUndefined(value) && !is.function_(value) && isValidLength(value.length); +is.inRange = (value, range) => { + if (is.number(range)) { + return value >= Math.min(0, range) && value <= Math.max(range, 0); + } + if (is.array(range) && range.length === 2) { + return value >= Math.min(...range) && value <= Math.max(...range); + } + throw new TypeError(`Invalid range: ${JSON.stringify(range)}`); +}; +const NODE_TYPE_ELEMENT = 1; +const DOM_PROPERTIES_TO_CHECK = [ + 'innerHTML', + 'ownerDocument', + 'style', + 'attributes', + 'nodeValue' +]; +is.domElement = (value) => { + return is.object(value) && + value.nodeType === NODE_TYPE_ELEMENT && + is.string(value.nodeName) && + !is.plainObject(value) && + DOM_PROPERTIES_TO_CHECK.every(property => property in value); +}; +is.observable = (value) => { + var _a, _b, _c, _d; + if (!value) { + return false; + } + // eslint-disable-next-line no-use-extend-native/no-use-extend-native + if (value === ((_b = (_a = value)[Symbol.observable]) === null || _b === void 0 ? void 0 : _b.call(_a))) { + return true; + } + if (value === ((_d = (_c = value)['@@observable']) === null || _d === void 0 ? void 0 : _d.call(_c))) { + return true; + } + return false; +}; +is.nodeStream = (value) => is.object(value) && is.function_(value.pipe) && !is.observable(value); +is.infinite = (value) => value === Infinity || value === -Infinity; +const isAbsoluteMod2 = (remainder) => (value) => is.integer(value) && Math.abs(value % 2) === remainder; +is.evenInteger = isAbsoluteMod2(0); +is.oddInteger = isAbsoluteMod2(1); +is.emptyArray = (value) => is.array(value) && value.length === 0; +is.nonEmptyArray = (value) => is.array(value) && value.length > 0; +is.emptyString = (value) => is.string(value) && value.length === 0; +const isWhiteSpaceString = (value) => is.string(value) && !/\S/.test(value); +is.emptyStringOrWhitespace = (value) => is.emptyString(value) || isWhiteSpaceString(value); +// TODO: Use `not ''` when the `not` operator is available. +is.nonEmptyString = (value) => is.string(value) && value.length > 0; +// TODO: Use `not ''` when the `not` operator is available. +is.nonEmptyStringAndNotWhitespace = (value) => is.string(value) && !is.emptyStringOrWhitespace(value); +is.emptyObject = (value) => is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length === 0; +// TODO: Use `not` operator here to remove `Map` and `Set` from type guard: +// - https://github.com/Microsoft/TypeScript/pull/29317 +is.nonEmptyObject = (value) => is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length > 0; +is.emptySet = (value) => is.set(value) && value.size === 0; +is.nonEmptySet = (value) => is.set(value) && value.size > 0; +is.emptyMap = (value) => is.map(value) && value.size === 0; +is.nonEmptyMap = (value) => is.map(value) && value.size > 0; +// `PropertyKey` is any value that can be used as an object key (string, number, or symbol) +is.propertyKey = (value) => is.any([is.string, is.number, is.symbol], value); +is.formData = (value) => isObjectOfType('FormData')(value); +is.urlSearchParams = (value) => isObjectOfType('URLSearchParams')(value); +const predicateOnArray = (method, predicate, values) => { + if (!is.function_(predicate)) { + throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`); + } + if (values.length === 0) { + throw new TypeError('Invalid number of values'); + } + return method.call(values, predicate); +}; +is.any = (predicate, ...values) => { + const predicates = is.array(predicate) ? predicate : [predicate]; + return predicates.some(singlePredicate => predicateOnArray(Array.prototype.some, singlePredicate, values)); +}; +is.all = (predicate, ...values) => predicateOnArray(Array.prototype.every, predicate, values); +const assertType = (condition, description, value, options = {}) => { + if (!condition) { + const { multipleValues } = options; + const valuesMessage = multipleValues ? + `received values of types ${[ + ...new Set(value.map(singleValue => `\`${is(singleValue)}\``)) + ].join(', ')}` : + `received value of type \`${is(value)}\``; + throw new TypeError(`Expected value which is \`${description}\`, ${valuesMessage}.`); + } +}; +exports.assert = { + // Unknowns. + undefined: (value) => assertType(is.undefined(value), 'undefined', value), + string: (value) => assertType(is.string(value), 'string', value), + number: (value) => assertType(is.number(value), 'number', value), + bigint: (value) => assertType(is.bigint(value), 'bigint', value), + // eslint-disable-next-line @typescript-eslint/ban-types + function_: (value) => assertType(is.function_(value), 'Function', value), + null_: (value) => assertType(is.null_(value), 'null', value), + class_: (value) => assertType(is.class_(value), "Class" /* class_ */, value), + boolean: (value) => assertType(is.boolean(value), 'boolean', value), + symbol: (value) => assertType(is.symbol(value), 'symbol', value), + numericString: (value) => assertType(is.numericString(value), "string with a number" /* numericString */, value), + array: (value, assertion) => { + const assert = assertType; + assert(is.array(value), 'Array', value); + if (assertion) { + value.forEach(assertion); + } + }, + buffer: (value) => assertType(is.buffer(value), 'Buffer', value), + blob: (value) => assertType(is.blob(value), 'Blob', value), + nullOrUndefined: (value) => assertType(is.nullOrUndefined(value), "null or undefined" /* nullOrUndefined */, value), + object: (value) => assertType(is.object(value), 'Object', value), + iterable: (value) => assertType(is.iterable(value), "Iterable" /* iterable */, value), + asyncIterable: (value) => assertType(is.asyncIterable(value), "AsyncIterable" /* asyncIterable */, value), + generator: (value) => assertType(is.generator(value), 'Generator', value), + asyncGenerator: (value) => assertType(is.asyncGenerator(value), 'AsyncGenerator', value), + nativePromise: (value) => assertType(is.nativePromise(value), "native Promise" /* nativePromise */, value), + promise: (value) => assertType(is.promise(value), 'Promise', value), + generatorFunction: (value) => assertType(is.generatorFunction(value), 'GeneratorFunction', value), + asyncGeneratorFunction: (value) => assertType(is.asyncGeneratorFunction(value), 'AsyncGeneratorFunction', value), + // eslint-disable-next-line @typescript-eslint/ban-types + asyncFunction: (value) => assertType(is.asyncFunction(value), 'AsyncFunction', value), + // eslint-disable-next-line @typescript-eslint/ban-types + boundFunction: (value) => assertType(is.boundFunction(value), 'Function', value), + regExp: (value) => assertType(is.regExp(value), 'RegExp', value), + date: (value) => assertType(is.date(value), 'Date', value), + error: (value) => assertType(is.error(value), 'Error', value), + map: (value) => assertType(is.map(value), 'Map', value), + set: (value) => assertType(is.set(value), 'Set', value), + weakMap: (value) => assertType(is.weakMap(value), 'WeakMap', value), + weakSet: (value) => assertType(is.weakSet(value), 'WeakSet', value), + int8Array: (value) => assertType(is.int8Array(value), 'Int8Array', value), + uint8Array: (value) => assertType(is.uint8Array(value), 'Uint8Array', value), + uint8ClampedArray: (value) => assertType(is.uint8ClampedArray(value), 'Uint8ClampedArray', value), + int16Array: (value) => assertType(is.int16Array(value), 'Int16Array', value), + uint16Array: (value) => assertType(is.uint16Array(value), 'Uint16Array', value), + int32Array: (value) => assertType(is.int32Array(value), 'Int32Array', value), + uint32Array: (value) => assertType(is.uint32Array(value), 'Uint32Array', value), + float32Array: (value) => assertType(is.float32Array(value), 'Float32Array', value), + float64Array: (value) => assertType(is.float64Array(value), 'Float64Array', value), + bigInt64Array: (value) => assertType(is.bigInt64Array(value), 'BigInt64Array', value), + bigUint64Array: (value) => assertType(is.bigUint64Array(value), 'BigUint64Array', value), + arrayBuffer: (value) => assertType(is.arrayBuffer(value), 'ArrayBuffer', value), + sharedArrayBuffer: (value) => assertType(is.sharedArrayBuffer(value), 'SharedArrayBuffer', value), + dataView: (value) => assertType(is.dataView(value), 'DataView', value), + enumCase: (value, targetEnum) => assertType(is.enumCase(value, targetEnum), 'EnumCase', value), + urlInstance: (value) => assertType(is.urlInstance(value), 'URL', value), + urlString: (value) => assertType(is.urlString(value), "string with a URL" /* urlString */, value), + truthy: (value) => assertType(is.truthy(value), "truthy" /* truthy */, value), + falsy: (value) => assertType(is.falsy(value), "falsy" /* falsy */, value), + nan: (value) => assertType(is.nan(value), "NaN" /* nan */, value), + primitive: (value) => assertType(is.primitive(value), "primitive" /* primitive */, value), + integer: (value) => assertType(is.integer(value), "integer" /* integer */, value), + safeInteger: (value) => assertType(is.safeInteger(value), "integer" /* safeInteger */, value), + plainObject: (value) => assertType(is.plainObject(value), "plain object" /* plainObject */, value), + typedArray: (value) => assertType(is.typedArray(value), "TypedArray" /* typedArray */, value), + arrayLike: (value) => assertType(is.arrayLike(value), "array-like" /* arrayLike */, value), + domElement: (value) => assertType(is.domElement(value), "HTMLElement" /* domElement */, value), + observable: (value) => assertType(is.observable(value), 'Observable', value), + nodeStream: (value) => assertType(is.nodeStream(value), "Node.js Stream" /* nodeStream */, value), + infinite: (value) => assertType(is.infinite(value), "infinite number" /* infinite */, value), + emptyArray: (value) => assertType(is.emptyArray(value), "empty array" /* emptyArray */, value), + nonEmptyArray: (value) => assertType(is.nonEmptyArray(value), "non-empty array" /* nonEmptyArray */, value), + emptyString: (value) => assertType(is.emptyString(value), "empty string" /* emptyString */, value), + emptyStringOrWhitespace: (value) => assertType(is.emptyStringOrWhitespace(value), "empty string or whitespace" /* emptyStringOrWhitespace */, value), + nonEmptyString: (value) => assertType(is.nonEmptyString(value), "non-empty string" /* nonEmptyString */, value), + nonEmptyStringAndNotWhitespace: (value) => assertType(is.nonEmptyStringAndNotWhitespace(value), "non-empty string and not whitespace" /* nonEmptyStringAndNotWhitespace */, value), + emptyObject: (value) => assertType(is.emptyObject(value), "empty object" /* emptyObject */, value), + nonEmptyObject: (value) => assertType(is.nonEmptyObject(value), "non-empty object" /* nonEmptyObject */, value), + emptySet: (value) => assertType(is.emptySet(value), "empty set" /* emptySet */, value), + nonEmptySet: (value) => assertType(is.nonEmptySet(value), "non-empty set" /* nonEmptySet */, value), + emptyMap: (value) => assertType(is.emptyMap(value), "empty map" /* emptyMap */, value), + nonEmptyMap: (value) => assertType(is.nonEmptyMap(value), "non-empty map" /* nonEmptyMap */, value), + propertyKey: (value) => assertType(is.propertyKey(value), 'PropertyKey', value), + formData: (value) => assertType(is.formData(value), 'FormData', value), + urlSearchParams: (value) => assertType(is.urlSearchParams(value), 'URLSearchParams', value), + // Numbers. + evenInteger: (value) => assertType(is.evenInteger(value), "even integer" /* evenInteger */, value), + oddInteger: (value) => assertType(is.oddInteger(value), "odd integer" /* oddInteger */, value), + // Two arguments. + directInstanceOf: (instance, class_) => assertType(is.directInstanceOf(instance, class_), "T" /* directInstanceOf */, instance), + inRange: (value, range) => assertType(is.inRange(value, range), "in range" /* inRange */, value), + // Variadic functions. + any: (predicate, ...values) => { + return assertType(is.any(predicate, ...values), "predicate returns truthy for any value" /* any */, values, { multipleValues: true }); + }, + all: (predicate, ...values) => assertType(is.all(predicate, ...values), "predicate returns truthy for all values" /* all */, values, { multipleValues: true }) +}; +// Some few keywords are reserved, but we'll populate them for Node.js users +// See https://github.com/Microsoft/TypeScript/issues/2536 +Object.defineProperties(is, { + class: { + value: is.class_ + }, + function: { + value: is.function_ + }, + null: { + value: is.null_ + } +}); +Object.defineProperties(exports.assert, { + class: { + value: exports.assert.class_ + }, + function: { + value: exports.assert.function_ + }, + null: { + value: exports.assert.null_ + } +}); +exports.default = is; +// For CommonJS default export support +module.exports = is; +module.exports.default = is; +module.exports.assert = exports.assert; diff --git a/node_modules/@sindresorhus/is/dist/types.d.ts b/node_modules/@sindresorhus/is/dist/types.d.ts new file mode 100644 index 0000000..b4fae5d --- /dev/null +++ b/node_modules/@sindresorhus/is/dist/types.d.ts @@ -0,0 +1,25 @@ +/** +Matches any [primitive value](https://developer.mozilla.org/en-US/docs/Glossary/Primitive). +*/ +export declare type Primitive = null | undefined | string | number | boolean | symbol | bigint; +/** +Matches a [`class` constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes). +*/ +export declare type Class = new (...arguments_: Arguments) => T; +/** +Matches any [typed array](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray), like `Uint8Array` or `Float64Array`. +*/ +export declare type TypedArray = Int8Array | Uint8Array | Uint8ClampedArray | Int16Array | Uint16Array | Int32Array | Uint32Array | Float32Array | Float64Array | BigInt64Array | BigUint64Array; +declare global { + interface SymbolConstructor { + readonly observable: symbol; + } +} +/** +Matches a value that is like an [Observable](https://github.com/tc39/proposal-observable). +*/ +export interface ObservableLike { + subscribe(observer: (value: unknown) => void): void; + [Symbol.observable](): ObservableLike; +} +export declare type Falsy = false | 0 | 0n | '' | null | undefined; diff --git a/node_modules/@sindresorhus/is/dist/types.js b/node_modules/@sindresorhus/is/dist/types.js new file mode 100644 index 0000000..0930323 --- /dev/null +++ b/node_modules/@sindresorhus/is/dist/types.js @@ -0,0 +1,3 @@ +"use strict"; +// Extracted from https://github.com/sindresorhus/type-fest/blob/78019f42ea888b0cdceb41a4a78163868de57555/index.d.ts +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@sindresorhus/is/license b/node_modules/@sindresorhus/is/license new file mode 100644 index 0000000..fa7ceba --- /dev/null +++ b/node_modules/@sindresorhus/is/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://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/@sindresorhus/is/package.json b/node_modules/@sindresorhus/is/package.json new file mode 100644 index 0000000..8052a87 --- /dev/null +++ b/node_modules/@sindresorhus/is/package.json @@ -0,0 +1,96 @@ +{ + "name": "@sindresorhus/is", + "version": "4.6.0", + "description": "Type check values", + "license": "MIT", + "repository": "sindresorhus/is", + "funding": "https://github.com/sindresorhus/is?sponsor=1", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "main": "dist/index.js", + "engines": { + "node": ">=10" + }, + "scripts": { + "build": "del dist && tsc", + "test": "xo && ava", + "prepare": "npm run build" + }, + "files": [ + "dist" + ], + "keywords": [ + "type", + "types", + "is", + "check", + "checking", + "validate", + "validation", + "utility", + "util", + "typeof", + "instanceof", + "object", + "assert", + "assertion", + "test", + "kind", + "primitive", + "verify", + "compare", + "typescript", + "typeguards", + "types" + ], + "devDependencies": { + "@sindresorhus/tsconfig": "^0.7.0", + "@types/jsdom": "^16.1.0", + "@types/node": "^14.0.13", + "@types/zen-observable": "^0.8.0", + "@typescript-eslint/eslint-plugin": "^2.20.0", + "@typescript-eslint/parser": "^2.20.0", + "ava": "^3.3.0", + "del-cli": "^2.0.0", + "eslint-config-xo-typescript": "^0.26.0", + "jsdom": "^16.0.1", + "rxjs": "^6.4.0", + "tempy": "^0.4.0", + "ts-node": "^8.3.0", + "typescript": "~3.8.2", + "xo": "^0.26.1", + "zen-observable": "^0.8.8" + }, + "types": "dist/index.d.ts", + "sideEffects": false, + "ava": { + "extensions": [ + "ts" + ], + "require": [ + "ts-node/register" + ] + }, + "xo": { + "extends": "xo-typescript", + "extensions": [ + "ts" + ], + "parserOptions": { + "project": "./tsconfig.xo.json" + }, + "globals": [ + "BigInt", + "BigInt64Array", + "BigUint64Array" + ], + "rules": { + "@typescript-eslint/promise-function-async": "off", + "@typescript-eslint/no-empty-function": "off", + "@typescript-eslint/explicit-function-return-type": "off" + } + } +} diff --git a/node_modules/@sindresorhus/is/readme.md b/node_modules/@sindresorhus/is/readme.md new file mode 100644 index 0000000..05a291a --- /dev/null +++ b/node_modules/@sindresorhus/is/readme.md @@ -0,0 +1,669 @@ +# is + +> Type check values + +For example, `is.string('🦄') //=> true` + + + +## Highlights + +- Written in TypeScript +- [Extensive use of type guards](#type-guards) +- [Supports type assertions](#type-assertions) +- [Aware of generic type parameters](#generic-type-parameters) (use with caution) +- Actively maintained +- ![Millions of downloads per week](https://img.shields.io/npm/dw/@sindresorhus/is) + +## Install + +```sh +npm install @sindresorhus/is +``` + +## Usage + +```js +const is = require('@sindresorhus/is'); + +is('🦄'); +//=> 'string' + +is(new Map()); +//=> 'Map' + +is.number(6); +//=> true +``` + +[Assertions](#type-assertions) perform the same type checks, but throw an error if the type does not match. + +```js +const {assert} = require('@sindresorhus/is'); + +assert.string(2); +//=> Error: Expected value which is `string`, received value of type `number`. +``` + +And with TypeScript: + +```ts +import {assert} from '@sindresorhus/is'; + +assert.string(foo); +// `foo` is now typed as a `string`. +``` + +## API + +### is(value) + +Returns the type of `value`. + +Primitives are lowercase and object types are camelcase. + +Example: + +- `'undefined'` +- `'null'` +- `'string'` +- `'symbol'` +- `'Array'` +- `'Function'` +- `'Object'` + +Note: It will throw an error if you try to feed it object-wrapped primitives, as that's a bad practice. For example `new String('foo')`. + +### is.{method} + +All the below methods accept a value and returns a boolean for whether the value is of the desired type. + +#### Primitives + +##### .undefined(value) +##### .null(value) + +**Note:** TypeScript users must use `.null_()` because of a TypeScript naming limitation. + +##### .string(value) +##### .number(value) + +Note: `is.number(NaN)` returns `false`. This intentionally deviates from `typeof` behavior to increase user-friendliness of `is` type checks. + +##### .boolean(value) +##### .symbol(value) +##### .bigint(value) + +#### Built-in types + +##### .array(value, assertion?) + +Returns true if `value` is an array and all of its items match the assertion (if provided). + +```js +is.array(value); // Validate `value` is an array. +is.array(value, is.number); // Validate `value` is an array and all of its items are numbers. +``` + +##### .function(value) + +**Note:** TypeScript users must use `.function_()` because of a TypeScript naming limitation. + +##### .buffer(value) +##### .blob(value) +##### .object(value) + +Keep in mind that [functions are objects too](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions). + +##### .numericString(value) + +Returns `true` for a string that represents a number satisfying `is.number`, for example, `'42'` and `'-8.3'`. + +Note: `'NaN'` returns `false`, but `'Infinity'` and `'-Infinity'` return `true`. + +##### .regExp(value) +##### .date(value) +##### .error(value) +##### .nativePromise(value) +##### .promise(value) + +Returns `true` for any object with a `.then()` and `.catch()` method. Prefer this one over `.nativePromise()` as you usually want to allow userland promise implementations too. + +##### .generator(value) + +Returns `true` for any object that implements its own `.next()` and `.throw()` methods and has a function definition for `Symbol.iterator`. + +##### .generatorFunction(value) + +##### .asyncFunction(value) + +Returns `true` for any `async` function that can be called with the `await` operator. + +```js +is.asyncFunction(async () => {}); +//=> true + +is.asyncFunction(() => {}); +//=> false +``` + +##### .asyncGenerator(value) + +```js +is.asyncGenerator( + (async function * () { + yield 4; + })() +); +//=> true + +is.asyncGenerator( + (function * () { + yield 4; + })() +); +//=> false +``` + +##### .asyncGeneratorFunction(value) + +```js +is.asyncGeneratorFunction(async function * () { + yield 4; +}); +//=> true + +is.asyncGeneratorFunction(function * () { + yield 4; +}); +//=> false +``` + +##### .boundFunction(value) + +Returns `true` for any `bound` function. + +```js +is.boundFunction(() => {}); +//=> true + +is.boundFunction(function () {}.bind(null)); +//=> true + +is.boundFunction(function () {}); +//=> false +``` + +##### .map(value) +##### .set(value) +##### .weakMap(value) +##### .weakSet(value) + +#### Typed arrays + +##### .int8Array(value) +##### .uint8Array(value) +##### .uint8ClampedArray(value) +##### .int16Array(value) +##### .uint16Array(value) +##### .int32Array(value) +##### .uint32Array(value) +##### .float32Array(value) +##### .float64Array(value) +##### .bigInt64Array(value) +##### .bigUint64Array(value) + +#### Structured data + +##### .arrayBuffer(value) +##### .sharedArrayBuffer(value) +##### .dataView(value) + +##### .enumCase(value, enum) + +TypeScript-only. Returns `true` if `value` is a member of `enum`. + +```ts +enum Direction { + Ascending = 'ascending', + Descending = 'descending' +} + +is.enumCase('ascending', Direction); +//=> true + +is.enumCase('other', Direction); +//=> false +``` + +#### Emptiness + +##### .emptyString(value) + +Returns `true` if the value is a `string` and the `.length` is 0. + +##### .emptyStringOrWhitespace(value) + +Returns `true` if `is.emptyString(value)` or if it's a `string` that is all whitespace. + +##### .nonEmptyString(value) + +Returns `true` if the value is a `string` and the `.length` is more than 0. + +##### .nonEmptyStringAndNotWhitespace(value) + +Returns `true` if the value is a `string` that is not empty and not whitespace. + +```js +const values = ['property1', '', null, 'property2', ' ', undefined]; + +values.filter(is.nonEmptyStringAndNotWhitespace); +//=> ['property1', 'property2'] +``` + +##### .emptyArray(value) + +Returns `true` if the value is an `Array` and the `.length` is 0. + +##### .nonEmptyArray(value) + +Returns `true` if the value is an `Array` and the `.length` is more than 0. + +##### .emptyObject(value) + +Returns `true` if the value is an `Object` and `Object.keys(value).length` is 0. + +Please note that `Object.keys` returns only own enumerable properties. Hence something like this can happen: + +```js +const object1 = {}; + +Object.defineProperty(object1, 'property1', { + value: 42, + writable: true, + enumerable: false, + configurable: true +}); + +is.emptyObject(object1); +//=> true +``` + +##### .nonEmptyObject(value) + +Returns `true` if the value is an `Object` and `Object.keys(value).length` is more than 0. + +##### .emptySet(value) + +Returns `true` if the value is a `Set` and the `.size` is 0. + +##### .nonEmptySet(Value) + +Returns `true` if the value is a `Set` and the `.size` is more than 0. + +##### .emptyMap(value) + +Returns `true` if the value is a `Map` and the `.size` is 0. + +##### .nonEmptyMap(value) + +Returns `true` if the value is a `Map` and the `.size` is more than 0. + +#### Miscellaneous + +##### .directInstanceOf(value, class) + +Returns `true` if `value` is a direct instance of `class`. + +```js +is.directInstanceOf(new Error(), Error); +//=> true + +class UnicornError extends Error {} + +is.directInstanceOf(new UnicornError(), Error); +//=> false +``` + +##### .urlInstance(value) + +Returns `true` if `value` is an instance of the [`URL` class](https://developer.mozilla.org/en-US/docs/Web/API/URL). + +```js +const url = new URL('https://example.com'); + +is.urlInstance(url); +//=> true +``` + +##### .urlString(value) + +Returns `true` if `value` is a URL string. + +Note: this only does basic checking using the [`URL` class](https://developer.mozilla.org/en-US/docs/Web/API/URL) constructor. + +```js +const url = 'https://example.com'; + +is.urlString(url); +//=> true + +is.urlString(new URL(url)); +//=> false +``` + +##### .truthy(value) + +Returns `true` for all values that evaluate to true in a boolean context: + +```js +is.truthy('🦄'); +//=> true + +is.truthy(undefined); +//=> false +``` + +##### .falsy(value) + +Returns `true` if `value` is one of: `false`, `0`, `''`, `null`, `undefined`, `NaN`. + +##### .nan(value) +##### .nullOrUndefined(value) +##### .primitive(value) + +JavaScript primitives are as follows: `null`, `undefined`, `string`, `number`, `boolean`, `symbol`. + +##### .integer(value) + +##### .safeInteger(value) + +Returns `true` if `value` is a [safe integer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger). + +##### .plainObject(value) + +An object is plain if it's created by either `{}`, `new Object()`, or `Object.create(null)`. + +##### .iterable(value) +##### .asyncIterable(value) +##### .class(value) + +Returns `true` for instances created by a class. + +**Note:** TypeScript users must use `.class_()` because of a TypeScript naming limitation. + +##### .typedArray(value) + +##### .arrayLike(value) + +A `value` is array-like if it is not a function and has a `value.length` that is a safe integer greater than or equal to 0. + +```js +is.arrayLike(document.forms); +//=> true + +function foo() { + is.arrayLike(arguments); + //=> true +} +foo(); +``` + +##### .inRange(value, range) + +Check if `value` (number) is in the given `range`. The range is an array of two values, lower bound and upper bound, in no specific order. + +```js +is.inRange(3, [0, 5]); +is.inRange(3, [5, 0]); +is.inRange(0, [-2, 2]); +``` + +##### .inRange(value, upperBound) + +Check if `value` (number) is in the range of `0` to `upperBound`. + +```js +is.inRange(3, 10); +``` + +##### .domElement(value) + +Returns `true` if `value` is a DOM Element. + +##### .nodeStream(value) + +Returns `true` if `value` is a Node.js [stream](https://nodejs.org/api/stream.html). + +```js +const fs = require('fs'); + +is.nodeStream(fs.createReadStream('unicorn.png')); +//=> true +``` + +##### .observable(value) + +Returns `true` if `value` is an `Observable`. + +```js +const {Observable} = require('rxjs'); + +is.observable(new Observable()); +//=> true +``` + +##### .infinite(value) + +Check if `value` is `Infinity` or `-Infinity`. + +##### .evenInteger(value) + +Returns `true` if `value` is an even integer. + +##### .oddInteger(value) + +Returns `true` if `value` is an odd integer. + +##### .propertyKey(value) + +Returns `true` if `value` can be used as an object property key (either `string`, `number`, or `symbol`). + +##### .formData(value) + +Returns `true` if `value` is an instance of the [`FormData` class](https://developer.mozilla.org/en-US/docs/Web/API/FormData). + +```js +const data = new FormData(); + +is.formData(data); +//=> true +``` + +##### .urlSearchParams(value) + +Returns `true` if `value` is an instance of the [`URLSearchParams` class](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams). + +```js +const searchParams = new URLSearchParams(); + +is.urlSearchParams(searchParams); +//=> true +``` + +##### .any(predicate | predicate[], ...values) + +Using a single `predicate` argument, returns `true` if **any** of the input `values` returns true in the `predicate`: + +```js +is.any(is.string, {}, true, '🦄'); +//=> true + +is.any(is.boolean, 'unicorns', [], new Map()); +//=> false +``` + +Using an array of `predicate[]`, returns `true` if **any** of the input `values` returns true for **any** of the `predicates` provided in an array: + +```js +is.any([is.string, is.number], {}, true, '🦄'); +//=> true + +is.any([is.boolean, is.number], 'unicorns', [], new Map()); +//=> false +``` + +##### .all(predicate, ...values) + +Returns `true` if **all** of the input `values` returns true in the `predicate`: + +```js +is.all(is.object, {}, new Map(), new Set()); +//=> true + +is.all(is.string, '🦄', [], 'unicorns'); +//=> false +``` + +## Type guards + +When using `is` together with TypeScript, [type guards](http://www.typescriptlang.org/docs/handbook/advanced-types.html#type-guards-and-differentiating-types) are being used extensively to infer the correct type inside if-else statements. + +```ts +import is from '@sindresorhus/is'; + +const padLeft = (value: string, padding: string | number) => { + if (is.number(padding)) { + // `padding` is typed as `number` + return Array(padding + 1).join(' ') + value; + } + + if (is.string(padding)) { + // `padding` is typed as `string` + return padding + value; + } + + throw new TypeError(`Expected 'padding' to be of type 'string' or 'number', got '${is(padding)}'.`); +} + +padLeft('🦄', 3); +//=> ' 🦄' + +padLeft('🦄', '🌈'); +//=> '🌈🦄' +``` + +## Type assertions + +The type guards are also available as [type assertions](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#assertion-functions), which throw an error for unexpected types. It is a convenient one-line version of the often repetitive "if-not-expected-type-throw" pattern. + +```ts +import {assert} from '@sindresorhus/is'; + +const handleMovieRatingApiResponse = (response: unknown) => { + assert.plainObject(response); + // `response` is now typed as a plain `object` with `unknown` properties. + + assert.number(response.rating); + // `response.rating` is now typed as a `number`. + + assert.string(response.title); + // `response.title` is now typed as a `string`. + + return `${response.title} (${response.rating * 10})`; +}; + +handleMovieRatingApiResponse({rating: 0.87, title: 'The Matrix'}); +//=> 'The Matrix (8.7)' + +// This throws an error. +handleMovieRatingApiResponse({rating: '🦄'}); +``` + +## Generic type parameters + +The type guards and type assertions are aware of [generic type parameters](https://www.typescriptlang.org/docs/handbook/generics.html), such as `Promise` and `Map`. The default is `unknown` for most cases, since `is` cannot check them at runtime. If the generic type is known at compile-time, either implicitly (inferred) or explicitly (provided), `is` propagates the type so it can be used later. + +Use generic type parameters with caution. They are only checked by the TypeScript compiler, and not checked by `is` at runtime. This can lead to unexpected behavior, where the generic type is _assumed_ at compile-time, but actually is something completely different at runtime. It is best to use `unknown` (default) and type-check the value of the generic type parameter at runtime with `is` or `assert`. + +```ts +import {assert} from '@sindresorhus/is'; + +async function badNumberAssumption(input: unknown) { + // Bad assumption about the generic type parameter fools the compile-time type system. + assert.promise(input); + // `input` is a `Promise` but only assumed to be `Promise`. + + const resolved = await input; + // `resolved` is typed as `number` but was not actually checked at runtime. + + // Multiplication will return NaN if the input promise did not actually contain a number. + return 2 * resolved; +} + +async function goodNumberAssertion(input: unknown) { + assert.promise(input); + // `input` is typed as `Promise` + + const resolved = await input; + // `resolved` is typed as `unknown` + + assert.number(resolved); + // `resolved` is typed as `number` + + // Uses runtime checks so only numbers will reach the multiplication. + return 2 * resolved; +} + +badNumberAssumption(Promise.resolve('An unexpected string')); +//=> NaN + +// This correctly throws an error because of the unexpected string value. +goodNumberAssertion(Promise.resolve('An unexpected string')); +``` + +## FAQ + +### Why yet another type checking module? + +There are hundreds of type checking modules on npm, unfortunately, I couldn't find any that fit my needs: + +- Includes both type methods and ability to get the type +- Types of primitives returned as lowercase and object types as camelcase +- Covers all built-ins +- Unsurprising behavior +- Well-maintained +- Comprehensive test suite + +For the ones I found, pick 3 of these. + +The most common mistakes I noticed in these modules was using `instanceof` for type checking, forgetting that functions are objects, and omitting `symbol` as a primitive. + +### Why not just use `instanceof` instead of this package? + +`instanceof` does not work correctly for all types and it does not work across [realms](https://stackoverflow.com/a/49832343/64949). Examples of realms are iframes, windows, web workers, and the `vm` module in Node.js. + +## For enterprise + +Available as part of the Tidelift Subscription. + +The maintainers of @sindresorhus/is 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-sindresorhus-is?utm_source=npm-sindresorhus-is&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) + +## Related + +- [ow](https://github.com/sindresorhus/ow) - Function argument validation for humans +- [is-stream](https://github.com/sindresorhus/is-stream) - Check if something is a Node.js stream +- [is-observable](https://github.com/sindresorhus/is-observable) - Check if a value is an Observable +- [file-type](https://github.com/sindresorhus/file-type) - Detect the file type of a Buffer/Uint8Array +- [is-ip](https://github.com/sindresorhus/is-ip) - Check if a string is an IP address +- [is-array-sorted](https://github.com/sindresorhus/is-array-sorted) - Check if an Array is sorted +- [is-error-constructor](https://github.com/sindresorhus/is-error-constructor) - Check if a value is an error constructor +- [is-empty-iterable](https://github.com/sindresorhus/is-empty-iterable) - Check if an Iterable is empty +- [is-blob](https://github.com/sindresorhus/is-blob) - Check if a value is a Blob - File-like object of immutable, raw data +- [has-emoji](https://github.com/sindresorhus/has-emoji) - Check whether a string has any emoji + +## Maintainers + +- [Sindre Sorhus](https://github.com/sindresorhus) +- [Giora Guttsait](https://github.com/gioragutt) +- [Brandon Smith](https://github.com/brandon93s) diff --git a/node_modules/@szmarczak/http-timer/LICENSE b/node_modules/@szmarczak/http-timer/LICENSE new file mode 100644 index 0000000..15ad2e8 --- /dev/null +++ b/node_modules/@szmarczak/http-timer/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Szymon Marczak + +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/@szmarczak/http-timer/README.md b/node_modules/@szmarczak/http-timer/README.md new file mode 100644 index 0000000..f58e10b --- /dev/null +++ b/node_modules/@szmarczak/http-timer/README.md @@ -0,0 +1,93 @@ +# http-timer +> Timings for HTTP requests + +[![Build Status](https://travis-ci.org/szmarczak/http-timer.svg?branch=master)](https://travis-ci.org/szmarczak/http-timer) +[![Coverage Status](https://coveralls.io/repos/github/szmarczak/http-timer/badge.svg?branch=master)](https://coveralls.io/github/szmarczak/http-timer?branch=master) +[![install size](https://packagephobia.now.sh/badge?p=@szmarczak/http-timer)](https://packagephobia.now.sh/result?p=@szmarczak/http-timer) + +Inspired by the [`request` package](https://github.com/request/request). + +## Installation + +NPM: + +> `npm install @szmarczak/http-timer` + +Yarn: + +> `yarn add @szmarczak/http-timer` + +## Usage +**Note:** +> - The measured events resemble Node.js events, not the kernel ones. +> - Sending a chunk greater than [`highWaterMark`](https://nodejs.org/api/stream.html#stream_new_stream_writable_options) will result in invalid `upload` and `response` timings. You can avoid this by splitting the payload into smaller chunks. + +```js +const https = require('https'); +const timer = require('@szmarczak/http-timer'); + +const request = https.get('https://httpbin.org/anything'); +timer(request); + +request.once('response', response => { + response.resume(); + response.once('end', () => { + console.log(response.timings); // You can use `request.timings` as well + }); +}); + +// { +// start: 1572712180361, +// socket: 1572712180362, +// lookup: 1572712180415, +// connect: 1572712180571, +// upload: 1572712180884, +// response: 1572712181037, +// end: 1572712181039, +// error: undefined, +// abort: undefined, +// phases: { +// wait: 1, +// dns: 53, +// tcp: 156, +// request: 313, +// firstByte: 153, +// download: 2, +// total: 678 +// } +// } +``` + +## API + +### timer(request) + +Returns: `Object` + +**Note**: The time is a `number` representing the milliseconds elapsed since the UNIX epoch. + +- `start` - Time when the request started. +- `socket` - Time when a socket was assigned to the request. +- `lookup` - Time when the DNS lookup finished. +- `connect` - Time when the socket successfully connected. +- `secureConnect` - Time when the socket securely connected. +- `upload` - Time when the request finished uploading. +- `response` - Time when the request fired `response` event. +- `end` - Time when the response fired `end` event. +- `error` - Time when the request fired `error` event. +- `abort` - Time when the request fired `abort` event. +- `phases` + - `wait` - `timings.socket - timings.start` + - `dns` - `timings.lookup - timings.socket` + - `tcp` - `timings.connect - timings.lookup` + - `tls` - `timings.secureConnect - timings.connect` + - `request` - `timings.upload - (timings.secureConnect || timings.connect)` + - `firstByte` - `timings.response - timings.upload` + - `download` - `timings.end - timings.response` + - `total` - `(timings.end || timings.error || timings.abort) - timings.start` + +If something has not been measured yet, it will be `undefined`. + +## License + +MIT diff --git a/node_modules/@szmarczak/http-timer/dist/source/index.d.ts b/node_modules/@szmarczak/http-timer/dist/source/index.d.ts new file mode 100644 index 0000000..2620b4a --- /dev/null +++ b/node_modules/@szmarczak/http-timer/dist/source/index.d.ts @@ -0,0 +1,32 @@ +/// +import { ClientRequest, IncomingMessage } from 'http'; +export interface Timings { + start: number; + socket?: number; + lookup?: number; + connect?: number; + secureConnect?: number; + upload?: number; + response?: number; + end?: number; + error?: number; + abort?: number; + phases: { + wait?: number; + dns?: number; + tcp?: number; + tls?: number; + request?: number; + firstByte?: number; + download?: number; + total?: number; + }; +} +export interface ClientRequestWithTimings extends ClientRequest { + timings?: Timings; +} +export interface IncomingMessageWithTimings extends IncomingMessage { + timings?: Timings; +} +declare const timer: (request: ClientRequestWithTimings) => Timings; +export default timer; diff --git a/node_modules/@szmarczak/http-timer/dist/source/index.js b/node_modules/@szmarczak/http-timer/dist/source/index.js new file mode 100644 index 0000000..6f07245 --- /dev/null +++ b/node_modules/@szmarczak/http-timer/dist/source/index.js @@ -0,0 +1,126 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +const defer_to_connect_1 = require("defer-to-connect"); +const util_1 = require("util"); +const nodejsMajorVersion = Number(process.versions.node.split('.')[0]); +const timer = (request) => { + if (request.timings) { + return request.timings; + } + const timings = { + start: Date.now(), + socket: undefined, + lookup: undefined, + connect: undefined, + secureConnect: undefined, + upload: undefined, + response: undefined, + end: undefined, + error: undefined, + abort: undefined, + phases: { + wait: undefined, + dns: undefined, + tcp: undefined, + tls: undefined, + request: undefined, + firstByte: undefined, + download: undefined, + total: undefined + } + }; + request.timings = timings; + const handleError = (origin) => { + const emit = origin.emit.bind(origin); + origin.emit = (event, ...args) => { + // Catches the `error` event + if (event === 'error') { + timings.error = Date.now(); + timings.phases.total = timings.error - timings.start; + origin.emit = emit; + } + // Saves the original behavior + return emit(event, ...args); + }; + }; + handleError(request); + const onAbort = () => { + timings.abort = Date.now(); + // Let the `end` response event be responsible for setting the total phase, + // unless the Node.js major version is >= 13. + if (!timings.response || nodejsMajorVersion >= 13) { + timings.phases.total = Date.now() - timings.start; + } + }; + request.prependOnceListener('abort', onAbort); + const onSocket = (socket) => { + timings.socket = Date.now(); + timings.phases.wait = timings.socket - timings.start; + if (util_1.types.isProxy(socket)) { + return; + } + const lookupListener = () => { + timings.lookup = Date.now(); + timings.phases.dns = timings.lookup - timings.socket; + }; + socket.prependOnceListener('lookup', lookupListener); + defer_to_connect_1.default(socket, { + connect: () => { + timings.connect = Date.now(); + if (timings.lookup === undefined) { + socket.removeListener('lookup', lookupListener); + timings.lookup = timings.connect; + timings.phases.dns = timings.lookup - timings.socket; + } + timings.phases.tcp = timings.connect - timings.lookup; + // This callback is called before flushing any data, + // so we don't need to set `timings.phases.request` here. + }, + secureConnect: () => { + timings.secureConnect = Date.now(); + timings.phases.tls = timings.secureConnect - timings.connect; + } + }); + }; + if (request.socket) { + onSocket(request.socket); + } + else { + request.prependOnceListener('socket', onSocket); + } + const onUpload = () => { + var _a; + timings.upload = Date.now(); + timings.phases.request = timings.upload - ((_a = timings.secureConnect) !== null && _a !== void 0 ? _a : timings.connect); + }; + const writableFinished = () => { + if (typeof request.writableFinished === 'boolean') { + return request.writableFinished; + } + // Node.js doesn't have `request.writableFinished` property + return request.finished && request.outputSize === 0 && (!request.socket || request.socket.writableLength === 0); + }; + if (writableFinished()) { + onUpload(); + } + else { + request.prependOnceListener('finish', onUpload); + } + request.prependOnceListener('response', (response) => { + timings.response = Date.now(); + timings.phases.firstByte = timings.response - timings.upload; + response.timings = timings; + handleError(response); + response.prependOnceListener('end', () => { + timings.end = Date.now(); + timings.phases.download = timings.end - timings.response; + timings.phases.total = timings.end - timings.start; + }); + response.prependOnceListener('aborted', onAbort); + }); + return timings; +}; +exports.default = timer; +// For CommonJS default export support +module.exports = timer; +module.exports.default = timer; diff --git a/node_modules/@szmarczak/http-timer/package.json b/node_modules/@szmarczak/http-timer/package.json new file mode 100644 index 0000000..43a3559 --- /dev/null +++ b/node_modules/@szmarczak/http-timer/package.json @@ -0,0 +1,72 @@ +{ + "name": "@szmarczak/http-timer", + "version": "4.0.6", + "description": "Timings for HTTP requests", + "main": "dist/source", + "engines": { + "node": ">=10" + }, + "scripts": { + "test": "xo && tsc --noEmit && nyc ava", + "build": "del-cli dist && tsc", + "prepare": "npm run build", + "coveralls": "nyc report --reporter=text-lcov | coveralls" + }, + "files": [ + "dist/source" + ], + "keywords": [ + "http", + "https", + "timer", + "timings" + ], + "repository": { + "type": "git", + "url": "git+https://github.com/szmarczak/http-timer.git" + }, + "author": "Szymon Marczak", + "license": "MIT", + "bugs": { + "url": "https://github.com/szmarczak/http-timer/issues" + }, + "homepage": "https://github.com/szmarczak/http-timer#readme", + "dependencies": { + "defer-to-connect": "^2.0.0" + }, + "devDependencies": { + "@ava/typescript": "^2.0.0", + "@sindresorhus/tsconfig": "^1.0.2", + "@types/node": "^16.3.1", + "ava": "^3.15.0", + "coveralls": "^3.1.1", + "del-cli": "^3.0.1", + "http2-wrapper": "^2.0.7", + "nyc": "^15.1.0", + "p-event": "^4.2.0", + "typescript": "^4.3.5", + "xo": "^0.39.1" + }, + "types": "dist/source", + "nyc": { + "extension": [ + ".ts" + ], + "exclude": [ + "**/tests/**" + ] + }, + "xo": { + "rules": { + "@typescript-eslint/no-non-null-assertion": "off" + } + }, + "ava": { + "typescript": { + "compile": false, + "rewritePaths": { + "tests/": "dist/tests/" + } + } + } +} diff --git a/node_modules/@testim/chrome-version/.eslintrc.json b/node_modules/@testim/chrome-version/.eslintrc.json new file mode 100644 index 0000000..5e7388b --- /dev/null +++ b/node_modules/@testim/chrome-version/.eslintrc.json @@ -0,0 +1,33 @@ +{ + "env": { + "commonjs": true, + "es6": true, + "node": true + }, + "extends": "eslint:recommended", + "globals": { + "Atomics": "readonly", + "SharedArrayBuffer": "readonly" + }, + "parserOptions": { + "ecmaVersion": 2018 + }, + "rules": { + "indent": [ + "error", + 4 + ], + "linebreak-style": [ + "error", + "unix" + ], + "quotes": [ + "error", + "single" + ], + "semi": [ + "error", + "always" + ] + } +} \ No newline at end of file diff --git a/node_modules/@testim/chrome-version/.github/workflows/ci.yml b/node_modules/@testim/chrome-version/.github/workflows/ci.yml new file mode 100644 index 0000000..beab99e --- /dev/null +++ b/node_modules/@testim/chrome-version/.github/workflows/ci.yml @@ -0,0 +1,19 @@ +name: Tests +on: [push, pull_request] +jobs: + test: + name: 'Test on Node.js v${{ matrix.node }} / ${{ matrix.os }}' + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest, macOS-latest] + node: [10, 12, 14, 16] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node }} + - run: npm install + - run: npm test \ No newline at end of file diff --git a/node_modules/@testim/chrome-version/CODE_OF_CONDUCT.md b/node_modules/@testim/chrome-version/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..ae41c2e --- /dev/null +++ b/node_modules/@testim/chrome-version/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at benji@testim.io. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +https://www.contributor-covenant.org/faq \ No newline at end of file diff --git a/node_modules/@testim/chrome-version/LICENSE b/node_modules/@testim/chrome-version/LICENSE new file mode 100644 index 0000000..34b15b7 --- /dev/null +++ b/node_modules/@testim/chrome-version/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018-2019 Testim.io + +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/@testim/chrome-version/chrome-finder/darwin.js b/node_modules/@testim/chrome-version/chrome-finder/darwin.js new file mode 100644 index 0000000..bdfd8ba --- /dev/null +++ b/node_modules/@testim/chrome-version/chrome-finder/darwin.js @@ -0,0 +1,51 @@ +const { execSync } = require('child_process'); +const path = require('path').posix; +const { canAccess, newLineRegex, sort } = require('./util'); + +function darwin(includeChromium = false) { + const suffixes = [ + // '/Contents/MacOS/Google Chrome Canary', + '/Contents/MacOS/Google Chrome', + ... includeChromium ? ['/Contents/MacOS/Chromium'] : [] + ]; + + const LSREGISTER = '/System/Library/Frameworks/CoreServices.framework' + + '/Versions/A/Frameworks/LaunchServices.framework' + + '/Versions/A/Support/lsregister'; + + const installations = []; + + execSync( + `${LSREGISTER} -dump` + + ' | grep -E -i \'(google chrome( canary)?' + (includeChromium ? '|chromium' : '') + ').app(\\s\\(0x[0-9a-f]+\\))?$\'' + + ' | awk \'sub(/\\(0x[0-9a-f]+\\)/, "")\'' + + ' | awk \'{$1=""; print $0}\'' + + ' | awk \'{ gsub(/^[ \\t]+|[ \\t]+$/, ""); print }\'') + .toString() + .split(newLineRegex) + .forEach((inst) => { + suffixes.forEach(suffix => { + const execPath = path.join(inst.trim(), suffix); + if (canAccess(execPath)) { + installations.push(execPath); + } + }); + }); + + // Retains one per line to maintain readability. + const priorities = [ + { regex: new RegExp(`^${process.env.HOME}/Applications/.*Chromium.app`), weight: 49 }, + { regex: new RegExp(`^${process.env.HOME}/Applications/.*Chrome.app`), weight: 50 }, + // { regex: new RegExp(`^${process.env.HOME}/Applications/.*Chrome Canary.app`), weight: 51 }, + { regex: /^\/Applications\/.*Chromium.app/, weight: 99 }, + { regex: /^\/Applications\/.*Chrome.app/, weight: 100 }, + // { regex: /^\/Applications\/.*Chrome Canary.app/, weight: 101 }, + { regex: /^\/Volumes\/.*Chromium.app/, weight: -3 }, + { regex: /^\/Volumes\/.*Chrome.app/, weight: -2 }, + // { regex: /^\/Volumes\/.*Chrome Canary.app/, weight: -1 } + ]; + + return sort(installations, priorities); +} + +module.exports = darwin; diff --git a/node_modules/@testim/chrome-version/chrome-finder/index.d.ts b/node_modules/@testim/chrome-version/chrome-finder/index.d.ts new file mode 100644 index 0000000..ba0f8a4 --- /dev/null +++ b/node_modules/@testim/chrome-version/chrome-finder/index.d.ts @@ -0,0 +1,9 @@ +/** + * find a executable chrome for all support system + * @returns {string} executable chrome full path + * @throws + * if no executable chrome find, ERROR_NO_INSTALLATIONS_FOUND will be throw + * if platform is not one if ['win32','darwin','linux'], ERROR_PLATFORM_NOT_SUPPORT will be throw + */ +declare function findChrome(): string; +export = findChrome; diff --git a/node_modules/@testim/chrome-version/chrome-finder/index.js b/node_modules/@testim/chrome-version/chrome-finder/index.js new file mode 100644 index 0000000..d7a9c63 --- /dev/null +++ b/node_modules/@testim/chrome-version/chrome-finder/index.js @@ -0,0 +1,39 @@ +'use strict'; +const ERROR_PLATFORM_NOT_SUPPORT = new Error('platform not support'); +const ERROR_NO_INSTALLATIONS_FOUND = new Error('no chrome installations found'); + +/** + * Find a executable Chrome (or Chromium) for all supported systems. + * + * Supports macOS, Linux, and Windows. + * + * @param {boolean} includeChromium true if we should consider Chromium in our search, false otherwise. + * @returns {string} the first full path to an executable Chrome (or Chromium) + * @throws + * if no executable Chrome (or Chromium) find, ERROR_NO_INSTALLATIONS_FOUND will be throw + * if platform is not one if ['win32','darwin','linux'], ERROR_PLATFORM_NOT_SUPPORT will be throw + */ +function findChrome(includeChromium = false) { + const { platform } = process; + let installations = []; + switch (platform) { + case 'win32': + installations = require('./win32')(includeChromium); + break; + case 'darwin': + installations = require('./darwin')(includeChromium); + break; + case 'linux': + installations = require('./linux')(includeChromium); + break; + default: + throw ERROR_PLATFORM_NOT_SUPPORT; + } + if (installations.length) { + return installations[0]; + } else { + throw ERROR_NO_INSTALLATIONS_FOUND; + } +} + +module.exports = findChrome; diff --git a/node_modules/@testim/chrome-version/chrome-finder/linux.js b/node_modules/@testim/chrome-version/chrome-finder/linux.js new file mode 100644 index 0000000..a0a8357 --- /dev/null +++ b/node_modules/@testim/chrome-version/chrome-finder/linux.js @@ -0,0 +1,112 @@ +const { execSync, execFileSync } = require('child_process'); +const path = require('path').posix; +const fs = require('fs'); +const { canAccess, sort, isExecutable, newLineRegex } = require('./util'); + + +function findChromeExecutablesForLinuxDesktop(folder, includeChromium = false) { + const argumentsRegex = /(^[^ ]+).*/; // Take everything up to the first space + const chromeExecRegex = '^Exec=\/.*\/(google|chrome' + (includeChromium ? '|chromium' : '') + ')-.*'; + + let installations = []; + if (canAccess(folder)) { + // Output of the grep & print looks like: + // /opt/google/chrome/google-chrome --profile-directory + // /home/user/Downloads/chrome-linux/chrome-wrapper %U + let execPaths; + execPaths = execSync(`find "${folder}" -type f -exec grep -E "${chromeExecRegex}" "{}" \\; | awk -F '=' '{print $2}'`); + + execPaths = execPaths + .toString() + .split(newLineRegex) + .map((execPath) => execPath.replace(argumentsRegex, '$1')); + + execPaths.forEach((execPath) => canAccess(execPath) && installations.push(execPath)); + } + + return installations; +} + +function findChromeExecutablesForLinux(validChromePaths, includeChromium = false) { + const executables = [ + 'google-chrome-stable', + 'google-chrome', + ... includeChromium ? ['chromium', 'chromium-browser', 'chromium/chrome'] : [] // chromium/chrome is for toradex machines where "chromium" is a directory. seen on Angstrom v2016.12 + ]; + + return executables.map(executable => { + const existingPaths = validChromePaths.map(possiblePath => { + try { + const chromePathToTest = possiblePath + '/' + executable; + if (fs.existsSync(chromePathToTest) && canAccess(chromePathToTest) && isExecutable(chromePathToTest)) { + return [ chromePathToTest ]; + } + } catch (err) { + // not installed on this path or inaccessible + } + return []; + }).reduce((acc, val) => acc.concat(val), []); //.filter((foundChromePath) => foundChromePath); + + // skip asking "which" command if the binary was found by searching the known paths. + if (existingPaths && existingPaths.length > 0) { + return existingPaths; + } + + try { + const chromePath = execFileSync('which', [executable]).toString().split(newLineRegex)[0]; + if (canAccess(chromePath)) { + return [ chromePath ]; + } + } catch (err) { + // cmd which not installed. + } + + return []; + + }).reduce((acc, val) => acc.concat(val), []); +} + +/** + * Look for linux executables in 2 ways + * 1. Look into the directories where .desktop are saved on gnome based distro's + * 2. Look for google-chrome-stable and google-chrome executables by using the which command + * If includeChromium is set, also look for chromium, chromium-browser, and chromium/chrome executables by using the which command + */ +function linux(includeChromium = false) { + let installations = []; + + // 1. Look into the directories where .desktop are saved on gnome based distro's + const desktopInstallationFolders = [ + path.join(require('os').homedir(), '.local/share/applications/'), + '/usr/share/applications/', + ]; + desktopInstallationFolders.forEach(folder => { + installations = installations.concat(findChromeExecutablesForLinuxDesktop(folder, includeChromium)); + }); + + // 2. Look for google-chrome-stable and google-chrome (and optionally chromium, chromium-browser, and chromium-chrome) executables by using the which command + // see http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/ + const validChromePaths = [ + '/usr/bin', + '/usr/local/bin', + '/usr/sbin', + '/usr/local/sbin', + '/opt/bin', + '/usr/bin/X11', + '/usr/X11R6/bin' + ]; + installations = installations.concat(findChromeExecutablesForLinux(validChromePaths, includeChromium)); + + const priorities = [ + { regex: /chromium$/, weight: 52 }, + { regex: /chrome-wrapper$/, weight: 51 }, + { regex: /google-chrome-stable$/, weight: 50 }, + { regex: /google-chrome$/, weight: 49 }, + { regex: /chromium-browser$/, weight: 48 }, + { regex: /chrome$/, weight: 47 }, + ]; + + return sort(Array.from(new Set(installations.filter(Boolean))), priorities); +} + +module.exports = linux; diff --git a/node_modules/@testim/chrome-version/chrome-finder/util.js b/node_modules/@testim/chrome-version/chrome-finder/util.js new file mode 100644 index 0000000..671668b --- /dev/null +++ b/node_modules/@testim/chrome-version/chrome-finder/util.js @@ -0,0 +1,56 @@ +const fs = require('fs'); + +const newLineRegex = /\r?\n/; + +function sort(installations, priorities) { + const defaultPriority = 10; + // assign priorities + return installations + .map((inst) => { + for (const pair of priorities) { + if (pair.regex.test(inst)) { + return { path: inst, weight: pair.weight }; + } + } + return { path: inst, weight: defaultPriority }; + }) + // sort based on priorities + .sort((a, b) => (b.weight - a.weight)) + // remove priority flag + .map(pair => pair.path); +} + +function canAccess(file) { + if (!file) { + return false; + } + + try { + fs.accessSync(file); + return true; + } catch (e) { + return false; + } +} + +function isExecutable(file) { + if (!file) { + return false; + } + + try { + var stat = fs.statSync(file); + return stat && typeof stat.isFile === "function" && stat.isFile(); + } catch (e) { + return false; + } +} + +module.exports = { + sort, + canAccess, + isExecutable, + newLineRegex, +} + + diff --git a/node_modules/@testim/chrome-version/chrome-finder/win32.js b/node_modules/@testim/chrome-version/chrome-finder/win32.js new file mode 100644 index 0000000..57cd66c --- /dev/null +++ b/node_modules/@testim/chrome-version/chrome-finder/win32.js @@ -0,0 +1,30 @@ +const path = require('path').win32; +const { canAccess } = require('./util'); +const procesEnv = process.env; + + +function win32(includeChromium = false) { + const installations = []; + const suffixes = [ + '\\Google\\Chrome SxS\\Application\\chrome.exe', + '\\Google\\Chrome\\Application\\chrome.exe', + '\\chrome-win32\\chrome.exe', + ... includeChromium ? ['\\Chromium\\Application\\chrome.exe'] : [], + // '\\Google\\Chrome Beta\\Application\\chrome.exe', + ]; + const prefixes = [ + procesEnv.LOCALAPPDATA, + procesEnv.PROGRAMFILES, + procesEnv['PROGRAMFILES(X86)'] + ].filter(prefix => prefix); // filter out undefined + + prefixes.forEach(prefix => suffixes.forEach(suffix => { + const chromePath = path.join(prefix, suffix); + if (canAccess(chromePath)) { + installations.push(chromePath); + } + })); + return installations; +} + +module.exports = win32; diff --git a/node_modules/@testim/chrome-version/example.js b/node_modules/@testim/chrome-version/example.js new file mode 100644 index 0000000..d106706 --- /dev/null +++ b/node_modules/@testim/chrome-version/example.js @@ -0,0 +1,6 @@ + +(async () => { + const { getChromeVersion } = require('./index'); + const version = await getChromeVersion(); + console.log(version); +})(); \ No newline at end of file diff --git a/node_modules/@testim/chrome-version/index.js b/node_modules/@testim/chrome-version/index.js new file mode 100644 index 0000000..5c38cd5 --- /dev/null +++ b/node_modules/@testim/chrome-version/index.js @@ -0,0 +1,106 @@ +'use strict'; + +const findChrome = require('./chrome-finder'); +const util = require('util'); +const exec = util.promisify(require('child_process').exec); +const path = require('path'); +const readdir = util.promisify(require('fs').readdir); +const { execSync } = require('child_process'); + +async function getChromeVersionFromCli(includeChromium) { + + let chromePath; + try { + chromePath = findChrome(includeChromium); + } catch (err) { + return null; + } + + const res = await exec(chromePath.replace(/ /g, '\\ ') + ' --version'); + + const version = extractChromeVersionNumer(res.stdout); + return version; +} + +function extractChromeVersionNumer(chromeVersionString) { + return chromeVersionString.replace(/\D*(([0-9]+\.?)+)\s?.*/, '$1'); +} + +async function getChromeVersionWin(includeChromium) { + + let chromePath; + try { + chromePath = findChrome(includeChromium); + } catch (err) { + return null; + } + + const versionPath = path.dirname(chromePath); + + const contents = await readdir(versionPath); + + const versions = contents.filter(a => /^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$/g.test(a)); + + // returning oldest in case there is an updated version and chrome still hasn't relaunched + const oldest = versions.sort((a, b) => a > b)[0]; + + return oldest; +} + +function getChromeVersionFromOsa(includeChromium) { + + try { + const version = execSync('osascript -e \'tell application "Google Chrome" to get version\'').toString().trim(); + return version; + } catch (err) { + if (!includeChromium) { + return null; + } + // else fall-through to check for Chromium below + } + + try { + const version = execSync('osascript -e \'tell application "Chromium" to get version\'').toString().trim(); + return version; + } catch (err) { + return null; + } +} + + +async function innerGetChromeVersion(includeChromium = false) { + + const os = process.platform; + + if (os === 'darwin') return getChromeVersionFromOsa(includeChromium); + if (os === 'linux') return getChromeVersionFromCli(includeChromium); + if (os.includes('win')) return getChromeVersionWin(includeChromium); + + console.log(`${os} is not supported`); + + return null; +} + +/** + * Gets the version of Chrome (or Chromium) that is installed. + * + * Supports macOS, Linux, and Windows. + * + * @param {boolean} includeChromium true if we should consider Chromium in our search, false otherwise. + * @returns {string} the version number of Chrome (or Chromium), or null if the OS is not supported. + */ +async function getChromeVersion(includeChromium = false) { + const res = await innerGetChromeVersion(includeChromium); + if (typeof res === 'string') { + return res.trim(); + } + return res; +} + +if (require.main == module) { + getChromeVersion().then(v => console.log(v)); +} + +module.exports = { + getChromeVersion +}; \ No newline at end of file diff --git a/node_modules/@testim/chrome-version/package.json b/node_modules/@testim/chrome-version/package.json new file mode 100644 index 0000000..e4088d3 --- /dev/null +++ b/node_modules/@testim/chrome-version/package.json @@ -0,0 +1,27 @@ +{ + "name": "@testim/chrome-version", + "version": "1.1.3", + "description": "Finds the version of Chrome that is installed on your machine", + "main": "index.js", + "scripts": { + "lint": "eslint *.js --fix", + "test": "mocha" + }, + "repository": { + "type": "git", + "url": "https://github.com/testimio/chrome-version.git" + }, + "author": "Testim", + "license": "MIT", + "homepage": "https://github.com/testimio/chrome-version", + "keywords": [ + "chrome", + "version" + ], + "devDependencies": { + "chai": "4.3.4", + "eslint": "8.7.0", + "mocha": "9.1.4", + "rewire": "6.0.0" + } +} diff --git a/node_modules/@testim/chrome-version/readme.MD b/node_modules/@testim/chrome-version/readme.MD new file mode 100644 index 0000000..fd09cef --- /dev/null +++ b/node_modules/@testim/chrome-version/readme.MD @@ -0,0 +1,27 @@ +# chrome-version + +[![Build Status](https://github.com/testimio/chrome-version/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/testimio/chrome-version/actions/workflows/ci.yml) + +Finds the version of Chrome (or Chromium) that is installed on your machine. + +## Installation +```sh +npm install @testim/chrome-version +``` + +## Use +```js +(async () => { + const { getChromeVersion } = require('@testim/chrome-version'); + const includeChromium = false; // NOTE: set to true to also search for Chromium + const version = await getChromeVersion(includeChromium); + console.log(version); +})(); +``` + +## Testing +```sh +npm test +``` + +* If no version of chrome is installed on your machine `getChromeVersion` will return null. diff --git a/node_modules/@testim/chrome-version/test/test.js b/node_modules/@testim/chrome-version/test/test.js new file mode 100644 index 0000000..0d7b3b3 --- /dev/null +++ b/node_modules/@testim/chrome-version/test/test.js @@ -0,0 +1,370 @@ +const chai = require('chai'); +const expect = chai.expect; +const Buffer = require('buffer').Buffer; + +// rewrite to get access for testing +const rewire = require("rewire"); +const chromeVersionModule = rewire("../index.js"); +const extractChromeVersionNumer = chromeVersionModule.__get__('extractChromeVersionNumer'); +const getChromeVersionFromOsa = chromeVersionModule.__get__('getChromeVersionFromOsa'); +const chromeFinderLinuxModule = rewire("../chrome-finder/linux.js"); +const findChromeExecutablesForLinuxDesktop = chromeFinderLinuxModule.__get__('findChromeExecutablesForLinuxDesktop'); +const findChromeExecutablesForLinux = chromeFinderLinuxModule.__get__('findChromeExecutablesForLinux'); +const chromeFinderDarwinModule = rewire("../chrome-finder/darwin.js"); +const findChromeForDarwin = chromeFinderDarwinModule.__get__('darwin'); +const chromeFinderWin32Module = rewire("../chrome-finder/win32.js"); +const findChromeForWin32 = chromeFinderWin32Module.__get__('win32'); + +describe('Chrome Finder', function() { + + describe('extractChromeVersionNumer from Google Chrome 95.0.4638', function() { + it('should return "95.0.4638"', function() { + const versionString = 'Google Chrome 95.0.4638'; + const versionNumber = extractChromeVersionNumer(versionString); + expect(versionNumber).to.equal('95.0.4638'); + }); + }); + + describe('extractChromeVersionNumer from Google Chrome 96.0.4664.110', function() { + it('should return "96.0.4664.110"', function() { + const versionString = 'Google Chrome 96.0.4664.110'; + const versionNumber = extractChromeVersionNumer(versionString); + expect(versionNumber).to.equal('96.0.4664.110'); + }); + }); + + describe('extractChromeVersionNumer from Google Chrome 97.0.4692.71', function() { + it('should return "97.0.4692.71"', function() { + const versionString = 'Google Chrome 97.0.4692.71'; + const versionNumber = extractChromeVersionNumer(versionString); + expect(versionNumber).to.equal('97.0.4692.71'); + }); + }); + + describe('extractChromiumVersionNumer from Chromium 105.0.5195.102 built on Debian 11.4, running on Debian 11.5', function() { + it('should return "105.0.5195.102"', function() { + const versionString = 'Chromium 105.0.5195.102 built on Debian 11.4, running on Debian 11.5'; + const versionNumber = extractChromeVersionNumer(versionString); + expect(versionNumber).to.equal('105.0.5195.102'); + }); + }); + + describe('extractChromiumVersionNumer from Chromium 90.0.4430.212 Fedora Project', function() { + it('should return "90.0.4430.212"', function() { + const versionString = 'Chromium 90.0.4430.212 Fedora Project'; + const versionNumber = extractChromeVersionNumer(versionString); + expect(versionNumber).to.equal('90.0.4430.212'); + }); + }); + + describe('extractChromiumVersionNumer from Chromium 98.0.4753.0', function() { + it('should return "98.0.4753.0"', function() { + const versionString = 'Chromium 98.0.4753.0'; + const versionNumber = extractChromeVersionNumer(versionString); + expect(versionNumber).to.equal('98.0.4753.0'); + }); + }); + + describe('getChromeVersionFromOsa when includeChromium=false', function() { + it('should only find Chrome', function() { + const includeChromium = false; + + const mockVersion = '97.0.4692.71'; + + var execSyncCommand; + chromeVersionModule.__set__('execSync', function(command) { + execSyncCommand = command; + return Buffer.from(mockVersion); + }); + + const version = getChromeVersionFromOsa(includeChromium); + + expect(execSyncCommand).to.include('Google Chrome'); + expect(execSyncCommand).to.not.include('Chromium'); + + expect(version).to.equal(mockVersion); + }); + }); + + describe('getChromeVersionFromOsa when includeChromium=true', function() { + it('should only find Chromium', function() { + const includeChromium = true; + + const mockVersion = '98.0.4753.0'; + + var execSyncCommands = []; + chromeVersionModule.__set__('execSync', function(command) { + execSyncCommands.push(command); + if (execSyncCommands.length == 1) { + throw "not found" + } + return Buffer.from(mockVersion); + }); + + const version = getChromeVersionFromOsa(includeChromium); + + expect(execSyncCommands.length).equal(2); + expect(execSyncCommands[0]).to.include('Google Chrome'); + expect(execSyncCommands[1]).to.include('Chromium'); + + expect(version).to.equal(mockVersion); + }); + }); +}); + +describe('Chrome Finder Linux Module', function() { + + describe('Linux Desktop when includeChromium=false', function() { + it('should only find Chrome', function() { + + const includeChromium = false; + + const mockChromePaths = [ + '/opt/google/chrome/google-chrome', + '/home/user/Downloads/chrome-linux/chrome-wrapper' + ]; + + chromeFinderLinuxModule.__set__('canAccess', function(file) { + return true; + }); + + var execSyncCommand; + chromeFinderLinuxModule.__set__('execSync', function(command) { + execSyncCommand = command; + return Buffer.from(mockChromePaths.join('\n')); + }); + + const mockDesktopFolder = "mock-desktop-folder"; + const executables = findChromeExecutablesForLinuxDesktop(mockDesktopFolder, includeChromium); + + expect(execSyncCommand).to.include(mockDesktopFolder); + expect(execSyncCommand).to.not.include('|chromium'); + + expect(executables).to.have.lengthOf(2); + expect(executables).to.deep.equal(mockChromePaths); + }); + }); + + describe('Linux Desktop when includeChromium=true', function() { + it('should find Chrome and Chromium', function() { + + const includeChromium = true; + + const mockChromePaths = [ + '/opt/google/chrome/google-chrome', + '/home/user/Downloads/chrome-linux/chrome-wrapper', + '/usr/local/bin/chromium-browser' + ]; + + chromeFinderLinuxModule.__set__('canAccess', function(file) { + return true; + }); + + var execSyncCommand; + chromeFinderLinuxModule.__set__('execSync', function(command) { + execSyncCommand = command; + return Buffer.from(mockChromePaths.join('\n')); + }); + + const mockDesktopFolder = "mock-desktop-folder"; + const executables = findChromeExecutablesForLinuxDesktop(mockDesktopFolder, includeChromium); + + expect(execSyncCommand).to.include(mockDesktopFolder); + expect(execSyncCommand).to.include('|chromium'); + + expect(executables).to.have.lengthOf(3); + expect(executables).to.deep.equal(mockChromePaths); + }); + }); + + describe('Linux when includeChromium=false', function() { + it('should only find Chrome', function() { + + const includeChromium = false; + + const mockPaths = [ + '/mock-path' + ]; + + chromeFinderLinuxModule.__set__('fs', { + existsSync: function(file) { + return true; + } + }); + chromeFinderLinuxModule.__set__('canAccess', function(file) { + return true; + }); + chromeFinderLinuxModule.__set__('isExecutable', function(file) { + return true; + }); + + const executables = findChromeExecutablesForLinux(mockPaths, includeChromium); + expect(executables).to.have.lengthOf(2); + + const expectedExecutables = mockPaths.map(mockPath => ['google-chrome-stable', 'google-chrome'].map(executable => mockPath + '/' + executable)).reduce((acc, val) => acc.concat(val), []); + expect(executables).to.deep.equal(expectedExecutables); + }); + }); + + describe('Linux when includeChromium=true', function() { + it('should find Chrome and Chromium', function() { + + const includeChromium = true; + + const mockPaths = [ + '/mock-path' + ]; + + chromeFinderLinuxModule.__set__('fs', { + existsSync: function(file) { + return true; + } + }); + chromeFinderLinuxModule.__set__('canAccess', function(file) { + return true; + }); + chromeFinderLinuxModule.__set__('isExecutable', function(file) { + return true; + }); + + const executables = findChromeExecutablesForLinux(mockPaths, includeChromium); + expect(executables).to.have.lengthOf(5); + + const expectedExecutables = mockPaths.map(mockPath => ['google-chrome-stable', 'google-chrome', 'chromium', 'chromium-browser', 'chromium/chrome'].map(executable => mockPath + '/' + executable)).reduce((acc, val) => acc.concat(val), []); + expect(executables).to.deep.equal(expectedExecutables); + }); + }); +}); + +describe('Chrome Finder Darwin Module', function() { + + describe('Darwin when includeChromium=false', function() { + it('should only find Chrome', function() { + + const includeChromium = false; + + const mockChromePaths = [ + '/Applications/Google Chrome.app' + ]; + + chromeFinderDarwinModule.__set__('canAccess', function(file) { + return true; + }); + + var execSyncCommand; + chromeFinderDarwinModule.__set__('execSync', function(command) { + execSyncCommand = command; + return Buffer.from(mockChromePaths.join('\n')); + }); + + const executables = findChromeForDarwin(includeChromium); + expect(execSyncCommand).to.not.include('|chromium'); + + expect(executables).to.have.lengthOf(1); + expect(executables).to.deep.equal(mockChromePaths.map(mockChromePath => mockChromePath + '/Contents/MacOS/Google Chrome')); + }); + }); + + describe('Darwin when includeChromium=true', function() { + it('should only find Chrome', function() { + + const includeChromium = true; + + const mockChromePaths = [ + '/Applications/Google Chrome.app', + '/Applications/Chromium.app' + ]; + + const expectedExecutables = [ + '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome', + '/Applications/Chromium.app/Contents/MacOS/Chromium' + ]; + + chromeFinderDarwinModule.__set__('canAccess', function(file) { + return expectedExecutables.includes(file); + }); + + var execSyncCommand; + chromeFinderDarwinModule.__set__('execSync', function(command) { + execSyncCommand = command; + return Buffer.from(mockChromePaths.join('\n')); + }); + + const executables = findChromeForDarwin(includeChromium); + expect(execSyncCommand).to.include('|chromium'); + + expect(executables).to.have.lengthOf(2); + expect(executables).to.deep.equal(expectedExecutables); + }); + }); +}); + +describe('Chrome Finder Win32 Module', function() { + + describe('Win32 when includeChromium=false', function() { + it('should only find Chrome', function() { + + const includeChromium = false; + + chromeFinderWin32Module.__set__('canAccess', function(file) { + return true; + }); + + chromeFinderWin32Module.__set__('procesEnv', { + LOCALAPPDATA: 'mock-local-app-data', + PROGRAMFILES: 'mock-program-files', + 'PROGRAMFILES(X86)': 'mock-program-files-x86' + }); + + const executables = findChromeForWin32(includeChromium); + + expect(executables).to.have.lengthOf(9); + expect(executables).to.deep.equal([ + 'mock-local-app-data\\Google\\Chrome SxS\\Application\\chrome.exe', + 'mock-local-app-data\\Google\\Chrome\\Application\\chrome.exe', + 'mock-local-app-data\\chrome-win32\\chrome.exe', + 'mock-program-files\\Google\\Chrome SxS\\Application\\chrome.exe', + 'mock-program-files\\Google\\Chrome\\Application\\chrome.exe', + 'mock-program-files\\chrome-win32\\chrome.exe', + 'mock-program-files-x86\\Google\\Chrome SxS\\Application\\chrome.exe', + 'mock-program-files-x86\\Google\\Chrome\\Application\\chrome.exe', + 'mock-program-files-x86\\chrome-win32\\chrome.exe' + ]); + }); + }); + + describe('Win32 when includeChromium=true', function() { + it('should only find Chrome', function() { + + const includeChromium = true; + + chromeFinderWin32Module.__set__('canAccess', function(file) { + return true; + }); + + chromeFinderWin32Module.__set__('procesEnv', { + LOCALAPPDATA: 'mock-local-app-data', + PROGRAMFILES: 'mock-program-files', + 'PROGRAMFILES(X86)': 'mock-program-files-x86' + }); + + const executables = findChromeForWin32(includeChromium); + + expect(executables).to.have.lengthOf(12); + expect(executables).to.deep.equal([ + 'mock-local-app-data\\Google\\Chrome SxS\\Application\\chrome.exe', + 'mock-local-app-data\\Google\\Chrome\\Application\\chrome.exe', + 'mock-local-app-data\\chrome-win32\\chrome.exe', + 'mock-local-app-data\\Chromium\\Application\\chrome.exe', + 'mock-program-files\\Google\\Chrome SxS\\Application\\chrome.exe', + 'mock-program-files\\Google\\Chrome\\Application\\chrome.exe', + 'mock-program-files\\chrome-win32\\chrome.exe', + 'mock-program-files\\Chromium\\Application\\chrome.exe', + 'mock-program-files-x86\\Google\\Chrome SxS\\Application\\chrome.exe', + 'mock-program-files-x86\\Google\\Chrome\\Application\\chrome.exe', + 'mock-program-files-x86\\chrome-win32\\chrome.exe', + 'mock-program-files-x86\\Chromium\\Application\\chrome.exe' + ]); + }); + }); +}); diff --git a/node_modules/@types/cacheable-request/LICENSE b/node_modules/@types/cacheable-request/LICENSE new file mode 100644 index 0000000..9e841e7 --- /dev/null +++ b/node_modules/@types/cacheable-request/LICENSE @@ -0,0 +1,21 @@ + 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/cacheable-request/README.md b/node_modules/@types/cacheable-request/README.md new file mode 100644 index 0000000..8d4f1c1 --- /dev/null +++ b/node_modules/@types/cacheable-request/README.md @@ -0,0 +1,16 @@ +# Installation +> `npm install --save @types/cacheable-request` + +# Summary +This package contains type definitions for cacheable-request (https://github.com/lukechilds/cacheable-request#readme). + +# Details +Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/cacheable-request. + +### Additional Details + * Last updated: Wed, 09 Nov 2022 16:32:53 GMT + * Dependencies: [@types/http-cache-semantics](https://npmjs.com/package/@types/http-cache-semantics), [@types/keyv](https://npmjs.com/package/@types/keyv), [@types/node](https://npmjs.com/package/@types/node), [@types/responselike](https://npmjs.com/package/@types/responselike) + * Global values: none + +# Credits +These definitions were written by [BendingBender](https://github.com/BendingBender), and [Paul Melnikow](https://github.com/paulmelnikow). diff --git a/node_modules/@types/cacheable-request/index.d.ts b/node_modules/@types/cacheable-request/index.d.ts new file mode 100644 index 0000000..832f9b9 --- /dev/null +++ b/node_modules/@types/cacheable-request/index.d.ts @@ -0,0 +1,137 @@ +// Type definitions for cacheable-request 6.0 +// Project: https://github.com/lukechilds/cacheable-request#readme +// Definitions by: BendingBender +// Paul Melnikow +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +/// + +import { request, RequestOptions, ClientRequest, ServerResponse } from 'http'; +import { URL } from 'url'; +import { EventEmitter } from 'events'; +import { Store } from 'keyv'; +import { Options as CacheSemanticsOptions } from 'http-cache-semantics'; +import ResponseLike = require('responselike'); + +export = CacheableRequest; + +declare const CacheableRequest: CacheableRequest; + +type RequestFn = typeof request; + +interface CacheableRequest { + new (requestFn: RequestFn, storageAdapter?: string | CacheableRequest.StorageAdapter): ( + opts: string | URL | (RequestOptions & CacheSemanticsOptions), + cb?: (response: ServerResponse | ResponseLike) => void + ) => CacheableRequest.Emitter; + + RequestError: typeof RequestErrorCls; + CacheError: typeof CacheErrorCls; +} + +declare namespace CacheableRequest { + type StorageAdapter = Store; + + interface Options { + /** + * If the cache should be used. Setting this to `false` will completely bypass the cache for the current request. + * @default true + */ + cache?: boolean | undefined; + + /** + * If set to `true` once a cached resource has expired it is deleted and will have to be re-requested. + * + * If set to `false`, after a cached resource's TTL expires it is kept in the cache and will be revalidated + * on the next request with `If-None-Match`/`If-Modified-Since` headers. + * @default false + */ + strictTtl?: boolean | undefined; + + /** + * Limits TTL. The `number` represents milliseconds. + * @default undefined + */ + maxTtl?: number | undefined; + + /** + * When set to `true`, if the DB connection fails we will automatically fallback to a network request. + * DB errors will still be emitted to notify you of the problem even though the request callback may succeed. + * @default false + */ + automaticFailover?: boolean | undefined; + + /** + * Forces refreshing the cache. If the response could be retrieved from the cache, it will perform a + * new request and override the cache instead. + * @default false + */ + forceRefresh?: boolean | undefined; + } + + interface Emitter extends EventEmitter { + addListener(event: 'request', listener: (request: ClientRequest) => void): this; + addListener( + event: 'response', + listener: (response: ServerResponse | ResponseLike) => void + ): this; + addListener(event: 'error', listener: (error: RequestError | CacheError) => void): this; + on(event: 'request', listener: (request: ClientRequest) => void): this; + on(event: 'response', listener: (response: ServerResponse | ResponseLike) => void): this; + on(event: 'error', listener: (error: RequestError | CacheError) => void): this; + once(event: 'request', listener: (request: ClientRequest) => void): this; + once(event: 'response', listener: (response: ServerResponse | ResponseLike) => void): this; + once(event: 'error', listener: (error: RequestError | CacheError) => void): this; + prependListener(event: 'request', listener: (request: ClientRequest) => void): this; + prependListener( + event: 'response', + listener: (response: ServerResponse | ResponseLike) => void + ): this; + prependListener(event: 'error', listener: (error: RequestError | CacheError) => void): this; + prependOnceListener(event: 'request', listener: (request: ClientRequest) => void): this; + prependOnceListener( + event: 'response', + listener: (response: ServerResponse | ResponseLike) => void + ): this; + prependOnceListener( + event: 'error', + listener: (error: RequestError | CacheError) => void + ): this; + removeListener(event: 'request', listener: (request: ClientRequest) => void): this; + removeListener( + event: 'response', + listener: (response: ServerResponse | ResponseLike) => void + ): this; + removeListener(event: 'error', listener: (error: RequestError | CacheError) => void): this; + off(event: 'request', listener: (request: ClientRequest) => void): this; + off(event: 'response', listener: (response: ServerResponse | ResponseLike) => void): this; + off(event: 'error', listener: (error: RequestError | CacheError) => void): this; + removeAllListeners(event?: 'request' | 'response' | 'error'): this; + listeners(event: 'request'): Array<(request: ClientRequest) => void>; + listeners(event: 'response'): Array<(response: ServerResponse | ResponseLike) => void>; + listeners(event: 'error'): Array<(error: RequestError | CacheError) => void>; + rawListeners(event: 'request'): Array<(request: ClientRequest) => void>; + rawListeners(event: 'response'): Array<(response: ServerResponse | ResponseLike) => void>; + rawListeners(event: 'error'): Array<(error: RequestError | CacheError) => void>; + emit(event: 'request', request: ClientRequest): boolean; + emit(event: 'response', response: ServerResponse | ResponseLike): boolean; + emit(event: 'error', error: RequestError | CacheError): boolean; + eventNames(): Array<'request' | 'response' | 'error'>; + listenerCount(type: 'request' | 'response' | 'error'): number; + } + + type RequestError = RequestErrorCls; + type CacheError = CacheErrorCls; +} + +declare class RequestErrorCls extends Error { + readonly name: 'RequestError'; + + constructor(error: Error); +} +declare class CacheErrorCls extends Error { + readonly name: 'CacheError'; + + constructor(error: Error); +} diff --git a/node_modules/@types/cacheable-request/package.json b/node_modules/@types/cacheable-request/package.json new file mode 100644 index 0000000..31742dd --- /dev/null +++ b/node_modules/@types/cacheable-request/package.json @@ -0,0 +1,35 @@ +{ + "name": "@types/cacheable-request", + "version": "6.0.3", + "description": "TypeScript definitions for cacheable-request", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/cacheable-request", + "license": "MIT", + "contributors": [ + { + "name": "BendingBender", + "url": "https://github.com/BendingBender", + "githubUsername": "BendingBender" + }, + { + "name": "Paul Melnikow", + "url": "https://github.com/paulmelnikow", + "githubUsername": "paulmelnikow" + } + ], + "main": "", + "types": "index.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/cacheable-request" + }, + "scripts": {}, + "dependencies": { + "@types/http-cache-semantics": "*", + "@types/keyv": "^3.1.4", + "@types/node": "*", + "@types/responselike": "^1.0.0" + }, + "typesPublisherContentHash": "9345f1216c9d26f9046880c34f6329b2874405d68cf13d1f1f771fbb4d96549f", + "typeScriptVersion": "4.1" +} \ No newline at end of file diff --git a/node_modules/@types/http-cache-semantics/LICENSE b/node_modules/@types/http-cache-semantics/LICENSE new file mode 100644 index 0000000..9e841e7 --- /dev/null +++ b/node_modules/@types/http-cache-semantics/LICENSE @@ -0,0 +1,21 @@ + 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/http-cache-semantics/README.md b/node_modules/@types/http-cache-semantics/README.md new file mode 100644 index 0000000..8e144b2 --- /dev/null +++ b/node_modules/@types/http-cache-semantics/README.md @@ -0,0 +1,16 @@ +# Installation +> `npm install --save @types/http-cache-semantics` + +# Summary +This package contains type definitions for http-cache-semantics (https://github.com/kornelski/http-cache-semantics#readme). + +# Details +Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/http-cache-semantics. + +### Additional Details + * Last updated: Tue, 06 Jul 2021 21:33:36 GMT + * Dependencies: none + * Global values: none + +# Credits +These definitions were written by [BendingBender](https://github.com/BendingBender). diff --git a/node_modules/@types/http-cache-semantics/index.d.ts b/node_modules/@types/http-cache-semantics/index.d.ts new file mode 100644 index 0000000..54c1513 --- /dev/null +++ b/node_modules/@types/http-cache-semantics/index.d.ts @@ -0,0 +1,170 @@ +// Type definitions for http-cache-semantics 4.0 +// Project: https://github.com/kornelski/http-cache-semantics#readme +// Definitions by: BendingBender +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export = CachePolicy; + +declare class CachePolicy { + constructor(req: CachePolicy.Request, res: CachePolicy.Response, options?: CachePolicy.Options); + + /** + * Returns `true` if the response can be stored in a cache. + * If it's `false` then you MUST NOT store either the request or the response. + */ + storable(): boolean; + + /** + * This is the most important method. Use this method to check whether the cached response is still fresh + * in the context of the new request. + * + * If it returns `true`, then the given `request` matches the original response this cache policy has been + * created with, and the response can be reused without contacting the server. Note that the old response + * can't be returned without being updated, see `responseHeaders()`. + * + * If it returns `false`, then the response may not be matching at all (e.g. it's for a different URL or method), + * or may require to be refreshed first (see `revalidationHeaders()`). + */ + satisfiesWithoutRevalidation(newRequest: CachePolicy.Request): boolean; + + /** + * Returns updated, filtered set of response headers to return to clients receiving the cached response. + * This function is necessary, because proxies MUST always remove hop-by-hop headers (such as `TE` and `Connection`) + * and update response's `Age` to avoid doubling cache time. + * + * @example + * cachedResponse.headers = cachePolicy.responseHeaders(cachedResponse); + */ + responseHeaders(): CachePolicy.Headers; + + /** + * Returns approximate time in milliseconds until the response becomes stale (i.e. not fresh). + * + * After that time (when `timeToLive() <= 0`) the response might not be usable without revalidation. However, + * there are exceptions, e.g. a client can explicitly allow stale responses, so always check with + * `satisfiesWithoutRevalidation()`. + */ + timeToLive(): number; + + /** + * Chances are you'll want to store the `CachePolicy` object along with the cached response. + * `obj = policy.toObject()` gives a plain JSON-serializable object. + */ + toObject(): CachePolicy.CachePolicyObject; + + /** + * `policy = CachePolicy.fromObject(obj)` creates an instance from object created by `toObject()`. + */ + static fromObject(obj: CachePolicy.CachePolicyObject): CachePolicy; + + /** + * Returns updated, filtered set of request headers to send to the origin server to check if the cached + * response can be reused. These headers allow the origin server to return status 304 indicating the + * response is still fresh. All headers unrelated to caching are passed through as-is. + * + * Use this method when updating cache from the origin server. + * + * @example + * updateRequest.headers = cachePolicy.revalidationHeaders(updateRequest); + */ + revalidationHeaders(newRequest: CachePolicy.Request): CachePolicy.Headers; + + /** + * Use this method to update the cache after receiving a new response from the origin server. + */ + revalidatedPolicy( + revalidationRequest: CachePolicy.Request, + revalidationResponse: CachePolicy.Response + ): CachePolicy.RevalidationPolicy; +} + +declare namespace CachePolicy { + interface Request { + url?: string | undefined; + method?: string | undefined; + headers: Headers; + } + + interface Response { + status?: number | undefined; + headers: Headers; + } + + interface Options { + /** + * If `true`, then the response is evaluated from a perspective of a shared cache (i.e. `private` is not + * cacheable and `s-maxage` is respected). If `false`, then the response is evaluated from a perspective + * of a single-user cache (i.e. `private` is cacheable and `s-maxage` is ignored). + * `true` is recommended for HTTP clients. + * @default true + */ + shared?: boolean | undefined; + /** + * A fraction of response's age that is used as a fallback cache duration. The default is 0.1 (10%), + * e.g. if a file hasn't been modified for 100 days, it'll be cached for 100*0.1 = 10 days. + * @default 0.1 + */ + cacheHeuristic?: number | undefined; + /** + * A number of milliseconds to assume as the default time to cache responses with `Cache-Control: immutable`. + * Note that [per RFC](https://httpwg.org/specs/rfc8246.html#the-immutable-cache-control-extension) + * these can become stale, so `max-age` still overrides the default. + * @default 24*3600*1000 (24h) + */ + immutableMinTimeToLive?: number | undefined; + /** + * If `true`, common anti-cache directives will be completely ignored if the non-standard `pre-check` + * and `post-check` directives are present. These two useless directives are most commonly found + * in bad StackOverflow answers and PHP's "session limiter" defaults. + * @default false + */ + ignoreCargoCult?: boolean | undefined; + /** + * If `false`, then server's `Date` header won't be used as the base for `max-age`. This is against the RFC, + * but it's useful if you want to cache responses with very short `max-age`, but your local clock + * is not exactly in sync with the server's. + * @default true + */ + trustServerDate?: boolean | undefined; + } + + interface CachePolicyObject { + v: number; + t: number; + sh: boolean; + ch: number; + imm: number; + st: number; + resh: Headers; + rescc: { [key: string]: string }; + m: string; + u?: string | undefined; + h?: string | undefined; + a: boolean; + reqh: Headers | null; + reqcc: { [key: string]: string }; + } + + interface Headers { + [header: string]: string | string[] | undefined; + } + + interface RevalidationPolicy { + /** + * A new `CachePolicy` with HTTP headers updated from `revalidationResponse`. You can always replace + * the old cached `CachePolicy` with the new one. + */ + policy: CachePolicy; + /** + * Boolean indicating whether the response body has changed. + * + * - If `false`, then a valid 304 Not Modified response has been received, and you can reuse the old + * cached response body. + * - If `true`, you should use new response's body (if present), or make another request to the origin + * server without any conditional headers (i.e. don't use `revalidationHeaders()` this time) to get + * the new resource. + */ + modified: boolean; + matches: boolean; + } +} diff --git a/node_modules/@types/http-cache-semantics/package.json b/node_modules/@types/http-cache-semantics/package.json new file mode 100644 index 0000000..58e08c0 --- /dev/null +++ b/node_modules/@types/http-cache-semantics/package.json @@ -0,0 +1,25 @@ +{ + "name": "@types/http-cache-semantics", + "version": "4.0.1", + "description": "TypeScript definitions for http-cache-semantics", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/http-cache-semantics", + "license": "MIT", + "contributors": [ + { + "name": "BendingBender", + "url": "https://github.com/BendingBender", + "githubUsername": "BendingBender" + } + ], + "main": "", + "types": "index.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/http-cache-semantics" + }, + "scripts": {}, + "dependencies": {}, + "typesPublisherContentHash": "9ecb3137d8c0ede7c06f5d90c7d4759e560a26effb8846bc51a99b63f03dd2d1", + "typeScriptVersion": "3.6" +} \ No newline at end of file diff --git a/node_modules/@types/keyv/LICENSE b/node_modules/@types/keyv/LICENSE new file mode 100644 index 0000000..9e841e7 --- /dev/null +++ b/node_modules/@types/keyv/LICENSE @@ -0,0 +1,21 @@ + 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/keyv/README.md b/node_modules/@types/keyv/README.md new file mode 100644 index 0000000..67c4b2e --- /dev/null +++ b/node_modules/@types/keyv/README.md @@ -0,0 +1,16 @@ +# Installation +> `npm install --save @types/keyv` + +# Summary +This package contains type definitions for keyv (https://github.com/lukechilds/keyv). + +# Details +Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/keyv. + +### Additional Details + * Last updated: Thu, 17 Mar 2022 05:31:42 GMT + * Dependencies: [@types/node](https://npmjs.com/package/@types/node) + * Global values: none + +# Credits +These definitions were written by [AryloYeung](https://github.com/Arylo), and [BendingBender](https://github.com/BendingBender). diff --git a/node_modules/@types/keyv/index.d.ts b/node_modules/@types/keyv/index.d.ts new file mode 100644 index 0000000..adca74d --- /dev/null +++ b/node_modules/@types/keyv/index.d.ts @@ -0,0 +1,90 @@ +// Type definitions for keyv 3.1 +// Project: https://github.com/lukechilds/keyv +// Definitions by: AryloYeung +// BendingBender +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.8 + +/// +import { EventEmitter } from 'events'; + +type WithRequiredProperties = T & Required>; + +declare class Keyv extends EventEmitter { + /** + * `this.opts` is an object containing at least the properties listed + * below. However, `Keyv.Options` allows arbitrary properties as well. + * These properties can be specified as the second type parameter to `Keyv`. + */ + opts: WithRequiredProperties< + Keyv.Options, + 'deserialize' | 'namespace' | 'serialize' | 'store' | 'uri' + > & + TOpts; + + /** + * @param opts The options object is also passed through to the storage adapter. Check your storage adapter docs for any extra options. + */ + constructor(opts?: Keyv.Options & TOpts); + /** + * @param uri The connection string URI. + * + * Merged into the options object as options.uri. + * @param opts The options object is also passed through to the storage adapter. Check your storage adapter docs for any extra options. + */ + constructor(uri?: string, opts?: Keyv.Options & TOpts); + + /** Returns the value. */ + get(key: string, options?: { raw?: TRaw }): + Promise<(TRaw extends false + ? TValue + : Keyv.DeserializedData) | undefined>; + /** + * Set a value. + * + * By default keys are persistent. You can set an expiry TTL in milliseconds. + */ + set(key: string, value: TValue, ttl?: number): Promise; + /** + * Deletes an entry. + * + * Returns `true` if the key existed, `false` if not. + */ + delete(key: string): Promise; + /** Delete all entries in the current namespace. */ + clear(): Promise; +} + +declare namespace Keyv { + interface Options { + /** Namespace for the current instance. */ + namespace?: string | undefined; + /** A custom serialization function. */ + serialize?: ((data: DeserializedData) => string) | undefined; + /** A custom deserialization function. */ + deserialize?: ((data: string) => DeserializedData | undefined) | undefined; + /** The connection string URI. */ + uri?: string | undefined; + /** The storage adapter instance to be used by Keyv. */ + store?: Store | undefined; + /** Default TTL. Can be overridden by specififying a TTL on `.set()`. */ + ttl?: number | undefined; + /** Specify an adapter to use. e.g `'redis'` or `'mongodb'`. */ + adapter?: 'redis' | 'mongodb' | 'mongo' | 'sqlite' | 'postgresql' | 'postgres' | 'mysql' | undefined; + + [key: string]: any; + } + + interface DeserializedData { + value: TValue; expires: number | null; + } + + interface Store { + get(key: string): TValue | Promise | undefined; + set(key: string, value: TValue, ttl?: number): any; + delete(key: string): boolean | Promise; + clear(): void | Promise; + } +} + +export = Keyv; diff --git a/node_modules/@types/keyv/package.json b/node_modules/@types/keyv/package.json new file mode 100644 index 0000000..15d4020 --- /dev/null +++ b/node_modules/@types/keyv/package.json @@ -0,0 +1,32 @@ +{ + "name": "@types/keyv", + "version": "3.1.4", + "description": "TypeScript definitions for keyv", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/keyv", + "license": "MIT", + "contributors": [ + { + "name": "AryloYeung", + "url": "https://github.com/Arylo", + "githubUsername": "Arylo" + }, + { + "name": "BendingBender", + "url": "https://github.com/BendingBender", + "githubUsername": "BendingBender" + } + ], + "main": "", + "types": "index.d.ts", + "repository": { + "type": "git", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/keyv" + }, + "scripts": {}, + "dependencies": { + "@types/node": "*" + }, + "typesPublisherContentHash": "e83393e0860475d12e960cede22532e18e129cf659f31f2a0298a88cb5d02d36", + "typeScriptVersion": "3.9" +} \ No newline at end of file diff --git a/node_modules/@types/node/LICENSE b/node_modules/@types/node/LICENSE new file mode 100644 index 0000000..9e841e7 --- /dev/null +++ b/node_modules/@types/node/LICENSE @@ -0,0 +1,21 @@ + 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/node/README.md b/node_modules/@types/node/README.md new file mode 100644 index 0000000..38c7b0c --- /dev/null +++ b/node_modules/@types/node/README.md @@ -0,0 +1,16 @@ +# Installation +> `npm install --save @types/node` + +# Summary +This package contains type definitions for Node.js (https://nodejs.org/). + +# Details +Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node. + +### Additional Details + * Last updated: Mon, 26 Dec 2022 17:32:37 GMT + * Dependencies: none + * Global values: `AbortController`, `AbortSignal`, `__dirname`, `__filename`, `console`, `exports`, `gc`, `global`, `module`, `process`, `require`, `structuredClone` + +# Credits +These definitions were written by [Microsoft TypeScript](https://github.com/Microsoft), [DefinitelyTyped](https://github.com/DefinitelyTyped), [Alberto Schiabel](https://github.com/jkomyno), [Alvis HT Tang](https://github.com/alvis), [Andrew Makarov](https://github.com/r3nya), [Benjamin Toueg](https://github.com/btoueg), [Chigozirim C.](https://github.com/smac89), [David Junger](https://github.com/touffy), [Deividas Bakanas](https://github.com/DeividasBakanas), [Eugene Y. Q. Shen](https://github.com/eyqs), [Hannes Magnusson](https://github.com/Hannes-Magnusson-CK), [Huw](https://github.com/hoo29), [Kelvin Jin](https://github.com/kjin), [Klaus Meinhardt](https://github.com/ajafff), [Lishude](https://github.com/islishude), [Mariusz Wiktorczyk](https://github.com/mwiktorczyk), [Mohsen Azimi](https://github.com/mohsen1), [Nicolas Even](https://github.com/n-e), [Nikita Galkin](https://github.com/galkin), [Parambir Singh](https://github.com/parambirs), [Sebastian Silbermann](https://github.com/eps1lon), [Simon Schick](https://github.com/SimonSchick), [Thomas den Hollander](https://github.com/ThomasdenH), [Wilco Bakker](https://github.com/WilcoBakker), [wwwy3y3](https://github.com/wwwy3y3), [Samuel Ainsworth](https://github.com/samuela), [Kyle Uehlein](https://github.com/kuehlein), [Thanik Bhongbhibhat](https://github.com/bhongy), [Marcin Kopacz](https://github.com/chyzwar), [Trivikram Kamat](https://github.com/trivikr), [Junxiao Shi](https://github.com/yoursunny), [Ilia Baryshnikov](https://github.com/qwelias), [ExE Boss](https://github.com/ExE-Boss), [Piotr Błażejewicz](https://github.com/peterblazejewicz), [Anna Henningsen](https://github.com/addaleax), [Victor Perin](https://github.com/victorperin), [Yongsheng Zhang](https://github.com/ZYSzys), [NodeJS Contributors](https://github.com/NodeJS), [Linus Unnebäck](https://github.com/LinusU), [wafuwafu13](https://github.com/wafuwafu13), [Matteo Collina](https://github.com/mcollina), and [Dmitry Semigradsky](https://github.com/Semigradsky). diff --git a/node_modules/@types/node/assert.d.ts b/node_modules/@types/node/assert.d.ts new file mode 100644 index 0000000..e8595e6 --- /dev/null +++ b/node_modules/@types/node/assert.d.ts @@ -0,0 +1,961 @@ +/** + * The `assert` module provides a set of assertion functions for verifying + * invariants. + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/assert.js) + */ +declare module 'assert' { + /** + * An alias of {@link ok}. + * @since v0.5.9 + * @param value The input that is checked for being truthy. + */ + function assert(value: unknown, message?: string | Error): asserts value; + namespace assert { + /** + * Indicates the failure of an assertion. All errors thrown by the `assert` module + * will be instances of the `AssertionError` class. + */ + class AssertionError extends Error { + actual: unknown; + expected: unknown; + operator: string; + generatedMessage: boolean; + code: 'ERR_ASSERTION'; + constructor(options?: { + /** If provided, the error message is set to this value. */ + message?: string | undefined; + /** The `actual` property on the error instance. */ + actual?: unknown | undefined; + /** The `expected` property on the error instance. */ + expected?: unknown | undefined; + /** The `operator` property on the error instance. */ + operator?: string | undefined; + /** If provided, the generated stack trace omits frames before this function. */ + // tslint:disable-next-line:ban-types + stackStartFn?: Function | undefined; + }); + } + /** + * This feature is currently experimental and behavior might still change. + * @since v14.2.0, v12.19.0 + * @experimental + */ + class CallTracker { + /** + * The wrapper function is expected to be called exactly `exact` times. If the + * function has not been called exactly `exact` times when `tracker.verify()` is called, then `tracker.verify()` will throw an + * error. + * + * ```js + * import assert from 'assert'; + * + * // Creates call tracker. + * const tracker = new assert.CallTracker(); + * + * function func() {} + * + * // Returns a function that wraps func() that must be called exact times + * // before tracker.verify(). + * const callsfunc = tracker.calls(func); + * ``` + * @since v14.2.0, v12.19.0 + * @param [fn='A no-op function'] + * @param [exact=1] + * @return that wraps `fn`. + */ + calls(exact?: number): () => void; + calls any>(fn?: Func, exact?: number): Func; + /** + * Example: + * + * ```js + * import assert from 'node:assert'; + * + * const tracker = new assert.CallTracker(); + * + * function func() {} + * const callsfunc = tracker.calls(func); + * callsfunc(1, 2, 3); + * + * assert.deepStrictEqual(tracker.getCalls(callsfunc), + * [{ thisArg: this, arguments: [1, 2, 3 ] }]); + * ``` + * + * @since v18.8.0, v16.18.0 + * @params fn + * @returns An Array with the calls to a tracked function. + */ + getCalls(fn: Function): CallTrackerCall[]; + /** + * The arrays contains information about the expected and actual number of calls of + * the functions that have not been called the expected number of times. + * + * ```js + * import assert from 'assert'; + * + * // Creates call tracker. + * const tracker = new assert.CallTracker(); + * + * function func() {} + * + * function foo() {} + * + * // Returns a function that wraps func() that must be called exact times + * // before tracker.verify(). + * const callsfunc = tracker.calls(func, 2); + * + * // Returns an array containing information on callsfunc() + * tracker.report(); + * // [ + * // { + * // message: 'Expected the func function to be executed 2 time(s) but was + * // executed 0 time(s).', + * // actual: 0, + * // expected: 2, + * // operator: 'func', + * // stack: stack trace + * // } + * // ] + * ``` + * @since v14.2.0, v12.19.0 + * @return of objects containing information about the wrapper functions returned by `calls`. + */ + report(): CallTrackerReportInformation[]; + /** + * Reset calls of the call tracker. + * If a tracked function is passed as an argument, the calls will be reset for it. + * If no arguments are passed, all tracked functions will be reset. + * + * ```js + * import assert from 'node:assert'; + * + * const tracker = new assert.CallTracker(); + * + * function func() {} + * const callsfunc = tracker.calls(func); + * + * callsfunc(); + * // Tracker was called once + * tracker.getCalls(callsfunc).length === 1; + * + * tracker.reset(callsfunc); + * tracker.getCalls(callsfunc).length === 0; + * ``` + * + * @since v18.8.0, v16.18.0 + * @param fn a tracked function to reset. + */ + reset(fn?: Function): void; + /** + * Iterates through the list of functions passed to `tracker.calls()` and will throw an error for functions that + * have not been called the expected number of times. + * + * ```js + * import assert from 'assert'; + * + * // Creates call tracker. + * const tracker = new assert.CallTracker(); + * + * function func() {} + * + * // Returns a function that wraps func() that must be called exact times + * // before tracker.verify(). + * const callsfunc = tracker.calls(func, 2); + * + * callsfunc(); + * + * // Will throw an error since callsfunc() was only called once. + * tracker.verify(); + * ``` + * @since v14.2.0, v12.19.0 + */ + verify(): void; + } + interface CallTrackerCall { + thisArg: object; + arguments: unknown[]; + } + interface CallTrackerReportInformation { + message: string; + /** The actual number of times the function was called. */ + actual: number; + /** The number of times the function was expected to be called. */ + expected: number; + /** The name of the function that is wrapped. */ + operator: string; + /** A stack trace of the function. */ + stack: object; + } + type AssertPredicate = RegExp | (new () => object) | ((thrown: unknown) => boolean) | object | Error; + /** + * Throws an `AssertionError` with the provided error message or a default + * error message. If the `message` parameter is an instance of an `Error` then + * it will be thrown instead of the `AssertionError`. + * + * ```js + * import assert from 'assert/strict'; + * + * assert.fail(); + * // AssertionError [ERR_ASSERTION]: Failed + * + * assert.fail('boom'); + * // AssertionError [ERR_ASSERTION]: boom + * + * assert.fail(new TypeError('need array')); + * // TypeError: need array + * ``` + * + * Using `assert.fail()` with more than two arguments is possible but deprecated. + * See below for further details. + * @since v0.1.21 + * @param [message='Failed'] + */ + function fail(message?: string | Error): never; + /** @deprecated since v10.0.0 - use fail([message]) or other assert functions instead. */ + function fail( + actual: unknown, + expected: unknown, + message?: string | Error, + operator?: string, + // tslint:disable-next-line:ban-types + stackStartFn?: Function + ): never; + /** + * Tests if `value` is truthy. It is equivalent to`assert.equal(!!value, true, message)`. + * + * If `value` is not truthy, an `AssertionError` is thrown with a `message`property set equal to the value of the `message` parameter. If the `message`parameter is `undefined`, a default + * error message is assigned. If the `message`parameter is an instance of an `Error` then it will be thrown instead of the`AssertionError`. + * If no arguments are passed in at all `message` will be set to the string:`` 'No value argument passed to `assert.ok()`' ``. + * + * Be aware that in the `repl` the error message will be different to the one + * thrown in a file! See below for further details. + * + * ```js + * import assert from 'assert/strict'; + * + * assert.ok(true); + * // OK + * assert.ok(1); + * // OK + * + * assert.ok(); + * // AssertionError: No value argument passed to `assert.ok()` + * + * assert.ok(false, 'it\'s false'); + * // AssertionError: it's false + * + * // In the repl: + * assert.ok(typeof 123 === 'string'); + * // AssertionError: false == true + * + * // In a file (e.g. test.js): + * assert.ok(typeof 123 === 'string'); + * // AssertionError: The expression evaluated to a falsy value: + * // + * // assert.ok(typeof 123 === 'string') + * + * assert.ok(false); + * // AssertionError: The expression evaluated to a falsy value: + * // + * // assert.ok(false) + * + * assert.ok(0); + * // AssertionError: The expression evaluated to a falsy value: + * // + * // assert.ok(0) + * ``` + * + * ```js + * import assert from 'assert/strict'; + * + * // Using `assert()` works the same: + * assert(0); + * // AssertionError: The expression evaluated to a falsy value: + * // + * // assert(0) + * ``` + * @since v0.1.21 + */ + function ok(value: unknown, message?: string | Error): asserts value; + /** + * **Strict assertion mode** + * + * An alias of {@link strictEqual}. + * + * **Legacy assertion mode** + * + * > Stability: 3 - Legacy: Use {@link strictEqual} instead. + * + * Tests shallow, coercive equality between the `actual` and `expected` parameters + * using the [`==` operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Equality). `NaN` is specially handled + * and treated as being identical if both sides are `NaN`. + * + * ```js + * import assert from 'assert'; + * + * assert.equal(1, 1); + * // OK, 1 == 1 + * assert.equal(1, '1'); + * // OK, 1 == '1' + * assert.equal(NaN, NaN); + * // OK + * + * assert.equal(1, 2); + * // AssertionError: 1 == 2 + * assert.equal({ a: { b: 1 } }, { a: { b: 1 } }); + * // AssertionError: { a: { b: 1 } } == { a: { b: 1 } } + * ``` + * + * If the values are not equal, an `AssertionError` is thrown with a `message`property set equal to the value of the `message` parameter. If the `message`parameter is undefined, a default + * error message is assigned. If the `message`parameter is an instance of an `Error` then it will be thrown instead of the`AssertionError`. + * @since v0.1.21 + */ + function equal(actual: unknown, expected: unknown, message?: string | Error): void; + /** + * **Strict assertion mode** + * + * An alias of {@link notStrictEqual}. + * + * **Legacy assertion mode** + * + * > Stability: 3 - Legacy: Use {@link notStrictEqual} instead. + * + * Tests shallow, coercive inequality with the [`!=` operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Inequality). `NaN` is + * specially handled and treated as being identical if both sides are `NaN`. + * + * ```js + * import assert from 'assert'; + * + * assert.notEqual(1, 2); + * // OK + * + * assert.notEqual(1, 1); + * // AssertionError: 1 != 1 + * + * assert.notEqual(1, '1'); + * // AssertionError: 1 != '1' + * ``` + * + * If the values are equal, an `AssertionError` is thrown with a `message`property set equal to the value of the `message` parameter. If the `message`parameter is undefined, a default error + * message is assigned. If the `message`parameter is an instance of an `Error` then it will be thrown instead of the`AssertionError`. + * @since v0.1.21 + */ + function notEqual(actual: unknown, expected: unknown, message?: string | Error): void; + /** + * **Strict assertion mode** + * + * An alias of {@link deepStrictEqual}. + * + * **Legacy assertion mode** + * + * > Stability: 3 - Legacy: Use {@link deepStrictEqual} instead. + * + * Tests for deep equality between the `actual` and `expected` parameters. Consider + * using {@link deepStrictEqual} instead. {@link deepEqual} can have + * surprising results. + * + * _Deep equality_ means that the enumerable "own" properties of child objects + * are also recursively evaluated by the following rules. + * @since v0.1.21 + */ + function deepEqual(actual: unknown, expected: unknown, message?: string | Error): void; + /** + * **Strict assertion mode** + * + * An alias of {@link notDeepStrictEqual}. + * + * **Legacy assertion mode** + * + * > Stability: 3 - Legacy: Use {@link notDeepStrictEqual} instead. + * + * Tests for any deep inequality. Opposite of {@link deepEqual}. + * + * ```js + * import assert from 'assert'; + * + * const obj1 = { + * a: { + * b: 1 + * } + * }; + * const obj2 = { + * a: { + * b: 2 + * } + * }; + * const obj3 = { + * a: { + * b: 1 + * } + * }; + * const obj4 = Object.create(obj1); + * + * assert.notDeepEqual(obj1, obj1); + * // AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } } + * + * assert.notDeepEqual(obj1, obj2); + * // OK + * + * assert.notDeepEqual(obj1, obj3); + * // AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } } + * + * assert.notDeepEqual(obj1, obj4); + * // OK + * ``` + * + * If the values are deeply equal, an `AssertionError` is thrown with a`message` property set equal to the value of the `message` parameter. If the`message` parameter is undefined, a default + * error message is assigned. If the`message` parameter is an instance of an `Error` then it will be thrown + * instead of the `AssertionError`. + * @since v0.1.21 + */ + function notDeepEqual(actual: unknown, expected: unknown, message?: string | Error): void; + /** + * Tests strict equality between the `actual` and `expected` parameters as + * determined by [`Object.is()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is). + * + * ```js + * import assert from 'assert/strict'; + * + * assert.strictEqual(1, 2); + * // AssertionError [ERR_ASSERTION]: Expected inputs to be strictly equal: + * // + * // 1 !== 2 + * + * assert.strictEqual(1, 1); + * // OK + * + * assert.strictEqual('Hello foobar', 'Hello World!'); + * // AssertionError [ERR_ASSERTION]: Expected inputs to be strictly equal: + * // + actual - expected + * // + * // + 'Hello foobar' + * // - 'Hello World!' + * // ^ + * + * const apples = 1; + * const oranges = 2; + * assert.strictEqual(apples, oranges, `apples ${apples} !== oranges ${oranges}`); + * // AssertionError [ERR_ASSERTION]: apples 1 !== oranges 2 + * + * assert.strictEqual(1, '1', new TypeError('Inputs are not identical')); + * // TypeError: Inputs are not identical + * ``` + * + * If the values are not strictly equal, an `AssertionError` is thrown with a`message` property set equal to the value of the `message` parameter. If the`message` parameter is undefined, a + * default error message is assigned. If the`message` parameter is an instance of an `Error` then it will be thrown + * instead of the `AssertionError`. + * @since v0.1.21 + */ + function strictEqual(actual: unknown, expected: T, message?: string | Error): asserts actual is T; + /** + * Tests strict inequality between the `actual` and `expected` parameters as + * determined by [`Object.is()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is). + * + * ```js + * import assert from 'assert/strict'; + * + * assert.notStrictEqual(1, 2); + * // OK + * + * assert.notStrictEqual(1, 1); + * // AssertionError [ERR_ASSERTION]: Expected "actual" to be strictly unequal to: + * // + * // 1 + * + * assert.notStrictEqual(1, '1'); + * // OK + * ``` + * + * If the values are strictly equal, an `AssertionError` is thrown with a`message` property set equal to the value of the `message` parameter. If the`message` parameter is undefined, a + * default error message is assigned. If the`message` parameter is an instance of an `Error` then it will be thrown + * instead of the `AssertionError`. + * @since v0.1.21 + */ + function notStrictEqual(actual: unknown, expected: unknown, message?: string | Error): void; + /** + * Tests for deep equality between the `actual` and `expected` parameters. + * "Deep" equality means that the enumerable "own" properties of child objects + * are recursively evaluated also by the following rules. + * @since v1.2.0 + */ + function deepStrictEqual(actual: unknown, expected: T, message?: string | Error): asserts actual is T; + /** + * Tests for deep strict inequality. Opposite of {@link deepStrictEqual}. + * + * ```js + * import assert from 'assert/strict'; + * + * assert.notDeepStrictEqual({ a: 1 }, { a: '1' }); + * // OK + * ``` + * + * If the values are deeply and strictly equal, an `AssertionError` is thrown + * with a `message` property set equal to the value of the `message` parameter. If + * the `message` parameter is undefined, a default error message is assigned. If + * the `message` parameter is an instance of an `Error` then it will be thrown + * instead of the `AssertionError`. + * @since v1.2.0 + */ + function notDeepStrictEqual(actual: unknown, expected: unknown, message?: string | Error): void; + /** + * Expects the function `fn` to throw an error. + * + * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes), + * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), a validation function, + * a validation object where each property will be tested for strict deep equality, + * or an instance of error where each property will be tested for strict deep + * equality including the non-enumerable `message` and `name` properties. When + * using an object, it is also possible to use a regular expression, when + * validating against a string property. See below for examples. + * + * If specified, `message` will be appended to the message provided by the`AssertionError` if the `fn` call fails to throw or in case the error validation + * fails. + * + * Custom validation object/error instance: + * + * ```js + * import assert from 'assert/strict'; + * + * const err = new TypeError('Wrong value'); + * err.code = 404; + * err.foo = 'bar'; + * err.info = { + * nested: true, + * baz: 'text' + * }; + * err.reg = /abc/i; + * + * assert.throws( + * () => { + * throw err; + * }, + * { + * name: 'TypeError', + * message: 'Wrong value', + * info: { + * nested: true, + * baz: 'text' + * } + * // Only properties on the validation object will be tested for. + * // Using nested objects requires all properties to be present. Otherwise + * // the validation is going to fail. + * } + * ); + * + * // Using regular expressions to validate error properties: + * throws( + * () => { + * throw err; + * }, + * { + * // The `name` and `message` properties are strings and using regular + * // expressions on those will match against the string. If they fail, an + * // error is thrown. + * name: /^TypeError$/, + * message: /Wrong/, + * foo: 'bar', + * info: { + * nested: true, + * // It is not possible to use regular expressions for nested properties! + * baz: 'text' + * }, + * // The `reg` property contains a regular expression and only if the + * // validation object contains an identical regular expression, it is going + * // to pass. + * reg: /abc/i + * } + * ); + * + * // Fails due to the different `message` and `name` properties: + * throws( + * () => { + * const otherErr = new Error('Not found'); + * // Copy all enumerable properties from `err` to `otherErr`. + * for (const [key, value] of Object.entries(err)) { + * otherErr[key] = value; + * } + * throw otherErr; + * }, + * // The error's `message` and `name` properties will also be checked when using + * // an error as validation object. + * err + * ); + * ``` + * + * Validate instanceof using constructor: + * + * ```js + * import assert from 'assert/strict'; + * + * assert.throws( + * () => { + * throw new Error('Wrong value'); + * }, + * Error + * ); + * ``` + * + * Validate error message using [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions): + * + * Using a regular expression runs `.toString` on the error object, and will + * therefore also include the error name. + * + * ```js + * import assert from 'assert/strict'; + * + * assert.throws( + * () => { + * throw new Error('Wrong value'); + * }, + * /^Error: Wrong value$/ + * ); + * ``` + * + * Custom error validation: + * + * The function must return `true` to indicate all internal validations passed. + * It will otherwise fail with an `AssertionError`. + * + * ```js + * import assert from 'assert/strict'; + * + * assert.throws( + * () => { + * throw new Error('Wrong value'); + * }, + * (err) => { + * assert(err instanceof Error); + * assert(/value/.test(err)); + * // Avoid returning anything from validation functions besides `true`. + * // Otherwise, it's not clear what part of the validation failed. Instead, + * // throw an error about the specific validation that failed (as done in this + * // example) and add as much helpful debugging information to that error as + * // possible. + * return true; + * }, + * 'unexpected error' + * ); + * ``` + * + * `error` cannot be a string. If a string is provided as the second + * argument, then `error` is assumed to be omitted and the string will be used for`message` instead. This can lead to easy-to-miss mistakes. Using the same + * message as the thrown error message is going to result in an`ERR_AMBIGUOUS_ARGUMENT` error. Please read the example below carefully if using + * a string as the second argument gets considered: + * + * ```js + * import assert from 'assert/strict'; + * + * function throwingFirst() { + * throw new Error('First'); + * } + * + * function throwingSecond() { + * throw new Error('Second'); + * } + * + * function notThrowing() {} + * + * // The second argument is a string and the input function threw an Error. + * // The first case will not throw as it does not match for the error message + * // thrown by the input function! + * assert.throws(throwingFirst, 'Second'); + * // In the next example the message has no benefit over the message from the + * // error and since it is not clear if the user intended to actually match + * // against the error message, Node.js throws an `ERR_AMBIGUOUS_ARGUMENT` error. + * assert.throws(throwingSecond, 'Second'); + * // TypeError [ERR_AMBIGUOUS_ARGUMENT] + * + * // The string is only used (as message) in case the function does not throw: + * assert.throws(notThrowing, 'Second'); + * // AssertionError [ERR_ASSERTION]: Missing expected exception: Second + * + * // If it was intended to match for the error message do this instead: + * // It does not throw because the error messages match. + * assert.throws(throwingSecond, /Second$/); + * + * // If the error message does not match, an AssertionError is thrown. + * assert.throws(throwingFirst, /Second$/); + * // AssertionError [ERR_ASSERTION] + * ``` + * + * Due to the confusing error-prone notation, avoid a string as the second + * argument. + * @since v0.1.21 + */ + function throws(block: () => unknown, message?: string | Error): void; + function throws(block: () => unknown, error: AssertPredicate, message?: string | Error): void; + /** + * Asserts that the function `fn` does not throw an error. + * + * Using `assert.doesNotThrow()` is actually not useful because there + * is no benefit in catching an error and then rethrowing it. Instead, consider + * adding a comment next to the specific code path that should not throw and keep + * error messages as expressive as possible. + * + * When `assert.doesNotThrow()` is called, it will immediately call the `fn`function. + * + * If an error is thrown and it is the same type as that specified by the `error`parameter, then an `AssertionError` is thrown. If the error is of a + * different type, or if the `error` parameter is undefined, the error is + * propagated back to the caller. + * + * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes), + * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) or a validation + * function. See {@link throws} for more details. + * + * The following, for instance, will throw the `TypeError` because there is no + * matching error type in the assertion: + * + * ```js + * import assert from 'assert/strict'; + * + * assert.doesNotThrow( + * () => { + * throw new TypeError('Wrong value'); + * }, + * SyntaxError + * ); + * ``` + * + * However, the following will result in an `AssertionError` with the message + * 'Got unwanted exception...': + * + * ```js + * import assert from 'assert/strict'; + * + * assert.doesNotThrow( + * () => { + * throw new TypeError('Wrong value'); + * }, + * TypeError + * ); + * ``` + * + * If an `AssertionError` is thrown and a value is provided for the `message`parameter, the value of `message` will be appended to the `AssertionError` message: + * + * ```js + * import assert from 'assert/strict'; + * + * assert.doesNotThrow( + * () => { + * throw new TypeError('Wrong value'); + * }, + * /Wrong value/, + * 'Whoops' + * ); + * // Throws: AssertionError: Got unwanted exception: Whoops + * ``` + * @since v0.1.21 + */ + function doesNotThrow(block: () => unknown, message?: string | Error): void; + function doesNotThrow(block: () => unknown, error: AssertPredicate, message?: string | Error): void; + /** + * Throws `value` if `value` is not `undefined` or `null`. This is useful when + * testing the `error` argument in callbacks. The stack trace contains all frames + * from the error passed to `ifError()` including the potential new frames for`ifError()` itself. + * + * ```js + * import assert from 'assert/strict'; + * + * assert.ifError(null); + * // OK + * assert.ifError(0); + * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 0 + * assert.ifError('error'); + * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 'error' + * assert.ifError(new Error()); + * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: Error + * + * // Create some random error frames. + * let err; + * (function errorFrame() { + * err = new Error('test error'); + * })(); + * + * (function ifErrorFrame() { + * assert.ifError(err); + * })(); + * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: test error + * // at ifErrorFrame + * // at errorFrame + * ``` + * @since v0.1.97 + */ + function ifError(value: unknown): asserts value is null | undefined; + /** + * Awaits the `asyncFn` promise or, if `asyncFn` is a function, immediately + * calls the function and awaits the returned promise to complete. It will then + * check that the promise is rejected. + * + * If `asyncFn` is a function and it throws an error synchronously,`assert.rejects()` will return a rejected `Promise` with that error. If the + * function does not return a promise, `assert.rejects()` will return a rejected`Promise` with an `ERR_INVALID_RETURN_VALUE` error. In both cases the error + * handler is skipped. + * + * Besides the async nature to await the completion behaves identically to {@link throws}. + * + * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes), + * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), a validation function, + * an object where each property will be tested for, or an instance of error where + * each property will be tested for including the non-enumerable `message` and`name` properties. + * + * If specified, `message` will be the message provided by the `AssertionError` if the `asyncFn` fails to reject. + * + * ```js + * import assert from 'assert/strict'; + * + * await assert.rejects( + * async () => { + * throw new TypeError('Wrong value'); + * }, + * { + * name: 'TypeError', + * message: 'Wrong value' + * } + * ); + * ``` + * + * ```js + * import assert from 'assert/strict'; + * + * await assert.rejects( + * async () => { + * throw new TypeError('Wrong value'); + * }, + * (err) => { + * assert.strictEqual(err.name, 'TypeError'); + * assert.strictEqual(err.message, 'Wrong value'); + * return true; + * } + * ); + * ``` + * + * ```js + * import assert from 'assert/strict'; + * + * assert.rejects( + * Promise.reject(new Error('Wrong value')), + * Error + * ).then(() => { + * // ... + * }); + * ``` + * + * `error` cannot be a string. If a string is provided as the second + * argument, then `error` is assumed to be omitted and the string will be used for`message` instead. This can lead to easy-to-miss mistakes. Please read the + * example in {@link throws} carefully if using a string as the second + * argument gets considered. + * @since v10.0.0 + */ + function rejects(block: (() => Promise) | Promise, message?: string | Error): Promise; + function rejects(block: (() => Promise) | Promise, error: AssertPredicate, message?: string | Error): Promise; + /** + * Awaits the `asyncFn` promise or, if `asyncFn` is a function, immediately + * calls the function and awaits the returned promise to complete. It will then + * check that the promise is not rejected. + * + * If `asyncFn` is a function and it throws an error synchronously,`assert.doesNotReject()` will return a rejected `Promise` with that error. If + * the function does not return a promise, `assert.doesNotReject()` will return a + * rejected `Promise` with an `ERR_INVALID_RETURN_VALUE` error. In both cases + * the error handler is skipped. + * + * Using `assert.doesNotReject()` is actually not useful because there is little + * benefit in catching a rejection and then rejecting it again. Instead, consider + * adding a comment next to the specific code path that should not reject and keep + * error messages as expressive as possible. + * + * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes), + * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) or a validation + * function. See {@link throws} for more details. + * + * Besides the async nature to await the completion behaves identically to {@link doesNotThrow}. + * + * ```js + * import assert from 'assert/strict'; + * + * await assert.doesNotReject( + * async () => { + * throw new TypeError('Wrong value'); + * }, + * SyntaxError + * ); + * ``` + * + * ```js + * import assert from 'assert/strict'; + * + * assert.doesNotReject(Promise.reject(new TypeError('Wrong value'))) + * .then(() => { + * // ... + * }); + * ``` + * @since v10.0.0 + */ + function doesNotReject(block: (() => Promise) | Promise, message?: string | Error): Promise; + function doesNotReject(block: (() => Promise) | Promise, error: AssertPredicate, message?: string | Error): Promise; + /** + * Expects the `string` input to match the regular expression. + * + * ```js + * import assert from 'assert/strict'; + * + * assert.match('I will fail', /pass/); + * // AssertionError [ERR_ASSERTION]: The input did not match the regular ... + * + * assert.match(123, /pass/); + * // AssertionError [ERR_ASSERTION]: The "string" argument must be of type string. + * + * assert.match('I will pass', /pass/); + * // OK + * ``` + * + * If the values do not match, or if the `string` argument is of another type than`string`, an `AssertionError` is thrown with a `message` property set equal + * to the value of the `message` parameter. If the `message` parameter is + * undefined, a default error message is assigned. If the `message` parameter is an + * instance of an `Error` then it will be thrown instead of the `AssertionError`. + * @since v13.6.0, v12.16.0 + */ + function match(value: string, regExp: RegExp, message?: string | Error): void; + /** + * Expects the `string` input not to match the regular expression. + * + * ```js + * import assert from 'assert/strict'; + * + * assert.doesNotMatch('I will fail', /fail/); + * // AssertionError [ERR_ASSERTION]: The input was expected to not match the ... + * + * assert.doesNotMatch(123, /pass/); + * // AssertionError [ERR_ASSERTION]: The "string" argument must be of type string. + * + * assert.doesNotMatch('I will pass', /different/); + * // OK + * ``` + * + * If the values do match, or if the `string` argument is of another type than`string`, an `AssertionError` is thrown with a `message` property set equal + * to the value of the `message` parameter. If the `message` parameter is + * undefined, a default error message is assigned. If the `message` parameter is an + * instance of an `Error` then it will be thrown instead of the `AssertionError`. + * @since v13.6.0, v12.16.0 + */ + function doesNotMatch(value: string, regExp: RegExp, message?: string | Error): void; + const strict: Omit & { + (value: unknown, message?: string | Error): asserts value; + equal: typeof strictEqual; + notEqual: typeof notStrictEqual; + deepEqual: typeof deepStrictEqual; + notDeepEqual: typeof notDeepStrictEqual; + // Mapped types and assertion functions are incompatible? + // TS2775: Assertions require every name in the call target + // to be declared with an explicit type annotation. + ok: typeof ok; + strictEqual: typeof strictEqual; + deepStrictEqual: typeof deepStrictEqual; + ifError: typeof ifError; + strict: typeof strict; + }; + } + export = assert; +} +declare module 'node:assert' { + import assert = require('assert'); + export = assert; +} diff --git a/node_modules/@types/node/assert/strict.d.ts b/node_modules/@types/node/assert/strict.d.ts new file mode 100644 index 0000000..b4319b9 --- /dev/null +++ b/node_modules/@types/node/assert/strict.d.ts @@ -0,0 +1,8 @@ +declare module 'assert/strict' { + import { strict } from 'node:assert'; + export = strict; +} +declare module 'node:assert/strict' { + import { strict } from 'node:assert'; + export = strict; +} diff --git a/node_modules/@types/node/async_hooks.d.ts b/node_modules/@types/node/async_hooks.d.ts new file mode 100644 index 0000000..0bf4739 --- /dev/null +++ b/node_modules/@types/node/async_hooks.d.ts @@ -0,0 +1,501 @@ +/** + * The `async_hooks` module provides an API to track asynchronous resources. It + * can be accessed using: + * + * ```js + * import async_hooks from 'async_hooks'; + * ``` + * @experimental + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/async_hooks.js) + */ +declare module 'async_hooks' { + /** + * ```js + * import { executionAsyncId } from 'async_hooks'; + * + * console.log(executionAsyncId()); // 1 - bootstrap + * fs.open(path, 'r', (err, fd) => { + * console.log(executionAsyncId()); // 6 - open() + * }); + * ``` + * + * The ID returned from `executionAsyncId()` is related to execution timing, not + * causality (which is covered by `triggerAsyncId()`): + * + * ```js + * const server = net.createServer((conn) => { + * // Returns the ID of the server, not of the new connection, because the + * // callback runs in the execution scope of the server's MakeCallback(). + * async_hooks.executionAsyncId(); + * + * }).listen(port, () => { + * // Returns the ID of a TickObject (process.nextTick()) because all + * // callbacks passed to .listen() are wrapped in a nextTick(). + * async_hooks.executionAsyncId(); + * }); + * ``` + * + * Promise contexts may not get precise `executionAsyncIds` by default. + * See the section on `promise execution tracking`. + * @since v8.1.0 + * @return The `asyncId` of the current execution context. Useful to track when something calls. + */ + function executionAsyncId(): number; + /** + * Resource objects returned by `executionAsyncResource()` are most often internal + * Node.js handle objects with undocumented APIs. Using any functions or properties + * on the object is likely to crash your application and should be avoided. + * + * Using `executionAsyncResource()` in the top-level execution context will + * return an empty object as there is no handle or request object to use, + * but having an object representing the top-level can be helpful. + * + * ```js + * import { open } from 'fs'; + * import { executionAsyncId, executionAsyncResource } from 'async_hooks'; + * + * console.log(executionAsyncId(), executionAsyncResource()); // 1 {} + * open(new URL(import.meta.url), 'r', (err, fd) => { + * console.log(executionAsyncId(), executionAsyncResource()); // 7 FSReqWrap + * }); + * ``` + * + * This can be used to implement continuation local storage without the + * use of a tracking `Map` to store the metadata: + * + * ```js + * import { createServer } from 'http'; + * import { + * executionAsyncId, + * executionAsyncResource, + * createHook + * } from 'async_hooks'; + * const sym = Symbol('state'); // Private symbol to avoid pollution + * + * createHook({ + * init(asyncId, type, triggerAsyncId, resource) { + * const cr = executionAsyncResource(); + * if (cr) { + * resource[sym] = cr[sym]; + * } + * } + * }).enable(); + * + * const server = createServer((req, res) => { + * executionAsyncResource()[sym] = { state: req.url }; + * setTimeout(function() { + * res.end(JSON.stringify(executionAsyncResource()[sym])); + * }, 100); + * }).listen(3000); + * ``` + * @since v13.9.0, v12.17.0 + * @return The resource representing the current execution. Useful to store data within the resource. + */ + function executionAsyncResource(): object; + /** + * ```js + * const server = net.createServer((conn) => { + * // The resource that caused (or triggered) this callback to be called + * // was that of the new connection. Thus the return value of triggerAsyncId() + * // is the asyncId of "conn". + * async_hooks.triggerAsyncId(); + * + * }).listen(port, () => { + * // Even though all callbacks passed to .listen() are wrapped in a nextTick() + * // the callback itself exists because the call to the server's .listen() + * // was made. So the return value would be the ID of the server. + * async_hooks.triggerAsyncId(); + * }); + * ``` + * + * Promise contexts may not get valid `triggerAsyncId`s by default. See + * the section on `promise execution tracking`. + * @return The ID of the resource responsible for calling the callback that is currently being executed. + */ + function triggerAsyncId(): number; + interface HookCallbacks { + /** + * Called when a class is constructed that has the possibility to emit an asynchronous event. + * @param asyncId a unique ID for the async resource + * @param type the type of the async resource + * @param triggerAsyncId the unique ID of the async resource in whose execution context this async resource was created + * @param resource reference to the resource representing the async operation, needs to be released during destroy + */ + init?(asyncId: number, type: string, triggerAsyncId: number, resource: object): void; + /** + * When an asynchronous operation is initiated or completes a callback is called to notify the user. + * The before callback is called just before said callback is executed. + * @param asyncId the unique identifier assigned to the resource about to execute the callback. + */ + before?(asyncId: number): void; + /** + * Called immediately after the callback specified in before is completed. + * @param asyncId the unique identifier assigned to the resource which has executed the callback. + */ + after?(asyncId: number): void; + /** + * Called when a promise has resolve() called. This may not be in the same execution id + * as the promise itself. + * @param asyncId the unique id for the promise that was resolve()d. + */ + promiseResolve?(asyncId: number): void; + /** + * Called after the resource corresponding to asyncId is destroyed + * @param asyncId a unique ID for the async resource + */ + destroy?(asyncId: number): void; + } + interface AsyncHook { + /** + * Enable the callbacks for a given AsyncHook instance. If no callbacks are provided enabling is a noop. + */ + enable(): this; + /** + * Disable the callbacks for a given AsyncHook instance from the global pool of AsyncHook callbacks to be executed. Once a hook has been disabled it will not be called again until enabled. + */ + disable(): this; + } + /** + * Registers functions to be called for different lifetime events of each async + * operation. + * + * The callbacks `init()`/`before()`/`after()`/`destroy()` are called for the + * respective asynchronous event during a resource's lifetime. + * + * All callbacks are optional. For example, if only resource cleanup needs to + * be tracked, then only the `destroy` callback needs to be passed. The + * specifics of all functions that can be passed to `callbacks` is in the `Hook Callbacks` section. + * + * ```js + * import { createHook } from 'async_hooks'; + * + * const asyncHook = createHook({ + * init(asyncId, type, triggerAsyncId, resource) { }, + * destroy(asyncId) { } + * }); + * ``` + * + * The callbacks will be inherited via the prototype chain: + * + * ```js + * class MyAsyncCallbacks { + * init(asyncId, type, triggerAsyncId, resource) { } + * destroy(asyncId) {} + * } + * + * class MyAddedCallbacks extends MyAsyncCallbacks { + * before(asyncId) { } + * after(asyncId) { } + * } + * + * const asyncHook = async_hooks.createHook(new MyAddedCallbacks()); + * ``` + * + * Because promises are asynchronous resources whose lifecycle is tracked + * via the async hooks mechanism, the `init()`, `before()`, `after()`, and`destroy()` callbacks _must not_ be async functions that return promises. + * @since v8.1.0 + * @param callbacks The `Hook Callbacks` to register + * @return Instance used for disabling and enabling hooks + */ + function createHook(callbacks: HookCallbacks): AsyncHook; + interface AsyncResourceOptions { + /** + * The ID of the execution context that created this async event. + * @default executionAsyncId() + */ + triggerAsyncId?: number | undefined; + /** + * Disables automatic `emitDestroy` when the object is garbage collected. + * This usually does not need to be set (even if `emitDestroy` is called + * manually), unless the resource's `asyncId` is retrieved and the + * sensitive API's `emitDestroy` is called with it. + * @default false + */ + requireManualDestroy?: boolean | undefined; + } + /** + * The class `AsyncResource` is designed to be extended by the embedder's async + * resources. Using this, users can easily trigger the lifetime events of their + * own resources. + * + * The `init` hook will trigger when an `AsyncResource` is instantiated. + * + * The following is an overview of the `AsyncResource` API. + * + * ```js + * import { AsyncResource, executionAsyncId } from 'async_hooks'; + * + * // AsyncResource() is meant to be extended. Instantiating a + * // new AsyncResource() also triggers init. If triggerAsyncId is omitted then + * // async_hook.executionAsyncId() is used. + * const asyncResource = new AsyncResource( + * type, { triggerAsyncId: executionAsyncId(), requireManualDestroy: false } + * ); + * + * // Run a function in the execution context of the resource. This will + * // * establish the context of the resource + * // * trigger the AsyncHooks before callbacks + * // * call the provided function `fn` with the supplied arguments + * // * trigger the AsyncHooks after callbacks + * // * restore the original execution context + * asyncResource.runInAsyncScope(fn, thisArg, ...args); + * + * // Call AsyncHooks destroy callbacks. + * asyncResource.emitDestroy(); + * + * // Return the unique ID assigned to the AsyncResource instance. + * asyncResource.asyncId(); + * + * // Return the trigger ID for the AsyncResource instance. + * asyncResource.triggerAsyncId(); + * ``` + */ + class AsyncResource { + /** + * AsyncResource() is meant to be extended. Instantiating a + * new AsyncResource() also triggers init. If triggerAsyncId is omitted then + * async_hook.executionAsyncId() is used. + * @param type The type of async event. + * @param triggerAsyncId The ID of the execution context that created + * this async event (default: `executionAsyncId()`), or an + * AsyncResourceOptions object (since v9.3.0) + */ + constructor(type: string, triggerAsyncId?: number | AsyncResourceOptions); + /** + * Binds the given function to the current execution context. + * + * The returned function will have an `asyncResource` property referencing + * the `AsyncResource` to which the function is bound. + * @since v14.8.0, v12.19.0 + * @param fn The function to bind to the current execution context. + * @param type An optional name to associate with the underlying `AsyncResource`. + */ + static bind any, ThisArg>( + fn: Func, + type?: string, + thisArg?: ThisArg + ): Func & { + asyncResource: AsyncResource; + }; + /** + * Binds the given function to execute to this `AsyncResource`'s scope. + * + * The returned function will have an `asyncResource` property referencing + * the `AsyncResource` to which the function is bound. + * @since v14.8.0, v12.19.0 + * @param fn The function to bind to the current `AsyncResource`. + */ + bind any>( + fn: Func + ): Func & { + asyncResource: AsyncResource; + }; + /** + * Call the provided function with the provided arguments in the execution context + * of the async resource. This will establish the context, trigger the AsyncHooks + * before callbacks, call the function, trigger the AsyncHooks after callbacks, and + * then restore the original execution context. + * @since v9.6.0 + * @param fn The function to call in the execution context of this async resource. + * @param thisArg The receiver to be used for the function call. + * @param args Optional arguments to pass to the function. + */ + runInAsyncScope(fn: (this: This, ...args: any[]) => Result, thisArg?: This, ...args: any[]): Result; + /** + * Call all `destroy` hooks. This should only ever be called once. An error will + * be thrown if it is called more than once. This **must** be manually called. If + * the resource is left to be collected by the GC then the `destroy` hooks will + * never be called. + * @return A reference to `asyncResource`. + */ + emitDestroy(): this; + /** + * @return The unique `asyncId` assigned to the resource. + */ + asyncId(): number; + /** + * + * @return The same `triggerAsyncId` that is passed to the `AsyncResource` constructor. + */ + triggerAsyncId(): number; + } + /** + * This class creates stores that stay coherent through asynchronous operations. + * + * While you can create your own implementation on top of the `async_hooks` module,`AsyncLocalStorage` should be preferred as it is a performant and memory safe + * implementation that involves significant optimizations that are non-obvious to + * implement. + * + * The following example uses `AsyncLocalStorage` to build a simple logger + * that assigns IDs to incoming HTTP requests and includes them in messages + * logged within each request. + * + * ```js + * import http from 'http'; + * import { AsyncLocalStorage } from 'async_hooks'; + * + * const asyncLocalStorage = new AsyncLocalStorage(); + * + * function logWithId(msg) { + * const id = asyncLocalStorage.getStore(); + * console.log(`${id !== undefined ? id : '-'}:`, msg); + * } + * + * let idSeq = 0; + * http.createServer((req, res) => { + * asyncLocalStorage.run(idSeq++, () => { + * logWithId('start'); + * // Imagine any chain of async operations here + * setImmediate(() => { + * logWithId('finish'); + * res.end(); + * }); + * }); + * }).listen(8080); + * + * http.get('http://localhost:8080'); + * http.get('http://localhost:8080'); + * // Prints: + * // 0: start + * // 1: start + * // 0: finish + * // 1: finish + * ``` + * + * Each instance of `AsyncLocalStorage` maintains an independent storage context. + * Multiple instances can safely exist simultaneously without risk of interfering + * with each other's data. + * @since v13.10.0, v12.17.0 + */ + class AsyncLocalStorage { + /** + * Disables the instance of `AsyncLocalStorage`. All subsequent calls + * to `asyncLocalStorage.getStore()` will return `undefined` until`asyncLocalStorage.run()` or `asyncLocalStorage.enterWith()` is called again. + * + * When calling `asyncLocalStorage.disable()`, all current contexts linked to the + * instance will be exited. + * + * Calling `asyncLocalStorage.disable()` is required before the`asyncLocalStorage` can be garbage collected. This does not apply to stores + * provided by the `asyncLocalStorage`, as those objects are garbage collected + * along with the corresponding async resources. + * + * Use this method when the `asyncLocalStorage` is not in use anymore + * in the current process. + * @since v13.10.0, v12.17.0 + * @experimental + */ + disable(): void; + /** + * Returns the current store. + * If called outside of an asynchronous context initialized by + * calling `asyncLocalStorage.run()` or `asyncLocalStorage.enterWith()`, it + * returns `undefined`. + * @since v13.10.0, v12.17.0 + */ + getStore(): T | undefined; + /** + * Runs a function synchronously within a context and returns its + * return value. The store is not accessible outside of the callback function. + * The store is accessible to any asynchronous operations created within the + * callback. + * + * The optional `args` are passed to the callback function. + * + * If the callback function throws an error, the error is thrown by `run()` too. + * The stacktrace is not impacted by this call and the context is exited. + * + * Example: + * + * ```js + * const store = { id: 2 }; + * try { + * asyncLocalStorage.run(store, () => { + * asyncLocalStorage.getStore(); // Returns the store object + * setTimeout(() => { + * asyncLocalStorage.getStore(); // Returns the store object + * }, 200); + * throw new Error(); + * }); + * } catch (e) { + * asyncLocalStorage.getStore(); // Returns undefined + * // The error will be caught here + * } + * ``` + * @since v13.10.0, v12.17.0 + */ + run(store: T, callback: (...args: TArgs) => R, ...args: TArgs): R; + /** + * Runs a function synchronously outside of a context and returns its + * return value. The store is not accessible within the callback function or + * the asynchronous operations created within the callback. Any `getStore()`call done within the callback function will always return `undefined`. + * + * The optional `args` are passed to the callback function. + * + * If the callback function throws an error, the error is thrown by `exit()` too. + * The stacktrace is not impacted by this call and the context is re-entered. + * + * Example: + * + * ```js + * // Within a call to run + * try { + * asyncLocalStorage.getStore(); // Returns the store object or value + * asyncLocalStorage.exit(() => { + * asyncLocalStorage.getStore(); // Returns undefined + * throw new Error(); + * }); + * } catch (e) { + * asyncLocalStorage.getStore(); // Returns the same object or value + * // The error will be caught here + * } + * ``` + * @since v13.10.0, v12.17.0 + * @experimental + */ + exit(callback: (...args: TArgs) => R, ...args: TArgs): R; + /** + * Transitions into the context for the remainder of the current + * synchronous execution and then persists the store through any following + * asynchronous calls. + * + * Example: + * + * ```js + * const store = { id: 1 }; + * // Replaces previous store with the given store object + * asyncLocalStorage.enterWith(store); + * asyncLocalStorage.getStore(); // Returns the store object + * someAsyncOperation(() => { + * asyncLocalStorage.getStore(); // Returns the same object + * }); + * ``` + * + * This transition will continue for the _entire_ synchronous execution. + * This means that if, for example, the context is entered within an event + * handler subsequent event handlers will also run within that context unless + * specifically bound to another context with an `AsyncResource`. That is why`run()` should be preferred over `enterWith()` unless there are strong reasons + * to use the latter method. + * + * ```js + * const store = { id: 1 }; + * + * emitter.on('my-event', () => { + * asyncLocalStorage.enterWith(store); + * }); + * emitter.on('my-event', () => { + * asyncLocalStorage.getStore(); // Returns the same object + * }); + * + * asyncLocalStorage.getStore(); // Returns undefined + * emitter.emit('my-event'); + * asyncLocalStorage.getStore(); // Returns the same object + * ``` + * @since v13.11.0, v12.17.0 + * @experimental + */ + enterWith(store: T): void; + } +} +declare module 'node:async_hooks' { + export * from 'async_hooks'; +} diff --git a/node_modules/@types/node/buffer.d.ts b/node_modules/@types/node/buffer.d.ts new file mode 100644 index 0000000..5ec326d --- /dev/null +++ b/node_modules/@types/node/buffer.d.ts @@ -0,0 +1,2258 @@ +/** + * `Buffer` objects are used to represent a fixed-length sequence of bytes. Many + * Node.js APIs support `Buffer`s. + * + * The `Buffer` class is a subclass of JavaScript's [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) class and + * extends it with methods that cover additional use cases. Node.js APIs accept + * plain [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) s wherever `Buffer`s are supported as well. + * + * While the `Buffer` class is available within the global scope, it is still + * recommended to explicitly reference it via an import or require statement. + * + * ```js + * import { Buffer } from 'buffer'; + * + * // Creates a zero-filled Buffer of length 10. + * const buf1 = Buffer.alloc(10); + * + * // Creates a Buffer of length 10, + * // filled with bytes which all have the value `1`. + * const buf2 = Buffer.alloc(10, 1); + * + * // Creates an uninitialized buffer of length 10. + * // This is faster than calling Buffer.alloc() but the returned + * // Buffer instance might contain old data that needs to be + * // overwritten using fill(), write(), or other functions that fill the Buffer's + * // contents. + * const buf3 = Buffer.allocUnsafe(10); + * + * // Creates a Buffer containing the bytes [1, 2, 3]. + * const buf4 = Buffer.from([1, 2, 3]); + * + * // Creates a Buffer containing the bytes [1, 1, 1, 1] – the entries + * // are all truncated using `(value & 255)` to fit into the range 0–255. + * const buf5 = Buffer.from([257, 257.5, -255, '1']); + * + * // Creates a Buffer containing the UTF-8-encoded bytes for the string 'tést': + * // [0x74, 0xc3, 0xa9, 0x73, 0x74] (in hexadecimal notation) + * // [116, 195, 169, 115, 116] (in decimal notation) + * const buf6 = Buffer.from('tést'); + * + * // Creates a Buffer containing the Latin-1 bytes [0x74, 0xe9, 0x73, 0x74]. + * const buf7 = Buffer.from('tést', 'latin1'); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/buffer.js) + */ +declare module 'buffer' { + import { BinaryLike } from 'node:crypto'; + import { ReadableStream as WebReadableStream } from 'node:stream/web'; + export const INSPECT_MAX_BYTES: number; + export const kMaxLength: number; + export const kStringMaxLength: number; + export const constants: { + MAX_LENGTH: number; + MAX_STRING_LENGTH: number; + }; + export type TranscodeEncoding = 'ascii' | 'utf8' | 'utf16le' | 'ucs2' | 'latin1' | 'binary'; + /** + * Re-encodes the given `Buffer` or `Uint8Array` instance from one character + * encoding to another. Returns a new `Buffer` instance. + * + * Throws if the `fromEnc` or `toEnc` specify invalid character encodings or if + * conversion from `fromEnc` to `toEnc` is not permitted. + * + * Encodings supported by `buffer.transcode()` are: `'ascii'`, `'utf8'`,`'utf16le'`, `'ucs2'`, `'latin1'`, and `'binary'`. + * + * The transcoding process will use substitution characters if a given byte + * sequence cannot be adequately represented in the target encoding. For instance: + * + * ```js + * import { Buffer, transcode } from 'buffer'; + * + * const newBuf = transcode(Buffer.from('€'), 'utf8', 'ascii'); + * console.log(newBuf.toString('ascii')); + * // Prints: '?' + * ``` + * + * Because the Euro (`€`) sign is not representable in US-ASCII, it is replaced + * with `?` in the transcoded `Buffer`. + * @since v7.1.0 + * @param source A `Buffer` or `Uint8Array` instance. + * @param fromEnc The current encoding. + * @param toEnc To target encoding. + */ + export function transcode(source: Uint8Array, fromEnc: TranscodeEncoding, toEnc: TranscodeEncoding): Buffer; + export const SlowBuffer: { + /** @deprecated since v6.0.0, use `Buffer.allocUnsafeSlow()` */ + new (size: number): Buffer; + prototype: Buffer; + }; + /** + * Resolves a `'blob:nodedata:...'` an associated `Blob` object registered using + * a prior call to `URL.createObjectURL()`. + * @since v16.7.0 + * @experimental + * @param id A `'blob:nodedata:...` URL string returned by a prior call to `URL.createObjectURL()`. + */ + export function resolveObjectURL(id: string): Blob | undefined; + export { Buffer }; + /** + * @experimental + */ + export interface BlobOptions { + /** + * @default 'utf8' + */ + encoding?: BufferEncoding | undefined; + /** + * The Blob content-type. The intent is for `type` to convey + * the MIME media type of the data, however no validation of the type format + * is performed. + */ + type?: string | undefined; + } + /** + * A [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob) encapsulates immutable, raw data that can be safely shared across + * multiple worker threads. + * @since v15.7.0, v14.18.0 + */ + export class Blob { + /** + * The total size of the `Blob` in bytes. + * @since v15.7.0, v14.18.0 + */ + readonly size: number; + /** + * The content-type of the `Blob`. + * @since v15.7.0, v14.18.0 + */ + readonly type: string; + /** + * Creates a new `Blob` object containing a concatenation of the given sources. + * + * {ArrayBuffer}, {TypedArray}, {DataView}, and {Buffer} sources are copied into + * the 'Blob' and can therefore be safely modified after the 'Blob' is created. + * + * String sources are also copied into the `Blob`. + */ + constructor(sources: Array, options?: BlobOptions); + /** + * Returns a promise that fulfills with an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) containing a copy of + * the `Blob` data. + * @since v15.7.0, v14.18.0 + */ + arrayBuffer(): Promise; + /** + * Creates and returns a new `Blob` containing a subset of this `Blob` objects + * data. The original `Blob` is not altered. + * @since v15.7.0, v14.18.0 + * @param start The starting index. + * @param end The ending index. + * @param type The content-type for the new `Blob` + */ + slice(start?: number, end?: number, type?: string): Blob; + /** + * Returns a promise that fulfills with the contents of the `Blob` decoded as a + * UTF-8 string. + * @since v15.7.0, v14.18.0 + */ + text(): Promise; + /** + * Returns a new (WHATWG) `ReadableStream` that allows the content of the `Blob` to be read. + * @since v16.7.0 + */ + stream(): WebReadableStream; + } + export import atob = globalThis.atob; + export import btoa = globalThis.btoa; + + import { Blob as NodeBlob } from 'buffer'; + // This conditional type will be the existing global Blob in a browser, or + // the copy below in a Node environment. + type __Blob = typeof globalThis extends { onmessage: any, Blob: infer T } + ? T : NodeBlob; + global { + // Buffer class + type BufferEncoding = 'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'; + type WithImplicitCoercion = + | T + | { + valueOf(): T; + }; + /** + * Raw data is stored in instances of the Buffer class. + * A Buffer is similar to an array of integers but corresponds to a raw memory allocation outside the V8 heap. A Buffer cannot be resized. + * Valid string encodings: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'base64url'|'binary'(deprecated)|'hex' + */ + interface BufferConstructor { + /** + * Allocates a new buffer containing the given {str}. + * + * @param str String to store in buffer. + * @param encoding encoding to use, optional. Default is 'utf8' + * @deprecated since v10.0.0 - Use `Buffer.from(string[, encoding])` instead. + */ + new (str: string, encoding?: BufferEncoding): Buffer; + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + * @deprecated since v10.0.0 - Use `Buffer.alloc()` instead (also see `Buffer.allocUnsafe()`). + */ + new (size: number): Buffer; + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + * @deprecated since v10.0.0 - Use `Buffer.from(array)` instead. + */ + new (array: Uint8Array): Buffer; + /** + * Produces a Buffer backed by the same allocated memory as + * the given {ArrayBuffer}/{SharedArrayBuffer}. + * + * + * @param arrayBuffer The ArrayBuffer with which to share memory. + * @deprecated since v10.0.0 - Use `Buffer.from(arrayBuffer[, byteOffset[, length]])` instead. + */ + new (arrayBuffer: ArrayBuffer | SharedArrayBuffer): Buffer; + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + * @deprecated since v10.0.0 - Use `Buffer.from(array)` instead. + */ + new (array: ReadonlyArray): Buffer; + /** + * Copies the passed {buffer} data onto a new {Buffer} instance. + * + * @param buffer The buffer to copy. + * @deprecated since v10.0.0 - Use `Buffer.from(buffer)` instead. + */ + new (buffer: Buffer): Buffer; + /** + * Allocates a new `Buffer` using an `array` of bytes in the range `0` – `255`. + * Array entries outside that range will be truncated to fit into it. + * + * ```js + * import { Buffer } from 'buffer'; + * + * // Creates a new Buffer containing the UTF-8 bytes of the string 'buffer'. + * const buf = Buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]); + * ``` + * + * A `TypeError` will be thrown if `array` is not an `Array` or another type + * appropriate for `Buffer.from()` variants. + * + * `Buffer.from(array)` and `Buffer.from(string)` may also use the internal`Buffer` pool like `Buffer.allocUnsafe()` does. + * @since v5.10.0 + */ + from(arrayBuffer: WithImplicitCoercion, byteOffset?: number, length?: number): Buffer; + /** + * Creates a new Buffer using the passed {data} + * @param data data to create a new Buffer + */ + from(data: Uint8Array | ReadonlyArray): Buffer; + from(data: WithImplicitCoercion | string>): Buffer; + /** + * Creates a new Buffer containing the given JavaScript string {str}. + * If provided, the {encoding} parameter identifies the character encoding. + * If not provided, {encoding} defaults to 'utf8'. + */ + from( + str: + | WithImplicitCoercion + | { + [Symbol.toPrimitive](hint: 'string'): string; + }, + encoding?: BufferEncoding + ): Buffer; + /** + * Creates a new Buffer using the passed {data} + * @param values to create a new Buffer + */ + of(...items: number[]): Buffer; + /** + * Returns `true` if `obj` is a `Buffer`, `false` otherwise. + * + * ```js + * import { Buffer } from 'buffer'; + * + * Buffer.isBuffer(Buffer.alloc(10)); // true + * Buffer.isBuffer(Buffer.from('foo')); // true + * Buffer.isBuffer('a string'); // false + * Buffer.isBuffer([]); // false + * Buffer.isBuffer(new Uint8Array(1024)); // false + * ``` + * @since v0.1.101 + */ + isBuffer(obj: any): obj is Buffer; + /** + * Returns `true` if `encoding` is the name of a supported character encoding, + * or `false` otherwise. + * + * ```js + * import { Buffer } from 'buffer'; + * + * console.log(Buffer.isEncoding('utf8')); + * // Prints: true + * + * console.log(Buffer.isEncoding('hex')); + * // Prints: true + * + * console.log(Buffer.isEncoding('utf/8')); + * // Prints: false + * + * console.log(Buffer.isEncoding('')); + * // Prints: false + * ``` + * @since v0.9.1 + * @param encoding A character encoding name to check. + */ + isEncoding(encoding: string): encoding is BufferEncoding; + /** + * Returns the byte length of a string when encoded using `encoding`. + * This is not the same as [`String.prototype.length`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length), which does not account + * for the encoding that is used to convert the string into bytes. + * + * For `'base64'`, `'base64url'`, and `'hex'`, this function assumes valid input. + * For strings that contain non-base64/hex-encoded data (e.g. whitespace), the + * return value might be greater than the length of a `Buffer` created from the + * string. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const str = '\u00bd + \u00bc = \u00be'; + * + * console.log(`${str}: ${str.length} characters, ` + + * `${Buffer.byteLength(str, 'utf8')} bytes`); + * // Prints: ½ + ¼ = ¾: 9 characters, 12 bytes + * ``` + * + * When `string` is a + * `Buffer`/[`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView)/[`TypedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/- + * Reference/Global_Objects/TypedArray)/[`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer)/[`SharedArrayBuffer`](https://develop- + * er.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer), the byte length as reported by `.byteLength`is returned. + * @since v0.1.90 + * @param string A value to calculate the length of. + * @param [encoding='utf8'] If `string` is a string, this is its encoding. + * @return The number of bytes contained within `string`. + */ + byteLength(string: string | NodeJS.ArrayBufferView | ArrayBuffer | SharedArrayBuffer, encoding?: BufferEncoding): number; + /** + * Returns a new `Buffer` which is the result of concatenating all the `Buffer`instances in the `list` together. + * + * If the list has no items, or if the `totalLength` is 0, then a new zero-length`Buffer` is returned. + * + * If `totalLength` is not provided, it is calculated from the `Buffer` instances + * in `list` by adding their lengths. + * + * If `totalLength` is provided, it is coerced to an unsigned integer. If the + * combined length of the `Buffer`s in `list` exceeds `totalLength`, the result is + * truncated to `totalLength`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * // Create a single `Buffer` from a list of three `Buffer` instances. + * + * const buf1 = Buffer.alloc(10); + * const buf2 = Buffer.alloc(14); + * const buf3 = Buffer.alloc(18); + * const totalLength = buf1.length + buf2.length + buf3.length; + * + * console.log(totalLength); + * // Prints: 42 + * + * const bufA = Buffer.concat([buf1, buf2, buf3], totalLength); + * + * console.log(bufA); + * // Prints: + * console.log(bufA.length); + * // Prints: 42 + * ``` + * + * `Buffer.concat()` may also use the internal `Buffer` pool like `Buffer.allocUnsafe()` does. + * @since v0.7.11 + * @param list List of `Buffer` or {@link Uint8Array} instances to concatenate. + * @param totalLength Total length of the `Buffer` instances in `list` when concatenated. + */ + concat(list: ReadonlyArray, totalLength?: number): Buffer; + /** + * Compares `buf1` to `buf2`, typically for the purpose of sorting arrays of`Buffer` instances. This is equivalent to calling `buf1.compare(buf2)`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf1 = Buffer.from('1234'); + * const buf2 = Buffer.from('0123'); + * const arr = [buf1, buf2]; + * + * console.log(arr.sort(Buffer.compare)); + * // Prints: [ , ] + * // (This result is equal to: [buf2, buf1].) + * ``` + * @since v0.11.13 + * @return Either `-1`, `0`, or `1`, depending on the result of the comparison. See `compare` for details. + */ + compare(buf1: Uint8Array, buf2: Uint8Array): -1 | 0 | 1; + /** + * Allocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the`Buffer` will be zero-filled. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.alloc(5); + * + * console.log(buf); + * // Prints: + * ``` + * + * If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_INVALID_ARG_VALUE` is thrown. + * + * If `fill` is specified, the allocated `Buffer` will be initialized by calling `buf.fill(fill)`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.alloc(5, 'a'); + * + * console.log(buf); + * // Prints: + * ``` + * + * If both `fill` and `encoding` are specified, the allocated `Buffer` will be + * initialized by calling `buf.fill(fill, encoding)`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64'); + * + * console.log(buf); + * // Prints: + * ``` + * + * Calling `Buffer.alloc()` can be measurably slower than the alternative `Buffer.allocUnsafe()` but ensures that the newly created `Buffer` instance + * contents will never contain sensitive data from previous allocations, including + * data that might not have been allocated for `Buffer`s. + * + * A `TypeError` will be thrown if `size` is not a number. + * @since v5.10.0 + * @param size The desired length of the new `Buffer`. + * @param [fill=0] A value to pre-fill the new `Buffer` with. + * @param [encoding='utf8'] If `fill` is a string, this is its encoding. + */ + alloc(size: number, fill?: string | Buffer | number, encoding?: BufferEncoding): Buffer; + /** + * Allocates a new `Buffer` of `size` bytes. If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_INVALID_ARG_VALUE` is thrown. + * + * The underlying memory for `Buffer` instances created in this way is _not_ + * _initialized_. The contents of the newly created `Buffer` are unknown and _may contain sensitive data_. Use `Buffer.alloc()` instead to initialize`Buffer` instances with zeroes. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(10); + * + * console.log(buf); + * // Prints (contents may vary): + * + * buf.fill(0); + * + * console.log(buf); + * // Prints: + * ``` + * + * A `TypeError` will be thrown if `size` is not a number. + * + * The `Buffer` module pre-allocates an internal `Buffer` instance of + * size `Buffer.poolSize` that is used as a pool for the fast allocation of new`Buffer` instances created using `Buffer.allocUnsafe()`,`Buffer.from(array)`, `Buffer.concat()`, and the + * deprecated`new Buffer(size)` constructor only when `size` is less than or equal + * to `Buffer.poolSize >> 1` (floor of `Buffer.poolSize` divided by two). + * + * Use of this pre-allocated internal memory pool is a key difference between + * calling `Buffer.alloc(size, fill)` vs. `Buffer.allocUnsafe(size).fill(fill)`. + * Specifically, `Buffer.alloc(size, fill)` will _never_ use the internal `Buffer`pool, while `Buffer.allocUnsafe(size).fill(fill)`_will_ use the internal`Buffer` pool if `size` is less + * than or equal to half `Buffer.poolSize`. The + * difference is subtle but can be important when an application requires the + * additional performance that `Buffer.allocUnsafe()` provides. + * @since v5.10.0 + * @param size The desired length of the new `Buffer`. + */ + allocUnsafe(size: number): Buffer; + /** + * Allocates a new `Buffer` of `size` bytes. If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_INVALID_ARG_VALUE` is thrown. A zero-length `Buffer` is created + * if `size` is 0. + * + * The underlying memory for `Buffer` instances created in this way is _not_ + * _initialized_. The contents of the newly created `Buffer` are unknown and _may contain sensitive data_. Use `buf.fill(0)` to initialize + * such `Buffer` instances with zeroes. + * + * When using `Buffer.allocUnsafe()` to allocate new `Buffer` instances, + * allocations under 4 KB are sliced from a single pre-allocated `Buffer`. This + * allows applications to avoid the garbage collection overhead of creating many + * individually allocated `Buffer` instances. This approach improves both + * performance and memory usage by eliminating the need to track and clean up as + * many individual `ArrayBuffer` objects. + * + * However, in the case where a developer may need to retain a small chunk of + * memory from a pool for an indeterminate amount of time, it may be appropriate + * to create an un-pooled `Buffer` instance using `Buffer.allocUnsafeSlow()` and + * then copying out the relevant bits. + * + * ```js + * import { Buffer } from 'buffer'; + * + * // Need to keep around a few small chunks of memory. + * const store = []; + * + * socket.on('readable', () => { + * let data; + * while (null !== (data = readable.read())) { + * // Allocate for retained data. + * const sb = Buffer.allocUnsafeSlow(10); + * + * // Copy the data into the new allocation. + * data.copy(sb, 0, 0, 10); + * + * store.push(sb); + * } + * }); + * ``` + * + * A `TypeError` will be thrown if `size` is not a number. + * @since v5.12.0 + * @param size The desired length of the new `Buffer`. + */ + allocUnsafeSlow(size: number): Buffer; + /** + * This is the size (in bytes) of pre-allocated internal `Buffer` instances used + * for pooling. This value may be modified. + * @since v0.11.3 + */ + poolSize: number; + } + interface Buffer extends Uint8Array { + /** + * Writes `string` to `buf` at `offset` according to the character encoding in`encoding`. The `length` parameter is the number of bytes to write. If `buf` did + * not contain enough space to fit the entire string, only part of `string` will be + * written. However, partially encoded characters will not be written. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.alloc(256); + * + * const len = buf.write('\u00bd + \u00bc = \u00be', 0); + * + * console.log(`${len} bytes: ${buf.toString('utf8', 0, len)}`); + * // Prints: 12 bytes: ½ + ¼ = ¾ + * + * const buffer = Buffer.alloc(10); + * + * const length = buffer.write('abcd', 8); + * + * console.log(`${length} bytes: ${buffer.toString('utf8', 8, 10)}`); + * // Prints: 2 bytes : ab + * ``` + * @since v0.1.90 + * @param string String to write to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write `string`. + * @param [length=buf.length - offset] Maximum number of bytes to write (written bytes will not exceed `buf.length - offset`). + * @param [encoding='utf8'] The character encoding of `string`. + * @return Number of bytes written. + */ + write(string: string, encoding?: BufferEncoding): number; + write(string: string, offset: number, encoding?: BufferEncoding): number; + write(string: string, offset: number, length: number, encoding?: BufferEncoding): number; + /** + * Decodes `buf` to a string according to the specified character encoding in`encoding`. `start` and `end` may be passed to decode only a subset of `buf`. + * + * If `encoding` is `'utf8'` and a byte sequence in the input is not valid UTF-8, + * then each invalid byte is replaced with the replacement character `U+FFFD`. + * + * The maximum length of a string instance (in UTF-16 code units) is available + * as {@link constants.MAX_STRING_LENGTH}. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf1 = Buffer.allocUnsafe(26); + * + * for (let i = 0; i < 26; i++) { + * // 97 is the decimal ASCII value for 'a'. + * buf1[i] = i + 97; + * } + * + * console.log(buf1.toString('utf8')); + * // Prints: abcdefghijklmnopqrstuvwxyz + * console.log(buf1.toString('utf8', 0, 5)); + * // Prints: abcde + * + * const buf2 = Buffer.from('tést'); + * + * console.log(buf2.toString('hex')); + * // Prints: 74c3a97374 + * console.log(buf2.toString('utf8', 0, 3)); + * // Prints: té + * console.log(buf2.toString(undefined, 0, 3)); + * // Prints: té + * ``` + * @since v0.1.90 + * @param [encoding='utf8'] The character encoding to use. + * @param [start=0] The byte offset to start decoding at. + * @param [end=buf.length] The byte offset to stop decoding at (not inclusive). + */ + toString(encoding?: BufferEncoding, start?: number, end?: number): string; + /** + * Returns a JSON representation of `buf`. [`JSON.stringify()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) implicitly calls + * this function when stringifying a `Buffer` instance. + * + * `Buffer.from()` accepts objects in the format returned from this method. + * In particular, `Buffer.from(buf.toJSON())` works like `Buffer.from(buf)`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]); + * const json = JSON.stringify(buf); + * + * console.log(json); + * // Prints: {"type":"Buffer","data":[1,2,3,4,5]} + * + * const copy = JSON.parse(json, (key, value) => { + * return value && value.type === 'Buffer' ? + * Buffer.from(value) : + * value; + * }); + * + * console.log(copy); + * // Prints: + * ``` + * @since v0.9.2 + */ + toJSON(): { + type: 'Buffer'; + data: number[]; + }; + /** + * Returns `true` if both `buf` and `otherBuffer` have exactly the same bytes,`false` otherwise. Equivalent to `buf.compare(otherBuffer) === 0`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf1 = Buffer.from('ABC'); + * const buf2 = Buffer.from('414243', 'hex'); + * const buf3 = Buffer.from('ABCD'); + * + * console.log(buf1.equals(buf2)); + * // Prints: true + * console.log(buf1.equals(buf3)); + * // Prints: false + * ``` + * @since v0.11.13 + * @param otherBuffer A `Buffer` or {@link Uint8Array} with which to compare `buf`. + */ + equals(otherBuffer: Uint8Array): boolean; + /** + * Compares `buf` with `target` and returns a number indicating whether `buf`comes before, after, or is the same as `target` in sort order. + * Comparison is based on the actual sequence of bytes in each `Buffer`. + * + * * `0` is returned if `target` is the same as `buf` + * * `1` is returned if `target` should come _before_`buf` when sorted. + * * `-1` is returned if `target` should come _after_`buf` when sorted. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf1 = Buffer.from('ABC'); + * const buf2 = Buffer.from('BCD'); + * const buf3 = Buffer.from('ABCD'); + * + * console.log(buf1.compare(buf1)); + * // Prints: 0 + * console.log(buf1.compare(buf2)); + * // Prints: -1 + * console.log(buf1.compare(buf3)); + * // Prints: -1 + * console.log(buf2.compare(buf1)); + * // Prints: 1 + * console.log(buf2.compare(buf3)); + * // Prints: 1 + * console.log([buf1, buf2, buf3].sort(Buffer.compare)); + * // Prints: [ , , ] + * // (This result is equal to: [buf1, buf3, buf2].) + * ``` + * + * The optional `targetStart`, `targetEnd`, `sourceStart`, and `sourceEnd`arguments can be used to limit the comparison to specific ranges within `target`and `buf` respectively. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf1 = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8, 9]); + * const buf2 = Buffer.from([5, 6, 7, 8, 9, 1, 2, 3, 4]); + * + * console.log(buf1.compare(buf2, 5, 9, 0, 4)); + * // Prints: 0 + * console.log(buf1.compare(buf2, 0, 6, 4)); + * // Prints: -1 + * console.log(buf1.compare(buf2, 5, 6, 5)); + * // Prints: 1 + * ``` + * + * `ERR_OUT_OF_RANGE` is thrown if `targetStart < 0`, `sourceStart < 0`,`targetEnd > target.byteLength`, or `sourceEnd > source.byteLength`. + * @since v0.11.13 + * @param target A `Buffer` or {@link Uint8Array} with which to compare `buf`. + * @param [targetStart=0] The offset within `target` at which to begin comparison. + * @param [targetEnd=target.length] The offset within `target` at which to end comparison (not inclusive). + * @param [sourceStart=0] The offset within `buf` at which to begin comparison. + * @param [sourceEnd=buf.length] The offset within `buf` at which to end comparison (not inclusive). + */ + compare(target: Uint8Array, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): -1 | 0 | 1; + /** + * Copies data from a region of `buf` to a region in `target`, even if the `target`memory region overlaps with `buf`. + * + * [`TypedArray.prototype.set()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set) performs the same operation, and is available + * for all TypedArrays, including Node.js `Buffer`s, although it takes + * different function arguments. + * + * ```js + * import { Buffer } from 'buffer'; + * + * // Create two `Buffer` instances. + * const buf1 = Buffer.allocUnsafe(26); + * const buf2 = Buffer.allocUnsafe(26).fill('!'); + * + * for (let i = 0; i < 26; i++) { + * // 97 is the decimal ASCII value for 'a'. + * buf1[i] = i + 97; + * } + * + * // Copy `buf1` bytes 16 through 19 into `buf2` starting at byte 8 of `buf2`. + * buf1.copy(buf2, 8, 16, 20); + * // This is equivalent to: + * // buf2.set(buf1.subarray(16, 20), 8); + * + * console.log(buf2.toString('ascii', 0, 25)); + * // Prints: !!!!!!!!qrst!!!!!!!!!!!!! + * ``` + * + * ```js + * import { Buffer } from 'buffer'; + * + * // Create a `Buffer` and copy data from one region to an overlapping region + * // within the same `Buffer`. + * + * const buf = Buffer.allocUnsafe(26); + * + * for (let i = 0; i < 26; i++) { + * // 97 is the decimal ASCII value for 'a'. + * buf[i] = i + 97; + * } + * + * buf.copy(buf, 0, 4, 10); + * + * console.log(buf.toString()); + * // Prints: efghijghijklmnopqrstuvwxyz + * ``` + * @since v0.1.90 + * @param target A `Buffer` or {@link Uint8Array} to copy into. + * @param [targetStart=0] The offset within `target` at which to begin writing. + * @param [sourceStart=0] The offset within `buf` from which to begin copying. + * @param [sourceEnd=buf.length] The offset within `buf` at which to stop copying (not inclusive). + * @return The number of bytes copied. + */ + copy(target: Uint8Array, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; + /** + * Returns a new `Buffer` that references the same memory as the original, but + * offset and cropped by the `start` and `end` indices. + * + * This method is not compatible with the `Uint8Array.prototype.slice()`, + * which is a superclass of `Buffer`. To copy the slice, use`Uint8Array.prototype.slice()`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from('buffer'); + * + * const copiedBuf = Uint8Array.prototype.slice.call(buf); + * copiedBuf[0]++; + * console.log(copiedBuf.toString()); + * // Prints: cuffer + * + * console.log(buf.toString()); + * // Prints: buffer + * + * // With buf.slice(), the original buffer is modified. + * const notReallyCopiedBuf = buf.slice(); + * notReallyCopiedBuf[0]++; + * console.log(notReallyCopiedBuf.toString()); + * // Prints: cuffer + * console.log(buf.toString()); + * // Also prints: cuffer (!) + * ``` + * @since v0.3.0 + * @deprecated Use `subarray` instead. + * @param [start=0] Where the new `Buffer` will start. + * @param [end=buf.length] Where the new `Buffer` will end (not inclusive). + */ + slice(start?: number, end?: number): Buffer; + /** + * Returns a new `Buffer` that references the same memory as the original, but + * offset and cropped by the `start` and `end` indices. + * + * Specifying `end` greater than `buf.length` will return the same result as + * that of `end` equal to `buf.length`. + * + * This method is inherited from [`TypedArray.prototype.subarray()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray). + * + * Modifying the new `Buffer` slice will modify the memory in the original `Buffer`because the allocated memory of the two objects overlap. + * + * ```js + * import { Buffer } from 'buffer'; + * + * // Create a `Buffer` with the ASCII alphabet, take a slice, and modify one byte + * // from the original `Buffer`. + * + * const buf1 = Buffer.allocUnsafe(26); + * + * for (let i = 0; i < 26; i++) { + * // 97 is the decimal ASCII value for 'a'. + * buf1[i] = i + 97; + * } + * + * const buf2 = buf1.subarray(0, 3); + * + * console.log(buf2.toString('ascii', 0, buf2.length)); + * // Prints: abc + * + * buf1[0] = 33; + * + * console.log(buf2.toString('ascii', 0, buf2.length)); + * // Prints: !bc + * ``` + * + * Specifying negative indexes causes the slice to be generated relative to the + * end of `buf` rather than the beginning. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from('buffer'); + * + * console.log(buf.subarray(-6, -1).toString()); + * // Prints: buffe + * // (Equivalent to buf.subarray(0, 5).) + * + * console.log(buf.subarray(-6, -2).toString()); + * // Prints: buff + * // (Equivalent to buf.subarray(0, 4).) + * + * console.log(buf.subarray(-5, -2).toString()); + * // Prints: uff + * // (Equivalent to buf.subarray(1, 4).) + * ``` + * @since v3.0.0 + * @param [start=0] Where the new `Buffer` will start. + * @param [end=buf.length] Where the new `Buffer` will end (not inclusive). + */ + subarray(start?: number, end?: number): Buffer; + /** + * Writes `value` to `buf` at the specified `offset` as big-endian. + * + * `value` is interpreted and written as a two's complement signed integer. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(8); + * + * buf.writeBigInt64BE(0x0102030405060708n, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v12.0.0, v10.20.0 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`. + * @return `offset` plus the number of bytes written. + */ + writeBigInt64BE(value: bigint, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as little-endian. + * + * `value` is interpreted and written as a two's complement signed integer. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(8); + * + * buf.writeBigInt64LE(0x0102030405060708n, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v12.0.0, v10.20.0 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`. + * @return `offset` plus the number of bytes written. + */ + writeBigInt64LE(value: bigint, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as big-endian. + * + * This function is also available under the `writeBigUint64BE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(8); + * + * buf.writeBigUInt64BE(0xdecafafecacefaden, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v12.0.0, v10.20.0 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`. + * @return `offset` plus the number of bytes written. + */ + writeBigUInt64BE(value: bigint, offset?: number): number; + /** + * @alias Buffer.writeBigUInt64BE + * @since v14.10.0, v12.19.0 + */ + writeBigUint64BE(value: bigint, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as little-endian + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(8); + * + * buf.writeBigUInt64LE(0xdecafafecacefaden, 0); + * + * console.log(buf); + * // Prints: + * ``` + * + * This function is also available under the `writeBigUint64LE` alias. + * @since v12.0.0, v10.20.0 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`. + * @return `offset` plus the number of bytes written. + */ + writeBigUInt64LE(value: bigint, offset?: number): number; + /** + * @alias Buffer.writeBigUInt64LE + * @since v14.10.0, v12.19.0 + */ + writeBigUint64LE(value: bigint, offset?: number): number; + /** + * Writes `byteLength` bytes of `value` to `buf` at the specified `offset`as little-endian. Supports up to 48 bits of accuracy. Behavior is undefined + * when `value` is anything other than an unsigned integer. + * + * This function is also available under the `writeUintLE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(6); + * + * buf.writeUIntLE(0x1234567890ab, 0, 6); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.5 + * @param value Number to be written to `buf`. + * @param offset Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - byteLength`. + * @param byteLength Number of bytes to write. Must satisfy `0 < byteLength <= 6`. + * @return `offset` plus the number of bytes written. + */ + writeUIntLE(value: number, offset: number, byteLength: number): number; + /** + * @alias Buffer.writeUIntLE + * @since v14.9.0, v12.19.0 + */ + writeUintLE(value: number, offset: number, byteLength: number): number; + /** + * Writes `byteLength` bytes of `value` to `buf` at the specified `offset`as big-endian. Supports up to 48 bits of accuracy. Behavior is undefined + * when `value` is anything other than an unsigned integer. + * + * This function is also available under the `writeUintBE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(6); + * + * buf.writeUIntBE(0x1234567890ab, 0, 6); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.5 + * @param value Number to be written to `buf`. + * @param offset Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - byteLength`. + * @param byteLength Number of bytes to write. Must satisfy `0 < byteLength <= 6`. + * @return `offset` plus the number of bytes written. + */ + writeUIntBE(value: number, offset: number, byteLength: number): number; + /** + * @alias Buffer.writeUIntBE + * @since v14.9.0, v12.19.0 + */ + writeUintBE(value: number, offset: number, byteLength: number): number; + /** + * Writes `byteLength` bytes of `value` to `buf` at the specified `offset`as little-endian. Supports up to 48 bits of accuracy. Behavior is undefined + * when `value` is anything other than a signed integer. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(6); + * + * buf.writeIntLE(0x1234567890ab, 0, 6); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.11.15 + * @param value Number to be written to `buf`. + * @param offset Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - byteLength`. + * @param byteLength Number of bytes to write. Must satisfy `0 < byteLength <= 6`. + * @return `offset` plus the number of bytes written. + */ + writeIntLE(value: number, offset: number, byteLength: number): number; + /** + * Writes `byteLength` bytes of `value` to `buf` at the specified `offset`as big-endian. Supports up to 48 bits of accuracy. Behavior is undefined when`value` is anything other than a + * signed integer. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(6); + * + * buf.writeIntBE(0x1234567890ab, 0, 6); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.11.15 + * @param value Number to be written to `buf`. + * @param offset Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - byteLength`. + * @param byteLength Number of bytes to write. Must satisfy `0 < byteLength <= 6`. + * @return `offset` plus the number of bytes written. + */ + writeIntBE(value: number, offset: number, byteLength: number): number; + /** + * Reads an unsigned, big-endian 64-bit integer from `buf` at the specified`offset`. + * + * This function is also available under the `readBigUint64BE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff]); + * + * console.log(buf.readBigUInt64BE(0)); + * // Prints: 4294967295n + * ``` + * @since v12.0.0, v10.20.0 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`. + */ + readBigUInt64BE(offset?: number): bigint; + /** + * @alias Buffer.readBigUInt64BE + * @since v14.10.0, v12.19.0 + */ + readBigUint64BE(offset?: number): bigint; + /** + * Reads an unsigned, little-endian 64-bit integer from `buf` at the specified`offset`. + * + * This function is also available under the `readBigUint64LE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff]); + * + * console.log(buf.readBigUInt64LE(0)); + * // Prints: 18446744069414584320n + * ``` + * @since v12.0.0, v10.20.0 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`. + */ + readBigUInt64LE(offset?: number): bigint; + /** + * @alias Buffer.readBigUInt64LE + * @since v14.10.0, v12.19.0 + */ + readBigUint64LE(offset?: number): bigint; + /** + * Reads a signed, big-endian 64-bit integer from `buf` at the specified `offset`. + * + * Integers read from a `Buffer` are interpreted as two's complement signed + * values. + * @since v12.0.0, v10.20.0 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`. + */ + readBigInt64BE(offset?: number): bigint; + /** + * Reads a signed, little-endian 64-bit integer from `buf` at the specified`offset`. + * + * Integers read from a `Buffer` are interpreted as two's complement signed + * values. + * @since v12.0.0, v10.20.0 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`. + */ + readBigInt64LE(offset?: number): bigint; + /** + * Reads `byteLength` number of bytes from `buf` at the specified `offset`and interprets the result as an unsigned, little-endian integer supporting + * up to 48 bits of accuracy. + * + * This function is also available under the `readUintLE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]); + * + * console.log(buf.readUIntLE(0, 6).toString(16)); + * // Prints: ab9078563412 + * ``` + * @since v0.11.15 + * @param offset Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - byteLength`. + * @param byteLength Number of bytes to read. Must satisfy `0 < byteLength <= 6`. + */ + readUIntLE(offset: number, byteLength: number): number; + /** + * @alias Buffer.readUIntLE + * @since v14.9.0, v12.19.0 + */ + readUintLE(offset: number, byteLength: number): number; + /** + * Reads `byteLength` number of bytes from `buf` at the specified `offset`and interprets the result as an unsigned big-endian integer supporting + * up to 48 bits of accuracy. + * + * This function is also available under the `readUintBE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]); + * + * console.log(buf.readUIntBE(0, 6).toString(16)); + * // Prints: 1234567890ab + * console.log(buf.readUIntBE(1, 6).toString(16)); + * // Throws ERR_OUT_OF_RANGE. + * ``` + * @since v0.11.15 + * @param offset Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - byteLength`. + * @param byteLength Number of bytes to read. Must satisfy `0 < byteLength <= 6`. + */ + readUIntBE(offset: number, byteLength: number): number; + /** + * @alias Buffer.readUIntBE + * @since v14.9.0, v12.19.0 + */ + readUintBE(offset: number, byteLength: number): number; + /** + * Reads `byteLength` number of bytes from `buf` at the specified `offset`and interprets the result as a little-endian, two's complement signed value + * supporting up to 48 bits of accuracy. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]); + * + * console.log(buf.readIntLE(0, 6).toString(16)); + * // Prints: -546f87a9cbee + * ``` + * @since v0.11.15 + * @param offset Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - byteLength`. + * @param byteLength Number of bytes to read. Must satisfy `0 < byteLength <= 6`. + */ + readIntLE(offset: number, byteLength: number): number; + /** + * Reads `byteLength` number of bytes from `buf` at the specified `offset`and interprets the result as a big-endian, two's complement signed value + * supporting up to 48 bits of accuracy. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]); + * + * console.log(buf.readIntBE(0, 6).toString(16)); + * // Prints: 1234567890ab + * console.log(buf.readIntBE(1, 6).toString(16)); + * // Throws ERR_OUT_OF_RANGE. + * console.log(buf.readIntBE(1, 0).toString(16)); + * // Throws ERR_OUT_OF_RANGE. + * ``` + * @since v0.11.15 + * @param offset Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - byteLength`. + * @param byteLength Number of bytes to read. Must satisfy `0 < byteLength <= 6`. + */ + readIntBE(offset: number, byteLength: number): number; + /** + * Reads an unsigned 8-bit integer from `buf` at the specified `offset`. + * + * This function is also available under the `readUint8` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([1, -2]); + * + * console.log(buf.readUInt8(0)); + * // Prints: 1 + * console.log(buf.readUInt8(1)); + * // Prints: 254 + * console.log(buf.readUInt8(2)); + * // Throws ERR_OUT_OF_RANGE. + * ``` + * @since v0.5.0 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 1`. + */ + readUInt8(offset?: number): number; + /** + * @alias Buffer.readUInt8 + * @since v14.9.0, v12.19.0 + */ + readUint8(offset?: number): number; + /** + * Reads an unsigned, little-endian 16-bit integer from `buf` at the specified`offset`. + * + * This function is also available under the `readUint16LE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x12, 0x34, 0x56]); + * + * console.log(buf.readUInt16LE(0).toString(16)); + * // Prints: 3412 + * console.log(buf.readUInt16LE(1).toString(16)); + * // Prints: 5634 + * console.log(buf.readUInt16LE(2).toString(16)); + * // Throws ERR_OUT_OF_RANGE. + * ``` + * @since v0.5.5 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`. + */ + readUInt16LE(offset?: number): number; + /** + * @alias Buffer.readUInt16LE + * @since v14.9.0, v12.19.0 + */ + readUint16LE(offset?: number): number; + /** + * Reads an unsigned, big-endian 16-bit integer from `buf` at the specified`offset`. + * + * This function is also available under the `readUint16BE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x12, 0x34, 0x56]); + * + * console.log(buf.readUInt16BE(0).toString(16)); + * // Prints: 1234 + * console.log(buf.readUInt16BE(1).toString(16)); + * // Prints: 3456 + * ``` + * @since v0.5.5 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`. + */ + readUInt16BE(offset?: number): number; + /** + * @alias Buffer.readUInt16BE + * @since v14.9.0, v12.19.0 + */ + readUint16BE(offset?: number): number; + /** + * Reads an unsigned, little-endian 32-bit integer from `buf` at the specified`offset`. + * + * This function is also available under the `readUint32LE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78]); + * + * console.log(buf.readUInt32LE(0).toString(16)); + * // Prints: 78563412 + * console.log(buf.readUInt32LE(1).toString(16)); + * // Throws ERR_OUT_OF_RANGE. + * ``` + * @since v0.5.5 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`. + */ + readUInt32LE(offset?: number): number; + /** + * @alias Buffer.readUInt32LE + * @since v14.9.0, v12.19.0 + */ + readUint32LE(offset?: number): number; + /** + * Reads an unsigned, big-endian 32-bit integer from `buf` at the specified`offset`. + * + * This function is also available under the `readUint32BE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78]); + * + * console.log(buf.readUInt32BE(0).toString(16)); + * // Prints: 12345678 + * ``` + * @since v0.5.5 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`. + */ + readUInt32BE(offset?: number): number; + /** + * @alias Buffer.readUInt32BE + * @since v14.9.0, v12.19.0 + */ + readUint32BE(offset?: number): number; + /** + * Reads a signed 8-bit integer from `buf` at the specified `offset`. + * + * Integers read from a `Buffer` are interpreted as two's complement signed values. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([-1, 5]); + * + * console.log(buf.readInt8(0)); + * // Prints: -1 + * console.log(buf.readInt8(1)); + * // Prints: 5 + * console.log(buf.readInt8(2)); + * // Throws ERR_OUT_OF_RANGE. + * ``` + * @since v0.5.0 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 1`. + */ + readInt8(offset?: number): number; + /** + * Reads a signed, little-endian 16-bit integer from `buf` at the specified`offset`. + * + * Integers read from a `Buffer` are interpreted as two's complement signed values. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0, 5]); + * + * console.log(buf.readInt16LE(0)); + * // Prints: 1280 + * console.log(buf.readInt16LE(1)); + * // Throws ERR_OUT_OF_RANGE. + * ``` + * @since v0.5.5 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`. + */ + readInt16LE(offset?: number): number; + /** + * Reads a signed, big-endian 16-bit integer from `buf` at the specified `offset`. + * + * Integers read from a `Buffer` are interpreted as two's complement signed values. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0, 5]); + * + * console.log(buf.readInt16BE(0)); + * // Prints: 5 + * ``` + * @since v0.5.5 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`. + */ + readInt16BE(offset?: number): number; + /** + * Reads a signed, little-endian 32-bit integer from `buf` at the specified`offset`. + * + * Integers read from a `Buffer` are interpreted as two's complement signed values. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0, 0, 0, 5]); + * + * console.log(buf.readInt32LE(0)); + * // Prints: 83886080 + * console.log(buf.readInt32LE(1)); + * // Throws ERR_OUT_OF_RANGE. + * ``` + * @since v0.5.5 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`. + */ + readInt32LE(offset?: number): number; + /** + * Reads a signed, big-endian 32-bit integer from `buf` at the specified `offset`. + * + * Integers read from a `Buffer` are interpreted as two's complement signed values. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0, 0, 0, 5]); + * + * console.log(buf.readInt32BE(0)); + * // Prints: 5 + * ``` + * @since v0.5.5 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`. + */ + readInt32BE(offset?: number): number; + /** + * Reads a 32-bit, little-endian float from `buf` at the specified `offset`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([1, 2, 3, 4]); + * + * console.log(buf.readFloatLE(0)); + * // Prints: 1.539989614439558e-36 + * console.log(buf.readFloatLE(1)); + * // Throws ERR_OUT_OF_RANGE. + * ``` + * @since v0.11.15 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`. + */ + readFloatLE(offset?: number): number; + /** + * Reads a 32-bit, big-endian float from `buf` at the specified `offset`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([1, 2, 3, 4]); + * + * console.log(buf.readFloatBE(0)); + * // Prints: 2.387939260590663e-38 + * ``` + * @since v0.11.15 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`. + */ + readFloatBE(offset?: number): number; + /** + * Reads a 64-bit, little-endian double from `buf` at the specified `offset`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8]); + * + * console.log(buf.readDoubleLE(0)); + * // Prints: 5.447603722011605e-270 + * console.log(buf.readDoubleLE(1)); + * // Throws ERR_OUT_OF_RANGE. + * ``` + * @since v0.11.15 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 8`. + */ + readDoubleLE(offset?: number): number; + /** + * Reads a 64-bit, big-endian double from `buf` at the specified `offset`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8]); + * + * console.log(buf.readDoubleBE(0)); + * // Prints: 8.20788039913184e-304 + * ``` + * @since v0.11.15 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 8`. + */ + readDoubleBE(offset?: number): number; + reverse(): this; + /** + * Interprets `buf` as an array of unsigned 16-bit integers and swaps the + * byte order _in-place_. Throws `ERR_INVALID_BUFFER_SIZE` if `buf.length` is not a multiple of 2. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]); + * + * console.log(buf1); + * // Prints: + * + * buf1.swap16(); + * + * console.log(buf1); + * // Prints: + * + * const buf2 = Buffer.from([0x1, 0x2, 0x3]); + * + * buf2.swap16(); + * // Throws ERR_INVALID_BUFFER_SIZE. + * ``` + * + * One convenient use of `buf.swap16()` is to perform a fast in-place conversion + * between UTF-16 little-endian and UTF-16 big-endian: + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from('This is little-endian UTF-16', 'utf16le'); + * buf.swap16(); // Convert to big-endian UTF-16 text. + * ``` + * @since v5.10.0 + * @return A reference to `buf`. + */ + swap16(): Buffer; + /** + * Interprets `buf` as an array of unsigned 32-bit integers and swaps the + * byte order _in-place_. Throws `ERR_INVALID_BUFFER_SIZE` if `buf.length` is not a multiple of 4. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]); + * + * console.log(buf1); + * // Prints: + * + * buf1.swap32(); + * + * console.log(buf1); + * // Prints: + * + * const buf2 = Buffer.from([0x1, 0x2, 0x3]); + * + * buf2.swap32(); + * // Throws ERR_INVALID_BUFFER_SIZE. + * ``` + * @since v5.10.0 + * @return A reference to `buf`. + */ + swap32(): Buffer; + /** + * Interprets `buf` as an array of 64-bit numbers and swaps byte order _in-place_. + * Throws `ERR_INVALID_BUFFER_SIZE` if `buf.length` is not a multiple of 8. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]); + * + * console.log(buf1); + * // Prints: + * + * buf1.swap64(); + * + * console.log(buf1); + * // Prints: + * + * const buf2 = Buffer.from([0x1, 0x2, 0x3]); + * + * buf2.swap64(); + * // Throws ERR_INVALID_BUFFER_SIZE. + * ``` + * @since v6.3.0 + * @return A reference to `buf`. + */ + swap64(): Buffer; + /** + * Writes `value` to `buf` at the specified `offset`. `value` must be a + * valid unsigned 8-bit integer. Behavior is undefined when `value` is anything + * other than an unsigned 8-bit integer. + * + * This function is also available under the `writeUint8` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(4); + * + * buf.writeUInt8(0x3, 0); + * buf.writeUInt8(0x4, 1); + * buf.writeUInt8(0x23, 2); + * buf.writeUInt8(0x42, 3); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.0 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 1`. + * @return `offset` plus the number of bytes written. + */ + writeUInt8(value: number, offset?: number): number; + /** + * @alias Buffer.writeUInt8 + * @since v14.9.0, v12.19.0 + */ + writeUint8(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as little-endian. The `value`must be a valid unsigned 16-bit integer. Behavior is undefined when `value` is + * anything other than an unsigned 16-bit integer. + * + * This function is also available under the `writeUint16LE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(4); + * + * buf.writeUInt16LE(0xdead, 0); + * buf.writeUInt16LE(0xbeef, 2); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.5 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`. + * @return `offset` plus the number of bytes written. + */ + writeUInt16LE(value: number, offset?: number): number; + /** + * @alias Buffer.writeUInt16LE + * @since v14.9.0, v12.19.0 + */ + writeUint16LE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as big-endian. The `value`must be a valid unsigned 16-bit integer. Behavior is undefined when `value`is anything other than an + * unsigned 16-bit integer. + * + * This function is also available under the `writeUint16BE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(4); + * + * buf.writeUInt16BE(0xdead, 0); + * buf.writeUInt16BE(0xbeef, 2); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.5 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`. + * @return `offset` plus the number of bytes written. + */ + writeUInt16BE(value: number, offset?: number): number; + /** + * @alias Buffer.writeUInt16BE + * @since v14.9.0, v12.19.0 + */ + writeUint16BE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as little-endian. The `value`must be a valid unsigned 32-bit integer. Behavior is undefined when `value` is + * anything other than an unsigned 32-bit integer. + * + * This function is also available under the `writeUint32LE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(4); + * + * buf.writeUInt32LE(0xfeedface, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.5 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`. + * @return `offset` plus the number of bytes written. + */ + writeUInt32LE(value: number, offset?: number): number; + /** + * @alias Buffer.writeUInt32LE + * @since v14.9.0, v12.19.0 + */ + writeUint32LE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as big-endian. The `value`must be a valid unsigned 32-bit integer. Behavior is undefined when `value`is anything other than an + * unsigned 32-bit integer. + * + * This function is also available under the `writeUint32BE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(4); + * + * buf.writeUInt32BE(0xfeedface, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.5 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`. + * @return `offset` plus the number of bytes written. + */ + writeUInt32BE(value: number, offset?: number): number; + /** + * @alias Buffer.writeUInt32BE + * @since v14.9.0, v12.19.0 + */ + writeUint32BE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset`. `value` must be a valid + * signed 8-bit integer. Behavior is undefined when `value` is anything other than + * a signed 8-bit integer. + * + * `value` is interpreted and written as a two's complement signed integer. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(2); + * + * buf.writeInt8(2, 0); + * buf.writeInt8(-2, 1); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.0 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 1`. + * @return `offset` plus the number of bytes written. + */ + writeInt8(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as little-endian. The `value`must be a valid signed 16-bit integer. Behavior is undefined when `value` is + * anything other than a signed 16-bit integer. + * + * The `value` is interpreted and written as a two's complement signed integer. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(2); + * + * buf.writeInt16LE(0x0304, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.5 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`. + * @return `offset` plus the number of bytes written. + */ + writeInt16LE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as big-endian. The `value`must be a valid signed 16-bit integer. Behavior is undefined when `value` is + * anything other than a signed 16-bit integer. + * + * The `value` is interpreted and written as a two's complement signed integer. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(2); + * + * buf.writeInt16BE(0x0102, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.5 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`. + * @return `offset` plus the number of bytes written. + */ + writeInt16BE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as little-endian. The `value`must be a valid signed 32-bit integer. Behavior is undefined when `value` is + * anything other than a signed 32-bit integer. + * + * The `value` is interpreted and written as a two's complement signed integer. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(4); + * + * buf.writeInt32LE(0x05060708, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.5 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`. + * @return `offset` plus the number of bytes written. + */ + writeInt32LE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as big-endian. The `value`must be a valid signed 32-bit integer. Behavior is undefined when `value` is + * anything other than a signed 32-bit integer. + * + * The `value` is interpreted and written as a two's complement signed integer. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(4); + * + * buf.writeInt32BE(0x01020304, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.5 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`. + * @return `offset` plus the number of bytes written. + */ + writeInt32BE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as little-endian. Behavior is + * undefined when `value` is anything other than a JavaScript number. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(4); + * + * buf.writeFloatLE(0xcafebabe, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.11.15 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`. + * @return `offset` plus the number of bytes written. + */ + writeFloatLE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as big-endian. Behavior is + * undefined when `value` is anything other than a JavaScript number. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(4); + * + * buf.writeFloatBE(0xcafebabe, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.11.15 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`. + * @return `offset` plus the number of bytes written. + */ + writeFloatBE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as little-endian. The `value`must be a JavaScript number. Behavior is undefined when `value` is anything + * other than a JavaScript number. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(8); + * + * buf.writeDoubleLE(123.456, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.11.15 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 8`. + * @return `offset` plus the number of bytes written. + */ + writeDoubleLE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as big-endian. The `value`must be a JavaScript number. Behavior is undefined when `value` is anything + * other than a JavaScript number. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(8); + * + * buf.writeDoubleBE(123.456, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.11.15 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 8`. + * @return `offset` plus the number of bytes written. + */ + writeDoubleBE(value: number, offset?: number): number; + /** + * Fills `buf` with the specified `value`. If the `offset` and `end` are not given, + * the entire `buf` will be filled: + * + * ```js + * import { Buffer } from 'buffer'; + * + * // Fill a `Buffer` with the ASCII character 'h'. + * + * const b = Buffer.allocUnsafe(50).fill('h'); + * + * console.log(b.toString()); + * // Prints: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh + * ``` + * + * `value` is coerced to a `uint32` value if it is not a string, `Buffer`, or + * integer. If the resulting integer is greater than `255` (decimal), `buf` will be + * filled with `value & 255`. + * + * If the final write of a `fill()` operation falls on a multi-byte character, + * then only the bytes of that character that fit into `buf` are written: + * + * ```js + * import { Buffer } from 'buffer'; + * + * // Fill a `Buffer` with character that takes up two bytes in UTF-8. + * + * console.log(Buffer.allocUnsafe(5).fill('\u0222')); + * // Prints: + * ``` + * + * If `value` contains invalid characters, it is truncated; if no valid + * fill data remains, an exception is thrown: + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(5); + * + * console.log(buf.fill('a')); + * // Prints: + * console.log(buf.fill('aazz', 'hex')); + * // Prints: + * console.log(buf.fill('zz', 'hex')); + * // Throws an exception. + * ``` + * @since v0.5.0 + * @param value The value with which to fill `buf`. + * @param [offset=0] Number of bytes to skip before starting to fill `buf`. + * @param [end=buf.length] Where to stop filling `buf` (not inclusive). + * @param [encoding='utf8'] The encoding for `value` if `value` is a string. + * @return A reference to `buf`. + */ + fill(value: string | Uint8Array | number, offset?: number, end?: number, encoding?: BufferEncoding): this; + /** + * If `value` is: + * + * * a string, `value` is interpreted according to the character encoding in`encoding`. + * * a `Buffer` or [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array), `value` will be used in its entirety. + * To compare a partial `Buffer`, use `buf.subarray`. + * * a number, `value` will be interpreted as an unsigned 8-bit integer + * value between `0` and `255`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from('this is a buffer'); + * + * console.log(buf.indexOf('this')); + * // Prints: 0 + * console.log(buf.indexOf('is')); + * // Prints: 2 + * console.log(buf.indexOf(Buffer.from('a buffer'))); + * // Prints: 8 + * console.log(buf.indexOf(97)); + * // Prints: 8 (97 is the decimal ASCII value for 'a') + * console.log(buf.indexOf(Buffer.from('a buffer example'))); + * // Prints: -1 + * console.log(buf.indexOf(Buffer.from('a buffer example').slice(0, 8))); + * // Prints: 8 + * + * const utf16Buffer = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'utf16le'); + * + * console.log(utf16Buffer.indexOf('\u03a3', 0, 'utf16le')); + * // Prints: 4 + * console.log(utf16Buffer.indexOf('\u03a3', -4, 'utf16le')); + * // Prints: 6 + * ``` + * + * If `value` is not a string, number, or `Buffer`, this method will throw a`TypeError`. If `value` is a number, it will be coerced to a valid byte value, + * an integer between 0 and 255. + * + * If `byteOffset` is not a number, it will be coerced to a number. If the result + * of coercion is `NaN` or `0`, then the entire buffer will be searched. This + * behavior matches [`String.prototype.indexOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf). + * + * ```js + * import { Buffer } from 'buffer'; + * + * const b = Buffer.from('abcdef'); + * + * // Passing a value that's a number, but not a valid byte. + * // Prints: 2, equivalent to searching for 99 or 'c'. + * console.log(b.indexOf(99.9)); + * console.log(b.indexOf(256 + 99)); + * + * // Passing a byteOffset that coerces to NaN or 0. + * // Prints: 1, searching the whole buffer. + * console.log(b.indexOf('b', undefined)); + * console.log(b.indexOf('b', {})); + * console.log(b.indexOf('b', null)); + * console.log(b.indexOf('b', [])); + * ``` + * + * If `value` is an empty string or empty `Buffer` and `byteOffset` is less + * than `buf.length`, `byteOffset` will be returned. If `value` is empty and`byteOffset` is at least `buf.length`, `buf.length` will be returned. + * @since v1.5.0 + * @param value What to search for. + * @param [byteOffset=0] Where to begin searching in `buf`. If negative, then offset is calculated from the end of `buf`. + * @param [encoding='utf8'] If `value` is a string, this is the encoding used to determine the binary representation of the string that will be searched for in `buf`. + * @return The index of the first occurrence of `value` in `buf`, or `-1` if `buf` does not contain `value`. + */ + indexOf(value: string | number | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number; + /** + * Identical to `buf.indexOf()`, except the last occurrence of `value` is found + * rather than the first occurrence. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from('this buffer is a buffer'); + * + * console.log(buf.lastIndexOf('this')); + * // Prints: 0 + * console.log(buf.lastIndexOf('buffer')); + * // Prints: 17 + * console.log(buf.lastIndexOf(Buffer.from('buffer'))); + * // Prints: 17 + * console.log(buf.lastIndexOf(97)); + * // Prints: 15 (97 is the decimal ASCII value for 'a') + * console.log(buf.lastIndexOf(Buffer.from('yolo'))); + * // Prints: -1 + * console.log(buf.lastIndexOf('buffer', 5)); + * // Prints: 5 + * console.log(buf.lastIndexOf('buffer', 4)); + * // Prints: -1 + * + * const utf16Buffer = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'utf16le'); + * + * console.log(utf16Buffer.lastIndexOf('\u03a3', undefined, 'utf16le')); + * // Prints: 6 + * console.log(utf16Buffer.lastIndexOf('\u03a3', -5, 'utf16le')); + * // Prints: 4 + * ``` + * + * If `value` is not a string, number, or `Buffer`, this method will throw a`TypeError`. If `value` is a number, it will be coerced to a valid byte value, + * an integer between 0 and 255. + * + * If `byteOffset` is not a number, it will be coerced to a number. Any arguments + * that coerce to `NaN`, like `{}` or `undefined`, will search the whole buffer. + * This behavior matches [`String.prototype.lastIndexOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf). + * + * ```js + * import { Buffer } from 'buffer'; + * + * const b = Buffer.from('abcdef'); + * + * // Passing a value that's a number, but not a valid byte. + * // Prints: 2, equivalent to searching for 99 or 'c'. + * console.log(b.lastIndexOf(99.9)); + * console.log(b.lastIndexOf(256 + 99)); + * + * // Passing a byteOffset that coerces to NaN. + * // Prints: 1, searching the whole buffer. + * console.log(b.lastIndexOf('b', undefined)); + * console.log(b.lastIndexOf('b', {})); + * + * // Passing a byteOffset that coerces to 0. + * // Prints: -1, equivalent to passing 0. + * console.log(b.lastIndexOf('b', null)); + * console.log(b.lastIndexOf('b', [])); + * ``` + * + * If `value` is an empty string or empty `Buffer`, `byteOffset` will be returned. + * @since v6.0.0 + * @param value What to search for. + * @param [byteOffset=buf.length - 1] Where to begin searching in `buf`. If negative, then offset is calculated from the end of `buf`. + * @param [encoding='utf8'] If `value` is a string, this is the encoding used to determine the binary representation of the string that will be searched for in `buf`. + * @return The index of the last occurrence of `value` in `buf`, or `-1` if `buf` does not contain `value`. + */ + lastIndexOf(value: string | number | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number; + /** + * Creates and returns an [iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) of `[index, byte]` pairs from the contents + * of `buf`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * // Log the entire contents of a `Buffer`. + * + * const buf = Buffer.from('buffer'); + * + * for (const pair of buf.entries()) { + * console.log(pair); + * } + * // Prints: + * // [0, 98] + * // [1, 117] + * // [2, 102] + * // [3, 102] + * // [4, 101] + * // [5, 114] + * ``` + * @since v1.1.0 + */ + entries(): IterableIterator<[number, number]>; + /** + * Equivalent to `buf.indexOf() !== -1`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from('this is a buffer'); + * + * console.log(buf.includes('this')); + * // Prints: true + * console.log(buf.includes('is')); + * // Prints: true + * console.log(buf.includes(Buffer.from('a buffer'))); + * // Prints: true + * console.log(buf.includes(97)); + * // Prints: true (97 is the decimal ASCII value for 'a') + * console.log(buf.includes(Buffer.from('a buffer example'))); + * // Prints: false + * console.log(buf.includes(Buffer.from('a buffer example').slice(0, 8))); + * // Prints: true + * console.log(buf.includes('this', 4)); + * // Prints: false + * ``` + * @since v5.3.0 + * @param value What to search for. + * @param [byteOffset=0] Where to begin searching in `buf`. If negative, then offset is calculated from the end of `buf`. + * @param [encoding='utf8'] If `value` is a string, this is its encoding. + * @return `true` if `value` was found in `buf`, `false` otherwise. + */ + includes(value: string | number | Buffer, byteOffset?: number, encoding?: BufferEncoding): boolean; + /** + * Creates and returns an [iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) of `buf` keys (indices). + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from('buffer'); + * + * for (const key of buf.keys()) { + * console.log(key); + * } + * // Prints: + * // 0 + * // 1 + * // 2 + * // 3 + * // 4 + * // 5 + * ``` + * @since v1.1.0 + */ + keys(): IterableIterator; + /** + * Creates and returns an [iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) for `buf` values (bytes). This function is + * called automatically when a `Buffer` is used in a `for..of` statement. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from('buffer'); + * + * for (const value of buf.values()) { + * console.log(value); + * } + * // Prints: + * // 98 + * // 117 + * // 102 + * // 102 + * // 101 + * // 114 + * + * for (const value of buf) { + * console.log(value); + * } + * // Prints: + * // 98 + * // 117 + * // 102 + * // 102 + * // 101 + * // 114 + * ``` + * @since v1.1.0 + */ + values(): IterableIterator; + } + var Buffer: BufferConstructor; + /** + * Decodes a string of Base64-encoded data into bytes, and encodes those bytes + * into a string using Latin-1 (ISO-8859-1). + * + * The `data` may be any JavaScript-value that can be coerced into a string. + * + * **This function is only provided for compatibility with legacy web platform APIs** + * **and should never be used in new code, because they use strings to represent** + * **binary data and predate the introduction of typed arrays in JavaScript.** + * **For code running using Node.js APIs, converting between base64-encoded strings** + * **and binary data should be performed using `Buffer.from(str, 'base64')` and`buf.toString('base64')`.** + * @since v15.13.0, v14.17.0 + * @deprecated Use `Buffer.from(data, 'base64')` instead. + * @param data The Base64-encoded input string. + */ + function atob(data: string): string; + /** + * Decodes a string into bytes using Latin-1 (ISO-8859), and encodes those bytes + * into a string using Base64. + * + * The `data` may be any JavaScript-value that can be coerced into a string. + * + * **This function is only provided for compatibility with legacy web platform APIs** + * **and should never be used in new code, because they use strings to represent** + * **binary data and predate the introduction of typed arrays in JavaScript.** + * **For code running using Node.js APIs, converting between base64-encoded strings** + * **and binary data should be performed using `Buffer.from(str, 'base64')` and`buf.toString('base64')`.** + * @since v15.13.0, v14.17.0 + * @deprecated Use `buf.toString('base64')` instead. + * @param data An ASCII (Latin1) string. + */ + function btoa(data: string): string; + + interface Blob extends __Blob {} + /** + * `Blob` class is a global reference for `require('node:buffer').Blob` + * https://nodejs.org/api/buffer.html#class-blob + * @since v18.0.0 + */ + var Blob: typeof globalThis extends { + onmessage: any; + Blob: infer T; + } + ? T + : typeof NodeBlob; + } +} +declare module 'node:buffer' { + export * from 'buffer'; +} diff --git a/node_modules/@types/node/child_process.d.ts b/node_modules/@types/node/child_process.d.ts new file mode 100644 index 0000000..c537d6d --- /dev/null +++ b/node_modules/@types/node/child_process.d.ts @@ -0,0 +1,1369 @@ +/** + * The `child_process` module provides the ability to spawn subprocesses in + * a manner that is similar, but not identical, to [`popen(3)`](http://man7.org/linux/man-pages/man3/popen.3.html). This capability + * is primarily provided by the {@link spawn} function: + * + * ```js + * const { spawn } = require('child_process'); + * const ls = spawn('ls', ['-lh', '/usr']); + * + * ls.stdout.on('data', (data) => { + * console.log(`stdout: ${data}`); + * }); + * + * ls.stderr.on('data', (data) => { + * console.error(`stderr: ${data}`); + * }); + * + * ls.on('close', (code) => { + * console.log(`child process exited with code ${code}`); + * }); + * ``` + * + * By default, pipes for `stdin`, `stdout`, and `stderr` are established between + * the parent Node.js process and the spawned subprocess. These pipes have + * limited (and platform-specific) capacity. If the subprocess writes to + * stdout in excess of that limit without the output being captured, the + * subprocess blocks waiting for the pipe buffer to accept more data. This is + * identical to the behavior of pipes in the shell. Use the `{ stdio: 'ignore' }`option if the output will not be consumed. + * + * The command lookup is performed using the `options.env.PATH` environment + * variable if `env` is in the `options` object. Otherwise, `process.env.PATH` is + * used. If `options.env` is set without `PATH`, lookup on Unix is performed + * on a default search path search of `/usr/bin:/bin` (see your operating system's + * manual for execvpe/execvp), on Windows the current processes environment + * variable `PATH` is used. + * + * On Windows, environment variables are case-insensitive. Node.js + * lexicographically sorts the `env` keys and uses the first one that + * case-insensitively matches. Only first (in lexicographic order) entry will be + * passed to the subprocess. This might lead to issues on Windows when passing + * objects to the `env` option that have multiple variants of the same key, such as`PATH` and `Path`. + * + * The {@link spawn} method spawns the child process asynchronously, + * without blocking the Node.js event loop. The {@link spawnSync} function provides equivalent functionality in a synchronous manner that blocks + * the event loop until the spawned process either exits or is terminated. + * + * For convenience, the `child_process` module provides a handful of synchronous + * and asynchronous alternatives to {@link spawn} and {@link spawnSync}. Each of these alternatives are implemented on + * top of {@link spawn} or {@link spawnSync}. + * + * * {@link exec}: spawns a shell and runs a command within that + * shell, passing the `stdout` and `stderr` to a callback function when + * complete. + * * {@link execFile}: similar to {@link exec} except + * that it spawns the command directly without first spawning a shell by + * default. + * * {@link fork}: spawns a new Node.js process and invokes a + * specified module with an IPC communication channel established that allows + * sending messages between parent and child. + * * {@link execSync}: a synchronous version of {@link exec} that will block the Node.js event loop. + * * {@link execFileSync}: a synchronous version of {@link execFile} that will block the Node.js event loop. + * + * For certain use cases, such as automating shell scripts, the `synchronous counterparts` may be more convenient. In many cases, however, + * the synchronous methods can have significant impact on performance due to + * stalling the event loop while spawned processes complete. + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/child_process.js) + */ +declare module 'child_process' { + import { ObjectEncodingOptions } from 'node:fs'; + import { EventEmitter, Abortable } from 'node:events'; + import * as net from 'node:net'; + import { Writable, Readable, Stream, Pipe } from 'node:stream'; + import { URL } from 'node:url'; + type Serializable = string | object | number | boolean | bigint; + type SendHandle = net.Socket | net.Server; + /** + * Instances of the `ChildProcess` represent spawned child processes. + * + * Instances of `ChildProcess` are not intended to be created directly. Rather, + * use the {@link spawn}, {@link exec},{@link execFile}, or {@link fork} methods to create + * instances of `ChildProcess`. + * @since v2.2.0 + */ + class ChildProcess extends EventEmitter { + /** + * A `Writable Stream` that represents the child process's `stdin`. + * + * If a child process waits to read all of its input, the child will not continue + * until this stream has been closed via `end()`. + * + * If the child was spawned with `stdio[0]` set to anything other than `'pipe'`, + * then this will be `null`. + * + * `subprocess.stdin` is an alias for `subprocess.stdio[0]`. Both properties will + * refer to the same value. + * + * The `subprocess.stdin` property can be `undefined` if the child process could + * not be successfully spawned. + * @since v0.1.90 + */ + stdin: Writable | null; + /** + * A `Readable Stream` that represents the child process's `stdout`. + * + * If the child was spawned with `stdio[1]` set to anything other than `'pipe'`, + * then this will be `null`. + * + * `subprocess.stdout` is an alias for `subprocess.stdio[1]`. Both properties will + * refer to the same value. + * + * ```js + * const { spawn } = require('child_process'); + * + * const subprocess = spawn('ls'); + * + * subprocess.stdout.on('data', (data) => { + * console.log(`Received chunk ${data}`); + * }); + * ``` + * + * The `subprocess.stdout` property can be `null` if the child process could + * not be successfully spawned. + * @since v0.1.90 + */ + stdout: Readable | null; + /** + * A `Readable Stream` that represents the child process's `stderr`. + * + * If the child was spawned with `stdio[2]` set to anything other than `'pipe'`, + * then this will be `null`. + * + * `subprocess.stderr` is an alias for `subprocess.stdio[2]`. Both properties will + * refer to the same value. + * + * The `subprocess.stderr` property can be `null` if the child process could + * not be successfully spawned. + * @since v0.1.90 + */ + stderr: Readable | null; + /** + * The `subprocess.channel` property is a reference to the child's IPC channel. If + * no IPC channel currently exists, this property is `undefined`. + * @since v7.1.0 + */ + readonly channel?: Pipe | null | undefined; + /** + * A sparse array of pipes to the child process, corresponding with positions in + * the `stdio` option passed to {@link spawn} that have been set + * to the value `'pipe'`. `subprocess.stdio[0]`, `subprocess.stdio[1]`, and`subprocess.stdio[2]` are also available as `subprocess.stdin`,`subprocess.stdout`, and `subprocess.stderr`, + * respectively. + * + * In the following example, only the child's fd `1` (stdout) is configured as a + * pipe, so only the parent's `subprocess.stdio[1]` is a stream, all other values + * in the array are `null`. + * + * ```js + * const assert = require('assert'); + * const fs = require('fs'); + * const child_process = require('child_process'); + * + * const subprocess = child_process.spawn('ls', { + * stdio: [ + * 0, // Use parent's stdin for child. + * 'pipe', // Pipe child's stdout to parent. + * fs.openSync('err.out', 'w'), // Direct child's stderr to a file. + * ] + * }); + * + * assert.strictEqual(subprocess.stdio[0], null); + * assert.strictEqual(subprocess.stdio[0], subprocess.stdin); + * + * assert(subprocess.stdout); + * assert.strictEqual(subprocess.stdio[1], subprocess.stdout); + * + * assert.strictEqual(subprocess.stdio[2], null); + * assert.strictEqual(subprocess.stdio[2], subprocess.stderr); + * ``` + * + * The `subprocess.stdio` property can be `undefined` if the child process could + * not be successfully spawned. + * @since v0.7.10 + */ + readonly stdio: [ + Writable | null, + // stdin + Readable | null, + // stdout + Readable | null, + // stderr + Readable | Writable | null | undefined, + // extra + Readable | Writable | null | undefined // extra + ]; + /** + * The `subprocess.killed` property indicates whether the child process + * successfully received a signal from `subprocess.kill()`. The `killed` property + * does not indicate that the child process has been terminated. + * @since v0.5.10 + */ + readonly killed: boolean; + /** + * Returns the process identifier (PID) of the child process. If the child process + * fails to spawn due to errors, then the value is `undefined` and `error` is + * emitted. + * + * ```js + * const { spawn } = require('child_process'); + * const grep = spawn('grep', ['ssh']); + * + * console.log(`Spawned child pid: ${grep.pid}`); + * grep.stdin.end(); + * ``` + * @since v0.1.90 + */ + readonly pid?: number | undefined; + /** + * The `subprocess.connected` property indicates whether it is still possible to + * send and receive messages from a child process. When `subprocess.connected` is`false`, it is no longer possible to send or receive messages. + * @since v0.7.2 + */ + readonly connected: boolean; + /** + * The `subprocess.exitCode` property indicates the exit code of the child process. + * If the child process is still running, the field will be `null`. + */ + readonly exitCode: number | null; + /** + * The `subprocess.signalCode` property indicates the signal received by + * the child process if any, else `null`. + */ + readonly signalCode: NodeJS.Signals | null; + /** + * The `subprocess.spawnargs` property represents the full list of command-line + * arguments the child process was launched with. + */ + readonly spawnargs: string[]; + /** + * The `subprocess.spawnfile` property indicates the executable file name of + * the child process that is launched. + * + * For {@link fork}, its value will be equal to `process.execPath`. + * For {@link spawn}, its value will be the name of + * the executable file. + * For {@link exec}, its value will be the name of the shell + * in which the child process is launched. + */ + readonly spawnfile: string; + /** + * The `subprocess.kill()` method sends a signal to the child process. If no + * argument is given, the process will be sent the `'SIGTERM'` signal. See [`signal(7)`](http://man7.org/linux/man-pages/man7/signal.7.html) for a list of available signals. This function + * returns `true` if [`kill(2)`](http://man7.org/linux/man-pages/man2/kill.2.html) succeeds, and `false` otherwise. + * + * ```js + * const { spawn } = require('child_process'); + * const grep = spawn('grep', ['ssh']); + * + * grep.on('close', (code, signal) => { + * console.log( + * `child process terminated due to receipt of signal ${signal}`); + * }); + * + * // Send SIGHUP to process. + * grep.kill('SIGHUP'); + * ``` + * + * The `ChildProcess` object may emit an `'error'` event if the signal + * cannot be delivered. Sending a signal to a child process that has already exited + * is not an error but may have unforeseen consequences. Specifically, if the + * process identifier (PID) has been reassigned to another process, the signal will + * be delivered to that process instead which can have unexpected results. + * + * While the function is called `kill`, the signal delivered to the child process + * may not actually terminate the process. + * + * See [`kill(2)`](http://man7.org/linux/man-pages/man2/kill.2.html) for reference. + * + * On Windows, where POSIX signals do not exist, the `signal` argument will be + * ignored, and the process will be killed forcefully and abruptly (similar to`'SIGKILL'`). + * See `Signal Events` for more details. + * + * On Linux, child processes of child processes will not be terminated + * when attempting to kill their parent. This is likely to happen when running a + * new process in a shell or with the use of the `shell` option of `ChildProcess`: + * + * ```js + * 'use strict'; + * const { spawn } = require('child_process'); + * + * const subprocess = spawn( + * 'sh', + * [ + * '-c', + * `node -e "setInterval(() => { + * console.log(process.pid, 'is alive') + * }, 500);"`, + * ], { + * stdio: ['inherit', 'inherit', 'inherit'] + * } + * ); + * + * setTimeout(() => { + * subprocess.kill(); // Does not terminate the Node.js process in the shell. + * }, 2000); + * ``` + * @since v0.1.90 + */ + kill(signal?: NodeJS.Signals | number): boolean; + /** + * When an IPC channel has been established between the parent and child ( + * i.e. when using {@link fork}), the `subprocess.send()` method can + * be used to send messages to the child process. When the child process is a + * Node.js instance, these messages can be received via the `'message'` event. + * + * The message goes through serialization and parsing. The resulting + * message might not be the same as what is originally sent. + * + * For example, in the parent script: + * + * ```js + * const cp = require('child_process'); + * const n = cp.fork(`${__dirname}/sub.js`); + * + * n.on('message', (m) => { + * console.log('PARENT got message:', m); + * }); + * + * // Causes the child to print: CHILD got message: { hello: 'world' } + * n.send({ hello: 'world' }); + * ``` + * + * And then the child script, `'sub.js'` might look like this: + * + * ```js + * process.on('message', (m) => { + * console.log('CHILD got message:', m); + * }); + * + * // Causes the parent to print: PARENT got message: { foo: 'bar', baz: null } + * process.send({ foo: 'bar', baz: NaN }); + * ``` + * + * Child Node.js processes will have a `process.send()` method of their own + * that allows the child to send messages back to the parent. + * + * There is a special case when sending a `{cmd: 'NODE_foo'}` message. Messages + * containing a `NODE_` prefix in the `cmd` property are reserved for use within + * Node.js core and will not be emitted in the child's `'message'` event. Rather, such messages are emitted using the`'internalMessage'` event and are consumed internally by Node.js. + * Applications should avoid using such messages or listening for`'internalMessage'` events as it is subject to change without notice. + * + * The optional `sendHandle` argument that may be passed to `subprocess.send()` is + * for passing a TCP server or socket object to the child process. The child will + * receive the object as the second argument passed to the callback function + * registered on the `'message'` event. Any data that is received + * and buffered in the socket will not be sent to the child. + * + * The optional `callback` is a function that is invoked after the message is + * sent but before the child may have received it. The function is called with a + * single argument: `null` on success, or an `Error` object on failure. + * + * If no `callback` function is provided and the message cannot be sent, an`'error'` event will be emitted by the `ChildProcess` object. This can + * happen, for instance, when the child process has already exited. + * + * `subprocess.send()` will return `false` if the channel has closed or when the + * backlog of unsent messages exceeds a threshold that makes it unwise to send + * more. Otherwise, the method returns `true`. The `callback` function can be + * used to implement flow control. + * + * #### Example: sending a server object + * + * The `sendHandle` argument can be used, for instance, to pass the handle of + * a TCP server object to the child process as illustrated in the example below: + * + * ```js + * const subprocess = require('child_process').fork('subprocess.js'); + * + * // Open up the server object and send the handle. + * const server = require('net').createServer(); + * server.on('connection', (socket) => { + * socket.end('handled by parent'); + * }); + * server.listen(1337, () => { + * subprocess.send('server', server); + * }); + * ``` + * + * The child would then receive the server object as: + * + * ```js + * process.on('message', (m, server) => { + * if (m === 'server') { + * server.on('connection', (socket) => { + * socket.end('handled by child'); + * }); + * } + * }); + * ``` + * + * Once the server is now shared between the parent and child, some connections + * can be handled by the parent and some by the child. + * + * While the example above uses a server created using the `net` module, `dgram`module servers use exactly the same workflow with the exceptions of listening on + * a `'message'` event instead of `'connection'` and using `server.bind()` instead + * of `server.listen()`. This is, however, currently only supported on Unix + * platforms. + * + * #### Example: sending a socket object + * + * Similarly, the `sendHandler` argument can be used to pass the handle of a + * socket to the child process. The example below spawns two children that each + * handle connections with "normal" or "special" priority: + * + * ```js + * const { fork } = require('child_process'); + * const normal = fork('subprocess.js', ['normal']); + * const special = fork('subprocess.js', ['special']); + * + * // Open up the server and send sockets to child. Use pauseOnConnect to prevent + * // the sockets from being read before they are sent to the child process. + * const server = require('net').createServer({ pauseOnConnect: true }); + * server.on('connection', (socket) => { + * + * // If this is special priority... + * if (socket.remoteAddress === '74.125.127.100') { + * special.send('socket', socket); + * return; + * } + * // This is normal priority. + * normal.send('socket', socket); + * }); + * server.listen(1337); + * ``` + * + * The `subprocess.js` would receive the socket handle as the second argument + * passed to the event callback function: + * + * ```js + * process.on('message', (m, socket) => { + * if (m === 'socket') { + * if (socket) { + * // Check that the client socket exists. + * // It is possible for the socket to be closed between the time it is + * // sent and the time it is received in the child process. + * socket.end(`Request handled with ${process.argv[2]} priority`); + * } + * } + * }); + * ``` + * + * Do not use `.maxConnections` on a socket that has been passed to a subprocess. + * The parent cannot track when the socket is destroyed. + * + * Any `'message'` handlers in the subprocess should verify that `socket` exists, + * as the connection may have been closed during the time it takes to send the + * connection to the child. + * @since v0.5.9 + * @param options The `options` argument, if present, is an object used to parameterize the sending of certain types of handles. `options` supports the following properties: + */ + send(message: Serializable, callback?: (error: Error | null) => void): boolean; + send(message: Serializable, sendHandle?: SendHandle, callback?: (error: Error | null) => void): boolean; + send(message: Serializable, sendHandle?: SendHandle, options?: MessageOptions, callback?: (error: Error | null) => void): boolean; + /** + * Closes the IPC channel between parent and child, allowing the child to exit + * gracefully once there are no other connections keeping it alive. After calling + * this method the `subprocess.connected` and `process.connected` properties in + * both the parent and child (respectively) will be set to `false`, and it will be + * no longer possible to pass messages between the processes. + * + * The `'disconnect'` event will be emitted when there are no messages in the + * process of being received. This will most often be triggered immediately after + * calling `subprocess.disconnect()`. + * + * When the child process is a Node.js instance (e.g. spawned using {@link fork}), the `process.disconnect()` method can be invoked + * within the child process to close the IPC channel as well. + * @since v0.7.2 + */ + disconnect(): void; + /** + * By default, the parent will wait for the detached child to exit. To prevent the + * parent from waiting for a given `subprocess` to exit, use the`subprocess.unref()` method. Doing so will cause the parent's event loop to not + * include the child in its reference count, allowing the parent to exit + * independently of the child, unless there is an established IPC channel between + * the child and the parent. + * + * ```js + * const { spawn } = require('child_process'); + * + * const subprocess = spawn(process.argv[0], ['child_program.js'], { + * detached: true, + * stdio: 'ignore' + * }); + * + * subprocess.unref(); + * ``` + * @since v0.7.10 + */ + unref(): void; + /** + * Calling `subprocess.ref()` after making a call to `subprocess.unref()` will + * restore the removed reference count for the child process, forcing the parent + * to wait for the child to exit before exiting itself. + * + * ```js + * const { spawn } = require('child_process'); + * + * const subprocess = spawn(process.argv[0], ['child_program.js'], { + * detached: true, + * stdio: 'ignore' + * }); + * + * subprocess.unref(); + * subprocess.ref(); + * ``` + * @since v0.7.10 + */ + ref(): void; + /** + * events.EventEmitter + * 1. close + * 2. disconnect + * 3. error + * 4. exit + * 5. message + * 6. spawn + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + addListener(event: 'disconnect', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + addListener(event: 'message', listener: (message: Serializable, sendHandle: SendHandle) => void): this; + addListener(event: 'spawn', listener: () => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'close', code: number | null, signal: NodeJS.Signals | null): boolean; + emit(event: 'disconnect'): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'exit', code: number | null, signal: NodeJS.Signals | null): boolean; + emit(event: 'message', message: Serializable, sendHandle: SendHandle): boolean; + emit(event: 'spawn', listener: () => void): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + on(event: 'disconnect', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + on(event: 'message', listener: (message: Serializable, sendHandle: SendHandle) => void): this; + on(event: 'spawn', listener: () => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + once(event: 'disconnect', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + once(event: 'message', listener: (message: Serializable, sendHandle: SendHandle) => void): this; + once(event: 'spawn', listener: () => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + prependListener(event: 'disconnect', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + prependListener(event: 'message', listener: (message: Serializable, sendHandle: SendHandle) => void): this; + prependListener(event: 'spawn', listener: () => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + prependOnceListener(event: 'disconnect', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + prependOnceListener(event: 'message', listener: (message: Serializable, sendHandle: SendHandle) => void): this; + prependOnceListener(event: 'spawn', listener: () => void): this; + } + // return this object when stdio option is undefined or not specified + interface ChildProcessWithoutNullStreams extends ChildProcess { + stdin: Writable; + stdout: Readable; + stderr: Readable; + readonly stdio: [ + Writable, + Readable, + Readable, + // stderr + Readable | Writable | null | undefined, + // extra, no modification + Readable | Writable | null | undefined // extra, no modification + ]; + } + // return this object when stdio option is a tuple of 3 + interface ChildProcessByStdio extends ChildProcess { + stdin: I; + stdout: O; + stderr: E; + readonly stdio: [ + I, + O, + E, + Readable | Writable | null | undefined, + // extra, no modification + Readable | Writable | null | undefined // extra, no modification + ]; + } + interface MessageOptions { + keepOpen?: boolean | undefined; + } + type IOType = 'overlapped' | 'pipe' | 'ignore' | 'inherit'; + type StdioOptions = IOType | Array; + type SerializationType = 'json' | 'advanced'; + interface MessagingOptions extends Abortable { + /** + * Specify the kind of serialization used for sending messages between processes. + * @default 'json' + */ + serialization?: SerializationType | undefined; + /** + * The signal value to be used when the spawned process will be killed by the abort signal. + * @default 'SIGTERM' + */ + killSignal?: NodeJS.Signals | number | undefined; + /** + * In milliseconds the maximum amount of time the process is allowed to run. + */ + timeout?: number | undefined; + } + interface ProcessEnvOptions { + uid?: number | undefined; + gid?: number | undefined; + cwd?: string | URL | undefined; + env?: NodeJS.ProcessEnv | undefined; + } + interface CommonOptions extends ProcessEnvOptions { + /** + * @default false + */ + windowsHide?: boolean | undefined; + /** + * @default 0 + */ + timeout?: number | undefined; + } + interface CommonSpawnOptions extends CommonOptions, MessagingOptions, Abortable { + argv0?: string | undefined; + stdio?: StdioOptions | undefined; + shell?: boolean | string | undefined; + windowsVerbatimArguments?: boolean | undefined; + } + interface SpawnOptions extends CommonSpawnOptions { + detached?: boolean | undefined; + } + interface SpawnOptionsWithoutStdio extends SpawnOptions { + stdio?: StdioPipeNamed | StdioPipe[] | undefined; + } + type StdioNull = 'inherit' | 'ignore' | Stream; + type StdioPipeNamed = 'pipe' | 'overlapped'; + type StdioPipe = undefined | null | StdioPipeNamed; + interface SpawnOptionsWithStdioTuple extends SpawnOptions { + stdio: [Stdin, Stdout, Stderr]; + } + /** + * The `child_process.spawn()` method spawns a new process using the given`command`, with command-line arguments in `args`. If omitted, `args` defaults + * to an empty array. + * + * **If the `shell` option is enabled, do not pass unsanitized user input to this** + * **function. Any input containing shell metacharacters may be used to trigger** + * **arbitrary command execution.** + * + * A third argument may be used to specify additional options, with these defaults: + * + * ```js + * const defaults = { + * cwd: undefined, + * env: process.env + * }; + * ``` + * + * Use `cwd` to specify the working directory from which the process is spawned. + * If not given, the default is to inherit the current working directory. If given, + * but the path does not exist, the child process emits an `ENOENT` error + * and exits immediately. `ENOENT` is also emitted when the command + * does not exist. + * + * Use `env` to specify environment variables that will be visible to the new + * process, the default is `process.env`. + * + * `undefined` values in `env` will be ignored. + * + * Example of running `ls -lh /usr`, capturing `stdout`, `stderr`, and the + * exit code: + * + * ```js + * const { spawn } = require('child_process'); + * const ls = spawn('ls', ['-lh', '/usr']); + * + * ls.stdout.on('data', (data) => { + * console.log(`stdout: ${data}`); + * }); + * + * ls.stderr.on('data', (data) => { + * console.error(`stderr: ${data}`); + * }); + * + * ls.on('close', (code) => { + * console.log(`child process exited with code ${code}`); + * }); + * ``` + * + * Example: A very elaborate way to run `ps ax | grep ssh` + * + * ```js + * const { spawn } = require('child_process'); + * const ps = spawn('ps', ['ax']); + * const grep = spawn('grep', ['ssh']); + * + * ps.stdout.on('data', (data) => { + * grep.stdin.write(data); + * }); + * + * ps.stderr.on('data', (data) => { + * console.error(`ps stderr: ${data}`); + * }); + * + * ps.on('close', (code) => { + * if (code !== 0) { + * console.log(`ps process exited with code ${code}`); + * } + * grep.stdin.end(); + * }); + * + * grep.stdout.on('data', (data) => { + * console.log(data.toString()); + * }); + * + * grep.stderr.on('data', (data) => { + * console.error(`grep stderr: ${data}`); + * }); + * + * grep.on('close', (code) => { + * if (code !== 0) { + * console.log(`grep process exited with code ${code}`); + * } + * }); + * ``` + * + * Example of checking for failed `spawn`: + * + * ```js + * const { spawn } = require('child_process'); + * const subprocess = spawn('bad_command'); + * + * subprocess.on('error', (err) => { + * console.error('Failed to start subprocess.'); + * }); + * ``` + * + * Certain platforms (macOS, Linux) will use the value of `argv[0]` for the process + * title while others (Windows, SunOS) will use `command`. + * + * Node.js currently overwrites `argv[0]` with `process.execPath` on startup, so`process.argv[0]` in a Node.js child process will not match the `argv0`parameter passed to `spawn` from the parent, + * retrieve it with the`process.argv0` property instead. + * + * If the `signal` option is enabled, calling `.abort()` on the corresponding`AbortController` is similar to calling `.kill()` on the child process except + * the error passed to the callback will be an `AbortError`: + * + * ```js + * const { spawn } = require('child_process'); + * const controller = new AbortController(); + * const { signal } = controller; + * const grep = spawn('grep', ['ssh'], { signal }); + * grep.on('error', (err) => { + * // This will be called with err being an AbortError if the controller aborts + * }); + * controller.abort(); // Stops the child process + * ``` + * @since v0.1.90 + * @param command The command to run. + * @param args List of string arguments. + */ + function spawn(command: string, options?: SpawnOptionsWithoutStdio): ChildProcessWithoutNullStreams; + function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, options: SpawnOptions): ChildProcess; + // overloads of spawn with 'args' + function spawn(command: string, args?: ReadonlyArray, options?: SpawnOptionsWithoutStdio): ChildProcessWithoutNullStreams; + function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, args: ReadonlyArray, options: SpawnOptions): ChildProcess; + interface ExecOptions extends CommonOptions { + shell?: string | undefined; + signal?: AbortSignal | undefined; + maxBuffer?: number | undefined; + killSignal?: NodeJS.Signals | number | undefined; + } + interface ExecOptionsWithStringEncoding extends ExecOptions { + encoding: BufferEncoding; + } + interface ExecOptionsWithBufferEncoding extends ExecOptions { + encoding: BufferEncoding | null; // specify `null`. + } + interface ExecException extends Error { + cmd?: string | undefined; + killed?: boolean | undefined; + code?: number | undefined; + signal?: NodeJS.Signals | undefined; + } + /** + * Spawns a shell then executes the `command` within that shell, buffering any + * generated output. The `command` string passed to the exec function is processed + * directly by the shell and special characters (vary based on [shell](https://en.wikipedia.org/wiki/List_of_command-line_interpreters)) + * need to be dealt with accordingly: + * + * ```js + * const { exec } = require('child_process'); + * + * exec('"/path/to/test file/test.sh" arg1 arg2'); + * // Double quotes are used so that the space in the path is not interpreted as + * // a delimiter of multiple arguments. + * + * exec('echo "The \\$HOME variable is $HOME"'); + * // The $HOME variable is escaped in the first instance, but not in the second. + * ``` + * + * **Never pass unsanitized user input to this function. Any input containing shell** + * **metacharacters may be used to trigger arbitrary command execution.** + * + * If a `callback` function is provided, it is called with the arguments`(error, stdout, stderr)`. On success, `error` will be `null`. On error,`error` will be an instance of `Error`. The + * `error.code` property will be + * the exit code of the process. By convention, any exit code other than `0`indicates an error. `error.signal` will be the signal that terminated the + * process. + * + * The `stdout` and `stderr` arguments passed to the callback will contain the + * stdout and stderr output of the child process. By default, Node.js will decode + * the output as UTF-8 and pass strings to the callback. The `encoding` option + * can be used to specify the character encoding used to decode the stdout and + * stderr output. If `encoding` is `'buffer'`, or an unrecognized character + * encoding, `Buffer` objects will be passed to the callback instead. + * + * ```js + * const { exec } = require('child_process'); + * exec('cat *.js missing_file | wc -l', (error, stdout, stderr) => { + * if (error) { + * console.error(`exec error: ${error}`); + * return; + * } + * console.log(`stdout: ${stdout}`); + * console.error(`stderr: ${stderr}`); + * }); + * ``` + * + * If `timeout` is greater than `0`, the parent will send the signal + * identified by the `killSignal` property (the default is `'SIGTERM'`) if the + * child runs longer than `timeout` milliseconds. + * + * Unlike the [`exec(3)`](http://man7.org/linux/man-pages/man3/exec.3.html) POSIX system call, `child_process.exec()` does not replace + * the existing process and uses a shell to execute the command. + * + * If this method is invoked as its `util.promisify()` ed version, it returns + * a `Promise` for an `Object` with `stdout` and `stderr` properties. The returned`ChildProcess` instance is attached to the `Promise` as a `child` property. In + * case of an error (including any error resulting in an exit code other than 0), a + * rejected promise is returned, with the same `error` object given in the + * callback, but with two additional properties `stdout` and `stderr`. + * + * ```js + * const util = require('util'); + * const exec = util.promisify(require('child_process').exec); + * + * async function lsExample() { + * const { stdout, stderr } = await exec('ls'); + * console.log('stdout:', stdout); + * console.error('stderr:', stderr); + * } + * lsExample(); + * ``` + * + * If the `signal` option is enabled, calling `.abort()` on the corresponding`AbortController` is similar to calling `.kill()` on the child process except + * the error passed to the callback will be an `AbortError`: + * + * ```js + * const { exec } = require('child_process'); + * const controller = new AbortController(); + * const { signal } = controller; + * const child = exec('grep ssh', { signal }, (error) => { + * console.log(error); // an AbortError + * }); + * controller.abort(); + * ``` + * @since v0.1.90 + * @param command The command to run, with space-separated arguments. + * @param callback called with the output when process terminates. + */ + function exec(command: string, callback?: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; + // `options` with `"buffer"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`. + function exec( + command: string, + options: { + encoding: 'buffer' | null; + } & ExecOptions, + callback?: (error: ExecException | null, stdout: Buffer, stderr: Buffer) => void + ): ChildProcess; + // `options` with well known `encoding` means stdout/stderr are definitely `string`. + function exec( + command: string, + options: { + encoding: BufferEncoding; + } & ExecOptions, + callback?: (error: ExecException | null, stdout: string, stderr: string) => void + ): ChildProcess; + // `options` with an `encoding` whose type is `string` means stdout/stderr could either be `Buffer` or `string`. + // There is no guarantee the `encoding` is unknown as `string` is a superset of `BufferEncoding`. + function exec( + command: string, + options: { + encoding: BufferEncoding; + } & ExecOptions, + callback?: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void + ): ChildProcess; + // `options` without an `encoding` means stdout/stderr are definitely `string`. + function exec(command: string, options: ExecOptions, callback?: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; + // fallback if nothing else matches. Worst case is always `string | Buffer`. + function exec( + command: string, + options: (ObjectEncodingOptions & ExecOptions) | undefined | null, + callback?: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void + ): ChildProcess; + interface PromiseWithChild extends Promise { + child: ChildProcess; + } + namespace exec { + function __promisify__(command: string): PromiseWithChild<{ + stdout: string; + stderr: string; + }>; + function __promisify__( + command: string, + options: { + encoding: 'buffer' | null; + } & ExecOptions + ): PromiseWithChild<{ + stdout: Buffer; + stderr: Buffer; + }>; + function __promisify__( + command: string, + options: { + encoding: BufferEncoding; + } & ExecOptions + ): PromiseWithChild<{ + stdout: string; + stderr: string; + }>; + function __promisify__( + command: string, + options: ExecOptions + ): PromiseWithChild<{ + stdout: string; + stderr: string; + }>; + function __promisify__( + command: string, + options?: (ObjectEncodingOptions & ExecOptions) | null + ): PromiseWithChild<{ + stdout: string | Buffer; + stderr: string | Buffer; + }>; + } + interface ExecFileOptions extends CommonOptions, Abortable { + maxBuffer?: number | undefined; + killSignal?: NodeJS.Signals | number | undefined; + windowsVerbatimArguments?: boolean | undefined; + shell?: boolean | string | undefined; + signal?: AbortSignal | undefined; + } + interface ExecFileOptionsWithStringEncoding extends ExecFileOptions { + encoding: BufferEncoding; + } + interface ExecFileOptionsWithBufferEncoding extends ExecFileOptions { + encoding: 'buffer' | null; + } + interface ExecFileOptionsWithOtherEncoding extends ExecFileOptions { + encoding: BufferEncoding; + } + type ExecFileException = ExecException & NodeJS.ErrnoException; + /** + * The `child_process.execFile()` function is similar to {@link exec} except that it does not spawn a shell by default. Rather, the specified + * executable `file` is spawned directly as a new process making it slightly more + * efficient than {@link exec}. + * + * The same options as {@link exec} are supported. Since a shell is + * not spawned, behaviors such as I/O redirection and file globbing are not + * supported. + * + * ```js + * const { execFile } = require('child_process'); + * const child = execFile('node', ['--version'], (error, stdout, stderr) => { + * if (error) { + * throw error; + * } + * console.log(stdout); + * }); + * ``` + * + * The `stdout` and `stderr` arguments passed to the callback will contain the + * stdout and stderr output of the child process. By default, Node.js will decode + * the output as UTF-8 and pass strings to the callback. The `encoding` option + * can be used to specify the character encoding used to decode the stdout and + * stderr output. If `encoding` is `'buffer'`, or an unrecognized character + * encoding, `Buffer` objects will be passed to the callback instead. + * + * If this method is invoked as its `util.promisify()` ed version, it returns + * a `Promise` for an `Object` with `stdout` and `stderr` properties. The returned`ChildProcess` instance is attached to the `Promise` as a `child` property. In + * case of an error (including any error resulting in an exit code other than 0), a + * rejected promise is returned, with the same `error` object given in the + * callback, but with two additional properties `stdout` and `stderr`. + * + * ```js + * const util = require('util'); + * const execFile = util.promisify(require('child_process').execFile); + * async function getVersion() { + * const { stdout } = await execFile('node', ['--version']); + * console.log(stdout); + * } + * getVersion(); + * ``` + * + * **If the `shell` option is enabled, do not pass unsanitized user input to this** + * **function. Any input containing shell metacharacters may be used to trigger** + * **arbitrary command execution.** + * + * If the `signal` option is enabled, calling `.abort()` on the corresponding`AbortController` is similar to calling `.kill()` on the child process except + * the error passed to the callback will be an `AbortError`: + * + * ```js + * const { execFile } = require('child_process'); + * const controller = new AbortController(); + * const { signal } = controller; + * const child = execFile('node', ['--version'], { signal }, (error) => { + * console.log(error); // an AbortError + * }); + * controller.abort(); + * ``` + * @since v0.1.91 + * @param file The name or path of the executable file to run. + * @param args List of string arguments. + * @param callback Called with the output when process terminates. + */ + function execFile(file: string): ChildProcess; + function execFile(file: string, options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null): ChildProcess; + function execFile(file: string, args?: ReadonlyArray | null): ChildProcess; + function execFile(file: string, args: ReadonlyArray | undefined | null, options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null): ChildProcess; + // no `options` definitely means stdout/stderr are `string`. + function execFile(file: string, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess; + function execFile(file: string, args: ReadonlyArray | undefined | null, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess; + // `options` with `"buffer"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`. + function execFile(file: string, options: ExecFileOptionsWithBufferEncoding, callback: (error: ExecFileException | null, stdout: Buffer, stderr: Buffer) => void): ChildProcess; + function execFile( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptionsWithBufferEncoding, + callback: (error: ExecFileException | null, stdout: Buffer, stderr: Buffer) => void + ): ChildProcess; + // `options` with well known `encoding` means stdout/stderr are definitely `string`. + function execFile(file: string, options: ExecFileOptionsWithStringEncoding, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess; + function execFile( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptionsWithStringEncoding, + callback: (error: ExecFileException | null, stdout: string, stderr: string) => void + ): ChildProcess; + // `options` with an `encoding` whose type is `string` means stdout/stderr could either be `Buffer` or `string`. + // There is no guarantee the `encoding` is unknown as `string` is a superset of `BufferEncoding`. + function execFile(file: string, options: ExecFileOptionsWithOtherEncoding, callback: (error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void): ChildProcess; + function execFile( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptionsWithOtherEncoding, + callback: (error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void + ): ChildProcess; + // `options` without an `encoding` means stdout/stderr are definitely `string`. + function execFile(file: string, options: ExecFileOptions, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess; + function execFile( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptions, + callback: (error: ExecFileException | null, stdout: string, stderr: string) => void + ): ChildProcess; + // fallback if nothing else matches. Worst case is always `string | Buffer`. + function execFile( + file: string, + options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null, + callback: ((error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void) | undefined | null + ): ChildProcess; + function execFile( + file: string, + args: ReadonlyArray | undefined | null, + options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null, + callback: ((error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void) | undefined | null + ): ChildProcess; + namespace execFile { + function __promisify__(file: string): PromiseWithChild<{ + stdout: string; + stderr: string; + }>; + function __promisify__( + file: string, + args: ReadonlyArray | undefined | null + ): PromiseWithChild<{ + stdout: string; + stderr: string; + }>; + function __promisify__( + file: string, + options: ExecFileOptionsWithBufferEncoding + ): PromiseWithChild<{ + stdout: Buffer; + stderr: Buffer; + }>; + function __promisify__( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptionsWithBufferEncoding + ): PromiseWithChild<{ + stdout: Buffer; + stderr: Buffer; + }>; + function __promisify__( + file: string, + options: ExecFileOptionsWithStringEncoding + ): PromiseWithChild<{ + stdout: string; + stderr: string; + }>; + function __promisify__( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptionsWithStringEncoding + ): PromiseWithChild<{ + stdout: string; + stderr: string; + }>; + function __promisify__( + file: string, + options: ExecFileOptionsWithOtherEncoding + ): PromiseWithChild<{ + stdout: string | Buffer; + stderr: string | Buffer; + }>; + function __promisify__( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptionsWithOtherEncoding + ): PromiseWithChild<{ + stdout: string | Buffer; + stderr: string | Buffer; + }>; + function __promisify__( + file: string, + options: ExecFileOptions + ): PromiseWithChild<{ + stdout: string; + stderr: string; + }>; + function __promisify__( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptions + ): PromiseWithChild<{ + stdout: string; + stderr: string; + }>; + function __promisify__( + file: string, + options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null + ): PromiseWithChild<{ + stdout: string | Buffer; + stderr: string | Buffer; + }>; + function __promisify__( + file: string, + args: ReadonlyArray | undefined | null, + options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null + ): PromiseWithChild<{ + stdout: string | Buffer; + stderr: string | Buffer; + }>; + } + interface ForkOptions extends ProcessEnvOptions, MessagingOptions, Abortable { + execPath?: string | undefined; + execArgv?: string[] | undefined; + silent?: boolean | undefined; + stdio?: StdioOptions | undefined; + detached?: boolean | undefined; + windowsVerbatimArguments?: boolean | undefined; + } + /** + * The `child_process.fork()` method is a special case of {@link spawn} used specifically to spawn new Node.js processes. + * Like {@link spawn}, a `ChildProcess` object is returned. The + * returned `ChildProcess` will have an additional communication channel + * built-in that allows messages to be passed back and forth between the parent and + * child. See `subprocess.send()` for details. + * + * Keep in mind that spawned Node.js child processes are + * independent of the parent with exception of the IPC communication channel + * that is established between the two. Each process has its own memory, with + * their own V8 instances. Because of the additional resource allocations + * required, spawning a large number of child Node.js processes is not + * recommended. + * + * By default, `child_process.fork()` will spawn new Node.js instances using the `process.execPath` of the parent process. The `execPath` property in the`options` object allows for an alternative + * execution path to be used. + * + * Node.js processes launched with a custom `execPath` will communicate with the + * parent process using the file descriptor (fd) identified using the + * environment variable `NODE_CHANNEL_FD` on the child process. + * + * Unlike the [`fork(2)`](http://man7.org/linux/man-pages/man2/fork.2.html) POSIX system call, `child_process.fork()` does not clone the + * current process. + * + * The `shell` option available in {@link spawn} is not supported by`child_process.fork()` and will be ignored if set. + * + * If the `signal` option is enabled, calling `.abort()` on the corresponding`AbortController` is similar to calling `.kill()` on the child process except + * the error passed to the callback will be an `AbortError`: + * + * ```js + * if (process.argv[2] === 'child') { + * setTimeout(() => { + * console.log(`Hello from ${process.argv[2]}!`); + * }, 1_000); + * } else { + * const { fork } = require('child_process'); + * const controller = new AbortController(); + * const { signal } = controller; + * const child = fork(__filename, ['child'], { signal }); + * child.on('error', (err) => { + * // This will be called with err being an AbortError if the controller aborts + * }); + * controller.abort(); // Stops the child process + * } + * ``` + * @since v0.5.0 + * @param modulePath The module to run in the child. + * @param args List of string arguments. + */ + function fork(modulePath: string, options?: ForkOptions): ChildProcess; + function fork(modulePath: string, args?: ReadonlyArray, options?: ForkOptions): ChildProcess; + interface SpawnSyncOptions extends CommonSpawnOptions { + input?: string | NodeJS.ArrayBufferView | undefined; + maxBuffer?: number | undefined; + encoding?: BufferEncoding | 'buffer' | null | undefined; + } + interface SpawnSyncOptionsWithStringEncoding extends SpawnSyncOptions { + encoding: BufferEncoding; + } + interface SpawnSyncOptionsWithBufferEncoding extends SpawnSyncOptions { + encoding?: 'buffer' | null | undefined; + } + interface SpawnSyncReturns { + pid: number; + output: Array; + stdout: T; + stderr: T; + status: number | null; + signal: NodeJS.Signals | null; + error?: Error | undefined; + } + /** + * The `child_process.spawnSync()` method is generally identical to {@link spawn} with the exception that the function will not return + * until the child process has fully closed. When a timeout has been encountered + * and `killSignal` is sent, the method won't return until the process has + * completely exited. If the process intercepts and handles the `SIGTERM` signal + * and doesn't exit, the parent process will wait until the child process has + * exited. + * + * **If the `shell` option is enabled, do not pass unsanitized user input to this** + * **function. Any input containing shell metacharacters may be used to trigger** + * **arbitrary command execution.** + * @since v0.11.12 + * @param command The command to run. + * @param args List of string arguments. + */ + function spawnSync(command: string): SpawnSyncReturns; + function spawnSync(command: string, options: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns; + function spawnSync(command: string, options: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns; + function spawnSync(command: string, options?: SpawnSyncOptions): SpawnSyncReturns; + function spawnSync(command: string, args: ReadonlyArray): SpawnSyncReturns; + function spawnSync(command: string, args: ReadonlyArray, options: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns; + function spawnSync(command: string, args: ReadonlyArray, options: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns; + function spawnSync(command: string, args?: ReadonlyArray, options?: SpawnSyncOptions): SpawnSyncReturns; + interface CommonExecOptions extends CommonOptions { + input?: string | NodeJS.ArrayBufferView | undefined; + stdio?: StdioOptions | undefined; + killSignal?: NodeJS.Signals | number | undefined; + maxBuffer?: number | undefined; + encoding?: BufferEncoding | 'buffer' | null | undefined; + } + interface ExecSyncOptions extends CommonExecOptions { + shell?: string | undefined; + } + interface ExecSyncOptionsWithStringEncoding extends ExecSyncOptions { + encoding: BufferEncoding; + } + interface ExecSyncOptionsWithBufferEncoding extends ExecSyncOptions { + encoding?: 'buffer' | null | undefined; + } + /** + * The `child_process.execSync()` method is generally identical to {@link exec} with the exception that the method will not return + * until the child process has fully closed. When a timeout has been encountered + * and `killSignal` is sent, the method won't return until the process has + * completely exited. If the child process intercepts and handles the `SIGTERM`signal and doesn't exit, the parent process will wait until the child process + * has exited. + * + * If the process times out or has a non-zero exit code, this method will throw. + * The `Error` object will contain the entire result from {@link spawnSync}. + * + * **Never pass unsanitized user input to this function. Any input containing shell** + * **metacharacters may be used to trigger arbitrary command execution.** + * @since v0.11.12 + * @param command The command to run. + * @return The stdout from the command. + */ + function execSync(command: string): Buffer; + function execSync(command: string, options: ExecSyncOptionsWithStringEncoding): string; + function execSync(command: string, options: ExecSyncOptionsWithBufferEncoding): Buffer; + function execSync(command: string, options?: ExecSyncOptions): string | Buffer; + interface ExecFileSyncOptions extends CommonExecOptions { + shell?: boolean | string | undefined; + } + interface ExecFileSyncOptionsWithStringEncoding extends ExecFileSyncOptions { + encoding: BufferEncoding; + } + interface ExecFileSyncOptionsWithBufferEncoding extends ExecFileSyncOptions { + encoding?: 'buffer' | null; // specify `null`. + } + /** + * The `child_process.execFileSync()` method is generally identical to {@link execFile} with the exception that the method will not + * return until the child process has fully closed. When a timeout has been + * encountered and `killSignal` is sent, the method won't return until the process + * has completely exited. + * + * If the child process intercepts and handles the `SIGTERM` signal and + * does not exit, the parent process will still wait until the child process has + * exited. + * + * If the process times out or has a non-zero exit code, this method will throw an `Error` that will include the full result of the underlying {@link spawnSync}. + * + * **If the `shell` option is enabled, do not pass unsanitized user input to this** + * **function. Any input containing shell metacharacters may be used to trigger** + * **arbitrary command execution.** + * @since v0.11.12 + * @param file The name or path of the executable file to run. + * @param args List of string arguments. + * @return The stdout from the command. + */ + function execFileSync(file: string): Buffer; + function execFileSync(file: string, options: ExecFileSyncOptionsWithStringEncoding): string; + function execFileSync(file: string, options: ExecFileSyncOptionsWithBufferEncoding): Buffer; + function execFileSync(file: string, options?: ExecFileSyncOptions): string | Buffer; + function execFileSync(file: string, args: ReadonlyArray): Buffer; + function execFileSync(file: string, args: ReadonlyArray, options: ExecFileSyncOptionsWithStringEncoding): string; + function execFileSync(file: string, args: ReadonlyArray, options: ExecFileSyncOptionsWithBufferEncoding): Buffer; + function execFileSync(file: string, args?: ReadonlyArray, options?: ExecFileSyncOptions): string | Buffer; +} +declare module 'node:child_process' { + export * from 'child_process'; +} diff --git a/node_modules/@types/node/cluster.d.ts b/node_modules/@types/node/cluster.d.ts new file mode 100644 index 0000000..37dbc57 --- /dev/null +++ b/node_modules/@types/node/cluster.d.ts @@ -0,0 +1,410 @@ +/** + * Clusters of Node.js processes can be used to run multiple instances of Node.js + * that can distribute workloads among their application threads. When process + * isolation is not needed, use the `worker_threads` module instead, which + * allows running multiple application threads within a single Node.js instance. + * + * The cluster module allows easy creation of child processes that all share + * server ports. + * + * ```js + * import cluster from 'cluster'; + * import http from 'http'; + * import { cpus } from 'os'; + * import process from 'process'; + * + * const numCPUs = cpus().length; + * + * if (cluster.isPrimary) { + * console.log(`Primary ${process.pid} is running`); + * + * // Fork workers. + * for (let i = 0; i < numCPUs; i++) { + * cluster.fork(); + * } + * + * cluster.on('exit', (worker, code, signal) => { + * console.log(`worker ${worker.process.pid} died`); + * }); + * } else { + * // Workers can share any TCP connection + * // In this case it is an HTTP server + * http.createServer((req, res) => { + * res.writeHead(200); + * res.end('hello world\n'); + * }).listen(8000); + * + * console.log(`Worker ${process.pid} started`); + * } + * ``` + * + * Running Node.js will now share port 8000 between the workers: + * + * ```console + * $ node server.js + * Primary 3596 is running + * Worker 4324 started + * Worker 4520 started + * Worker 6056 started + * Worker 5644 started + * ``` + * + * On Windows, it is not yet possible to set up a named pipe server in a worker. + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/cluster.js) + */ +declare module 'cluster' { + import * as child from 'node:child_process'; + import EventEmitter = require('node:events'); + import * as net from 'node:net'; + export interface ClusterSettings { + execArgv?: string[] | undefined; // default: process.execArgv + exec?: string | undefined; + args?: string[] | undefined; + silent?: boolean | undefined; + stdio?: any[] | undefined; + uid?: number | undefined; + gid?: number | undefined; + inspectPort?: number | (() => number) | undefined; + } + export interface Address { + address: string; + port: number; + addressType: number | 'udp4' | 'udp6'; // 4, 6, -1, "udp4", "udp6" + } + /** + * A `Worker` object contains all public information and method about a worker. + * In the primary it can be obtained using `cluster.workers`. In a worker + * it can be obtained using `cluster.worker`. + * @since v0.7.0 + */ + export class Worker extends EventEmitter { + /** + * Each new worker is given its own unique id, this id is stored in the`id`. + * + * While a worker is alive, this is the key that indexes it in`cluster.workers`. + * @since v0.8.0 + */ + id: number; + /** + * All workers are created using `child_process.fork()`, the returned object + * from this function is stored as `.process`. In a worker, the global `process`is stored. + * + * See: `Child Process module`. + * + * Workers will call `process.exit(0)` if the `'disconnect'` event occurs + * on `process` and `.exitedAfterDisconnect` is not `true`. This protects against + * accidental disconnection. + * @since v0.7.0 + */ + process: child.ChildProcess; + /** + * Send a message to a worker or primary, optionally with a handle. + * + * In the primary, this sends a message to a specific worker. It is identical to `ChildProcess.send()`. + * + * In a worker, this sends a message to the primary. It is identical to`process.send()`. + * + * This example will echo back all messages from the primary: + * + * ```js + * if (cluster.isPrimary) { + * const worker = cluster.fork(); + * worker.send('hi there'); + * + * } else if (cluster.isWorker) { + * process.on('message', (msg) => { + * process.send(msg); + * }); + * } + * ``` + * @since v0.7.0 + * @param options The `options` argument, if present, is an object used to parameterize the sending of certain types of handles. `options` supports the following properties: + */ + send(message: child.Serializable, callback?: (error: Error | null) => void): boolean; + send(message: child.Serializable, sendHandle: child.SendHandle, callback?: (error: Error | null) => void): boolean; + send(message: child.Serializable, sendHandle: child.SendHandle, options?: child.MessageOptions, callback?: (error: Error | null) => void): boolean; + /** + * This function will kill the worker. In the primary worker, it does this by + * disconnecting the `worker.process`, and once disconnected, killing with`signal`. In the worker, it does it by killing the process with `signal`. + * + * The `kill()` function kills the worker process without waiting for a graceful + * disconnect, it has the same behavior as `worker.process.kill()`. + * + * This method is aliased as `worker.destroy()` for backwards compatibility. + * + * In a worker, `process.kill()` exists, but it is not this function; + * it is `kill()`. + * @since v0.9.12 + * @param [signal='SIGTERM'] Name of the kill signal to send to the worker process. + */ + kill(signal?: string): void; + destroy(signal?: string): void; + /** + * In a worker, this function will close all servers, wait for the `'close'` event + * on those servers, and then disconnect the IPC channel. + * + * In the primary, an internal message is sent to the worker causing it to call`.disconnect()` on itself. + * + * Causes `.exitedAfterDisconnect` to be set. + * + * After a server is closed, it will no longer accept new connections, + * but connections may be accepted by any other listening worker. Existing + * connections will be allowed to close as usual. When no more connections exist, + * see `server.close()`, the IPC channel to the worker will close allowing it + * to die gracefully. + * + * The above applies _only_ to server connections, client connections are not + * automatically closed by workers, and disconnect does not wait for them to close + * before exiting. + * + * In a worker, `process.disconnect` exists, but it is not this function; + * it is `disconnect()`. + * + * Because long living server connections may block workers from disconnecting, it + * may be useful to send a message, so application specific actions may be taken to + * close them. It also may be useful to implement a timeout, killing a worker if + * the `'disconnect'` event has not been emitted after some time. + * + * ```js + * if (cluster.isPrimary) { + * const worker = cluster.fork(); + * let timeout; + * + * worker.on('listening', (address) => { + * worker.send('shutdown'); + * worker.disconnect(); + * timeout = setTimeout(() => { + * worker.kill(); + * }, 2000); + * }); + * + * worker.on('disconnect', () => { + * clearTimeout(timeout); + * }); + * + * } else if (cluster.isWorker) { + * const net = require('net'); + * const server = net.createServer((socket) => { + * // Connections never end + * }); + * + * server.listen(8000); + * + * process.on('message', (msg) => { + * if (msg === 'shutdown') { + * // Initiate graceful close of any connections to server + * } + * }); + * } + * ``` + * @since v0.7.7 + * @return A reference to `worker`. + */ + disconnect(): void; + /** + * This function returns `true` if the worker is connected to its primary via its + * IPC channel, `false` otherwise. A worker is connected to its primary after it + * has been created. It is disconnected after the `'disconnect'` event is emitted. + * @since v0.11.14 + */ + isConnected(): boolean; + /** + * This function returns `true` if the worker's process has terminated (either + * because of exiting or being signaled). Otherwise, it returns `false`. + * + * ```js + * import cluster from 'cluster'; + * import http from 'http'; + * import { cpus } from 'os'; + * import process from 'process'; + * + * const numCPUs = cpus().length; + * + * if (cluster.isPrimary) { + * console.log(`Primary ${process.pid} is running`); + * + * // Fork workers. + * for (let i = 0; i < numCPUs; i++) { + * cluster.fork(); + * } + * + * cluster.on('fork', (worker) => { + * console.log('worker is dead:', worker.isDead()); + * }); + * + * cluster.on('exit', (worker, code, signal) => { + * console.log('worker is dead:', worker.isDead()); + * }); + * } else { + * // Workers can share any TCP connection. In this case, it is an HTTP server. + * http.createServer((req, res) => { + * res.writeHead(200); + * res.end(`Current process\n ${process.pid}`); + * process.kill(process.pid); + * }).listen(8000); + * } + * ``` + * @since v0.11.14 + */ + isDead(): boolean; + /** + * This property is `true` if the worker exited due to `.disconnect()`. + * If the worker exited any other way, it is `false`. If the + * worker has not exited, it is `undefined`. + * + * The boolean `worker.exitedAfterDisconnect` allows distinguishing between + * voluntary and accidental exit, the primary may choose not to respawn a worker + * based on this value. + * + * ```js + * cluster.on('exit', (worker, code, signal) => { + * if (worker.exitedAfterDisconnect === true) { + * console.log('Oh, it was just voluntary – no need to worry'); + * } + * }); + * + * // kill worker + * worker.kill(); + * ``` + * @since v6.0.0 + */ + exitedAfterDisconnect: boolean; + /** + * events.EventEmitter + * 1. disconnect + * 2. error + * 3. exit + * 4. listening + * 5. message + * 6. online + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'disconnect', listener: () => void): this; + addListener(event: 'error', listener: (error: Error) => void): this; + addListener(event: 'exit', listener: (code: number, signal: string) => void): this; + addListener(event: 'listening', listener: (address: Address) => void): this; + addListener(event: 'message', listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + addListener(event: 'online', listener: () => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'disconnect'): boolean; + emit(event: 'error', error: Error): boolean; + emit(event: 'exit', code: number, signal: string): boolean; + emit(event: 'listening', address: Address): boolean; + emit(event: 'message', message: any, handle: net.Socket | net.Server): boolean; + emit(event: 'online'): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'disconnect', listener: () => void): this; + on(event: 'error', listener: (error: Error) => void): this; + on(event: 'exit', listener: (code: number, signal: string) => void): this; + on(event: 'listening', listener: (address: Address) => void): this; + on(event: 'message', listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + on(event: 'online', listener: () => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'disconnect', listener: () => void): this; + once(event: 'error', listener: (error: Error) => void): this; + once(event: 'exit', listener: (code: number, signal: string) => void): this; + once(event: 'listening', listener: (address: Address) => void): this; + once(event: 'message', listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + once(event: 'online', listener: () => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'disconnect', listener: () => void): this; + prependListener(event: 'error', listener: (error: Error) => void): this; + prependListener(event: 'exit', listener: (code: number, signal: string) => void): this; + prependListener(event: 'listening', listener: (address: Address) => void): this; + prependListener(event: 'message', listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + prependListener(event: 'online', listener: () => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'disconnect', listener: () => void): this; + prependOnceListener(event: 'error', listener: (error: Error) => void): this; + prependOnceListener(event: 'exit', listener: (code: number, signal: string) => void): this; + prependOnceListener(event: 'listening', listener: (address: Address) => void): this; + prependOnceListener(event: 'message', listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + prependOnceListener(event: 'online', listener: () => void): this; + } + export interface Cluster extends EventEmitter { + disconnect(callback?: () => void): void; + fork(env?: any): Worker; + /** @deprecated since v16.0.0 - use isPrimary. */ + readonly isMaster: boolean; + readonly isPrimary: boolean; + readonly isWorker: boolean; + schedulingPolicy: number; + readonly settings: ClusterSettings; + /** @deprecated since v16.0.0 - use setupPrimary. */ + setupMaster(settings?: ClusterSettings): void; + /** + * `setupPrimary` is used to change the default 'fork' behavior. Once called, the settings will be present in cluster.settings. + */ + setupPrimary(settings?: ClusterSettings): void; + readonly worker?: Worker | undefined; + readonly workers?: NodeJS.Dict | undefined; + readonly SCHED_NONE: number; + readonly SCHED_RR: number; + /** + * events.EventEmitter + * 1. disconnect + * 2. exit + * 3. fork + * 4. listening + * 5. message + * 6. online + * 7. setup + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'disconnect', listener: (worker: Worker) => void): this; + addListener(event: 'exit', listener: (worker: Worker, code: number, signal: string) => void): this; + addListener(event: 'fork', listener: (worker: Worker) => void): this; + addListener(event: 'listening', listener: (worker: Worker, address: Address) => void): this; + addListener(event: 'message', listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + addListener(event: 'online', listener: (worker: Worker) => void): this; + addListener(event: 'setup', listener: (settings: ClusterSettings) => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'disconnect', worker: Worker): boolean; + emit(event: 'exit', worker: Worker, code: number, signal: string): boolean; + emit(event: 'fork', worker: Worker): boolean; + emit(event: 'listening', worker: Worker, address: Address): boolean; + emit(event: 'message', worker: Worker, message: any, handle: net.Socket | net.Server): boolean; + emit(event: 'online', worker: Worker): boolean; + emit(event: 'setup', settings: ClusterSettings): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'disconnect', listener: (worker: Worker) => void): this; + on(event: 'exit', listener: (worker: Worker, code: number, signal: string) => void): this; + on(event: 'fork', listener: (worker: Worker) => void): this; + on(event: 'listening', listener: (worker: Worker, address: Address) => void): this; + on(event: 'message', listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + on(event: 'online', listener: (worker: Worker) => void): this; + on(event: 'setup', listener: (settings: ClusterSettings) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'disconnect', listener: (worker: Worker) => void): this; + once(event: 'exit', listener: (worker: Worker, code: number, signal: string) => void): this; + once(event: 'fork', listener: (worker: Worker) => void): this; + once(event: 'listening', listener: (worker: Worker, address: Address) => void): this; + once(event: 'message', listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + once(event: 'online', listener: (worker: Worker) => void): this; + once(event: 'setup', listener: (settings: ClusterSettings) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'disconnect', listener: (worker: Worker) => void): this; + prependListener(event: 'exit', listener: (worker: Worker, code: number, signal: string) => void): this; + prependListener(event: 'fork', listener: (worker: Worker) => void): this; + prependListener(event: 'listening', listener: (worker: Worker, address: Address) => void): this; + // the handle is a net.Socket or net.Server object, or undefined. + prependListener(event: 'message', listener: (worker: Worker, message: any, handle?: net.Socket | net.Server) => void): this; + prependListener(event: 'online', listener: (worker: Worker) => void): this; + prependListener(event: 'setup', listener: (settings: ClusterSettings) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'disconnect', listener: (worker: Worker) => void): this; + prependOnceListener(event: 'exit', listener: (worker: Worker, code: number, signal: string) => void): this; + prependOnceListener(event: 'fork', listener: (worker: Worker) => void): this; + prependOnceListener(event: 'listening', listener: (worker: Worker, address: Address) => void): this; + // the handle is a net.Socket or net.Server object, or undefined. + prependOnceListener(event: 'message', listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; + prependOnceListener(event: 'online', listener: (worker: Worker) => void): this; + prependOnceListener(event: 'setup', listener: (settings: ClusterSettings) => void): this; + } + const cluster: Cluster; + export default cluster; +} +declare module 'node:cluster' { + export * from 'cluster'; + export { default as default } from 'cluster'; +} diff --git a/node_modules/@types/node/console.d.ts b/node_modules/@types/node/console.d.ts new file mode 100644 index 0000000..16c9137 --- /dev/null +++ b/node_modules/@types/node/console.d.ts @@ -0,0 +1,412 @@ +/** + * The `console` module provides a simple debugging console that is similar to the + * JavaScript console mechanism provided by web browsers. + * + * The module exports two specific components: + * + * * A `Console` class with methods such as `console.log()`, `console.error()` and`console.warn()` that can be used to write to any Node.js stream. + * * A global `console` instance configured to write to `process.stdout` and `process.stderr`. The global `console` can be used without calling`require('console')`. + * + * _**Warning**_: The global console object's methods are neither consistently + * synchronous like the browser APIs they resemble, nor are they consistently + * asynchronous like all other Node.js streams. See the `note on process I/O` for + * more information. + * + * Example using the global `console`: + * + * ```js + * console.log('hello world'); + * // Prints: hello world, to stdout + * console.log('hello %s', 'world'); + * // Prints: hello world, to stdout + * console.error(new Error('Whoops, something bad happened')); + * // Prints error message and stack trace to stderr: + * // Error: Whoops, something bad happened + * // at [eval]:5:15 + * // at Script.runInThisContext (node:vm:132:18) + * // at Object.runInThisContext (node:vm:309:38) + * // at node:internal/process/execution:77:19 + * // at [eval]-wrapper:6:22 + * // at evalScript (node:internal/process/execution:76:60) + * // at node:internal/main/eval_string:23:3 + * + * const name = 'Will Robinson'; + * console.warn(`Danger ${name}! Danger!`); + * // Prints: Danger Will Robinson! Danger!, to stderr + * ``` + * + * Example using the `Console` class: + * + * ```js + * const out = getStreamSomehow(); + * const err = getStreamSomehow(); + * const myConsole = new console.Console(out, err); + * + * myConsole.log('hello world'); + * // Prints: hello world, to out + * myConsole.log('hello %s', 'world'); + * // Prints: hello world, to out + * myConsole.error(new Error('Whoops, something bad happened')); + * // Prints: [Error: Whoops, something bad happened], to err + * + * const name = 'Will Robinson'; + * myConsole.warn(`Danger ${name}! Danger!`); + * // Prints: Danger Will Robinson! Danger!, to err + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/console.js) + */ +declare module 'console' { + import console = require('node:console'); + export = console; +} +declare module 'node:console' { + import { InspectOptions } from 'node:util'; + global { + // This needs to be global to avoid TS2403 in case lib.dom.d.ts is present in the same build + interface Console { + Console: console.ConsoleConstructor; + /** + * `console.assert()` writes a message if `value` is [falsy](https://developer.mozilla.org/en-US/docs/Glossary/Falsy) or omitted. It only + * writes a message and does not otherwise affect execution. The output always + * starts with `"Assertion failed"`. If provided, `message` is formatted using `util.format()`. + * + * If `value` is [truthy](https://developer.mozilla.org/en-US/docs/Glossary/Truthy), nothing happens. + * + * ```js + * console.assert(true, 'does nothing'); + * + * console.assert(false, 'Whoops %s work', 'didn\'t'); + * // Assertion failed: Whoops didn't work + * + * console.assert(); + * // Assertion failed + * ``` + * @since v0.1.101 + * @param value The value tested for being truthy. + * @param message All arguments besides `value` are used as error message. + */ + assert(value: any, message?: string, ...optionalParams: any[]): void; + /** + * When `stdout` is a TTY, calling `console.clear()` will attempt to clear the + * TTY. When `stdout` is not a TTY, this method does nothing. + * + * The specific operation of `console.clear()` can vary across operating systems + * and terminal types. For most Linux operating systems, `console.clear()`operates similarly to the `clear` shell command. On Windows, `console.clear()`will clear only the output in the + * current terminal viewport for the Node.js + * binary. + * @since v8.3.0 + */ + clear(): void; + /** + * Maintains an internal counter specific to `label` and outputs to `stdout` the + * number of times `console.count()` has been called with the given `label`. + * + * ```js + * > console.count() + * default: 1 + * undefined + * > console.count('default') + * default: 2 + * undefined + * > console.count('abc') + * abc: 1 + * undefined + * > console.count('xyz') + * xyz: 1 + * undefined + * > console.count('abc') + * abc: 2 + * undefined + * > console.count() + * default: 3 + * undefined + * > + * ``` + * @since v8.3.0 + * @param label The display label for the counter. + */ + count(label?: string): void; + /** + * Resets the internal counter specific to `label`. + * + * ```js + * > console.count('abc'); + * abc: 1 + * undefined + * > console.countReset('abc'); + * undefined + * > console.count('abc'); + * abc: 1 + * undefined + * > + * ``` + * @since v8.3.0 + * @param label The display label for the counter. + */ + countReset(label?: string): void; + /** + * The `console.debug()` function is an alias for {@link log}. + * @since v8.0.0 + */ + debug(message?: any, ...optionalParams: any[]): void; + /** + * Uses `util.inspect()` on `obj` and prints the resulting string to `stdout`. + * This function bypasses any custom `inspect()` function defined on `obj`. + * @since v0.1.101 + */ + dir(obj: any, options?: InspectOptions): void; + /** + * This method calls `console.log()` passing it the arguments received. + * This method does not produce any XML formatting. + * @since v8.0.0 + */ + dirxml(...data: any[]): void; + /** + * Prints to `stderr` with newline. Multiple arguments can be passed, with the + * first used as the primary message and all additional used as substitution + * values similar to [`printf(3)`](http://man7.org/linux/man-pages/man3/printf.3.html) (the arguments are all passed to `util.format()`). + * + * ```js + * const code = 5; + * console.error('error #%d', code); + * // Prints: error #5, to stderr + * console.error('error', code); + * // Prints: error 5, to stderr + * ``` + * + * If formatting elements (e.g. `%d`) are not found in the first string then `util.inspect()` is called on each argument and the resulting string + * values are concatenated. See `util.format()` for more information. + * @since v0.1.100 + */ + error(message?: any, ...optionalParams: any[]): void; + /** + * Increases indentation of subsequent lines by spaces for `groupIndentation`length. + * + * If one or more `label`s are provided, those are printed first without the + * additional indentation. + * @since v8.5.0 + */ + group(...label: any[]): void; + /** + * An alias for {@link group}. + * @since v8.5.0 + */ + groupCollapsed(...label: any[]): void; + /** + * Decreases indentation of subsequent lines by spaces for `groupIndentation`length. + * @since v8.5.0 + */ + groupEnd(): void; + /** + * The `console.info()` function is an alias for {@link log}. + * @since v0.1.100 + */ + info(message?: any, ...optionalParams: any[]): void; + /** + * Prints to `stdout` with newline. Multiple arguments can be passed, with the + * first used as the primary message and all additional used as substitution + * values similar to [`printf(3)`](http://man7.org/linux/man-pages/man3/printf.3.html) (the arguments are all passed to `util.format()`). + * + * ```js + * const count = 5; + * console.log('count: %d', count); + * // Prints: count: 5, to stdout + * console.log('count:', count); + * // Prints: count: 5, to stdout + * ``` + * + * See `util.format()` for more information. + * @since v0.1.100 + */ + log(message?: any, ...optionalParams: any[]): void; + /** + * Try to construct a table with the columns of the properties of `tabularData`(or use `properties`) and rows of `tabularData` and log it. Falls back to just + * logging the argument if it can’t be parsed as tabular. + * + * ```js + * // These can't be parsed as tabular data + * console.table(Symbol()); + * // Symbol() + * + * console.table(undefined); + * // undefined + * + * console.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }]); + * // ┌─────────┬─────┬─────┐ + * // │ (index) │ a │ b │ + * // ├─────────┼─────┼─────┤ + * // │ 0 │ 1 │ 'Y' │ + * // │ 1 │ 'Z' │ 2 │ + * // └─────────┴─────┴─────┘ + * + * console.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }], ['a']); + * // ┌─────────┬─────┐ + * // │ (index) │ a │ + * // ├─────────┼─────┤ + * // │ 0 │ 1 │ + * // │ 1 │ 'Z' │ + * // └─────────┴─────┘ + * ``` + * @since v10.0.0 + * @param properties Alternate properties for constructing the table. + */ + table(tabularData: any, properties?: ReadonlyArray): void; + /** + * Starts a timer that can be used to compute the duration of an operation. Timers + * are identified by a unique `label`. Use the same `label` when calling {@link timeEnd} to stop the timer and output the elapsed time in + * suitable time units to `stdout`. For example, if the elapsed + * time is 3869ms, `console.timeEnd()` displays "3.869s". + * @since v0.1.104 + */ + time(label?: string): void; + /** + * Stops a timer that was previously started by calling {@link time} and + * prints the result to `stdout`: + * + * ```js + * console.time('100-elements'); + * for (let i = 0; i < 100; i++) {} + * console.timeEnd('100-elements'); + * // prints 100-elements: 225.438ms + * ``` + * @since v0.1.104 + */ + timeEnd(label?: string): void; + /** + * For a timer that was previously started by calling {@link time}, prints + * the elapsed time and other `data` arguments to `stdout`: + * + * ```js + * console.time('process'); + * const value = expensiveProcess1(); // Returns 42 + * console.timeLog('process', value); + * // Prints "process: 365.227ms 42". + * doExpensiveProcess2(value); + * console.timeEnd('process'); + * ``` + * @since v10.7.0 + */ + timeLog(label?: string, ...data: any[]): void; + /** + * Prints to `stderr` the string `'Trace: '`, followed by the `util.format()` formatted message and stack trace to the current position in the code. + * + * ```js + * console.trace('Show me'); + * // Prints: (stack trace will vary based on where trace is called) + * // Trace: Show me + * // at repl:2:9 + * // at REPLServer.defaultEval (repl.js:248:27) + * // at bound (domain.js:287:14) + * // at REPLServer.runBound [as eval] (domain.js:300:12) + * // at REPLServer. (repl.js:412:12) + * // at emitOne (events.js:82:20) + * // at REPLServer.emit (events.js:169:7) + * // at REPLServer.Interface._onLine (readline.js:210:10) + * // at REPLServer.Interface._line (readline.js:549:8) + * // at REPLServer.Interface._ttyWrite (readline.js:826:14) + * ``` + * @since v0.1.104 + */ + trace(message?: any, ...optionalParams: any[]): void; + /** + * The `console.warn()` function is an alias for {@link error}. + * @since v0.1.100 + */ + warn(message?: any, ...optionalParams: any[]): void; + // --- Inspector mode only --- + /** + * This method does not display anything unless used in the inspector. + * Starts a JavaScript CPU profile with an optional label. + */ + profile(label?: string): void; + /** + * This method does not display anything unless used in the inspector. + * Stops the current JavaScript CPU profiling session if one has been started and prints the report to the Profiles panel of the inspector. + */ + profileEnd(label?: string): void; + /** + * This method does not display anything unless used in the inspector. + * Adds an event with the label `label` to the Timeline panel of the inspector. + */ + timeStamp(label?: string): void; + } + /** + * The `console` module provides a simple debugging console that is similar to the + * JavaScript console mechanism provided by web browsers. + * + * The module exports two specific components: + * + * * A `Console` class with methods such as `console.log()`, `console.error()` and`console.warn()` that can be used to write to any Node.js stream. + * * A global `console` instance configured to write to `process.stdout` and `process.stderr`. The global `console` can be used without calling`require('console')`. + * + * _**Warning**_: The global console object's methods are neither consistently + * synchronous like the browser APIs they resemble, nor are they consistently + * asynchronous like all other Node.js streams. See the `note on process I/O` for + * more information. + * + * Example using the global `console`: + * + * ```js + * console.log('hello world'); + * // Prints: hello world, to stdout + * console.log('hello %s', 'world'); + * // Prints: hello world, to stdout + * console.error(new Error('Whoops, something bad happened')); + * // Prints error message and stack trace to stderr: + * // Error: Whoops, something bad happened + * // at [eval]:5:15 + * // at Script.runInThisContext (node:vm:132:18) + * // at Object.runInThisContext (node:vm:309:38) + * // at node:internal/process/execution:77:19 + * // at [eval]-wrapper:6:22 + * // at evalScript (node:internal/process/execution:76:60) + * // at node:internal/main/eval_string:23:3 + * + * const name = 'Will Robinson'; + * console.warn(`Danger ${name}! Danger!`); + * // Prints: Danger Will Robinson! Danger!, to stderr + * ``` + * + * Example using the `Console` class: + * + * ```js + * const out = getStreamSomehow(); + * const err = getStreamSomehow(); + * const myConsole = new console.Console(out, err); + * + * myConsole.log('hello world'); + * // Prints: hello world, to out + * myConsole.log('hello %s', 'world'); + * // Prints: hello world, to out + * myConsole.error(new Error('Whoops, something bad happened')); + * // Prints: [Error: Whoops, something bad happened], to err + * + * const name = 'Will Robinson'; + * myConsole.warn(`Danger ${name}! Danger!`); + * // Prints: Danger Will Robinson! Danger!, to err + * ``` + * @see [source](https://github.com/nodejs/node/blob/v16.4.2/lib/console.js) + */ + namespace console { + interface ConsoleConstructorOptions { + stdout: NodeJS.WritableStream; + stderr?: NodeJS.WritableStream | undefined; + ignoreErrors?: boolean | undefined; + colorMode?: boolean | 'auto' | undefined; + inspectOptions?: InspectOptions | undefined; + /** + * Set group indentation + * @default 2 + */ + groupIndentation?: number | undefined; + } + interface ConsoleConstructor { + prototype: Console; + new (stdout: NodeJS.WritableStream, stderr?: NodeJS.WritableStream, ignoreErrors?: boolean): Console; + new (options: ConsoleConstructorOptions): Console; + } + } + var console: Console; + } + export = globalThis.console; +} diff --git a/node_modules/@types/node/constants.d.ts b/node_modules/@types/node/constants.d.ts new file mode 100644 index 0000000..208020d --- /dev/null +++ b/node_modules/@types/node/constants.d.ts @@ -0,0 +1,18 @@ +/** @deprecated since v6.3.0 - use constants property exposed by the relevant module instead. */ +declare module 'constants' { + import { constants as osConstants, SignalConstants } from 'node:os'; + import { constants as cryptoConstants } from 'node:crypto'; + import { constants as fsConstants } from 'node:fs'; + + const exp: typeof osConstants.errno & + typeof osConstants.priority & + SignalConstants & + typeof cryptoConstants & + typeof fsConstants; + export = exp; +} + +declare module 'node:constants' { + import constants = require('constants'); + export = constants; +} diff --git a/node_modules/@types/node/crypto.d.ts b/node_modules/@types/node/crypto.d.ts new file mode 100644 index 0000000..20d960c --- /dev/null +++ b/node_modules/@types/node/crypto.d.ts @@ -0,0 +1,3964 @@ +/** + * The `crypto` module provides cryptographic functionality that includes a set of + * wrappers for OpenSSL's hash, HMAC, cipher, decipher, sign, and verify functions. + * + * ```js + * const { createHmac } = await import('crypto'); + * + * const secret = 'abcdefg'; + * const hash = createHmac('sha256', secret) + * .update('I love cupcakes') + * .digest('hex'); + * console.log(hash); + * // Prints: + * // c0fa1bc00531bd78ef38c628449c5102aeabd49b5dc3a2a516ea6ea959d6658e + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/crypto.js) + */ +declare module 'crypto' { + import * as stream from 'node:stream'; + import { PeerCertificate } from 'node:tls'; + /** + * SPKAC is a Certificate Signing Request mechanism originally implemented by + * Netscape and was specified formally as part of [HTML5's `keygen` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/keygen). + * + * `` is deprecated since [HTML 5.2](https://www.w3.org/TR/html52/changes.html#features-removed) and new projects + * should not use this element anymore. + * + * The `crypto` module provides the `Certificate` class for working with SPKAC + * data. The most common usage is handling output generated by the HTML5`` element. Node.js uses [OpenSSL's SPKAC + * implementation](https://www.openssl.org/docs/man1.1.0/apps/openssl-spkac.html) internally. + * @since v0.11.8 + */ + class Certificate { + /** + * ```js + * const { Certificate } = await import('crypto'); + * const spkac = getSpkacSomehow(); + * const challenge = Certificate.exportChallenge(spkac); + * console.log(challenge.toString('utf8')); + * // Prints: the challenge as a UTF8 string + * ``` + * @since v9.0.0 + * @param encoding The `encoding` of the `spkac` string. + * @return The challenge component of the `spkac` data structure, which includes a public key and a challenge. + */ + static exportChallenge(spkac: BinaryLike): Buffer; + /** + * ```js + * const { Certificate } = await import('crypto'); + * const spkac = getSpkacSomehow(); + * const publicKey = Certificate.exportPublicKey(spkac); + * console.log(publicKey); + * // Prints: the public key as + * ``` + * @since v9.0.0 + * @param encoding The `encoding` of the `spkac` string. + * @return The public key component of the `spkac` data structure, which includes a public key and a challenge. + */ + static exportPublicKey(spkac: BinaryLike, encoding?: string): Buffer; + /** + * ```js + * import { Buffer } from 'buffer'; + * const { Certificate } = await import('crypto'); + * + * const spkac = getSpkacSomehow(); + * console.log(Certificate.verifySpkac(Buffer.from(spkac))); + * // Prints: true or false + * ``` + * @since v9.0.0 + * @param encoding The `encoding` of the `spkac` string. + * @return `true` if the given `spkac` data structure is valid, `false` otherwise. + */ + static verifySpkac(spkac: NodeJS.ArrayBufferView): boolean; + /** + * @deprecated + * @param spkac + * @returns The challenge component of the `spkac` data structure, + * which includes a public key and a challenge. + */ + exportChallenge(spkac: BinaryLike): Buffer; + /** + * @deprecated + * @param spkac + * @param encoding The encoding of the spkac string. + * @returns The public key component of the `spkac` data structure, + * which includes a public key and a challenge. + */ + exportPublicKey(spkac: BinaryLike, encoding?: string): Buffer; + /** + * @deprecated + * @param spkac + * @returns `true` if the given `spkac` data structure is valid, + * `false` otherwise. + */ + verifySpkac(spkac: NodeJS.ArrayBufferView): boolean; + } + namespace constants { + // https://nodejs.org/dist/latest-v10.x/docs/api/crypto.html#crypto_crypto_constants + const OPENSSL_VERSION_NUMBER: number; + /** Applies multiple bug workarounds within OpenSSL. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html for detail. */ + const SSL_OP_ALL: number; + /** Allows legacy insecure renegotiation between OpenSSL and unpatched clients or servers. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html. */ + const SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: number; + /** Attempts to use the server's preferences instead of the client's when selecting a cipher. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html. */ + const SSL_OP_CIPHER_SERVER_PREFERENCE: number; + /** Instructs OpenSSL to use Cisco's "speshul" version of DTLS_BAD_VER. */ + const SSL_OP_CISCO_ANYCONNECT: number; + /** Instructs OpenSSL to turn on cookie exchange. */ + const SSL_OP_COOKIE_EXCHANGE: number; + /** Instructs OpenSSL to add server-hello extension from an early version of the cryptopro draft. */ + const SSL_OP_CRYPTOPRO_TLSEXT_BUG: number; + /** Instructs OpenSSL to disable a SSL 3.0/TLS 1.0 vulnerability workaround added in OpenSSL 0.9.6d. */ + const SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: number; + /** Instructs OpenSSL to always use the tmp_rsa key when performing RSA operations. */ + const SSL_OP_EPHEMERAL_RSA: number; + /** Allows initial connection to servers that do not support RI. */ + const SSL_OP_LEGACY_SERVER_CONNECT: number; + const SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: number; + const SSL_OP_MICROSOFT_SESS_ID_BUG: number; + /** Instructs OpenSSL to disable the workaround for a man-in-the-middle protocol-version vulnerability in the SSL 2.0 server implementation. */ + const SSL_OP_MSIE_SSLV2_RSA_PADDING: number; + const SSL_OP_NETSCAPE_CA_DN_BUG: number; + const SSL_OP_NETSCAPE_CHALLENGE_BUG: number; + const SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG: number; + const SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: number; + /** Instructs OpenSSL to disable support for SSL/TLS compression. */ + const SSL_OP_NO_COMPRESSION: number; + const SSL_OP_NO_QUERY_MTU: number; + /** Instructs OpenSSL to always start a new session when performing renegotiation. */ + const SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: number; + const SSL_OP_NO_SSLv2: number; + const SSL_OP_NO_SSLv3: number; + const SSL_OP_NO_TICKET: number; + const SSL_OP_NO_TLSv1: number; + const SSL_OP_NO_TLSv1_1: number; + const SSL_OP_NO_TLSv1_2: number; + const SSL_OP_PKCS1_CHECK_1: number; + const SSL_OP_PKCS1_CHECK_2: number; + /** Instructs OpenSSL to always create a new key when using temporary/ephemeral DH parameters. */ + const SSL_OP_SINGLE_DH_USE: number; + /** Instructs OpenSSL to always create a new key when using temporary/ephemeral ECDH parameters. */ + const SSL_OP_SINGLE_ECDH_USE: number; + const SSL_OP_SSLEAY_080_CLIENT_DH_BUG: number; + const SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG: number; + const SSL_OP_TLS_BLOCK_PADDING_BUG: number; + const SSL_OP_TLS_D5_BUG: number; + /** Instructs OpenSSL to disable version rollback attack detection. */ + const SSL_OP_TLS_ROLLBACK_BUG: number; + const ENGINE_METHOD_RSA: number; + const ENGINE_METHOD_DSA: number; + const ENGINE_METHOD_DH: number; + const ENGINE_METHOD_RAND: number; + const ENGINE_METHOD_EC: number; + const ENGINE_METHOD_CIPHERS: number; + const ENGINE_METHOD_DIGESTS: number; + const ENGINE_METHOD_PKEY_METHS: number; + const ENGINE_METHOD_PKEY_ASN1_METHS: number; + const ENGINE_METHOD_ALL: number; + const ENGINE_METHOD_NONE: number; + const DH_CHECK_P_NOT_SAFE_PRIME: number; + const DH_CHECK_P_NOT_PRIME: number; + const DH_UNABLE_TO_CHECK_GENERATOR: number; + const DH_NOT_SUITABLE_GENERATOR: number; + const ALPN_ENABLED: number; + const RSA_PKCS1_PADDING: number; + const RSA_SSLV23_PADDING: number; + const RSA_NO_PADDING: number; + const RSA_PKCS1_OAEP_PADDING: number; + const RSA_X931_PADDING: number; + const RSA_PKCS1_PSS_PADDING: number; + /** Sets the salt length for RSA_PKCS1_PSS_PADDING to the digest size when signing or verifying. */ + const RSA_PSS_SALTLEN_DIGEST: number; + /** Sets the salt length for RSA_PKCS1_PSS_PADDING to the maximum permissible value when signing data. */ + const RSA_PSS_SALTLEN_MAX_SIGN: number; + /** Causes the salt length for RSA_PKCS1_PSS_PADDING to be determined automatically when verifying a signature. */ + const RSA_PSS_SALTLEN_AUTO: number; + const POINT_CONVERSION_COMPRESSED: number; + const POINT_CONVERSION_UNCOMPRESSED: number; + const POINT_CONVERSION_HYBRID: number; + /** Specifies the built-in default cipher list used by Node.js (colon-separated values). */ + const defaultCoreCipherList: string; + /** Specifies the active default cipher list used by the current Node.js process (colon-separated values). */ + const defaultCipherList: string; + } + interface HashOptions extends stream.TransformOptions { + /** + * For XOF hash functions such as `shake256`, the + * outputLength option can be used to specify the desired output length in bytes. + */ + outputLength?: number | undefined; + } + /** @deprecated since v10.0.0 */ + const fips: boolean; + /** + * Creates and returns a `Hash` object that can be used to generate hash digests + * using the given `algorithm`. Optional `options` argument controls stream + * behavior. For XOF hash functions such as `'shake256'`, the `outputLength` option + * can be used to specify the desired output length in bytes. + * + * The `algorithm` is dependent on the available algorithms supported by the + * version of OpenSSL on the platform. Examples are `'sha256'`, `'sha512'`, etc. + * On recent releases of OpenSSL, `openssl list -digest-algorithms` will + * display the available digest algorithms. + * + * Example: generating the sha256 sum of a file + * + * ```js + * import { + * createReadStream + * } from 'fs'; + * import { argv } from 'process'; + * const { + * createHash + * } = await import('crypto'); + * + * const filename = argv[2]; + * + * const hash = createHash('sha256'); + * + * const input = createReadStream(filename); + * input.on('readable', () => { + * // Only one element is going to be produced by the + * // hash stream. + * const data = input.read(); + * if (data) + * hash.update(data); + * else { + * console.log(`${hash.digest('hex')} ${filename}`); + * } + * }); + * ``` + * @since v0.1.92 + * @param options `stream.transform` options + */ + function createHash(algorithm: string, options?: HashOptions): Hash; + /** + * Creates and returns an `Hmac` object that uses the given `algorithm` and `key`. + * Optional `options` argument controls stream behavior. + * + * The `algorithm` is dependent on the available algorithms supported by the + * version of OpenSSL on the platform. Examples are `'sha256'`, `'sha512'`, etc. + * On recent releases of OpenSSL, `openssl list -digest-algorithms` will + * display the available digest algorithms. + * + * The `key` is the HMAC key used to generate the cryptographic HMAC hash. If it is + * a `KeyObject`, its type must be `secret`. + * + * Example: generating the sha256 HMAC of a file + * + * ```js + * import { + * createReadStream + * } from 'fs'; + * import { argv } from 'process'; + * const { + * createHmac + * } = await import('crypto'); + * + * const filename = argv[2]; + * + * const hmac = createHmac('sha256', 'a secret'); + * + * const input = createReadStream(filename); + * input.on('readable', () => { + * // Only one element is going to be produced by the + * // hash stream. + * const data = input.read(); + * if (data) + * hmac.update(data); + * else { + * console.log(`${hmac.digest('hex')} ${filename}`); + * } + * }); + * ``` + * @since v0.1.94 + * @param options `stream.transform` options + */ + function createHmac(algorithm: string, key: BinaryLike | KeyObject, options?: stream.TransformOptions): Hmac; + // https://nodejs.org/api/buffer.html#buffer_buffers_and_character_encodings + type BinaryToTextEncoding = 'base64' | 'base64url' | 'hex' | 'binary'; + type CharacterEncoding = 'utf8' | 'utf-8' | 'utf16le' | 'latin1'; + type LegacyCharacterEncoding = 'ascii' | 'binary' | 'ucs2' | 'ucs-2'; + type Encoding = BinaryToTextEncoding | CharacterEncoding | LegacyCharacterEncoding; + type ECDHKeyFormat = 'compressed' | 'uncompressed' | 'hybrid'; + /** + * The `Hash` class is a utility for creating hash digests of data. It can be + * used in one of two ways: + * + * * As a `stream` that is both readable and writable, where data is written + * to produce a computed hash digest on the readable side, or + * * Using the `hash.update()` and `hash.digest()` methods to produce the + * computed hash. + * + * The {@link createHash} method is used to create `Hash` instances. `Hash`objects are not to be created directly using the `new` keyword. + * + * Example: Using `Hash` objects as streams: + * + * ```js + * const { + * createHash + * } = await import('crypto'); + * + * const hash = createHash('sha256'); + * + * hash.on('readable', () => { + * // Only one element is going to be produced by the + * // hash stream. + * const data = hash.read(); + * if (data) { + * console.log(data.toString('hex')); + * // Prints: + * // 6a2da20943931e9834fc12cfe5bb47bbd9ae43489a30726962b576f4e3993e50 + * } + * }); + * + * hash.write('some data to hash'); + * hash.end(); + * ``` + * + * Example: Using `Hash` and piped streams: + * + * ```js + * import { createReadStream } from 'fs'; + * import { stdout } from 'process'; + * const { createHash } = await import('crypto'); + * + * const hash = createHash('sha256'); + * + * const input = createReadStream('test.js'); + * input.pipe(hash).setEncoding('hex').pipe(stdout); + * ``` + * + * Example: Using the `hash.update()` and `hash.digest()` methods: + * + * ```js + * const { + * createHash + * } = await import('crypto'); + * + * const hash = createHash('sha256'); + * + * hash.update('some data to hash'); + * console.log(hash.digest('hex')); + * // Prints: + * // 6a2da20943931e9834fc12cfe5bb47bbd9ae43489a30726962b576f4e3993e50 + * ``` + * @since v0.1.92 + */ + class Hash extends stream.Transform { + private constructor(); + /** + * Creates a new `Hash` object that contains a deep copy of the internal state + * of the current `Hash` object. + * + * The optional `options` argument controls stream behavior. For XOF hash + * functions such as `'shake256'`, the `outputLength` option can be used to + * specify the desired output length in bytes. + * + * An error is thrown when an attempt is made to copy the `Hash` object after + * its `hash.digest()` method has been called. + * + * ```js + * // Calculate a rolling hash. + * const { + * createHash + * } = await import('crypto'); + * + * const hash = createHash('sha256'); + * + * hash.update('one'); + * console.log(hash.copy().digest('hex')); + * + * hash.update('two'); + * console.log(hash.copy().digest('hex')); + * + * hash.update('three'); + * console.log(hash.copy().digest('hex')); + * + * // Etc. + * ``` + * @since v13.1.0 + * @param options `stream.transform` options + */ + copy(options?: stream.TransformOptions): Hash; + /** + * Updates the hash content with the given `data`, the encoding of which + * is given in `inputEncoding`. + * If `encoding` is not provided, and the `data` is a string, an + * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored. + * + * This can be called many times with new data as it is streamed. + * @since v0.1.92 + * @param inputEncoding The `encoding` of the `data` string. + */ + update(data: BinaryLike): Hash; + update(data: string, inputEncoding: Encoding): Hash; + /** + * Calculates the digest of all of the data passed to be hashed (using the `hash.update()` method). + * If `encoding` is provided a string will be returned; otherwise + * a `Buffer` is returned. + * + * The `Hash` object can not be used again after `hash.digest()` method has been + * called. Multiple calls will cause an error to be thrown. + * @since v0.1.92 + * @param encoding The `encoding` of the return value. + */ + digest(): Buffer; + digest(encoding: BinaryToTextEncoding): string; + } + /** + * The `Hmac` class is a utility for creating cryptographic HMAC digests. It can + * be used in one of two ways: + * + * * As a `stream` that is both readable and writable, where data is written + * to produce a computed HMAC digest on the readable side, or + * * Using the `hmac.update()` and `hmac.digest()` methods to produce the + * computed HMAC digest. + * + * The {@link createHmac} method is used to create `Hmac` instances. `Hmac`objects are not to be created directly using the `new` keyword. + * + * Example: Using `Hmac` objects as streams: + * + * ```js + * const { + * createHmac + * } = await import('crypto'); + * + * const hmac = createHmac('sha256', 'a secret'); + * + * hmac.on('readable', () => { + * // Only one element is going to be produced by the + * // hash stream. + * const data = hmac.read(); + * if (data) { + * console.log(data.toString('hex')); + * // Prints: + * // 7fd04df92f636fd450bc841c9418e5825c17f33ad9c87c518115a45971f7f77e + * } + * }); + * + * hmac.write('some data to hash'); + * hmac.end(); + * ``` + * + * Example: Using `Hmac` and piped streams: + * + * ```js + * import { createReadStream } from 'fs'; + * import { stdout } from 'process'; + * const { + * createHmac + * } = await import('crypto'); + * + * const hmac = createHmac('sha256', 'a secret'); + * + * const input = createReadStream('test.js'); + * input.pipe(hmac).pipe(stdout); + * ``` + * + * Example: Using the `hmac.update()` and `hmac.digest()` methods: + * + * ```js + * const { + * createHmac + * } = await import('crypto'); + * + * const hmac = createHmac('sha256', 'a secret'); + * + * hmac.update('some data to hash'); + * console.log(hmac.digest('hex')); + * // Prints: + * // 7fd04df92f636fd450bc841c9418e5825c17f33ad9c87c518115a45971f7f77e + * ``` + * @since v0.1.94 + */ + class Hmac extends stream.Transform { + private constructor(); + /** + * Updates the `Hmac` content with the given `data`, the encoding of which + * is given in `inputEncoding`. + * If `encoding` is not provided, and the `data` is a string, an + * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored. + * + * This can be called many times with new data as it is streamed. + * @since v0.1.94 + * @param inputEncoding The `encoding` of the `data` string. + */ + update(data: BinaryLike): Hmac; + update(data: string, inputEncoding: Encoding): Hmac; + /** + * Calculates the HMAC digest of all of the data passed using `hmac.update()`. + * If `encoding` is + * provided a string is returned; otherwise a `Buffer` is returned; + * + * The `Hmac` object can not be used again after `hmac.digest()` has been + * called. Multiple calls to `hmac.digest()` will result in an error being thrown. + * @since v0.1.94 + * @param encoding The `encoding` of the return value. + */ + digest(): Buffer; + digest(encoding: BinaryToTextEncoding): string; + } + type KeyObjectType = 'secret' | 'public' | 'private'; + interface KeyExportOptions { + type: 'pkcs1' | 'spki' | 'pkcs8' | 'sec1'; + format: T; + cipher?: string | undefined; + passphrase?: string | Buffer | undefined; + } + interface JwkKeyExportOptions { + format: 'jwk'; + } + interface JsonWebKey { + crv?: string | undefined; + d?: string | undefined; + dp?: string | undefined; + dq?: string | undefined; + e?: string | undefined; + k?: string | undefined; + kty?: string | undefined; + n?: string | undefined; + p?: string | undefined; + q?: string | undefined; + qi?: string | undefined; + x?: string | undefined; + y?: string | undefined; + [key: string]: unknown; + } + interface AsymmetricKeyDetails { + /** + * Key size in bits (RSA, DSA). + */ + modulusLength?: number | undefined; + /** + * Public exponent (RSA). + */ + publicExponent?: bigint | undefined; + /** + * Name of the message digest (RSA-PSS). + */ + hashAlgorithm?: string | undefined; + /** + * Name of the message digest used by MGF1 (RSA-PSS). + */ + mgf1HashAlgorithm?: string | undefined; + /** + * Minimal salt length in bytes (RSA-PSS). + */ + saltLength?: number | undefined; + /** + * Size of q in bits (DSA). + */ + divisorLength?: number | undefined; + /** + * Name of the curve (EC). + */ + namedCurve?: string | undefined; + } + /** + * Node.js uses a `KeyObject` class to represent a symmetric or asymmetric key, + * and each kind of key exposes different functions. The {@link createSecretKey}, {@link createPublicKey} and {@link createPrivateKey} methods are used to create `KeyObject`instances. `KeyObject` + * objects are not to be created directly using the `new`keyword. + * + * Most applications should consider using the new `KeyObject` API instead of + * passing keys as strings or `Buffer`s due to improved security features. + * + * `KeyObject` instances can be passed to other threads via `postMessage()`. + * The receiver obtains a cloned `KeyObject`, and the `KeyObject` does not need to + * be listed in the `transferList` argument. + * @since v11.6.0 + */ + class KeyObject { + private constructor(); + /** + * Example: Converting a `CryptoKey` instance to a `KeyObject`: + * + * ```js + * const { webcrypto, KeyObject } = await import('crypto'); + * const { subtle } = webcrypto; + * + * const key = await subtle.generateKey({ + * name: 'HMAC', + * hash: 'SHA-256', + * length: 256 + * }, true, ['sign', 'verify']); + * + * const keyObject = KeyObject.from(key); + * console.log(keyObject.symmetricKeySize); + * // Prints: 32 (symmetric key size in bytes) + * ``` + * @since v15.0.0 + */ + static from(key: webcrypto.CryptoKey): KeyObject; + /** + * For asymmetric keys, this property represents the type of the key. Supported key + * types are: + * + * * `'rsa'` (OID 1.2.840.113549.1.1.1) + * * `'rsa-pss'` (OID 1.2.840.113549.1.1.10) + * * `'dsa'` (OID 1.2.840.10040.4.1) + * * `'ec'` (OID 1.2.840.10045.2.1) + * * `'x25519'` (OID 1.3.101.110) + * * `'x448'` (OID 1.3.101.111) + * * `'ed25519'` (OID 1.3.101.112) + * * `'ed448'` (OID 1.3.101.113) + * * `'dh'` (OID 1.2.840.113549.1.3.1) + * + * This property is `undefined` for unrecognized `KeyObject` types and symmetric + * keys. + * @since v11.6.0 + */ + asymmetricKeyType?: KeyType | undefined; + /** + * For asymmetric keys, this property represents the size of the embedded key in + * bytes. This property is `undefined` for symmetric keys. + */ + asymmetricKeySize?: number | undefined; + /** + * This property exists only on asymmetric keys. Depending on the type of the key, + * this object contains information about the key. None of the information obtained + * through this property can be used to uniquely identify a key or to compromise + * the security of the key. + * + * For RSA-PSS keys, if the key material contains a `RSASSA-PSS-params` sequence, + * the `hashAlgorithm`, `mgf1HashAlgorithm`, and `saltLength` properties will be + * set. + * + * Other key details might be exposed via this API using additional attributes. + * @since v15.7.0 + */ + asymmetricKeyDetails?: AsymmetricKeyDetails | undefined; + /** + * For symmetric keys, the following encoding options can be used: + * + * For public keys, the following encoding options can be used: + * + * For private keys, the following encoding options can be used: + * + * The result type depends on the selected encoding format, when PEM the + * result is a string, when DER it will be a buffer containing the data + * encoded as DER, when [JWK](https://tools.ietf.org/html/rfc7517) it will be an object. + * + * When [JWK](https://tools.ietf.org/html/rfc7517) encoding format was selected, all other encoding options are + * ignored. + * + * PKCS#1, SEC1, and PKCS#8 type keys can be encrypted by using a combination of + * the `cipher` and `format` options. The PKCS#8 `type` can be used with any`format` to encrypt any key algorithm (RSA, EC, or DH) by specifying a`cipher`. PKCS#1 and SEC1 can only be + * encrypted by specifying a `cipher`when the PEM `format` is used. For maximum compatibility, use PKCS#8 for + * encrypted private keys. Since PKCS#8 defines its own + * encryption mechanism, PEM-level encryption is not supported when encrypting + * a PKCS#8 key. See [RFC 5208](https://www.rfc-editor.org/rfc/rfc5208.txt) for PKCS#8 encryption and [RFC 1421](https://www.rfc-editor.org/rfc/rfc1421.txt) for + * PKCS#1 and SEC1 encryption. + * @since v11.6.0 + */ + export(options: KeyExportOptions<'pem'>): string | Buffer; + export(options?: KeyExportOptions<'der'>): Buffer; + export(options?: JwkKeyExportOptions): JsonWebKey; + /** + * For secret keys, this property represents the size of the key in bytes. This + * property is `undefined` for asymmetric keys. + * @since v11.6.0 + */ + symmetricKeySize?: number | undefined; + /** + * Depending on the type of this `KeyObject`, this property is either`'secret'` for secret (symmetric) keys, `'public'` for public (asymmetric) keys + * or `'private'` for private (asymmetric) keys. + * @since v11.6.0 + */ + type: KeyObjectType; + } + type CipherCCMTypes = 'aes-128-ccm' | 'aes-192-ccm' | 'aes-256-ccm' | 'chacha20-poly1305'; + type CipherGCMTypes = 'aes-128-gcm' | 'aes-192-gcm' | 'aes-256-gcm'; + type CipherOCBTypes = 'aes-128-ocb' | 'aes-192-ocb' | 'aes-256-ocb'; + type BinaryLike = string | NodeJS.ArrayBufferView; + type CipherKey = BinaryLike | KeyObject; + interface CipherCCMOptions extends stream.TransformOptions { + authTagLength: number; + } + interface CipherGCMOptions extends stream.TransformOptions { + authTagLength?: number | undefined; + } + interface CipherOCBOptions extends stream.TransformOptions { + authTagLength: number; + } + /** + * Creates and returns a `Cipher` object that uses the given `algorithm` and`password`. + * + * The `options` argument controls stream behavior and is optional except when a + * cipher in CCM or OCB mode (e.g. `'aes-128-ccm'`) is used. In that case, the`authTagLength` option is required and specifies the length of the + * authentication tag in bytes, see `CCM mode`. In GCM mode, the `authTagLength`option is not required but can be used to set the length of the authentication + * tag that will be returned by `getAuthTag()` and defaults to 16 bytes. + * For `chacha20-poly1305`, the `authTagLength` option defaults to 16 bytes. + * + * The `algorithm` is dependent on OpenSSL, examples are `'aes192'`, etc. On + * recent OpenSSL releases, `openssl list -cipher-algorithms` will + * display the available cipher algorithms. + * + * The `password` is used to derive the cipher key and initialization vector (IV). + * The value must be either a `'latin1'` encoded string, a `Buffer`, a`TypedArray`, or a `DataView`. + * + * The implementation of `crypto.createCipher()` derives keys using the OpenSSL + * function [`EVP_BytesToKey`](https://www.openssl.org/docs/man1.1.0/crypto/EVP_BytesToKey.html) with the digest algorithm set to MD5, one + * iteration, and no salt. The lack of salt allows dictionary attacks as the same + * password always creates the same key. The low iteration count and + * non-cryptographically secure hash algorithm allow passwords to be tested very + * rapidly. + * + * In line with OpenSSL's recommendation to use a more modern algorithm instead of [`EVP_BytesToKey`](https://www.openssl.org/docs/man1.1.0/crypto/EVP_BytesToKey.html) it is recommended that + * developers derive a key and IV on + * their own using {@link scrypt} and to use {@link createCipheriv} to create the `Cipher` object. Users should not use ciphers with counter mode + * (e.g. CTR, GCM, or CCM) in `crypto.createCipher()`. A warning is emitted when + * they are used in order to avoid the risk of IV reuse that causes + * vulnerabilities. For the case when IV is reused in GCM, see [Nonce-Disrespecting Adversaries](https://github.com/nonce-disrespect/nonce-disrespect) for details. + * @since v0.1.94 + * @deprecated Since v10.0.0 - Use {@link createCipheriv} instead. + * @param options `stream.transform` options + */ + function createCipher(algorithm: CipherCCMTypes, password: BinaryLike, options: CipherCCMOptions): CipherCCM; + /** @deprecated since v10.0.0 use `createCipheriv()` */ + function createCipher(algorithm: CipherGCMTypes, password: BinaryLike, options?: CipherGCMOptions): CipherGCM; + /** @deprecated since v10.0.0 use `createCipheriv()` */ + function createCipher(algorithm: string, password: BinaryLike, options?: stream.TransformOptions): Cipher; + /** + * Creates and returns a `Cipher` object, with the given `algorithm`, `key` and + * initialization vector (`iv`). + * + * The `options` argument controls stream behavior and is optional except when a + * cipher in CCM or OCB mode (e.g. `'aes-128-ccm'`) is used. In that case, the`authTagLength` option is required and specifies the length of the + * authentication tag in bytes, see `CCM mode`. In GCM mode, the `authTagLength`option is not required but can be used to set the length of the authentication + * tag that will be returned by `getAuthTag()` and defaults to 16 bytes. + * For `chacha20-poly1305`, the `authTagLength` option defaults to 16 bytes. + * + * The `algorithm` is dependent on OpenSSL, examples are `'aes192'`, etc. On + * recent OpenSSL releases, `openssl list -cipher-algorithms` will + * display the available cipher algorithms. + * + * The `key` is the raw key used by the `algorithm` and `iv` is an [initialization vector](https://en.wikipedia.org/wiki/Initialization_vector). Both arguments must be `'utf8'` encoded + * strings,`Buffers`, `TypedArray`, or `DataView`s. The `key` may optionally be + * a `KeyObject` of type `secret`. If the cipher does not need + * an initialization vector, `iv` may be `null`. + * + * When passing strings for `key` or `iv`, please consider `caveats when using strings as inputs to cryptographic APIs`. + * + * Initialization vectors should be unpredictable and unique; ideally, they will be + * cryptographically random. They do not have to be secret: IVs are typically just + * added to ciphertext messages unencrypted. It may sound contradictory that + * something has to be unpredictable and unique, but does not have to be secret; + * remember that an attacker must not be able to predict ahead of time what a + * given IV will be. + * @since v0.1.94 + * @param options `stream.transform` options + */ + function createCipheriv(algorithm: CipherCCMTypes, key: CipherKey, iv: BinaryLike, options: CipherCCMOptions): CipherCCM; + function createCipheriv(algorithm: CipherOCBTypes, key: CipherKey, iv: BinaryLike, options: CipherOCBOptions): CipherOCB; + function createCipheriv(algorithm: CipherGCMTypes, key: CipherKey, iv: BinaryLike, options?: CipherGCMOptions): CipherGCM; + function createCipheriv(algorithm: string, key: CipherKey, iv: BinaryLike | null, options?: stream.TransformOptions): Cipher; + /** + * Instances of the `Cipher` class are used to encrypt data. The class can be + * used in one of two ways: + * + * * As a `stream` that is both readable and writable, where plain unencrypted + * data is written to produce encrypted data on the readable side, or + * * Using the `cipher.update()` and `cipher.final()` methods to produce + * the encrypted data. + * + * The {@link createCipher} or {@link createCipheriv} methods are + * used to create `Cipher` instances. `Cipher` objects are not to be created + * directly using the `new` keyword. + * + * Example: Using `Cipher` objects as streams: + * + * ```js + * const { + * scrypt, + * randomFill, + * createCipheriv + * } = await import('crypto'); + * + * const algorithm = 'aes-192-cbc'; + * const password = 'Password used to generate key'; + * + * // First, we'll generate the key. The key length is dependent on the algorithm. + * // In this case for aes192, it is 24 bytes (192 bits). + * scrypt(password, 'salt', 24, (err, key) => { + * if (err) throw err; + * // Then, we'll generate a random initialization vector + * randomFill(new Uint8Array(16), (err, iv) => { + * if (err) throw err; + * + * // Once we have the key and iv, we can create and use the cipher... + * const cipher = createCipheriv(algorithm, key, iv); + * + * let encrypted = ''; + * cipher.setEncoding('hex'); + * + * cipher.on('data', (chunk) => encrypted += chunk); + * cipher.on('end', () => console.log(encrypted)); + * + * cipher.write('some clear text data'); + * cipher.end(); + * }); + * }); + * ``` + * + * Example: Using `Cipher` and piped streams: + * + * ```js + * import { + * createReadStream, + * createWriteStream, + * } from 'fs'; + * + * import { + * pipeline + * } from 'stream'; + * + * const { + * scrypt, + * randomFill, + * createCipheriv + * } = await import('crypto'); + * + * const algorithm = 'aes-192-cbc'; + * const password = 'Password used to generate key'; + * + * // First, we'll generate the key. The key length is dependent on the algorithm. + * // In this case for aes192, it is 24 bytes (192 bits). + * scrypt(password, 'salt', 24, (err, key) => { + * if (err) throw err; + * // Then, we'll generate a random initialization vector + * randomFill(new Uint8Array(16), (err, iv) => { + * if (err) throw err; + * + * const cipher = createCipheriv(algorithm, key, iv); + * + * const input = createReadStream('test.js'); + * const output = createWriteStream('test.enc'); + * + * pipeline(input, cipher, output, (err) => { + * if (err) throw err; + * }); + * }); + * }); + * ``` + * + * Example: Using the `cipher.update()` and `cipher.final()` methods: + * + * ```js + * const { + * scrypt, + * randomFill, + * createCipheriv + * } = await import('crypto'); + * + * const algorithm = 'aes-192-cbc'; + * const password = 'Password used to generate key'; + * + * // First, we'll generate the key. The key length is dependent on the algorithm. + * // In this case for aes192, it is 24 bytes (192 bits). + * scrypt(password, 'salt', 24, (err, key) => { + * if (err) throw err; + * // Then, we'll generate a random initialization vector + * randomFill(new Uint8Array(16), (err, iv) => { + * if (err) throw err; + * + * const cipher = createCipheriv(algorithm, key, iv); + * + * let encrypted = cipher.update('some clear text data', 'utf8', 'hex'); + * encrypted += cipher.final('hex'); + * console.log(encrypted); + * }); + * }); + * ``` + * @since v0.1.94 + */ + class Cipher extends stream.Transform { + private constructor(); + /** + * Updates the cipher with `data`. If the `inputEncoding` argument is given, + * the `data`argument is a string using the specified encoding. If the `inputEncoding`argument is not given, `data` must be a `Buffer`, `TypedArray`, or`DataView`. If `data` is a `Buffer`, + * `TypedArray`, or `DataView`, then`inputEncoding` is ignored. + * + * The `outputEncoding` specifies the output format of the enciphered + * data. If the `outputEncoding`is specified, a string using the specified encoding is returned. If no`outputEncoding` is provided, a `Buffer` is returned. + * + * The `cipher.update()` method can be called multiple times with new data until `cipher.final()` is called. Calling `cipher.update()` after `cipher.final()` will result in an error being + * thrown. + * @since v0.1.94 + * @param inputEncoding The `encoding` of the data. + * @param outputEncoding The `encoding` of the return value. + */ + update(data: BinaryLike): Buffer; + update(data: string, inputEncoding: Encoding): Buffer; + update(data: NodeJS.ArrayBufferView, inputEncoding: undefined, outputEncoding: Encoding): string; + update(data: string, inputEncoding: Encoding | undefined, outputEncoding: Encoding): string; + /** + * Once the `cipher.final()` method has been called, the `Cipher` object can no + * longer be used to encrypt data. Attempts to call `cipher.final()` more than + * once will result in an error being thrown. + * @since v0.1.94 + * @param outputEncoding The `encoding` of the return value. + * @return Any remaining enciphered contents. If `outputEncoding` is specified, a string is returned. If an `outputEncoding` is not provided, a {@link Buffer} is returned. + */ + final(): Buffer; + final(outputEncoding: BufferEncoding): string; + /** + * When using block encryption algorithms, the `Cipher` class will automatically + * add padding to the input data to the appropriate block size. To disable the + * default padding call `cipher.setAutoPadding(false)`. + * + * When `autoPadding` is `false`, the length of the entire input data must be a + * multiple of the cipher's block size or `cipher.final()` will throw an error. + * Disabling automatic padding is useful for non-standard padding, for instance + * using `0x0` instead of PKCS padding. + * + * The `cipher.setAutoPadding()` method must be called before `cipher.final()`. + * @since v0.7.1 + * @param [autoPadding=true] + * @return for method chaining. + */ + setAutoPadding(autoPadding?: boolean): this; + } + interface CipherCCM extends Cipher { + setAAD( + buffer: NodeJS.ArrayBufferView, + options: { + plaintextLength: number; + } + ): this; + getAuthTag(): Buffer; + } + interface CipherGCM extends Cipher { + setAAD( + buffer: NodeJS.ArrayBufferView, + options?: { + plaintextLength: number; + } + ): this; + getAuthTag(): Buffer; + } + interface CipherOCB extends Cipher { + setAAD( + buffer: NodeJS.ArrayBufferView, + options?: { + plaintextLength: number; + } + ): this; + getAuthTag(): Buffer; + } + /** + * Creates and returns a `Decipher` object that uses the given `algorithm` and`password` (key). + * + * The `options` argument controls stream behavior and is optional except when a + * cipher in CCM or OCB mode (e.g. `'aes-128-ccm'`) is used. In that case, the`authTagLength` option is required and specifies the length of the + * authentication tag in bytes, see `CCM mode`. + * For `chacha20-poly1305`, the `authTagLength` option defaults to 16 bytes. + * + * The implementation of `crypto.createDecipher()` derives keys using the OpenSSL + * function [`EVP_BytesToKey`](https://www.openssl.org/docs/man1.1.0/crypto/EVP_BytesToKey.html) with the digest algorithm set to MD5, one + * iteration, and no salt. The lack of salt allows dictionary attacks as the same + * password always creates the same key. The low iteration count and + * non-cryptographically secure hash algorithm allow passwords to be tested very + * rapidly. + * + * In line with OpenSSL's recommendation to use a more modern algorithm instead of [`EVP_BytesToKey`](https://www.openssl.org/docs/man1.1.0/crypto/EVP_BytesToKey.html) it is recommended that + * developers derive a key and IV on + * their own using {@link scrypt} and to use {@link createDecipheriv} to create the `Decipher` object. + * @since v0.1.94 + * @deprecated Since v10.0.0 - Use {@link createDecipheriv} instead. + * @param options `stream.transform` options + */ + function createDecipher(algorithm: CipherCCMTypes, password: BinaryLike, options: CipherCCMOptions): DecipherCCM; + /** @deprecated since v10.0.0 use `createDecipheriv()` */ + function createDecipher(algorithm: CipherGCMTypes, password: BinaryLike, options?: CipherGCMOptions): DecipherGCM; + /** @deprecated since v10.0.0 use `createDecipheriv()` */ + function createDecipher(algorithm: string, password: BinaryLike, options?: stream.TransformOptions): Decipher; + /** + * Creates and returns a `Decipher` object that uses the given `algorithm`, `key`and initialization vector (`iv`). + * + * The `options` argument controls stream behavior and is optional except when a + * cipher in CCM or OCB mode (e.g. `'aes-128-ccm'`) is used. In that case, the`authTagLength` option is required and specifies the length of the + * authentication tag in bytes, see `CCM mode`. In GCM mode, the `authTagLength`option is not required but can be used to restrict accepted authentication tags + * to those with the specified length. + * For `chacha20-poly1305`, the `authTagLength` option defaults to 16 bytes. + * + * The `algorithm` is dependent on OpenSSL, examples are `'aes192'`, etc. On + * recent OpenSSL releases, `openssl list -cipher-algorithms` will + * display the available cipher algorithms. + * + * The `key` is the raw key used by the `algorithm` and `iv` is an [initialization vector](https://en.wikipedia.org/wiki/Initialization_vector). Both arguments must be `'utf8'` encoded + * strings,`Buffers`, `TypedArray`, or `DataView`s. The `key` may optionally be + * a `KeyObject` of type `secret`. If the cipher does not need + * an initialization vector, `iv` may be `null`. + * + * When passing strings for `key` or `iv`, please consider `caveats when using strings as inputs to cryptographic APIs`. + * + * Initialization vectors should be unpredictable and unique; ideally, they will be + * cryptographically random. They do not have to be secret: IVs are typically just + * added to ciphertext messages unencrypted. It may sound contradictory that + * something has to be unpredictable and unique, but does not have to be secret; + * remember that an attacker must not be able to predict ahead of time what a given + * IV will be. + * @since v0.1.94 + * @param options `stream.transform` options + */ + function createDecipheriv(algorithm: CipherCCMTypes, key: CipherKey, iv: BinaryLike, options: CipherCCMOptions): DecipherCCM; + function createDecipheriv(algorithm: CipherOCBTypes, key: CipherKey, iv: BinaryLike, options: CipherOCBOptions): DecipherOCB; + function createDecipheriv(algorithm: CipherGCMTypes, key: CipherKey, iv: BinaryLike, options?: CipherGCMOptions): DecipherGCM; + function createDecipheriv(algorithm: string, key: CipherKey, iv: BinaryLike | null, options?: stream.TransformOptions): Decipher; + /** + * Instances of the `Decipher` class are used to decrypt data. The class can be + * used in one of two ways: + * + * * As a `stream` that is both readable and writable, where plain encrypted + * data is written to produce unencrypted data on the readable side, or + * * Using the `decipher.update()` and `decipher.final()` methods to + * produce the unencrypted data. + * + * The {@link createDecipher} or {@link createDecipheriv} methods are + * used to create `Decipher` instances. `Decipher` objects are not to be created + * directly using the `new` keyword. + * + * Example: Using `Decipher` objects as streams: + * + * ```js + * import { Buffer } from 'buffer'; + * const { + * scryptSync, + * createDecipheriv + * } = await import('crypto'); + * + * const algorithm = 'aes-192-cbc'; + * const password = 'Password used to generate key'; + * // Key length is dependent on the algorithm. In this case for aes192, it is + * // 24 bytes (192 bits). + * // Use the async `crypto.scrypt()` instead. + * const key = scryptSync(password, 'salt', 24); + * // The IV is usually passed along with the ciphertext. + * const iv = Buffer.alloc(16, 0); // Initialization vector. + * + * const decipher = createDecipheriv(algorithm, key, iv); + * + * let decrypted = ''; + * decipher.on('readable', () => { + * while (null !== (chunk = decipher.read())) { + * decrypted += chunk.toString('utf8'); + * } + * }); + * decipher.on('end', () => { + * console.log(decrypted); + * // Prints: some clear text data + * }); + * + * // Encrypted with same algorithm, key and iv. + * const encrypted = + * 'e5f79c5915c02171eec6b212d5520d44480993d7d622a7c4c2da32f6efda0ffa'; + * decipher.write(encrypted, 'hex'); + * decipher.end(); + * ``` + * + * Example: Using `Decipher` and piped streams: + * + * ```js + * import { + * createReadStream, + * createWriteStream, + * } from 'fs'; + * import { Buffer } from 'buffer'; + * const { + * scryptSync, + * createDecipheriv + * } = await import('crypto'); + * + * const algorithm = 'aes-192-cbc'; + * const password = 'Password used to generate key'; + * // Use the async `crypto.scrypt()` instead. + * const key = scryptSync(password, 'salt', 24); + * // The IV is usually passed along with the ciphertext. + * const iv = Buffer.alloc(16, 0); // Initialization vector. + * + * const decipher = createDecipheriv(algorithm, key, iv); + * + * const input = createReadStream('test.enc'); + * const output = createWriteStream('test.js'); + * + * input.pipe(decipher).pipe(output); + * ``` + * + * Example: Using the `decipher.update()` and `decipher.final()` methods: + * + * ```js + * import { Buffer } from 'buffer'; + * const { + * scryptSync, + * createDecipheriv + * } = await import('crypto'); + * + * const algorithm = 'aes-192-cbc'; + * const password = 'Password used to generate key'; + * // Use the async `crypto.scrypt()` instead. + * const key = scryptSync(password, 'salt', 24); + * // The IV is usually passed along with the ciphertext. + * const iv = Buffer.alloc(16, 0); // Initialization vector. + * + * const decipher = createDecipheriv(algorithm, key, iv); + * + * // Encrypted using same algorithm, key and iv. + * const encrypted = + * 'e5f79c5915c02171eec6b212d5520d44480993d7d622a7c4c2da32f6efda0ffa'; + * let decrypted = decipher.update(encrypted, 'hex', 'utf8'); + * decrypted += decipher.final('utf8'); + * console.log(decrypted); + * // Prints: some clear text data + * ``` + * @since v0.1.94 + */ + class Decipher extends stream.Transform { + private constructor(); + /** + * Updates the decipher with `data`. If the `inputEncoding` argument is given, + * the `data`argument is a string using the specified encoding. If the `inputEncoding`argument is not given, `data` must be a `Buffer`. If `data` is a `Buffer` then `inputEncoding` is + * ignored. + * + * The `outputEncoding` specifies the output format of the enciphered + * data. If the `outputEncoding`is specified, a string using the specified encoding is returned. If no`outputEncoding` is provided, a `Buffer` is returned. + * + * The `decipher.update()` method can be called multiple times with new data until `decipher.final()` is called. Calling `decipher.update()` after `decipher.final()` will result in an error + * being thrown. + * @since v0.1.94 + * @param inputEncoding The `encoding` of the `data` string. + * @param outputEncoding The `encoding` of the return value. + */ + update(data: NodeJS.ArrayBufferView): Buffer; + update(data: string, inputEncoding: Encoding): Buffer; + update(data: NodeJS.ArrayBufferView, inputEncoding: undefined, outputEncoding: Encoding): string; + update(data: string, inputEncoding: Encoding | undefined, outputEncoding: Encoding): string; + /** + * Once the `decipher.final()` method has been called, the `Decipher` object can + * no longer be used to decrypt data. Attempts to call `decipher.final()` more + * than once will result in an error being thrown. + * @since v0.1.94 + * @param outputEncoding The `encoding` of the return value. + * @return Any remaining deciphered contents. If `outputEncoding` is specified, a string is returned. If an `outputEncoding` is not provided, a {@link Buffer} is returned. + */ + final(): Buffer; + final(outputEncoding: BufferEncoding): string; + /** + * When data has been encrypted without standard block padding, calling`decipher.setAutoPadding(false)` will disable automatic padding to prevent `decipher.final()` from checking for and + * removing padding. + * + * Turning auto padding off will only work if the input data's length is a + * multiple of the ciphers block size. + * + * The `decipher.setAutoPadding()` method must be called before `decipher.final()`. + * @since v0.7.1 + * @param [autoPadding=true] + * @return for method chaining. + */ + setAutoPadding(auto_padding?: boolean): this; + } + interface DecipherCCM extends Decipher { + setAuthTag(buffer: NodeJS.ArrayBufferView): this; + setAAD( + buffer: NodeJS.ArrayBufferView, + options: { + plaintextLength: number; + } + ): this; + } + interface DecipherGCM extends Decipher { + setAuthTag(buffer: NodeJS.ArrayBufferView): this; + setAAD( + buffer: NodeJS.ArrayBufferView, + options?: { + plaintextLength: number; + } + ): this; + } + interface DecipherOCB extends Decipher { + setAuthTag(buffer: NodeJS.ArrayBufferView): this; + setAAD( + buffer: NodeJS.ArrayBufferView, + options?: { + plaintextLength: number; + } + ): this; + } + interface PrivateKeyInput { + key: string | Buffer; + format?: KeyFormat | undefined; + type?: 'pkcs1' | 'pkcs8' | 'sec1' | undefined; + passphrase?: string | Buffer | undefined; + } + interface PublicKeyInput { + key: string | Buffer; + format?: KeyFormat | undefined; + type?: 'pkcs1' | 'spki' | undefined; + } + /** + * Asynchronously generates a new random secret key of the given `length`. The`type` will determine which validations will be performed on the `length`. + * + * ```js + * const { + * generateKey + * } = await import('crypto'); + * + * generateKey('hmac', { length: 64 }, (err, key) => { + * if (err) throw err; + * console.log(key.export().toString('hex')); // 46e..........620 + * }); + * ``` + * @since v15.0.0 + * @param type The intended use of the generated secret key. Currently accepted values are `'hmac'` and `'aes'`. + */ + function generateKey( + type: 'hmac' | 'aes', + options: { + length: number; + }, + callback: (err: Error | null, key: KeyObject) => void + ): void; + /** + * Synchronously generates a new random secret key of the given `length`. The`type` will determine which validations will be performed on the `length`. + * + * ```js + * const { + * generateKeySync + * } = await import('crypto'); + * + * const key = generateKeySync('hmac', { length: 64 }); + * console.log(key.export().toString('hex')); // e89..........41e + * ``` + * @since v15.0.0 + * @param type The intended use of the generated secret key. Currently accepted values are `'hmac'` and `'aes'`. + */ + function generateKeySync( + type: 'hmac' | 'aes', + options: { + length: number; + } + ): KeyObject; + interface JsonWebKeyInput { + key: JsonWebKey; + format: 'jwk'; + } + /** + * Creates and returns a new key object containing a private key. If `key` is a + * string or `Buffer`, `format` is assumed to be `'pem'`; otherwise, `key`must be an object with the properties described above. + * + * If the private key is encrypted, a `passphrase` must be specified. The length + * of the passphrase is limited to 1024 bytes. + * @since v11.6.0 + */ + function createPrivateKey(key: PrivateKeyInput | string | Buffer | JsonWebKeyInput): KeyObject; + /** + * Creates and returns a new key object containing a public key. If `key` is a + * string or `Buffer`, `format` is assumed to be `'pem'`; if `key` is a `KeyObject`with type `'private'`, the public key is derived from the given private key; + * otherwise, `key` must be an object with the properties described above. + * + * If the format is `'pem'`, the `'key'` may also be an X.509 certificate. + * + * Because public keys can be derived from private keys, a private key may be + * passed instead of a public key. In that case, this function behaves as if {@link createPrivateKey} had been called, except that the type of the + * returned `KeyObject` will be `'public'` and that the private key cannot be + * extracted from the returned `KeyObject`. Similarly, if a `KeyObject` with type`'private'` is given, a new `KeyObject` with type `'public'` will be returned + * and it will be impossible to extract the private key from the returned object. + * @since v11.6.0 + */ + function createPublicKey(key: PublicKeyInput | string | Buffer | KeyObject | JsonWebKeyInput): KeyObject; + /** + * Creates and returns a new key object containing a secret key for symmetric + * encryption or `Hmac`. + * @since v11.6.0 + * @param encoding The string encoding when `key` is a string. + */ + function createSecretKey(key: NodeJS.ArrayBufferView): KeyObject; + function createSecretKey(key: string, encoding: BufferEncoding): KeyObject; + /** + * Creates and returns a `Sign` object that uses the given `algorithm`. Use {@link getHashes} to obtain the names of the available digest algorithms. + * Optional `options` argument controls the `stream.Writable` behavior. + * + * In some cases, a `Sign` instance can be created using the name of a signature + * algorithm, such as `'RSA-SHA256'`, instead of a digest algorithm. This will use + * the corresponding digest algorithm. This does not work for all signature + * algorithms, such as `'ecdsa-with-SHA256'`, so it is best to always use digest + * algorithm names. + * @since v0.1.92 + * @param options `stream.Writable` options + */ + function createSign(algorithm: string, options?: stream.WritableOptions): Sign; + type DSAEncoding = 'der' | 'ieee-p1363'; + interface SigningOptions { + /** + * @See crypto.constants.RSA_PKCS1_PADDING + */ + padding?: number | undefined; + saltLength?: number | undefined; + dsaEncoding?: DSAEncoding | undefined; + } + interface SignPrivateKeyInput extends PrivateKeyInput, SigningOptions {} + interface SignKeyObjectInput extends SigningOptions { + key: KeyObject; + } + interface VerifyPublicKeyInput extends PublicKeyInput, SigningOptions {} + interface VerifyKeyObjectInput extends SigningOptions { + key: KeyObject; + } + type KeyLike = string | Buffer | KeyObject; + /** + * The `Sign` class is a utility for generating signatures. It can be used in one + * of two ways: + * + * * As a writable `stream`, where data to be signed is written and the `sign.sign()` method is used to generate and return the signature, or + * * Using the `sign.update()` and `sign.sign()` methods to produce the + * signature. + * + * The {@link createSign} method is used to create `Sign` instances. The + * argument is the string name of the hash function to use. `Sign` objects are not + * to be created directly using the `new` keyword. + * + * Example: Using `Sign` and `Verify` objects as streams: + * + * ```js + * const { + * generateKeyPairSync, + * createSign, + * createVerify + * } = await import('crypto'); + * + * const { privateKey, publicKey } = generateKeyPairSync('ec', { + * namedCurve: 'sect239k1' + * }); + * + * const sign = createSign('SHA256'); + * sign.write('some data to sign'); + * sign.end(); + * const signature = sign.sign(privateKey, 'hex'); + * + * const verify = createVerify('SHA256'); + * verify.write('some data to sign'); + * verify.end(); + * console.log(verify.verify(publicKey, signature, 'hex')); + * // Prints: true + * ``` + * + * Example: Using the `sign.update()` and `verify.update()` methods: + * + * ```js + * const { + * generateKeyPairSync, + * createSign, + * createVerify + * } = await import('crypto'); + * + * const { privateKey, publicKey } = generateKeyPairSync('rsa', { + * modulusLength: 2048, + * }); + * + * const sign = createSign('SHA256'); + * sign.update('some data to sign'); + * sign.end(); + * const signature = sign.sign(privateKey); + * + * const verify = createVerify('SHA256'); + * verify.update('some data to sign'); + * verify.end(); + * console.log(verify.verify(publicKey, signature)); + * // Prints: true + * ``` + * @since v0.1.92 + */ + class Sign extends stream.Writable { + private constructor(); + /** + * Updates the `Sign` content with the given `data`, the encoding of which + * is given in `inputEncoding`. + * If `encoding` is not provided, and the `data` is a string, an + * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored. + * + * This can be called many times with new data as it is streamed. + * @since v0.1.92 + * @param inputEncoding The `encoding` of the `data` string. + */ + update(data: BinaryLike): this; + update(data: string, inputEncoding: Encoding): this; + /** + * Calculates the signature on all the data passed through using either `sign.update()` or `sign.write()`. + * + * If `privateKey` is not a `KeyObject`, this function behaves as if`privateKey` had been passed to {@link createPrivateKey}. If it is an + * object, the following additional properties can be passed: + * + * If `outputEncoding` is provided a string is returned; otherwise a `Buffer` is returned. + * + * The `Sign` object can not be again used after `sign.sign()` method has been + * called. Multiple calls to `sign.sign()` will result in an error being thrown. + * @since v0.1.92 + */ + sign(privateKey: KeyLike | SignKeyObjectInput | SignPrivateKeyInput): Buffer; + sign(privateKey: KeyLike | SignKeyObjectInput | SignPrivateKeyInput, outputFormat: BinaryToTextEncoding): string; + } + /** + * Creates and returns a `Verify` object that uses the given algorithm. + * Use {@link getHashes} to obtain an array of names of the available + * signing algorithms. Optional `options` argument controls the`stream.Writable` behavior. + * + * In some cases, a `Verify` instance can be created using the name of a signature + * algorithm, such as `'RSA-SHA256'`, instead of a digest algorithm. This will use + * the corresponding digest algorithm. This does not work for all signature + * algorithms, such as `'ecdsa-with-SHA256'`, so it is best to always use digest + * algorithm names. + * @since v0.1.92 + * @param options `stream.Writable` options + */ + function createVerify(algorithm: string, options?: stream.WritableOptions): Verify; + /** + * The `Verify` class is a utility for verifying signatures. It can be used in one + * of two ways: + * + * * As a writable `stream` where written data is used to validate against the + * supplied signature, or + * * Using the `verify.update()` and `verify.verify()` methods to verify + * the signature. + * + * The {@link createVerify} method is used to create `Verify` instances.`Verify` objects are not to be created directly using the `new` keyword. + * + * See `Sign` for examples. + * @since v0.1.92 + */ + class Verify extends stream.Writable { + private constructor(); + /** + * Updates the `Verify` content with the given `data`, the encoding of which + * is given in `inputEncoding`. + * If `inputEncoding` is not provided, and the `data` is a string, an + * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored. + * + * This can be called many times with new data as it is streamed. + * @since v0.1.92 + * @param inputEncoding The `encoding` of the `data` string. + */ + update(data: BinaryLike): Verify; + update(data: string, inputEncoding: Encoding): Verify; + /** + * Verifies the provided data using the given `object` and `signature`. + * + * If `object` is not a `KeyObject`, this function behaves as if`object` had been passed to {@link createPublicKey}. If it is an + * object, the following additional properties can be passed: + * + * The `signature` argument is the previously calculated signature for the data, in + * the `signatureEncoding`. + * If a `signatureEncoding` is specified, the `signature` is expected to be a + * string; otherwise `signature` is expected to be a `Buffer`,`TypedArray`, or `DataView`. + * + * The `verify` object can not be used again after `verify.verify()` has been + * called. Multiple calls to `verify.verify()` will result in an error being + * thrown. + * + * Because public keys can be derived from private keys, a private key may + * be passed instead of a public key. + * @since v0.1.92 + */ + verify(object: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput, signature: NodeJS.ArrayBufferView): boolean; + verify(object: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput, signature: string, signature_format?: BinaryToTextEncoding): boolean; + } + /** + * Creates a `DiffieHellman` key exchange object using the supplied `prime` and an + * optional specific `generator`. + * + * The `generator` argument can be a number, string, or `Buffer`. If`generator` is not specified, the value `2` is used. + * + * If `primeEncoding` is specified, `prime` is expected to be a string; otherwise + * a `Buffer`, `TypedArray`, or `DataView` is expected. + * + * If `generatorEncoding` is specified, `generator` is expected to be a string; + * otherwise a number, `Buffer`, `TypedArray`, or `DataView` is expected. + * @since v0.11.12 + * @param primeEncoding The `encoding` of the `prime` string. + * @param [generator=2] + * @param generatorEncoding The `encoding` of the `generator` string. + */ + function createDiffieHellman(primeLength: number, generator?: number): DiffieHellman; + function createDiffieHellman(prime: ArrayBuffer | NodeJS.ArrayBufferView, generator?: number | ArrayBuffer | NodeJS.ArrayBufferView): DiffieHellman; + function createDiffieHellman(prime: ArrayBuffer | NodeJS.ArrayBufferView, generator: string, generatorEncoding: BinaryToTextEncoding): DiffieHellman; + function createDiffieHellman(prime: string, primeEncoding: BinaryToTextEncoding, generator?: number | ArrayBuffer | NodeJS.ArrayBufferView): DiffieHellman; + function createDiffieHellman(prime: string, primeEncoding: BinaryToTextEncoding, generator: string, generatorEncoding: BinaryToTextEncoding): DiffieHellman; + /** + * The `DiffieHellman` class is a utility for creating Diffie-Hellman key + * exchanges. + * + * Instances of the `DiffieHellman` class can be created using the {@link createDiffieHellman} function. + * + * ```js + * import assert from 'assert'; + * + * const { + * createDiffieHellman + * } = await import('crypto'); + * + * // Generate Alice's keys... + * const alice = createDiffieHellman(2048); + * const aliceKey = alice.generateKeys(); + * + * // Generate Bob's keys... + * const bob = createDiffieHellman(alice.getPrime(), alice.getGenerator()); + * const bobKey = bob.generateKeys(); + * + * // Exchange and generate the secret... + * const aliceSecret = alice.computeSecret(bobKey); + * const bobSecret = bob.computeSecret(aliceKey); + * + * // OK + * assert.strictEqual(aliceSecret.toString('hex'), bobSecret.toString('hex')); + * ``` + * @since v0.5.0 + */ + class DiffieHellman { + private constructor(); + /** + * Generates private and public Diffie-Hellman key values, and returns + * the public key in the specified `encoding`. This key should be + * transferred to the other party. + * If `encoding` is provided a string is returned; otherwise a `Buffer` is returned. + * @since v0.5.0 + * @param encoding The `encoding` of the return value. + */ + generateKeys(): Buffer; + generateKeys(encoding: BinaryToTextEncoding): string; + /** + * Computes the shared secret using `otherPublicKey` as the other + * party's public key and returns the computed shared secret. The supplied + * key is interpreted using the specified `inputEncoding`, and secret is + * encoded using specified `outputEncoding`. + * If the `inputEncoding` is not + * provided, `otherPublicKey` is expected to be a `Buffer`,`TypedArray`, or `DataView`. + * + * If `outputEncoding` is given a string is returned; otherwise, a `Buffer` is returned. + * @since v0.5.0 + * @param inputEncoding The `encoding` of an `otherPublicKey` string. + * @param outputEncoding The `encoding` of the return value. + */ + computeSecret(otherPublicKey: NodeJS.ArrayBufferView, inputEncoding?: null, outputEncoding?: null): Buffer; + computeSecret(otherPublicKey: string, inputEncoding: BinaryToTextEncoding, outputEncoding?: null): Buffer; + computeSecret(otherPublicKey: NodeJS.ArrayBufferView, inputEncoding: null, outputEncoding: BinaryToTextEncoding): string; + computeSecret(otherPublicKey: string, inputEncoding: BinaryToTextEncoding, outputEncoding: BinaryToTextEncoding): string; + /** + * Returns the Diffie-Hellman prime in the specified `encoding`. + * If `encoding` is provided a string is + * returned; otherwise a `Buffer` is returned. + * @since v0.5.0 + * @param encoding The `encoding` of the return value. + */ + getPrime(): Buffer; + getPrime(encoding: BinaryToTextEncoding): string; + /** + * Returns the Diffie-Hellman generator in the specified `encoding`. + * If `encoding` is provided a string is + * returned; otherwise a `Buffer` is returned. + * @since v0.5.0 + * @param encoding The `encoding` of the return value. + */ + getGenerator(): Buffer; + getGenerator(encoding: BinaryToTextEncoding): string; + /** + * Returns the Diffie-Hellman public key in the specified `encoding`. + * If `encoding` is provided a + * string is returned; otherwise a `Buffer` is returned. + * @since v0.5.0 + * @param encoding The `encoding` of the return value. + */ + getPublicKey(): Buffer; + getPublicKey(encoding: BinaryToTextEncoding): string; + /** + * Returns the Diffie-Hellman private key in the specified `encoding`. + * If `encoding` is provided a + * string is returned; otherwise a `Buffer` is returned. + * @since v0.5.0 + * @param encoding The `encoding` of the return value. + */ + getPrivateKey(): Buffer; + getPrivateKey(encoding: BinaryToTextEncoding): string; + /** + * Sets the Diffie-Hellman public key. If the `encoding` argument is provided,`publicKey` is expected + * to be a string. If no `encoding` is provided, `publicKey` is expected + * to be a `Buffer`, `TypedArray`, or `DataView`. + * @since v0.5.0 + * @param encoding The `encoding` of the `publicKey` string. + */ + setPublicKey(publicKey: NodeJS.ArrayBufferView): void; + setPublicKey(publicKey: string, encoding: BufferEncoding): void; + /** + * Sets the Diffie-Hellman private key. If the `encoding` argument is provided,`privateKey` is expected + * to be a string. If no `encoding` is provided, `privateKey` is expected + * to be a `Buffer`, `TypedArray`, or `DataView`. + * @since v0.5.0 + * @param encoding The `encoding` of the `privateKey` string. + */ + setPrivateKey(privateKey: NodeJS.ArrayBufferView): void; + setPrivateKey(privateKey: string, encoding: BufferEncoding): void; + /** + * A bit field containing any warnings and/or errors resulting from a check + * performed during initialization of the `DiffieHellman` object. + * + * The following values are valid for this property (as defined in `constants`module): + * + * * `DH_CHECK_P_NOT_SAFE_PRIME` + * * `DH_CHECK_P_NOT_PRIME` + * * `DH_UNABLE_TO_CHECK_GENERATOR` + * * `DH_NOT_SUITABLE_GENERATOR` + * @since v0.11.12 + */ + verifyError: number; + } + /** + * The `DiffieHellmanGroup` class takes a well-known modp group as its argument. + * It works the same as `DiffieHellman`, except that it does not allow changing its keys after creation. + * In other words, it does not implement `setPublicKey()` or `setPrivateKey()` methods. + * + * ```js + * const { createDiffieHellmanGroup } = await import('node:crypto'); + * const dh = createDiffieHellmanGroup('modp1'); + * ``` + * The name (e.g. `'modp1'`) is taken from [RFC 2412](https://www.rfc-editor.org/rfc/rfc2412.txt) (modp1 and 2) and [RFC 3526](https://www.rfc-editor.org/rfc/rfc3526.txt): + * ```bash + * $ perl -ne 'print "$1\n" if /"(modp\d+)"/' src/node_crypto_groups.h + * modp1 # 768 bits + * modp2 # 1024 bits + * modp5 # 1536 bits + * modp14 # 2048 bits + * modp15 # etc. + * modp16 + * modp17 + * modp18 + * ``` + * @since v0.7.5 + */ + const DiffieHellmanGroup: DiffieHellmanGroupConstructor; + interface DiffieHellmanGroupConstructor { + new(name: string): DiffieHellmanGroup; + (name: string): DiffieHellmanGroup; + readonly prototype: DiffieHellmanGroup; + } + type DiffieHellmanGroup = Omit; + /** + * Creates a predefined `DiffieHellmanGroup` key exchange object. The + * supported groups are: `'modp1'`, `'modp2'`, `'modp5'` (defined in [RFC 2412](https://www.rfc-editor.org/rfc/rfc2412.txt), but see `Caveats`) and `'modp14'`, `'modp15'`,`'modp16'`, `'modp17'`, + * `'modp18'` (defined in [RFC 3526](https://www.rfc-editor.org/rfc/rfc3526.txt)). The + * returned object mimics the interface of objects created by {@link createDiffieHellman}, but will not allow changing + * the keys (with `diffieHellman.setPublicKey()`, for example). The + * advantage of using this method is that the parties do not have to + * generate nor exchange a group modulus beforehand, saving both processor + * and communication time. + * + * Example (obtaining a shared secret): + * + * ```js + * const { + * getDiffieHellman + * } = await import('crypto'); + * const alice = getDiffieHellman('modp14'); + * const bob = getDiffieHellman('modp14'); + * + * alice.generateKeys(); + * bob.generateKeys(); + * + * const aliceSecret = alice.computeSecret(bob.getPublicKey(), null, 'hex'); + * const bobSecret = bob.computeSecret(alice.getPublicKey(), null, 'hex'); + * + * // aliceSecret and bobSecret should be the same + * console.log(aliceSecret === bobSecret); + * ``` + * @since v0.7.5 + */ + function getDiffieHellman(groupName: string): DiffieHellmanGroup; + /** + * An alias for {@link getDiffieHellman} + * @since v0.9.3 + */ + function createDiffieHellmanGroup(name: string): DiffieHellmanGroup; + /** + * Provides an asynchronous Password-Based Key Derivation Function 2 (PBKDF2) + * implementation. A selected HMAC digest algorithm specified by `digest` is + * applied to derive a key of the requested byte length (`keylen`) from the`password`, `salt` and `iterations`. + * + * The supplied `callback` function is called with two arguments: `err` and`derivedKey`. If an error occurs while deriving the key, `err` will be set; + * otherwise `err` will be `null`. By default, the successfully generated`derivedKey` will be passed to the callback as a `Buffer`. An error will be + * thrown if any of the input arguments specify invalid values or types. + * + * If `digest` is `null`, `'sha1'` will be used. This behavior is deprecated, + * please specify a `digest` explicitly. + * + * The `iterations` argument must be a number set as high as possible. The + * higher the number of iterations, the more secure the derived key will be, + * but will take a longer amount of time to complete. + * + * The `salt` should be as unique as possible. It is recommended that a salt is + * random and at least 16 bytes long. See [NIST SP 800-132](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf) for details. + * + * When passing strings for `password` or `salt`, please consider `caveats when using strings as inputs to cryptographic APIs`. + * + * ```js + * const { + * pbkdf2 + * } = await import('crypto'); + * + * pbkdf2('secret', 'salt', 100000, 64, 'sha512', (err, derivedKey) => { + * if (err) throw err; + * console.log(derivedKey.toString('hex')); // '3745e48...08d59ae' + * }); + * ``` + * + * The `crypto.DEFAULT_ENCODING` property can be used to change the way the`derivedKey` is passed to the callback. This property, however, has been + * deprecated and use should be avoided. + * + * ```js + * import crypto from 'crypto'; + * crypto.DEFAULT_ENCODING = 'hex'; + * crypto.pbkdf2('secret', 'salt', 100000, 512, 'sha512', (err, derivedKey) => { + * if (err) throw err; + * console.log(derivedKey); // '3745e48...aa39b34' + * }); + * ``` + * + * An array of supported digest functions can be retrieved using {@link getHashes}. + * + * This API uses libuv's threadpool, which can have surprising and + * negative performance implications for some applications; see the `UV_THREADPOOL_SIZE` documentation for more information. + * @since v0.5.5 + */ + function pbkdf2(password: BinaryLike, salt: BinaryLike, iterations: number, keylen: number, digest: string, callback: (err: Error | null, derivedKey: Buffer) => void): void; + /** + * Provides a synchronous Password-Based Key Derivation Function 2 (PBKDF2) + * implementation. A selected HMAC digest algorithm specified by `digest` is + * applied to derive a key of the requested byte length (`keylen`) from the`password`, `salt` and `iterations`. + * + * If an error occurs an `Error` will be thrown, otherwise the derived key will be + * returned as a `Buffer`. + * + * If `digest` is `null`, `'sha1'` will be used. This behavior is deprecated, + * please specify a `digest` explicitly. + * + * The `iterations` argument must be a number set as high as possible. The + * higher the number of iterations, the more secure the derived key will be, + * but will take a longer amount of time to complete. + * + * The `salt` should be as unique as possible. It is recommended that a salt is + * random and at least 16 bytes long. See [NIST SP 800-132](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf) for details. + * + * When passing strings for `password` or `salt`, please consider `caveats when using strings as inputs to cryptographic APIs`. + * + * ```js + * const { + * pbkdf2Sync + * } = await import('crypto'); + * + * const key = pbkdf2Sync('secret', 'salt', 100000, 64, 'sha512'); + * console.log(key.toString('hex')); // '3745e48...08d59ae' + * ``` + * + * The `crypto.DEFAULT_ENCODING` property may be used to change the way the`derivedKey` is returned. This property, however, is deprecated and use + * should be avoided. + * + * ```js + * import crypto from 'crypto'; + * crypto.DEFAULT_ENCODING = 'hex'; + * const key = crypto.pbkdf2Sync('secret', 'salt', 100000, 512, 'sha512'); + * console.log(key); // '3745e48...aa39b34' + * ``` + * + * An array of supported digest functions can be retrieved using {@link getHashes}. + * @since v0.9.3 + */ + function pbkdf2Sync(password: BinaryLike, salt: BinaryLike, iterations: number, keylen: number, digest: string): Buffer; + /** + * Generates cryptographically strong pseudorandom data. The `size` argument + * is a number indicating the number of bytes to generate. + * + * If a `callback` function is provided, the bytes are generated asynchronously + * and the `callback` function is invoked with two arguments: `err` and `buf`. + * If an error occurs, `err` will be an `Error` object; otherwise it is `null`. The`buf` argument is a `Buffer` containing the generated bytes. + * + * ```js + * // Asynchronous + * const { + * randomBytes + * } = await import('crypto'); + * + * randomBytes(256, (err, buf) => { + * if (err) throw err; + * console.log(`${buf.length} bytes of random data: ${buf.toString('hex')}`); + * }); + * ``` + * + * If the `callback` function is not provided, the random bytes are generated + * synchronously and returned as a `Buffer`. An error will be thrown if + * there is a problem generating the bytes. + * + * ```js + * // Synchronous + * const { + * randomBytes + * } = await import('crypto'); + * + * const buf = randomBytes(256); + * console.log( + * `${buf.length} bytes of random data: ${buf.toString('hex')}`); + * ``` + * + * The `crypto.randomBytes()` method will not complete until there is + * sufficient entropy available. + * This should normally never take longer than a few milliseconds. The only time + * when generating the random bytes may conceivably block for a longer period of + * time is right after boot, when the whole system is still low on entropy. + * + * This API uses libuv's threadpool, which can have surprising and + * negative performance implications for some applications; see the `UV_THREADPOOL_SIZE` documentation for more information. + * + * The asynchronous version of `crypto.randomBytes()` is carried out in a single + * threadpool request. To minimize threadpool task length variation, partition + * large `randomBytes` requests when doing so as part of fulfilling a client + * request. + * @since v0.5.8 + * @param size The number of bytes to generate. The `size` must not be larger than `2**31 - 1`. + * @return if the `callback` function is not provided. + */ + function randomBytes(size: number): Buffer; + function randomBytes(size: number, callback: (err: Error | null, buf: Buffer) => void): void; + function pseudoRandomBytes(size: number): Buffer; + function pseudoRandomBytes(size: number, callback: (err: Error | null, buf: Buffer) => void): void; + /** + * Return a random integer `n` such that `min <= n < max`. This + * implementation avoids [modulo bias](https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#Modulo_bias). + * + * The range (`max - min`) must be less than 2^48. `min` and `max` must + * be [safe integers](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger). + * + * If the `callback` function is not provided, the random integer is + * generated synchronously. + * + * ```js + * // Asynchronous + * const { + * randomInt + * } = await import('crypto'); + * + * randomInt(3, (err, n) => { + * if (err) throw err; + * console.log(`Random number chosen from (0, 1, 2): ${n}`); + * }); + * ``` + * + * ```js + * // Synchronous + * const { + * randomInt + * } = await import('crypto'); + * + * const n = randomInt(3); + * console.log(`Random number chosen from (0, 1, 2): ${n}`); + * ``` + * + * ```js + * // With `min` argument + * const { + * randomInt + * } = await import('crypto'); + * + * const n = randomInt(1, 7); + * console.log(`The dice rolled: ${n}`); + * ``` + * @since v14.10.0, v12.19.0 + * @param [min=0] Start of random range (inclusive). + * @param max End of random range (exclusive). + * @param callback `function(err, n) {}`. + */ + function randomInt(max: number): number; + function randomInt(min: number, max: number): number; + function randomInt(max: number, callback: (err: Error | null, value: number) => void): void; + function randomInt(min: number, max: number, callback: (err: Error | null, value: number) => void): void; + /** + * Synchronous version of {@link randomFill}. + * + * ```js + * import { Buffer } from 'buffer'; + * const { randomFillSync } = await import('crypto'); + * + * const buf = Buffer.alloc(10); + * console.log(randomFillSync(buf).toString('hex')); + * + * randomFillSync(buf, 5); + * console.log(buf.toString('hex')); + * + * // The above is equivalent to the following: + * randomFillSync(buf, 5, 5); + * console.log(buf.toString('hex')); + * ``` + * + * Any `ArrayBuffer`, `TypedArray` or `DataView` instance may be passed as`buffer`. + * + * ```js + * import { Buffer } from 'buffer'; + * const { randomFillSync } = await import('crypto'); + * + * const a = new Uint32Array(10); + * console.log(Buffer.from(randomFillSync(a).buffer, + * a.byteOffset, a.byteLength).toString('hex')); + * + * const b = new DataView(new ArrayBuffer(10)); + * console.log(Buffer.from(randomFillSync(b).buffer, + * b.byteOffset, b.byteLength).toString('hex')); + * + * const c = new ArrayBuffer(10); + * console.log(Buffer.from(randomFillSync(c)).toString('hex')); + * ``` + * @since v7.10.0, v6.13.0 + * @param buffer Must be supplied. The size of the provided `buffer` must not be larger than `2**31 - 1`. + * @param [offset=0] + * @param [size=buffer.length - offset] + * @return The object passed as `buffer` argument. + */ + function randomFillSync(buffer: T, offset?: number, size?: number): T; + /** + * This function is similar to {@link randomBytes} but requires the first + * argument to be a `Buffer` that will be filled. It also + * requires that a callback is passed in. + * + * If the `callback` function is not provided, an error will be thrown. + * + * ```js + * import { Buffer } from 'buffer'; + * const { randomFill } = await import('crypto'); + * + * const buf = Buffer.alloc(10); + * randomFill(buf, (err, buf) => { + * if (err) throw err; + * console.log(buf.toString('hex')); + * }); + * + * randomFill(buf, 5, (err, buf) => { + * if (err) throw err; + * console.log(buf.toString('hex')); + * }); + * + * // The above is equivalent to the following: + * randomFill(buf, 5, 5, (err, buf) => { + * if (err) throw err; + * console.log(buf.toString('hex')); + * }); + * ``` + * + * Any `ArrayBuffer`, `TypedArray`, or `DataView` instance may be passed as`buffer`. + * + * While this includes instances of `Float32Array` and `Float64Array`, this + * function should not be used to generate random floating-point numbers. The + * result may contain `+Infinity`, `-Infinity`, and `NaN`, and even if the array + * contains finite numbers only, they are not drawn from a uniform random + * distribution and have no meaningful lower or upper bounds. + * + * ```js + * import { Buffer } from 'buffer'; + * const { randomFill } = await import('crypto'); + * + * const a = new Uint32Array(10); + * randomFill(a, (err, buf) => { + * if (err) throw err; + * console.log(Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength) + * .toString('hex')); + * }); + * + * const b = new DataView(new ArrayBuffer(10)); + * randomFill(b, (err, buf) => { + * if (err) throw err; + * console.log(Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength) + * .toString('hex')); + * }); + * + * const c = new ArrayBuffer(10); + * randomFill(c, (err, buf) => { + * if (err) throw err; + * console.log(Buffer.from(buf).toString('hex')); + * }); + * ``` + * + * This API uses libuv's threadpool, which can have surprising and + * negative performance implications for some applications; see the `UV_THREADPOOL_SIZE` documentation for more information. + * + * The asynchronous version of `crypto.randomFill()` is carried out in a single + * threadpool request. To minimize threadpool task length variation, partition + * large `randomFill` requests when doing so as part of fulfilling a client + * request. + * @since v7.10.0, v6.13.0 + * @param buffer Must be supplied. The size of the provided `buffer` must not be larger than `2**31 - 1`. + * @param [offset=0] + * @param [size=buffer.length - offset] + * @param callback `function(err, buf) {}`. + */ + function randomFill(buffer: T, callback: (err: Error | null, buf: T) => void): void; + function randomFill(buffer: T, offset: number, callback: (err: Error | null, buf: T) => void): void; + function randomFill(buffer: T, offset: number, size: number, callback: (err: Error | null, buf: T) => void): void; + interface ScryptOptions { + cost?: number | undefined; + blockSize?: number | undefined; + parallelization?: number | undefined; + N?: number | undefined; + r?: number | undefined; + p?: number | undefined; + maxmem?: number | undefined; + } + /** + * Provides an asynchronous [scrypt](https://en.wikipedia.org/wiki/Scrypt) implementation. Scrypt is a password-based + * key derivation function that is designed to be expensive computationally and + * memory-wise in order to make brute-force attacks unrewarding. + * + * The `salt` should be as unique as possible. It is recommended that a salt is + * random and at least 16 bytes long. See [NIST SP 800-132](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf) for details. + * + * When passing strings for `password` or `salt`, please consider `caveats when using strings as inputs to cryptographic APIs`. + * + * The `callback` function is called with two arguments: `err` and `derivedKey`.`err` is an exception object when key derivation fails, otherwise `err` is`null`. `derivedKey` is passed to the + * callback as a `Buffer`. + * + * An exception is thrown when any of the input arguments specify invalid values + * or types. + * + * ```js + * const { + * scrypt + * } = await import('crypto'); + * + * // Using the factory defaults. + * scrypt('password', 'salt', 64, (err, derivedKey) => { + * if (err) throw err; + * console.log(derivedKey.toString('hex')); // '3745e48...08d59ae' + * }); + * // Using a custom N parameter. Must be a power of two. + * scrypt('password', 'salt', 64, { N: 1024 }, (err, derivedKey) => { + * if (err) throw err; + * console.log(derivedKey.toString('hex')); // '3745e48...aa39b34' + * }); + * ``` + * @since v10.5.0 + */ + function scrypt(password: BinaryLike, salt: BinaryLike, keylen: number, callback: (err: Error | null, derivedKey: Buffer) => void): void; + function scrypt(password: BinaryLike, salt: BinaryLike, keylen: number, options: ScryptOptions, callback: (err: Error | null, derivedKey: Buffer) => void): void; + /** + * Provides a synchronous [scrypt](https://en.wikipedia.org/wiki/Scrypt) implementation. Scrypt is a password-based + * key derivation function that is designed to be expensive computationally and + * memory-wise in order to make brute-force attacks unrewarding. + * + * The `salt` should be as unique as possible. It is recommended that a salt is + * random and at least 16 bytes long. See [NIST SP 800-132](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf) for details. + * + * When passing strings for `password` or `salt`, please consider `caveats when using strings as inputs to cryptographic APIs`. + * + * An exception is thrown when key derivation fails, otherwise the derived key is + * returned as a `Buffer`. + * + * An exception is thrown when any of the input arguments specify invalid values + * or types. + * + * ```js + * const { + * scryptSync + * } = await import('crypto'); + * // Using the factory defaults. + * + * const key1 = scryptSync('password', 'salt', 64); + * console.log(key1.toString('hex')); // '3745e48...08d59ae' + * // Using a custom N parameter. Must be a power of two. + * const key2 = scryptSync('password', 'salt', 64, { N: 1024 }); + * console.log(key2.toString('hex')); // '3745e48...aa39b34' + * ``` + * @since v10.5.0 + */ + function scryptSync(password: BinaryLike, salt: BinaryLike, keylen: number, options?: ScryptOptions): Buffer; + interface RsaPublicKey { + key: KeyLike; + padding?: number | undefined; + } + interface RsaPrivateKey { + key: KeyLike; + passphrase?: string | undefined; + /** + * @default 'sha1' + */ + oaepHash?: string | undefined; + oaepLabel?: NodeJS.TypedArray | undefined; + padding?: number | undefined; + } + /** + * Encrypts the content of `buffer` with `key` and returns a new `Buffer` with encrypted content. The returned data can be decrypted using + * the corresponding private key, for example using {@link privateDecrypt}. + * + * If `key` is not a `KeyObject`, this function behaves as if`key` had been passed to {@link createPublicKey}. If it is an + * object, the `padding` property can be passed. Otherwise, this function uses`RSA_PKCS1_OAEP_PADDING`. + * + * Because RSA public keys can be derived from private keys, a private key may + * be passed instead of a public key. + * @since v0.11.14 + */ + function publicEncrypt(key: RsaPublicKey | RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer; + /** + * Decrypts `buffer` with `key`.`buffer` was previously encrypted using + * the corresponding private key, for example using {@link privateEncrypt}. + * + * If `key` is not a `KeyObject`, this function behaves as if`key` had been passed to {@link createPublicKey}. If it is an + * object, the `padding` property can be passed. Otherwise, this function uses`RSA_PKCS1_PADDING`. + * + * Because RSA public keys can be derived from private keys, a private key may + * be passed instead of a public key. + * @since v1.1.0 + */ + function publicDecrypt(key: RsaPublicKey | RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer; + /** + * Decrypts `buffer` with `privateKey`. `buffer` was previously encrypted using + * the corresponding public key, for example using {@link publicEncrypt}. + * + * If `privateKey` is not a `KeyObject`, this function behaves as if`privateKey` had been passed to {@link createPrivateKey}. If it is an + * object, the `padding` property can be passed. Otherwise, this function uses`RSA_PKCS1_OAEP_PADDING`. + * @since v0.11.14 + */ + function privateDecrypt(privateKey: RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer; + /** + * Encrypts `buffer` with `privateKey`. The returned data can be decrypted using + * the corresponding public key, for example using {@link publicDecrypt}. + * + * If `privateKey` is not a `KeyObject`, this function behaves as if`privateKey` had been passed to {@link createPrivateKey}. If it is an + * object, the `padding` property can be passed. Otherwise, this function uses`RSA_PKCS1_PADDING`. + * @since v1.1.0 + */ + function privateEncrypt(privateKey: RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer; + /** + * ```js + * const { + * getCiphers + * } = await import('crypto'); + * + * console.log(getCiphers()); // ['aes-128-cbc', 'aes-128-ccm', ...] + * ``` + * @since v0.9.3 + * @return An array with the names of the supported cipher algorithms. + */ + function getCiphers(): string[]; + /** + * ```js + * const { + * getCurves + * } = await import('crypto'); + * + * console.log(getCurves()); // ['Oakley-EC2N-3', 'Oakley-EC2N-4', ...] + * ``` + * @since v2.3.0 + * @return An array with the names of the supported elliptic curves. + */ + function getCurves(): string[]; + /** + * @since v10.0.0 + * @return `1` if and only if a FIPS compliant crypto provider is currently in use, `0` otherwise. A future semver-major release may change the return type of this API to a {boolean}. + */ + function getFips(): 1 | 0; + /** + * Enables the FIPS compliant crypto provider in a FIPS-enabled Node.js build. Throws an error if FIPS mode is not available. + * @since v10.0.0 + * @param bool `true` to enable FIPS mode. + */ + function setFips(bool: boolean): void; + /** + * ```js + * const { + * getHashes + * } = await import('crypto'); + * + * console.log(getHashes()); // ['DSA', 'DSA-SHA', 'DSA-SHA1', ...] + * ``` + * @since v0.9.3 + * @return An array of the names of the supported hash algorithms, such as `'RSA-SHA256'`. Hash algorithms are also called "digest" algorithms. + */ + function getHashes(): string[]; + /** + * The `ECDH` class is a utility for creating Elliptic Curve Diffie-Hellman (ECDH) + * key exchanges. + * + * Instances of the `ECDH` class can be created using the {@link createECDH} function. + * + * ```js + * import assert from 'assert'; + * + * const { + * createECDH + * } = await import('crypto'); + * + * // Generate Alice's keys... + * const alice = createECDH('secp521r1'); + * const aliceKey = alice.generateKeys(); + * + * // Generate Bob's keys... + * const bob = createECDH('secp521r1'); + * const bobKey = bob.generateKeys(); + * + * // Exchange and generate the secret... + * const aliceSecret = alice.computeSecret(bobKey); + * const bobSecret = bob.computeSecret(aliceKey); + * + * assert.strictEqual(aliceSecret.toString('hex'), bobSecret.toString('hex')); + * // OK + * ``` + * @since v0.11.14 + */ + class ECDH { + private constructor(); + /** + * Converts the EC Diffie-Hellman public key specified by `key` and `curve` to the + * format specified by `format`. The `format` argument specifies point encoding + * and can be `'compressed'`, `'uncompressed'` or `'hybrid'`. The supplied key is + * interpreted using the specified `inputEncoding`, and the returned key is encoded + * using the specified `outputEncoding`. + * + * Use {@link getCurves} to obtain a list of available curve names. + * On recent OpenSSL releases, `openssl ecparam -list_curves` will also display + * the name and description of each available elliptic curve. + * + * If `format` is not specified the point will be returned in `'uncompressed'`format. + * + * If the `inputEncoding` is not provided, `key` is expected to be a `Buffer`,`TypedArray`, or `DataView`. + * + * Example (uncompressing a key): + * + * ```js + * const { + * createECDH, + * ECDH + * } = await import('crypto'); + * + * const ecdh = createECDH('secp256k1'); + * ecdh.generateKeys(); + * + * const compressedKey = ecdh.getPublicKey('hex', 'compressed'); + * + * const uncompressedKey = ECDH.convertKey(compressedKey, + * 'secp256k1', + * 'hex', + * 'hex', + * 'uncompressed'); + * + * // The converted key and the uncompressed public key should be the same + * console.log(uncompressedKey === ecdh.getPublicKey('hex')); + * ``` + * @since v10.0.0 + * @param inputEncoding The `encoding` of the `key` string. + * @param outputEncoding The `encoding` of the return value. + * @param [format='uncompressed'] + */ + static convertKey( + key: BinaryLike, + curve: string, + inputEncoding?: BinaryToTextEncoding, + outputEncoding?: 'latin1' | 'hex' | 'base64' | 'base64url', + format?: 'uncompressed' | 'compressed' | 'hybrid' + ): Buffer | string; + /** + * Generates private and public EC Diffie-Hellman key values, and returns + * the public key in the specified `format` and `encoding`. This key should be + * transferred to the other party. + * + * The `format` argument specifies point encoding and can be `'compressed'` or`'uncompressed'`. If `format` is not specified, the point will be returned in`'uncompressed'` format. + * + * If `encoding` is provided a string is returned; otherwise a `Buffer` is returned. + * @since v0.11.14 + * @param encoding The `encoding` of the return value. + * @param [format='uncompressed'] + */ + generateKeys(): Buffer; + generateKeys(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string; + /** + * Computes the shared secret using `otherPublicKey` as the other + * party's public key and returns the computed shared secret. The supplied + * key is interpreted using specified `inputEncoding`, and the returned secret + * is encoded using the specified `outputEncoding`. + * If the `inputEncoding` is not + * provided, `otherPublicKey` is expected to be a `Buffer`, `TypedArray`, or`DataView`. + * + * If `outputEncoding` is given a string will be returned; otherwise a `Buffer` is returned. + * + * `ecdh.computeSecret` will throw an`ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY` error when `otherPublicKey`lies outside of the elliptic curve. Since `otherPublicKey` is + * usually supplied from a remote user over an insecure network, + * be sure to handle this exception accordingly. + * @since v0.11.14 + * @param inputEncoding The `encoding` of the `otherPublicKey` string. + * @param outputEncoding The `encoding` of the return value. + */ + computeSecret(otherPublicKey: NodeJS.ArrayBufferView): Buffer; + computeSecret(otherPublicKey: string, inputEncoding: BinaryToTextEncoding): Buffer; + computeSecret(otherPublicKey: NodeJS.ArrayBufferView, outputEncoding: BinaryToTextEncoding): string; + computeSecret(otherPublicKey: string, inputEncoding: BinaryToTextEncoding, outputEncoding: BinaryToTextEncoding): string; + /** + * If `encoding` is specified, a string is returned; otherwise a `Buffer` is + * returned. + * @since v0.11.14 + * @param encoding The `encoding` of the return value. + * @return The EC Diffie-Hellman in the specified `encoding`. + */ + getPrivateKey(): Buffer; + getPrivateKey(encoding: BinaryToTextEncoding): string; + /** + * The `format` argument specifies point encoding and can be `'compressed'` or`'uncompressed'`. If `format` is not specified the point will be returned in`'uncompressed'` format. + * + * If `encoding` is specified, a string is returned; otherwise a `Buffer` is + * returned. + * @since v0.11.14 + * @param [encoding] The `encoding` of the return value. + * @param [format='uncompressed'] + * @return The EC Diffie-Hellman public key in the specified `encoding` and `format`. + */ + getPublicKey(encoding?: null, format?: ECDHKeyFormat): Buffer; + getPublicKey(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string; + /** + * Sets the EC Diffie-Hellman private key. + * If `encoding` is provided, `privateKey` is expected + * to be a string; otherwise `privateKey` is expected to be a `Buffer`,`TypedArray`, or `DataView`. + * + * If `privateKey` is not valid for the curve specified when the `ECDH` object was + * created, an error is thrown. Upon setting the private key, the associated + * public point (key) is also generated and set in the `ECDH` object. + * @since v0.11.14 + * @param encoding The `encoding` of the `privateKey` string. + */ + setPrivateKey(privateKey: NodeJS.ArrayBufferView): void; + setPrivateKey(privateKey: string, encoding: BinaryToTextEncoding): void; + } + /** + * Creates an Elliptic Curve Diffie-Hellman (`ECDH`) key exchange object using a + * predefined curve specified by the `curveName` string. Use {@link getCurves} to obtain a list of available curve names. On recent + * OpenSSL releases, `openssl ecparam -list_curves` will also display the name + * and description of each available elliptic curve. + * @since v0.11.14 + */ + function createECDH(curveName: string): ECDH; + /** + * This function is based on a constant-time algorithm. + * Returns true if `a` is equal to `b`, without leaking timing information that + * would allow an attacker to guess one of the values. This is suitable for + * comparing HMAC digests or secret values like authentication cookies or [capability urls](https://www.w3.org/TR/capability-urls/). + * + * `a` and `b` must both be `Buffer`s, `TypedArray`s, or `DataView`s, and they + * must have the same byte length. An error is thrown if `a` and `b` have + * different byte lengths. + * + * If at least one of `a` and `b` is a `TypedArray` with more than one byte per + * entry, such as `Uint16Array`, the result will be computed using the platform + * byte order. + * + * Use of `crypto.timingSafeEqual` does not guarantee that the _surrounding_ code + * is timing-safe. Care should be taken to ensure that the surrounding code does + * not introduce timing vulnerabilities. + * @since v6.6.0 + */ + function timingSafeEqual(a: NodeJS.ArrayBufferView, b: NodeJS.ArrayBufferView): boolean; + /** @deprecated since v10.0.0 */ + const DEFAULT_ENCODING: BufferEncoding; + type KeyType = 'rsa' | 'rsa-pss' | 'dsa' | 'ec' | 'ed25519' | 'ed448' | 'x25519' | 'x448'; + type KeyFormat = 'pem' | 'der' | 'jwk'; + interface BasePrivateKeyEncodingOptions { + format: T; + cipher?: string | undefined; + passphrase?: string | undefined; + } + interface KeyPairKeyObjectResult { + publicKey: KeyObject; + privateKey: KeyObject; + } + interface ED25519KeyPairKeyObjectOptions {} + interface ED448KeyPairKeyObjectOptions {} + interface X25519KeyPairKeyObjectOptions {} + interface X448KeyPairKeyObjectOptions {} + interface ECKeyPairKeyObjectOptions { + /** + * Name of the curve to use + */ + namedCurve: string; + } + interface RSAKeyPairKeyObjectOptions { + /** + * Key size in bits + */ + modulusLength: number; + /** + * Public exponent + * @default 0x10001 + */ + publicExponent?: number | undefined; + } + interface RSAPSSKeyPairKeyObjectOptions { + /** + * Key size in bits + */ + modulusLength: number; + /** + * Public exponent + * @default 0x10001 + */ + publicExponent?: number | undefined; + /** + * Name of the message digest + */ + hashAlgorithm?: string; + /** + * Name of the message digest used by MGF1 + */ + mgf1HashAlgorithm?: string; + /** + * Minimal salt length in bytes + */ + saltLength?: string; + } + interface DSAKeyPairKeyObjectOptions { + /** + * Key size in bits + */ + modulusLength: number; + /** + * Size of q in bits + */ + divisorLength: number; + } + interface RSAKeyPairOptions { + /** + * Key size in bits + */ + modulusLength: number; + /** + * Public exponent + * @default 0x10001 + */ + publicExponent?: number | undefined; + publicKeyEncoding: { + type: 'pkcs1' | 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs1' | 'pkcs8'; + }; + } + interface RSAPSSKeyPairOptions { + /** + * Key size in bits + */ + modulusLength: number; + /** + * Public exponent + * @default 0x10001 + */ + publicExponent?: number | undefined; + /** + * Name of the message digest + */ + hashAlgorithm?: string; + /** + * Name of the message digest used by MGF1 + */ + mgf1HashAlgorithm?: string; + /** + * Minimal salt length in bytes + */ + saltLength?: string; + publicKeyEncoding: { + type: 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs8'; + }; + } + interface DSAKeyPairOptions { + /** + * Key size in bits + */ + modulusLength: number; + /** + * Size of q in bits + */ + divisorLength: number; + publicKeyEncoding: { + type: 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs8'; + }; + } + interface ECKeyPairOptions { + /** + * Name of the curve to use. + */ + namedCurve: string; + publicKeyEncoding: { + type: 'pkcs1' | 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'sec1' | 'pkcs8'; + }; + } + interface ED25519KeyPairOptions { + publicKeyEncoding: { + type: 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs8'; + }; + } + interface ED448KeyPairOptions { + publicKeyEncoding: { + type: 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs8'; + }; + } + interface X25519KeyPairOptions { + publicKeyEncoding: { + type: 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs8'; + }; + } + interface X448KeyPairOptions { + publicKeyEncoding: { + type: 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs8'; + }; + } + interface KeyPairSyncResult { + publicKey: T1; + privateKey: T2; + } + /** + * Generates a new asymmetric key pair of the given `type`. RSA, RSA-PSS, DSA, EC, + * Ed25519, Ed448, X25519, X448, and DH are currently supported. + * + * If a `publicKeyEncoding` or `privateKeyEncoding` was specified, this function + * behaves as if `keyObject.export()` had been called on its result. Otherwise, + * the respective part of the key is returned as a `KeyObject`. + * + * When encoding public keys, it is recommended to use `'spki'`. When encoding + * private keys, it is recommended to use `'pkcs8'` with a strong passphrase, + * and to keep the passphrase confidential. + * + * ```js + * const { + * generateKeyPairSync + * } = await import('crypto'); + * + * const { + * publicKey, + * privateKey, + * } = generateKeyPairSync('rsa', { + * modulusLength: 4096, + * publicKeyEncoding: { + * type: 'spki', + * format: 'pem' + * }, + * privateKeyEncoding: { + * type: 'pkcs8', + * format: 'pem', + * cipher: 'aes-256-cbc', + * passphrase: 'top secret' + * } + * }); + * ``` + * + * The return value `{ publicKey, privateKey }` represents the generated key pair. + * When PEM encoding was selected, the respective key will be a string, otherwise + * it will be a buffer containing the data encoded as DER. + * @since v10.12.0 + * @param type Must be `'rsa'`, `'rsa-pss'`, `'dsa'`, `'ec'`, `'ed25519'`, `'ed448'`, `'x25519'`, `'x448'`, or `'dh'`. + */ + function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'pem', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'der', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'der', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa', options: RSAKeyPairKeyObjectOptions): KeyPairKeyObjectResult; + function generateKeyPairSync(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'pem', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'der', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'der', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa-pss', options: RSAPSSKeyPairKeyObjectOptions): KeyPairKeyObjectResult; + function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'pem', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'der', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'der', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'dsa', options: DSAKeyPairKeyObjectOptions): KeyPairKeyObjectResult; + function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'pem', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'der', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'der', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ec', options: ECKeyPairKeyObjectOptions): KeyPairKeyObjectResult; + function generateKeyPairSync(type: 'ed25519', options: ED25519KeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ed25519', options: ED25519KeyPairOptions<'pem', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ed25519', options: ED25519KeyPairOptions<'der', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ed25519', options: ED25519KeyPairOptions<'der', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ed25519', options?: ED25519KeyPairKeyObjectOptions): KeyPairKeyObjectResult; + function generateKeyPairSync(type: 'ed448', options: ED448KeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ed448', options: ED448KeyPairOptions<'pem', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ed448', options: ED448KeyPairOptions<'der', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ed448', options: ED448KeyPairOptions<'der', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ed448', options?: ED448KeyPairKeyObjectOptions): KeyPairKeyObjectResult; + function generateKeyPairSync(type: 'x25519', options: X25519KeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'x25519', options: X25519KeyPairOptions<'pem', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'x25519', options: X25519KeyPairOptions<'der', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'x25519', options: X25519KeyPairOptions<'der', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'x25519', options?: X25519KeyPairKeyObjectOptions): KeyPairKeyObjectResult; + function generateKeyPairSync(type: 'x448', options: X448KeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'x448', options: X448KeyPairOptions<'pem', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'x448', options: X448KeyPairOptions<'der', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'x448', options: X448KeyPairOptions<'der', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'x448', options?: X448KeyPairKeyObjectOptions): KeyPairKeyObjectResult; + /** + * Generates a new asymmetric key pair of the given `type`. RSA, RSA-PSS, DSA, EC, + * Ed25519, Ed448, X25519, X448, and DH are currently supported. + * + * If a `publicKeyEncoding` or `privateKeyEncoding` was specified, this function + * behaves as if `keyObject.export()` had been called on its result. Otherwise, + * the respective part of the key is returned as a `KeyObject`. + * + * It is recommended to encode public keys as `'spki'` and private keys as`'pkcs8'` with encryption for long-term storage: + * + * ```js + * const { + * generateKeyPair + * } = await import('crypto'); + * + * generateKeyPair('rsa', { + * modulusLength: 4096, + * publicKeyEncoding: { + * type: 'spki', + * format: 'pem' + * }, + * privateKeyEncoding: { + * type: 'pkcs8', + * format: 'pem', + * cipher: 'aes-256-cbc', + * passphrase: 'top secret' + * } + * }, (err, publicKey, privateKey) => { + * // Handle errors and use the generated key pair. + * }); + * ``` + * + * On completion, `callback` will be called with `err` set to `undefined` and`publicKey` / `privateKey` representing the generated key pair. + * + * If this method is invoked as its `util.promisify()` ed version, it returns + * a `Promise` for an `Object` with `publicKey` and `privateKey` properties. + * @since v10.12.0 + * @param type Must be `'rsa'`, `'rsa-pss'`, `'dsa'`, `'ec'`, `'ed25519'`, `'ed448'`, `'x25519'`, `'x448'`, or `'dh'`. + */ + function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; + function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; + function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'rsa', options: RSAKeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void; + function generateKeyPair(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; + function generateKeyPair(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; + function generateKeyPair(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'rsa-pss', options: RSAPSSKeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void; + function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; + function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; + function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'dsa', options: DSAKeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void; + function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; + function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; + function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'ec', options: ECKeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void; + function generateKeyPair(type: 'ed25519', options: ED25519KeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; + function generateKeyPair(type: 'ed25519', options: ED25519KeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'ed25519', options: ED25519KeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; + function generateKeyPair(type: 'ed25519', options: ED25519KeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'ed25519', options: ED25519KeyPairKeyObjectOptions | undefined, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void; + function generateKeyPair(type: 'ed448', options: ED448KeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; + function generateKeyPair(type: 'ed448', options: ED448KeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'ed448', options: ED448KeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; + function generateKeyPair(type: 'ed448', options: ED448KeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'ed448', options: ED448KeyPairKeyObjectOptions | undefined, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void; + function generateKeyPair(type: 'x25519', options: X25519KeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; + function generateKeyPair(type: 'x25519', options: X25519KeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'x25519', options: X25519KeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; + function generateKeyPair(type: 'x25519', options: X25519KeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'x25519', options: X25519KeyPairKeyObjectOptions | undefined, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void; + function generateKeyPair(type: 'x448', options: X448KeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; + function generateKeyPair(type: 'x448', options: X448KeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'x448', options: X448KeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; + function generateKeyPair(type: 'x448', options: X448KeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'x448', options: X448KeyPairKeyObjectOptions | undefined, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void; + namespace generateKeyPair { + function __promisify__( + type: 'rsa', + options: RSAKeyPairOptions<'pem', 'pem'> + ): Promise<{ + publicKey: string; + privateKey: string; + }>; + function __promisify__( + type: 'rsa', + options: RSAKeyPairOptions<'pem', 'der'> + ): Promise<{ + publicKey: string; + privateKey: Buffer; + }>; + function __promisify__( + type: 'rsa', + options: RSAKeyPairOptions<'der', 'pem'> + ): Promise<{ + publicKey: Buffer; + privateKey: string; + }>; + function __promisify__( + type: 'rsa', + options: RSAKeyPairOptions<'der', 'der'> + ): Promise<{ + publicKey: Buffer; + privateKey: Buffer; + }>; + function __promisify__(type: 'rsa', options: RSAKeyPairKeyObjectOptions): Promise; + function __promisify__( + type: 'rsa-pss', + options: RSAPSSKeyPairOptions<'pem', 'pem'> + ): Promise<{ + publicKey: string; + privateKey: string; + }>; + function __promisify__( + type: 'rsa-pss', + options: RSAPSSKeyPairOptions<'pem', 'der'> + ): Promise<{ + publicKey: string; + privateKey: Buffer; + }>; + function __promisify__( + type: 'rsa-pss', + options: RSAPSSKeyPairOptions<'der', 'pem'> + ): Promise<{ + publicKey: Buffer; + privateKey: string; + }>; + function __promisify__( + type: 'rsa-pss', + options: RSAPSSKeyPairOptions<'der', 'der'> + ): Promise<{ + publicKey: Buffer; + privateKey: Buffer; + }>; + function __promisify__(type: 'rsa-pss', options: RSAPSSKeyPairKeyObjectOptions): Promise; + function __promisify__( + type: 'dsa', + options: DSAKeyPairOptions<'pem', 'pem'> + ): Promise<{ + publicKey: string; + privateKey: string; + }>; + function __promisify__( + type: 'dsa', + options: DSAKeyPairOptions<'pem', 'der'> + ): Promise<{ + publicKey: string; + privateKey: Buffer; + }>; + function __promisify__( + type: 'dsa', + options: DSAKeyPairOptions<'der', 'pem'> + ): Promise<{ + publicKey: Buffer; + privateKey: string; + }>; + function __promisify__( + type: 'dsa', + options: DSAKeyPairOptions<'der', 'der'> + ): Promise<{ + publicKey: Buffer; + privateKey: Buffer; + }>; + function __promisify__(type: 'dsa', options: DSAKeyPairKeyObjectOptions): Promise; + function __promisify__( + type: 'ec', + options: ECKeyPairOptions<'pem', 'pem'> + ): Promise<{ + publicKey: string; + privateKey: string; + }>; + function __promisify__( + type: 'ec', + options: ECKeyPairOptions<'pem', 'der'> + ): Promise<{ + publicKey: string; + privateKey: Buffer; + }>; + function __promisify__( + type: 'ec', + options: ECKeyPairOptions<'der', 'pem'> + ): Promise<{ + publicKey: Buffer; + privateKey: string; + }>; + function __promisify__( + type: 'ec', + options: ECKeyPairOptions<'der', 'der'> + ): Promise<{ + publicKey: Buffer; + privateKey: Buffer; + }>; + function __promisify__(type: 'ec', options: ECKeyPairKeyObjectOptions): Promise; + function __promisify__( + type: 'ed25519', + options: ED25519KeyPairOptions<'pem', 'pem'> + ): Promise<{ + publicKey: string; + privateKey: string; + }>; + function __promisify__( + type: 'ed25519', + options: ED25519KeyPairOptions<'pem', 'der'> + ): Promise<{ + publicKey: string; + privateKey: Buffer; + }>; + function __promisify__( + type: 'ed25519', + options: ED25519KeyPairOptions<'der', 'pem'> + ): Promise<{ + publicKey: Buffer; + privateKey: string; + }>; + function __promisify__( + type: 'ed25519', + options: ED25519KeyPairOptions<'der', 'der'> + ): Promise<{ + publicKey: Buffer; + privateKey: Buffer; + }>; + function __promisify__(type: 'ed25519', options?: ED25519KeyPairKeyObjectOptions): Promise; + function __promisify__( + type: 'ed448', + options: ED448KeyPairOptions<'pem', 'pem'> + ): Promise<{ + publicKey: string; + privateKey: string; + }>; + function __promisify__( + type: 'ed448', + options: ED448KeyPairOptions<'pem', 'der'> + ): Promise<{ + publicKey: string; + privateKey: Buffer; + }>; + function __promisify__( + type: 'ed448', + options: ED448KeyPairOptions<'der', 'pem'> + ): Promise<{ + publicKey: Buffer; + privateKey: string; + }>; + function __promisify__( + type: 'ed448', + options: ED448KeyPairOptions<'der', 'der'> + ): Promise<{ + publicKey: Buffer; + privateKey: Buffer; + }>; + function __promisify__(type: 'ed448', options?: ED448KeyPairKeyObjectOptions): Promise; + function __promisify__( + type: 'x25519', + options: X25519KeyPairOptions<'pem', 'pem'> + ): Promise<{ + publicKey: string; + privateKey: string; + }>; + function __promisify__( + type: 'x25519', + options: X25519KeyPairOptions<'pem', 'der'> + ): Promise<{ + publicKey: string; + privateKey: Buffer; + }>; + function __promisify__( + type: 'x25519', + options: X25519KeyPairOptions<'der', 'pem'> + ): Promise<{ + publicKey: Buffer; + privateKey: string; + }>; + function __promisify__( + type: 'x25519', + options: X25519KeyPairOptions<'der', 'der'> + ): Promise<{ + publicKey: Buffer; + privateKey: Buffer; + }>; + function __promisify__(type: 'x25519', options?: X25519KeyPairKeyObjectOptions): Promise; + function __promisify__( + type: 'x448', + options: X448KeyPairOptions<'pem', 'pem'> + ): Promise<{ + publicKey: string; + privateKey: string; + }>; + function __promisify__( + type: 'x448', + options: X448KeyPairOptions<'pem', 'der'> + ): Promise<{ + publicKey: string; + privateKey: Buffer; + }>; + function __promisify__( + type: 'x448', + options: X448KeyPairOptions<'der', 'pem'> + ): Promise<{ + publicKey: Buffer; + privateKey: string; + }>; + function __promisify__( + type: 'x448', + options: X448KeyPairOptions<'der', 'der'> + ): Promise<{ + publicKey: Buffer; + privateKey: Buffer; + }>; + function __promisify__(type: 'x448', options?: X448KeyPairKeyObjectOptions): Promise; + } + /** + * Calculates and returns the signature for `data` using the given private key and + * algorithm. If `algorithm` is `null` or `undefined`, then the algorithm is + * dependent upon the key type (especially Ed25519 and Ed448). + * + * If `key` is not a `KeyObject`, this function behaves as if `key` had been + * passed to {@link createPrivateKey}. If it is an object, the following + * additional properties can be passed: + * + * If the `callback` function is provided this function uses libuv's threadpool. + * @since v12.0.0 + */ + function sign(algorithm: string | null | undefined, data: NodeJS.ArrayBufferView, key: KeyLike | SignKeyObjectInput | SignPrivateKeyInput): Buffer; + function sign( + algorithm: string | null | undefined, + data: NodeJS.ArrayBufferView, + key: KeyLike | SignKeyObjectInput | SignPrivateKeyInput, + callback: (error: Error | null, data: Buffer) => void + ): void; + /** + * Verifies the given signature for `data` using the given key and algorithm. If`algorithm` is `null` or `undefined`, then the algorithm is dependent upon the + * key type (especially Ed25519 and Ed448). + * + * If `key` is not a `KeyObject`, this function behaves as if `key` had been + * passed to {@link createPublicKey}. If it is an object, the following + * additional properties can be passed: + * + * The `signature` argument is the previously calculated signature for the `data`. + * + * Because public keys can be derived from private keys, a private key or a public + * key may be passed for `key`. + * + * If the `callback` function is provided this function uses libuv's threadpool. + * @since v12.0.0 + */ + function verify(algorithm: string | null | undefined, data: NodeJS.ArrayBufferView, key: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput, signature: NodeJS.ArrayBufferView): boolean; + function verify( + algorithm: string | null | undefined, + data: NodeJS.ArrayBufferView, + key: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput, + signature: NodeJS.ArrayBufferView, + callback: (error: Error | null, result: boolean) => void + ): void; + /** + * Computes the Diffie-Hellman secret based on a `privateKey` and a `publicKey`. + * Both keys must have the same `asymmetricKeyType`, which must be one of `'dh'`(for Diffie-Hellman), `'ec'` (for ECDH), `'x448'`, or `'x25519'` (for ECDH-ES). + * @since v13.9.0, v12.17.0 + */ + function diffieHellman(options: { privateKey: KeyObject; publicKey: KeyObject }): Buffer; + type CipherMode = 'cbc' | 'ccm' | 'cfb' | 'ctr' | 'ecb' | 'gcm' | 'ocb' | 'ofb' | 'stream' | 'wrap' | 'xts'; + interface CipherInfoOptions { + /** + * A test key length. + */ + keyLength?: number | undefined; + /** + * A test IV length. + */ + ivLength?: number | undefined; + } + interface CipherInfo { + /** + * The name of the cipher. + */ + name: string; + /** + * The nid of the cipher. + */ + nid: number; + /** + * The block size of the cipher in bytes. + * This property is omitted when mode is 'stream'. + */ + blockSize?: number | undefined; + /** + * The expected or default initialization vector length in bytes. + * This property is omitted if the cipher does not use an initialization vector. + */ + ivLength?: number | undefined; + /** + * The expected or default key length in bytes. + */ + keyLength: number; + /** + * The cipher mode. + */ + mode: CipherMode; + } + /** + * Returns information about a given cipher. + * + * Some ciphers accept variable length keys and initialization vectors. By default, + * the `crypto.getCipherInfo()` method will return the default values for these + * ciphers. To test if a given key length or iv length is acceptable for given + * cipher, use the `keyLength` and `ivLength` options. If the given values are + * unacceptable, `undefined` will be returned. + * @since v15.0.0 + * @param nameOrNid The name or nid of the cipher to query. + */ + function getCipherInfo(nameOrNid: string | number, options?: CipherInfoOptions): CipherInfo | undefined; + /** + * HKDF is a simple key derivation function defined in RFC 5869\. The given `ikm`,`salt` and `info` are used with the `digest` to derive a key of `keylen` bytes. + * + * The supplied `callback` function is called with two arguments: `err` and`derivedKey`. If an errors occurs while deriving the key, `err` will be set; + * otherwise `err` will be `null`. The successfully generated `derivedKey` will + * be passed to the callback as an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer). An error will be thrown if any + * of the input arguments specify invalid values or types. + * + * ```js + * import { Buffer } from 'buffer'; + * const { + * hkdf + * } = await import('crypto'); + * + * hkdf('sha512', 'key', 'salt', 'info', 64, (err, derivedKey) => { + * if (err) throw err; + * console.log(Buffer.from(derivedKey).toString('hex')); // '24156e2...5391653' + * }); + * ``` + * @since v15.0.0 + * @param digest The digest algorithm to use. + * @param ikm The input keying material. It must be at least one byte in length. + * @param salt The salt value. Must be provided but can be zero-length. + * @param info Additional info value. Must be provided but can be zero-length, and cannot be more than 1024 bytes. + * @param keylen The length of the key to generate. Must be greater than 0. The maximum allowable value is `255` times the number of bytes produced by the selected digest function (e.g. `sha512` + * generates 64-byte hashes, making the maximum HKDF output 16320 bytes). + */ + function hkdf(digest: string, irm: BinaryLike | KeyObject, salt: BinaryLike, info: BinaryLike, keylen: number, callback: (err: Error | null, derivedKey: ArrayBuffer) => void): void; + /** + * Provides a synchronous HKDF key derivation function as defined in RFC 5869\. The + * given `ikm`, `salt` and `info` are used with the `digest` to derive a key of`keylen` bytes. + * + * The successfully generated `derivedKey` will be returned as an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer). + * + * An error will be thrown if any of the input arguments specify invalid values or + * types, or if the derived key cannot be generated. + * + * ```js + * import { Buffer } from 'buffer'; + * const { + * hkdfSync + * } = await import('crypto'); + * + * const derivedKey = hkdfSync('sha512', 'key', 'salt', 'info', 64); + * console.log(Buffer.from(derivedKey).toString('hex')); // '24156e2...5391653' + * ``` + * @since v15.0.0 + * @param digest The digest algorithm to use. + * @param ikm The input keying material. It must be at least one byte in length. + * @param salt The salt value. Must be provided but can be zero-length. + * @param info Additional info value. Must be provided but can be zero-length, and cannot be more than 1024 bytes. + * @param keylen The length of the key to generate. Must be greater than 0. The maximum allowable value is `255` times the number of bytes produced by the selected digest function (e.g. `sha512` + * generates 64-byte hashes, making the maximum HKDF output 16320 bytes). + */ + function hkdfSync(digest: string, ikm: BinaryLike | KeyObject, salt: BinaryLike, info: BinaryLike, keylen: number): ArrayBuffer; + interface SecureHeapUsage { + /** + * The total allocated secure heap size as specified using the `--secure-heap=n` command-line flag. + */ + total: number; + /** + * The minimum allocation from the secure heap as specified using the `--secure-heap-min` command-line flag. + */ + min: number; + /** + * The total number of bytes currently allocated from the secure heap. + */ + used: number; + /** + * The calculated ratio of `used` to `total` allocated bytes. + */ + utilization: number; + } + /** + * @since v15.6.0 + */ + function secureHeapUsed(): SecureHeapUsage; + interface RandomUUIDOptions { + /** + * By default, to improve performance, + * Node.js will pre-emptively generate and persistently cache enough + * random data to generate up to 128 random UUIDs. To generate a UUID + * without using the cache, set `disableEntropyCache` to `true`. + * + * @default `false` + */ + disableEntropyCache?: boolean | undefined; + } + /** + * Generates a random [RFC 4122](https://www.rfc-editor.org/rfc/rfc4122.txt) version 4 UUID. The UUID is generated using a + * cryptographic pseudorandom number generator. + * @since v15.6.0, v14.17.0 + */ + function randomUUID(options?: RandomUUIDOptions): string; + interface X509CheckOptions { + /** + * @default 'always' + */ + subject?: 'always' | 'default' | 'never'; + /** + * @default true + */ + wildcards?: boolean; + /** + * @default true + */ + partialWildcards?: boolean; + /** + * @default false + */ + multiLabelWildcards?: boolean; + /** + * @default false + */ + singleLabelSubdomains?: boolean; + } + /** + * Encapsulates an X509 certificate and provides read-only access to + * its information. + * + * ```js + * const { X509Certificate } = await import('crypto'); + * + * const x509 = new X509Certificate('{... pem encoded cert ...}'); + * + * console.log(x509.subject); + * ``` + * @since v15.6.0 + */ + class X509Certificate { + /** + * Will be \`true\` if this is a Certificate Authority (CA) certificate. + * @since v15.6.0 + */ + readonly ca: boolean; + /** + * The SHA-1 fingerprint of this certificate. + * + * Because SHA-1 is cryptographically broken and because the security of SHA-1 is + * significantly worse than that of algorithms that are commonly used to sign + * certificates, consider using `x509.fingerprint256` instead. + * @since v15.6.0 + */ + readonly fingerprint: string; + /** + * The SHA-256 fingerprint of this certificate. + * @since v15.6.0 + */ + readonly fingerprint256: string; + /** + * The SHA-512 fingerprint of this certificate. + * @since v16.14.0 + */ + readonly fingerprint512: string; + /** + * The complete subject of this certificate. + * @since v15.6.0 + */ + readonly subject: string; + /** + * The subject alternative name specified for this certificate or `undefined` + * if not available. + * @since v15.6.0 + */ + readonly subjectAltName: string | undefined; + /** + * The information access content of this certificate or `undefined` if not + * available. + * @since v15.6.0 + */ + readonly infoAccess: string | undefined; + /** + * An array detailing the key usages for this certificate. + * @since v15.6.0 + */ + readonly keyUsage: string[]; + /** + * The issuer identification included in this certificate. + * @since v15.6.0 + */ + readonly issuer: string; + /** + * The issuer certificate or `undefined` if the issuer certificate is not + * available. + * @since v15.9.0 + */ + readonly issuerCertificate?: X509Certificate | undefined; + /** + * The public key `KeyObject` for this certificate. + * @since v15.6.0 + */ + readonly publicKey: KeyObject; + /** + * A `Buffer` containing the DER encoding of this certificate. + * @since v15.6.0 + */ + readonly raw: Buffer; + /** + * The serial number of this certificate. + * + * Serial numbers are assigned by certificate authorities and do not uniquely + * identify certificates. Consider using `x509.fingerprint256` as a unique + * identifier instead. + * @since v15.6.0 + */ + readonly serialNumber: string; + /** + * The date/time from which this certificate is considered valid. + * @since v15.6.0 + */ + readonly validFrom: string; + /** + * The date/time until which this certificate is considered valid. + * @since v15.6.0 + */ + readonly validTo: string; + constructor(buffer: BinaryLike); + /** + * Checks whether the certificate matches the given email address. + * + * If the `'subject'` option is undefined or set to `'default'`, the certificate + * subject is only considered if the subject alternative name extension either does + * not exist or does not contain any email addresses. + * + * If the `'subject'` option is set to `'always'` and if the subject alternative + * name extension either does not exist or does not contain a matching email + * address, the certificate subject is considered. + * + * If the `'subject'` option is set to `'never'`, the certificate subject is never + * considered, even if the certificate contains no subject alternative names. + * @since v15.6.0 + * @return Returns `email` if the certificate matches, `undefined` if it does not. + */ + checkEmail(email: string, options?: Pick): string | undefined; + /** + * Checks whether the certificate matches the given host name. + * + * If the certificate matches the given host name, the matching subject name is + * returned. The returned name might be an exact match (e.g., `foo.example.com`) + * or it might contain wildcards (e.g., `*.example.com`). Because host name + * comparisons are case-insensitive, the returned subject name might also differ + * from the given `name` in capitalization. + * + * If the `'subject'` option is undefined or set to `'default'`, the certificate + * subject is only considered if the subject alternative name extension either does + * not exist or does not contain any DNS names. This behavior is consistent with [RFC 2818](https://www.rfc-editor.org/rfc/rfc2818.txt) ("HTTP Over TLS"). + * + * If the `'subject'` option is set to `'always'` and if the subject alternative + * name extension either does not exist or does not contain a matching DNS name, + * the certificate subject is considered. + * + * If the `'subject'` option is set to `'never'`, the certificate subject is never + * considered, even if the certificate contains no subject alternative names. + * @since v15.6.0 + * @return Returns a subject name that matches `name`, or `undefined` if no subject name matches `name`. + */ + checkHost(name: string, options?: X509CheckOptions): string | undefined; + /** + * Checks whether the certificate matches the given IP address (IPv4 or IPv6). + * + * Only [RFC 5280](https://www.rfc-editor.org/rfc/rfc5280.txt) `iPAddress` subject alternative names are considered, and they + * must match the given `ip` address exactly. Other subject alternative names as + * well as the subject field of the certificate are ignored. + * @since v15.6.0 + * @return Returns `ip` if the certificate matches, `undefined` if it does not. + */ + checkIP(ip: string): string | undefined; + /** + * Checks whether this certificate was issued by the given `otherCert`. + * @since v15.6.0 + */ + checkIssued(otherCert: X509Certificate): boolean; + /** + * Checks whether the public key for this certificate is consistent with + * the given private key. + * @since v15.6.0 + * @param privateKey A private key. + */ + checkPrivateKey(privateKey: KeyObject): boolean; + /** + * There is no standard JSON encoding for X509 certificates. The`toJSON()` method returns a string containing the PEM encoded + * certificate. + * @since v15.6.0 + */ + toJSON(): string; + /** + * Returns information about this certificate using the legacy `certificate object` encoding. + * @since v15.6.0 + */ + toLegacyObject(): PeerCertificate; + /** + * Returns the PEM-encoded certificate. + * @since v15.6.0 + */ + toString(): string; + /** + * Verifies that this certificate was signed by the given public key. + * Does not perform any other validation checks on the certificate. + * @since v15.6.0 + * @param publicKey A public key. + */ + verify(publicKey: KeyObject): boolean; + } + type LargeNumberLike = NodeJS.ArrayBufferView | SharedArrayBuffer | ArrayBuffer | bigint; + interface GeneratePrimeOptions { + add?: LargeNumberLike | undefined; + rem?: LargeNumberLike | undefined; + /** + * @default false + */ + safe?: boolean | undefined; + bigint?: boolean | undefined; + } + interface GeneratePrimeOptionsBigInt extends GeneratePrimeOptions { + bigint: true; + } + interface GeneratePrimeOptionsArrayBuffer extends GeneratePrimeOptions { + bigint?: false | undefined; + } + /** + * Generates a pseudorandom prime of `size` bits. + * + * If `options.safe` is `true`, the prime will be a safe prime -- that is,`(prime - 1) / 2` will also be a prime. + * + * The `options.add` and `options.rem` parameters can be used to enforce additional + * requirements, e.g., for Diffie-Hellman: + * + * * If `options.add` and `options.rem` are both set, the prime will satisfy the + * condition that `prime % add = rem`. + * * If only `options.add` is set and `options.safe` is not `true`, the prime will + * satisfy the condition that `prime % add = 1`. + * * If only `options.add` is set and `options.safe` is set to `true`, the prime + * will instead satisfy the condition that `prime % add = 3`. This is necessary + * because `prime % add = 1` for `options.add > 2` would contradict the condition + * enforced by `options.safe`. + * * `options.rem` is ignored if `options.add` is not given. + * + * Both `options.add` and `options.rem` must be encoded as big-endian sequences + * if given as an `ArrayBuffer`, `SharedArrayBuffer`, `TypedArray`, `Buffer`, or`DataView`. + * + * By default, the prime is encoded as a big-endian sequence of octets + * in an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer). If the `bigint` option is `true`, then a + * [bigint](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) is provided. + * @since v15.8.0 + * @param size The size (in bits) of the prime to generate. + */ + function generatePrime(size: number, callback: (err: Error | null, prime: ArrayBuffer) => void): void; + function generatePrime(size: number, options: GeneratePrimeOptionsBigInt, callback: (err: Error | null, prime: bigint) => void): void; + function generatePrime(size: number, options: GeneratePrimeOptionsArrayBuffer, callback: (err: Error | null, prime: ArrayBuffer) => void): void; + function generatePrime(size: number, options: GeneratePrimeOptions, callback: (err: Error | null, prime: ArrayBuffer | bigint) => void): void; + /** + * Generates a pseudorandom prime of `size` bits. + * + * If `options.safe` is `true`, the prime will be a safe prime -- that is,`(prime - 1) / 2` will also be a prime. + * + * The `options.add` and `options.rem` parameters can be used to enforce additional + * requirements, e.g., for Diffie-Hellman: + * + * * If `options.add` and `options.rem` are both set, the prime will satisfy the + * condition that `prime % add = rem`. + * * If only `options.add` is set and `options.safe` is not `true`, the prime will + * satisfy the condition that `prime % add = 1`. + * * If only `options.add` is set and `options.safe` is set to `true`, the prime + * will instead satisfy the condition that `prime % add = 3`. This is necessary + * because `prime % add = 1` for `options.add > 2` would contradict the condition + * enforced by `options.safe`. + * * `options.rem` is ignored if `options.add` is not given. + * + * Both `options.add` and `options.rem` must be encoded as big-endian sequences + * if given as an `ArrayBuffer`, `SharedArrayBuffer`, `TypedArray`, `Buffer`, or`DataView`. + * + * By default, the prime is encoded as a big-endian sequence of octets + * in an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer). If the `bigint` option is `true`, then a + * [bigint](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) is provided. + * @since v15.8.0 + * @param size The size (in bits) of the prime to generate. + */ + function generatePrimeSync(size: number): ArrayBuffer; + function generatePrimeSync(size: number, options: GeneratePrimeOptionsBigInt): bigint; + function generatePrimeSync(size: number, options: GeneratePrimeOptionsArrayBuffer): ArrayBuffer; + function generatePrimeSync(size: number, options: GeneratePrimeOptions): ArrayBuffer | bigint; + interface CheckPrimeOptions { + /** + * The number of Miller-Rabin probabilistic primality iterations to perform. + * When the value is 0 (zero), a number of checks is used that yields a false positive rate of at most `2**-64` for random input. + * Care must be used when selecting a number of checks. + * Refer to the OpenSSL documentation for the BN_is_prime_ex function nchecks options for more details. + * + * @default 0 + */ + checks?: number | undefined; + } + /** + * Checks the primality of the `candidate`. + * @since v15.8.0 + * @param candidate A possible prime encoded as a sequence of big endian octets of arbitrary length. + */ + function checkPrime(value: LargeNumberLike, callback: (err: Error | null, result: boolean) => void): void; + function checkPrime(value: LargeNumberLike, options: CheckPrimeOptions, callback: (err: Error | null, result: boolean) => void): void; + /** + * Checks the primality of the `candidate`. + * @since v15.8.0 + * @param candidate A possible prime encoded as a sequence of big endian octets of arbitrary length. + * @return `true` if the candidate is a prime with an error probability less than `0.25 ** options.checks`. + */ + function checkPrimeSync(candidate: LargeNumberLike, options?: CheckPrimeOptions): boolean; + /** + * Load and set the `engine` for some or all OpenSSL functions (selected by flags). + * + * `engine` could be either an id or a path to the engine's shared library. + * + * The optional `flags` argument uses `ENGINE_METHOD_ALL` by default. + * The `flags` is a bit field taking one of or a mix of the following flags (defined in `crypto.constants`): + * + * - `crypto.constants.ENGINE_METHOD_RSA` + * - `crypto.constants.ENGINE_METHOD_DSA` + * - `crypto.constants.ENGINE_METHOD_DH` + * - `crypto.constants.ENGINE_METHOD_RAND` + * - `crypto.constants.ENGINE_METHOD_EC` + * - `crypto.constants.ENGINE_METHOD_CIPHERS` + * - `crypto.constants.ENGINE_METHOD_DIGESTS` + * - `crypto.constants.ENGINE_METHOD_PKEY_METHS` + * - `crypto.constants.ENGINE_METHOD_PKEY_ASN1_METHS` + * - `crypto.constants.ENGINE_METHOD_ALL` + * - `crypto.constants.ENGINE_METHOD_NONE` + * + * The flags below are deprecated in OpenSSL-1.1.0. + * + * - `crypto.constants.ENGINE_METHOD_ECDH` + * - `crypto.constants.ENGINE_METHOD_ECDSA` + * - `crypto.constants.ENGINE_METHOD_STORE` + * @since v0.11.11 + * @param [flags=crypto.constants.ENGINE_METHOD_ALL] + */ + function setEngine(engine: string, flags?: number): void; + /** + * A convenient alias for `crypto.webcrypto.getRandomValues()`. + * This implementation is not compliant with the Web Crypto spec, + * to write web-compatible code use `crypto.webcrypto.getRandomValues()` instead. + * @since v17.4.0 + * @returns Returns `typedArray`. + */ + function getRandomValues(typedArray: T): T; + /** + * A convenient alias for `crypto.webcrypto.subtle`. + * @since v17.4.0 + */ + const subtle: webcrypto.SubtleCrypto; + /** + * An implementation of the Web Crypto API standard. + * + * See the {@link https://nodejs.org/docs/latest/api/webcrypto.html Web Crypto API documentation} for details. + * @since v15.0.0 + */ + const webcrypto: webcrypto.Crypto; + namespace webcrypto { + type BufferSource = ArrayBufferView | ArrayBuffer; + type KeyFormat = 'jwk' | 'pkcs8' | 'raw' | 'spki'; + type KeyType = 'private' | 'public' | 'secret'; + type KeyUsage = 'decrypt' | 'deriveBits' | 'deriveKey' | 'encrypt' | 'sign' | 'unwrapKey' | 'verify' | 'wrapKey'; + type AlgorithmIdentifier = Algorithm | string; + type HashAlgorithmIdentifier = AlgorithmIdentifier; + type NamedCurve = string; + type BigInteger = Uint8Array; + interface AesCbcParams extends Algorithm { + iv: BufferSource; + } + interface AesCtrParams extends Algorithm { + counter: BufferSource; + length: number; + } + interface AesDerivedKeyParams extends Algorithm { + length: number; + } + interface AesGcmParams extends Algorithm { + additionalData?: BufferSource; + iv: BufferSource; + tagLength?: number; + } + interface AesKeyAlgorithm extends KeyAlgorithm { + length: number; + } + interface AesKeyGenParams extends Algorithm { + length: number; + } + interface Algorithm { + name: string; + } + interface EcKeyAlgorithm extends KeyAlgorithm { + namedCurve: NamedCurve; + } + interface EcKeyGenParams extends Algorithm { + namedCurve: NamedCurve; + } + interface EcKeyImportParams extends Algorithm { + namedCurve: NamedCurve; + } + interface EcdhKeyDeriveParams extends Algorithm { + public: CryptoKey; + } + interface EcdsaParams extends Algorithm { + hash: HashAlgorithmIdentifier; + } + interface Ed448Params extends Algorithm { + context?: BufferSource; + } + interface HkdfParams extends Algorithm { + hash: HashAlgorithmIdentifier; + info: BufferSource; + salt: BufferSource; + } + interface HmacImportParams extends Algorithm { + hash: HashAlgorithmIdentifier; + length?: number; + } + interface HmacKeyAlgorithm extends KeyAlgorithm { + hash: KeyAlgorithm; + length: number; + } + interface HmacKeyGenParams extends Algorithm { + hash: HashAlgorithmIdentifier; + length?: number; + } + interface JsonWebKey { + alg?: string; + crv?: string; + d?: string; + dp?: string; + dq?: string; + e?: string; + ext?: boolean; + k?: string; + key_ops?: string[]; + kty?: string; + n?: string; + oth?: RsaOtherPrimesInfo[]; + p?: string; + q?: string; + qi?: string; + use?: string; + x?: string; + y?: string; + } + interface KeyAlgorithm { + name: string; + } + interface Pbkdf2Params extends Algorithm { + hash: HashAlgorithmIdentifier; + iterations: number; + salt: BufferSource; + } + interface RsaHashedImportParams extends Algorithm { + hash: HashAlgorithmIdentifier; + } + interface RsaHashedKeyAlgorithm extends RsaKeyAlgorithm { + hash: KeyAlgorithm; + } + interface RsaHashedKeyGenParams extends RsaKeyGenParams { + hash: HashAlgorithmIdentifier; + } + interface RsaKeyAlgorithm extends KeyAlgorithm { + modulusLength: number; + publicExponent: BigInteger; + } + interface RsaKeyGenParams extends Algorithm { + modulusLength: number; + publicExponent: BigInteger; + } + interface RsaOaepParams extends Algorithm { + label?: BufferSource; + } + interface RsaOtherPrimesInfo { + d?: string; + r?: string; + t?: string; + } + interface RsaPssParams extends Algorithm { + saltLength: number; + } + /** + * Calling `require('node:crypto').webcrypto` returns an instance of the `Crypto` class. + * `Crypto` is a singleton that provides access to the remainder of the crypto API. + * @since v15.0.0 + */ + interface Crypto { + /** + * Provides access to the `SubtleCrypto` API. + * @since v15.0.0 + */ + readonly subtle: SubtleCrypto; + /** + * Generates cryptographically strong random values. + * The given `typedArray` is filled with random values, and a reference to `typedArray` is returned. + * + * The given `typedArray` must be an integer-based instance of {@link NodeJS.TypedArray}, i.e. `Float32Array` and `Float64Array` are not accepted. + * + * An error will be thrown if the given `typedArray` is larger than 65,536 bytes. + * @since v15.0.0 + */ + getRandomValues>(typedArray: T): T; + /** + * Generates a random {@link https://www.rfc-editor.org/rfc/rfc4122.txt RFC 4122} version 4 UUID. + * The UUID is generated using a cryptographic pseudorandom number generator. + * @since v16.7.0 + */ + randomUUID(): string; + CryptoKey: CryptoKeyConstructor; + } + // This constructor throws ILLEGAL_CONSTRUCTOR so it should not be newable. + interface CryptoKeyConstructor { + /** Illegal constructor */ + (_: { readonly _: unique symbol }): never; // Allows instanceof to work but not be callable by the user. + readonly length: 0; + readonly name: 'CryptoKey'; + readonly prototype: CryptoKey; + } + /** + * @since v15.0.0 + */ + interface CryptoKey { + /** + * An object detailing the algorithm for which the key can be used along with additional algorithm-specific parameters. + * @since v15.0.0 + */ + readonly algorithm: KeyAlgorithm; + /** + * When `true`, the {@link CryptoKey} can be extracted using either `subtleCrypto.exportKey()` or `subtleCrypto.wrapKey()`. + * @since v15.0.0 + */ + readonly extractable: boolean; + /** + * A string identifying whether the key is a symmetric (`'secret'`) or asymmetric (`'private'` or `'public'`) key. + * @since v15.0.0 + */ + readonly type: KeyType; + /** + * An array of strings identifying the operations for which the key may be used. + * + * The possible usages are: + * - `'encrypt'` - The key may be used to encrypt data. + * - `'decrypt'` - The key may be used to decrypt data. + * - `'sign'` - The key may be used to generate digital signatures. + * - `'verify'` - The key may be used to verify digital signatures. + * - `'deriveKey'` - The key may be used to derive a new key. + * - `'deriveBits'` - The key may be used to derive bits. + * - `'wrapKey'` - The key may be used to wrap another key. + * - `'unwrapKey'` - The key may be used to unwrap another key. + * + * Valid key usages depend on the key algorithm (identified by `cryptokey.algorithm.name`). + * @since v15.0.0 + */ + readonly usages: KeyUsage[]; + } + /** + * The `CryptoKeyPair` is a simple dictionary object with `publicKey` and `privateKey` properties, representing an asymmetric key pair. + * @since v15.0.0 + */ + interface CryptoKeyPair { + /** + * A {@link CryptoKey} whose type will be `'private'`. + * @since v15.0.0 + */ + privateKey: CryptoKey; + /** + * A {@link CryptoKey} whose type will be `'public'`. + * @since v15.0.0 + */ + publicKey: CryptoKey; + } + /** + * @since v15.0.0 + */ + interface SubtleCrypto { + /** + * Using the method and parameters specified in `algorithm` and the keying material provided by `key`, + * `subtle.decrypt()` attempts to decipher the provided `data`. If successful, + * the returned promise will be resolved with an `` containing the plaintext result. + * + * The algorithms currently supported include: + * + * - `'RSA-OAEP'` + * - `'AES-CTR'` + * - `'AES-CBC'` + * - `'AES-GCM'` + * @since v15.0.0 + */ + decrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise; + /** + * Using the method and parameters specified in `algorithm` and the keying material provided by `baseKey`, + * `subtle.deriveBits()` attempts to generate `length` bits. + * The Node.js implementation requires that when `length` is a number it must be multiple of `8`. + * When `length` is `null` the maximum number of bits for a given algorithm is generated. This is allowed + * for the `'ECDH'`, `'X25519'`, and `'X448'` algorithms. + * If successful, the returned promise will be resolved with an `` containing the generated data. + * + * The algorithms currently supported include: + * + * - `'ECDH'` + * - `'X25519'` + * - `'X448'` + * - `'HKDF'` + * - `'PBKDF2'` + * @since v15.0.0 + */ + deriveBits(algorithm: EcdhKeyDeriveParams, baseKey: CryptoKey, length: number | null): Promise; + deriveBits(algorithm: AlgorithmIdentifier | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, length: number): Promise; + /** + * Using the method and parameters specified in `algorithm`, and the keying material provided by `baseKey`, + * `subtle.deriveKey()` attempts to generate a new ` based on the method and parameters in `derivedKeyAlgorithm`. + * + * Calling `subtle.deriveKey()` is equivalent to calling `subtle.deriveBits()` to generate raw keying material, + * then passing the result into the `subtle.importKey()` method using the `deriveKeyAlgorithm`, `extractable`, and `keyUsages` parameters as input. + * + * The algorithms currently supported include: + * + * - `'ECDH'` + * - `'X25519'` + * - `'X448'` + * - `'HKDF'` + * - `'PBKDF2'` + * @param keyUsages See {@link https://nodejs.org/docs/latest/api/webcrypto.html#cryptokeyusages Key usages}. + * @since v15.0.0 + */ + deriveKey( + algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, + baseKey: CryptoKey, + derivedKeyAlgorithm: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, + extractable: boolean, + keyUsages: ReadonlyArray + ): Promise; + /** + * Using the method identified by `algorithm`, `subtle.digest()` attempts to generate a digest of `data`. + * If successful, the returned promise is resolved with an `` containing the computed digest. + * + * If `algorithm` is provided as a ``, it must be one of: + * + * - `'SHA-1'` + * - `'SHA-256'` + * - `'SHA-384'` + * - `'SHA-512'` + * + * If `algorithm` is provided as an ``, it must have a `name` property whose value is one of the above. + * @since v15.0.0 + */ + digest(algorithm: AlgorithmIdentifier, data: BufferSource): Promise; + /** + * Using the method and parameters specified by `algorithm` and the keying material provided by `key`, + * `subtle.encrypt()` attempts to encipher `data`. If successful, + * the returned promise is resolved with an `` containing the encrypted result. + * + * The algorithms currently supported include: + * + * - `'RSA-OAEP'` + * - `'AES-CTR'` + * - `'AES-CBC'` + * - `'AES-GCM'` + * @since v15.0.0 + */ + encrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise; + /** + * Exports the given key into the specified format, if supported. + * + * If the `` is not extractable, the returned promise will reject. + * + * When `format` is either `'pkcs8'` or `'spki'` and the export is successful, + * the returned promise will be resolved with an `` containing the exported key data. + * + * When `format` is `'jwk'` and the export is successful, the returned promise will be resolved with a + * JavaScript object conforming to the {@link https://tools.ietf.org/html/rfc7517 JSON Web Key} specification. + * @param format Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`. + * @returns `` containing ``. + * @since v15.0.0 + */ + exportKey(format: 'jwk', key: CryptoKey): Promise; + exportKey(format: Exclude, key: CryptoKey): Promise; + /** + * Using the method and parameters provided in `algorithm`, + * `subtle.generateKey()` attempts to generate new keying material. + * Depending the method used, the method may generate either a single `` or a ``. + * + * The `` (public and private key) generating algorithms supported include: + * + * - `'RSASSA-PKCS1-v1_5'` + * - `'RSA-PSS'` + * - `'RSA-OAEP'` + * - `'ECDSA'` + * - `'Ed25519'` + * - `'Ed448'` + * - `'ECDH'` + * - `'X25519'` + * - `'X448'` + * The `` (secret key) generating algorithms supported include: + * + * - `'HMAC'` + * - `'AES-CTR'` + * - `'AES-CBC'` + * - `'AES-GCM'` + * - `'AES-KW'` + * @param keyUsages See {@link https://nodejs.org/docs/latest/api/webcrypto.html#cryptokeyusages Key usages}. + * @since v15.0.0 + */ + generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray): Promise; + generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray): Promise; + generateKey(algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[]): Promise; + /** + * The `subtle.importKey()` method attempts to interpret the provided `keyData` as the given `format` + * to create a `` instance using the provided `algorithm`, `extractable`, and `keyUsages` arguments. + * If the import is successful, the returned promise will be resolved with the created ``. + * + * If importing a `'PBKDF2'` key, `extractable` must be `false`. + * @param format Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`. + * @param keyUsages See {@link https://nodejs.org/docs/latest/api/webcrypto.html#cryptokeyusages Key usages}. + * @since v15.0.0 + */ + importKey( + format: 'jwk', + keyData: JsonWebKey, + algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, + extractable: boolean, + keyUsages: ReadonlyArray + ): Promise; + importKey( + format: Exclude, + keyData: BufferSource, + algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, + extractable: boolean, + keyUsages: KeyUsage[] + ): Promise; + /** + * Using the method and parameters given by `algorithm` and the keying material provided by `key`, + * `subtle.sign()` attempts to generate a cryptographic signature of `data`. If successful, + * the returned promise is resolved with an `` containing the generated signature. + * + * The algorithms currently supported include: + * + * - `'RSASSA-PKCS1-v1_5'` + * - `'RSA-PSS'` + * - `'ECDSA'` + * - `'Ed25519'` + * - `'Ed448'` + * - `'HMAC'` + * @since v15.0.0 + */ + sign(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams | Ed448Params, key: CryptoKey, data: BufferSource): Promise; + /** + * In cryptography, "wrapping a key" refers to exporting and then encrypting the keying material. + * The `subtle.unwrapKey()` method attempts to decrypt a wrapped key and create a `` instance. + * It is equivalent to calling `subtle.decrypt()` first on the encrypted key data (using the `wrappedKey`, `unwrapAlgo`, and `unwrappingKey` arguments as input) + * then passing the results in to the `subtle.importKey()` method using the `unwrappedKeyAlgo`, `extractable`, and `keyUsages` arguments as inputs. + * If successful, the returned promise is resolved with a `` object. + * + * The wrapping algorithms currently supported include: + * + * - `'RSA-OAEP'` + * - `'AES-CTR'` + * - `'AES-CBC'` + * - `'AES-GCM'` + * - `'AES-KW'` + * + * The unwrapped key algorithms supported include: + * + * - `'RSASSA-PKCS1-v1_5'` + * - `'RSA-PSS'` + * - `'RSA-OAEP'` + * - `'ECDSA'` + * - `'Ed25519'` + * - `'Ed448'` + * - `'ECDH'` + * - `'X25519'` + * - `'X448'` + * - `'HMAC'` + * - `'AES-CTR'` + * - `'AES-CBC'` + * - `'AES-GCM'` + * - `'AES-KW'` + * @param format Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`. + * @param keyUsages See {@link https://nodejs.org/docs/latest/api/webcrypto.html#cryptokeyusages Key usages}. + * @since v15.0.0 + */ + unwrapKey( + format: KeyFormat, + wrappedKey: BufferSource, + unwrappingKey: CryptoKey, + unwrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, + unwrappedKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, + extractable: boolean, + keyUsages: KeyUsage[] + ): Promise; + /** + * Using the method and parameters given in `algorithm` and the keying material provided by `key`, + * `subtle.verify()` attempts to verify that `signature` is a valid cryptographic signature of `data`. + * The returned promise is resolved with either `true` or `false`. + * + * The algorithms currently supported include: + * + * - `'RSASSA-PKCS1-v1_5'` + * - `'RSA-PSS'` + * - `'ECDSA'` + * - `'Ed25519'` + * - `'Ed448'` + * - `'HMAC'` + * @since v15.0.0 + */ + verify(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams | Ed448Params, key: CryptoKey, signature: BufferSource, data: BufferSource): Promise; + /** + * In cryptography, "wrapping a key" refers to exporting and then encrypting the keying material. + * The `subtle.wrapKey()` method exports the keying material into the format identified by `format`, + * then encrypts it using the method and parameters specified by `wrapAlgo` and the keying material provided by `wrappingKey`. + * It is the equivalent to calling `subtle.exportKey()` using `format` and `key` as the arguments, + * then passing the result to the `subtle.encrypt()` method using `wrappingKey` and `wrapAlgo` as inputs. + * If successful, the returned promise will be resolved with an `` containing the encrypted key data. + * + * The wrapping algorithms currently supported include: + * + * - `'RSA-OAEP'` + * - `'AES-CTR'` + * - `'AES-CBC'` + * - `'AES-GCM'` + * - `'AES-KW'` + * @param format Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`. + * @since v15.0.0 + */ + wrapKey(format: KeyFormat, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams): Promise; + } + } +} +declare module 'node:crypto' { + export * from 'crypto'; +} diff --git a/node_modules/@types/node/dgram.d.ts b/node_modules/@types/node/dgram.d.ts new file mode 100644 index 0000000..247328d --- /dev/null +++ b/node_modules/@types/node/dgram.d.ts @@ -0,0 +1,545 @@ +/** + * The `dgram` module provides an implementation of UDP datagram sockets. + * + * ```js + * import dgram from 'dgram'; + * + * const server = dgram.createSocket('udp4'); + * + * server.on('error', (err) => { + * console.log(`server error:\n${err.stack}`); + * server.close(); + * }); + * + * server.on('message', (msg, rinfo) => { + * console.log(`server got: ${msg} from ${rinfo.address}:${rinfo.port}`); + * }); + * + * server.on('listening', () => { + * const address = server.address(); + * console.log(`server listening ${address.address}:${address.port}`); + * }); + * + * server.bind(41234); + * // Prints: server listening 0.0.0.0:41234 + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/dgram.js) + */ +declare module 'dgram' { + import { AddressInfo } from 'node:net'; + import * as dns from 'node:dns'; + import { EventEmitter, Abortable } from 'node:events'; + interface RemoteInfo { + address: string; + family: 'IPv4' | 'IPv6'; + port: number; + size: number; + } + interface BindOptions { + port?: number | undefined; + address?: string | undefined; + exclusive?: boolean | undefined; + fd?: number | undefined; + } + type SocketType = 'udp4' | 'udp6'; + interface SocketOptions extends Abortable { + type: SocketType; + reuseAddr?: boolean | undefined; + /** + * @default false + */ + ipv6Only?: boolean | undefined; + recvBufferSize?: number | undefined; + sendBufferSize?: number | undefined; + lookup?: ((hostname: string, options: dns.LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void) => void) | undefined; + } + /** + * Creates a `dgram.Socket` object. Once the socket is created, calling `socket.bind()` will instruct the socket to begin listening for datagram + * messages. When `address` and `port` are not passed to `socket.bind()` the + * method will bind the socket to the "all interfaces" address on a random port + * (it does the right thing for both `udp4` and `udp6` sockets). The bound address + * and port can be retrieved using `socket.address().address` and `socket.address().port`. + * + * If the `signal` option is enabled, calling `.abort()` on the corresponding`AbortController` is similar to calling `.close()` on the socket: + * + * ```js + * const controller = new AbortController(); + * const { signal } = controller; + * const server = dgram.createSocket({ type: 'udp4', signal }); + * server.on('message', (msg, rinfo) => { + * console.log(`server got: ${msg} from ${rinfo.address}:${rinfo.port}`); + * }); + * // Later, when you want to close the server. + * controller.abort(); + * ``` + * @since v0.11.13 + * @param options Available options are: + * @param callback Attached as a listener for `'message'` events. Optional. + */ + function createSocket(type: SocketType, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket; + function createSocket(options: SocketOptions, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket; + /** + * Encapsulates the datagram functionality. + * + * New instances of `dgram.Socket` are created using {@link createSocket}. + * The `new` keyword is not to be used to create `dgram.Socket` instances. + * @since v0.1.99 + */ + class Socket extends EventEmitter { + /** + * Tells the kernel to join a multicast group at the given `multicastAddress` and`multicastInterface` using the `IP_ADD_MEMBERSHIP` socket option. If the`multicastInterface` argument is not + * specified, the operating system will choose + * one interface and will add membership to it. To add membership to every + * available interface, call `addMembership` multiple times, once per interface. + * + * When called on an unbound socket, this method will implicitly bind to a random + * port, listening on all interfaces. + * + * When sharing a UDP socket across multiple `cluster` workers, the`socket.addMembership()` function must be called only once or an`EADDRINUSE` error will occur: + * + * ```js + * import cluster from 'cluster'; + * import dgram from 'dgram'; + * + * if (cluster.isPrimary) { + * cluster.fork(); // Works ok. + * cluster.fork(); // Fails with EADDRINUSE. + * } else { + * const s = dgram.createSocket('udp4'); + * s.bind(1234, () => { + * s.addMembership('224.0.0.114'); + * }); + * } + * ``` + * @since v0.6.9 + */ + addMembership(multicastAddress: string, multicastInterface?: string): void; + /** + * Returns an object containing the address information for a socket. + * For UDP sockets, this object will contain `address`, `family` and `port`properties. + * + * This method throws `EBADF` if called on an unbound socket. + * @since v0.1.99 + */ + address(): AddressInfo; + /** + * For UDP sockets, causes the `dgram.Socket` to listen for datagram + * messages on a named `port` and optional `address`. If `port` is not + * specified or is `0`, the operating system will attempt to bind to a + * random port. If `address` is not specified, the operating system will + * attempt to listen on all addresses. Once binding is complete, a`'listening'` event is emitted and the optional `callback` function is + * called. + * + * Specifying both a `'listening'` event listener and passing a`callback` to the `socket.bind()` method is not harmful but not very + * useful. + * + * A bound datagram socket keeps the Node.js process running to receive + * datagram messages. + * + * If binding fails, an `'error'` event is generated. In rare case (e.g. + * attempting to bind with a closed socket), an `Error` may be thrown. + * + * Example of a UDP server listening on port 41234: + * + * ```js + * import dgram from 'dgram'; + * + * const server = dgram.createSocket('udp4'); + * + * server.on('error', (err) => { + * console.log(`server error:\n${err.stack}`); + * server.close(); + * }); + * + * server.on('message', (msg, rinfo) => { + * console.log(`server got: ${msg} from ${rinfo.address}:${rinfo.port}`); + * }); + * + * server.on('listening', () => { + * const address = server.address(); + * console.log(`server listening ${address.address}:${address.port}`); + * }); + * + * server.bind(41234); + * // Prints: server listening 0.0.0.0:41234 + * ``` + * @since v0.1.99 + * @param callback with no parameters. Called when binding is complete. + */ + bind(port?: number, address?: string, callback?: () => void): this; + bind(port?: number, callback?: () => void): this; + bind(callback?: () => void): this; + bind(options: BindOptions, callback?: () => void): this; + /** + * Close the underlying socket and stop listening for data on it. If a callback is + * provided, it is added as a listener for the `'close'` event. + * @since v0.1.99 + * @param callback Called when the socket has been closed. + */ + close(callback?: () => void): this; + /** + * Associates the `dgram.Socket` to a remote address and port. Every + * message sent by this handle is automatically sent to that destination. Also, + * the socket will only receive messages from that remote peer. + * Trying to call `connect()` on an already connected socket will result + * in an `ERR_SOCKET_DGRAM_IS_CONNECTED` exception. If `address` is not + * provided, `'127.0.0.1'` (for `udp4` sockets) or `'::1'` (for `udp6` sockets) + * will be used by default. Once the connection is complete, a `'connect'` event + * is emitted and the optional `callback` function is called. In case of failure, + * the `callback` is called or, failing this, an `'error'` event is emitted. + * @since v12.0.0 + * @param callback Called when the connection is completed or on error. + */ + connect(port: number, address?: string, callback?: () => void): void; + connect(port: number, callback: () => void): void; + /** + * A synchronous function that disassociates a connected `dgram.Socket` from + * its remote address. Trying to call `disconnect()` on an unbound or already + * disconnected socket will result in an `ERR_SOCKET_DGRAM_NOT_CONNECTED` exception. + * @since v12.0.0 + */ + disconnect(): void; + /** + * Instructs the kernel to leave a multicast group at `multicastAddress` using the`IP_DROP_MEMBERSHIP` socket option. This method is automatically called by the + * kernel when the socket is closed or the process terminates, so most apps will + * never have reason to call this. + * + * If `multicastInterface` is not specified, the operating system will attempt to + * drop membership on all valid interfaces. + * @since v0.6.9 + */ + dropMembership(multicastAddress: string, multicastInterface?: string): void; + /** + * This method throws `ERR_SOCKET_BUFFER_SIZE` if called on an unbound socket. + * @since v8.7.0 + * @return the `SO_RCVBUF` socket receive buffer size in bytes. + */ + getRecvBufferSize(): number; + /** + * This method throws `ERR_SOCKET_BUFFER_SIZE` if called on an unbound socket. + * @since v8.7.0 + * @return the `SO_SNDBUF` socket send buffer size in bytes. + */ + getSendBufferSize(): number; + /** + * By default, binding a socket will cause it to block the Node.js process from + * exiting as long as the socket is open. The `socket.unref()` method can be used + * to exclude the socket from the reference counting that keeps the Node.js + * process active. The `socket.ref()` method adds the socket back to the reference + * counting and restores the default behavior. + * + * Calling `socket.ref()` multiples times will have no additional effect. + * + * The `socket.ref()` method returns a reference to the socket so calls can be + * chained. + * @since v0.9.1 + */ + ref(): this; + /** + * Returns an object containing the `address`, `family`, and `port` of the remote + * endpoint. This method throws an `ERR_SOCKET_DGRAM_NOT_CONNECTED` exception + * if the socket is not connected. + * @since v12.0.0 + */ + remoteAddress(): AddressInfo; + /** + * Broadcasts a datagram on the socket. + * For connectionless sockets, the destination `port` and `address` must be + * specified. Connected sockets, on the other hand, will use their associated + * remote endpoint, so the `port` and `address` arguments must not be set. + * + * The `msg` argument contains the message to be sent. + * Depending on its type, different behavior can apply. If `msg` is a `Buffer`, + * any `TypedArray` or a `DataView`, + * the `offset` and `length` specify the offset within the `Buffer` where the + * message begins and the number of bytes in the message, respectively. + * If `msg` is a `String`, then it is automatically converted to a `Buffer`with `'utf8'` encoding. With messages that + * contain multi-byte characters, `offset` and `length` will be calculated with + * respect to `byte length` and not the character position. + * If `msg` is an array, `offset` and `length` must not be specified. + * + * The `address` argument is a string. If the value of `address` is a host name, + * DNS will be used to resolve the address of the host. If `address` is not + * provided or otherwise nullish, `'127.0.0.1'` (for `udp4` sockets) or `'::1'`(for `udp6` sockets) will be used by default. + * + * If the socket has not been previously bound with a call to `bind`, the socket + * is assigned a random port number and is bound to the "all interfaces" address + * (`'0.0.0.0'` for `udp4` sockets, `'::0'` for `udp6` sockets.) + * + * An optional `callback` function may be specified to as a way of reporting + * DNS errors or for determining when it is safe to reuse the `buf` object. + * DNS lookups delay the time to send for at least one tick of the + * Node.js event loop. + * + * The only way to know for sure that the datagram has been sent is by using a`callback`. If an error occurs and a `callback` is given, the error will be + * passed as the first argument to the `callback`. If a `callback` is not given, + * the error is emitted as an `'error'` event on the `socket` object. + * + * Offset and length are optional but both _must_ be set if either are used. + * They are supported only when the first argument is a `Buffer`, a `TypedArray`, + * or a `DataView`. + * + * This method throws `ERR_SOCKET_BAD_PORT` if called on an unbound socket. + * + * Example of sending a UDP packet to a port on `localhost`; + * + * ```js + * import dgram from 'dgram'; + * import { Buffer } from 'buffer'; + * + * const message = Buffer.from('Some bytes'); + * const client = dgram.createSocket('udp4'); + * client.send(message, 41234, 'localhost', (err) => { + * client.close(); + * }); + * ``` + * + * Example of sending a UDP packet composed of multiple buffers to a port on`127.0.0.1`; + * + * ```js + * import dgram from 'dgram'; + * import { Buffer } from 'buffer'; + * + * const buf1 = Buffer.from('Some '); + * const buf2 = Buffer.from('bytes'); + * const client = dgram.createSocket('udp4'); + * client.send([buf1, buf2], 41234, (err) => { + * client.close(); + * }); + * ``` + * + * Sending multiple buffers might be faster or slower depending on the + * application and operating system. Run benchmarks to + * determine the optimal strategy on a case-by-case basis. Generally speaking, + * however, sending multiple buffers is faster. + * + * Example of sending a UDP packet using a socket connected to a port on`localhost`: + * + * ```js + * import dgram from 'dgram'; + * import { Buffer } from 'buffer'; + * + * const message = Buffer.from('Some bytes'); + * const client = dgram.createSocket('udp4'); + * client.connect(41234, 'localhost', (err) => { + * client.send(message, (err) => { + * client.close(); + * }); + * }); + * ``` + * @since v0.1.99 + * @param msg Message to be sent. + * @param offset Offset in the buffer where the message starts. + * @param length Number of bytes in the message. + * @param port Destination port. + * @param address Destination host name or IP address. + * @param callback Called when the message has been sent. + */ + send(msg: string | Uint8Array | ReadonlyArray, port?: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void; + send(msg: string | Uint8Array | ReadonlyArray, port?: number, callback?: (error: Error | null, bytes: number) => void): void; + send(msg: string | Uint8Array | ReadonlyArray, callback?: (error: Error | null, bytes: number) => void): void; + send(msg: string | Uint8Array, offset: number, length: number, port?: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void; + send(msg: string | Uint8Array, offset: number, length: number, port?: number, callback?: (error: Error | null, bytes: number) => void): void; + send(msg: string | Uint8Array, offset: number, length: number, callback?: (error: Error | null, bytes: number) => void): void; + /** + * Sets or clears the `SO_BROADCAST` socket option. When set to `true`, UDP + * packets may be sent to a local interface's broadcast address. + * + * This method throws `EBADF` if called on an unbound socket. + * @since v0.6.9 + */ + setBroadcast(flag: boolean): void; + /** + * _All references to scope in this section are referring to [IPv6 Zone Indices](https://en.wikipedia.org/wiki/IPv6_address#Scoped_literal_IPv6_addresses), which are defined by [RFC + * 4007](https://tools.ietf.org/html/rfc4007). In string form, an IP_ + * _with a scope index is written as `'IP%scope'` where scope is an interface name_ + * _or interface number._ + * + * Sets the default outgoing multicast interface of the socket to a chosen + * interface or back to system interface selection. The `multicastInterface` must + * be a valid string representation of an IP from the socket's family. + * + * For IPv4 sockets, this should be the IP configured for the desired physical + * interface. All packets sent to multicast on the socket will be sent on the + * interface determined by the most recent successful use of this call. + * + * For IPv6 sockets, `multicastInterface` should include a scope to indicate the + * interface as in the examples that follow. In IPv6, individual `send` calls can + * also use explicit scope in addresses, so only packets sent to a multicast + * address without specifying an explicit scope are affected by the most recent + * successful use of this call. + * + * This method throws `EBADF` if called on an unbound socket. + * + * #### Example: IPv6 outgoing multicast interface + * + * On most systems, where scope format uses the interface name: + * + * ```js + * const socket = dgram.createSocket('udp6'); + * + * socket.bind(1234, () => { + * socket.setMulticastInterface('::%eth1'); + * }); + * ``` + * + * On Windows, where scope format uses an interface number: + * + * ```js + * const socket = dgram.createSocket('udp6'); + * + * socket.bind(1234, () => { + * socket.setMulticastInterface('::%2'); + * }); + * ``` + * + * #### Example: IPv4 outgoing multicast interface + * + * All systems use an IP of the host on the desired physical interface: + * + * ```js + * const socket = dgram.createSocket('udp4'); + * + * socket.bind(1234, () => { + * socket.setMulticastInterface('10.0.0.2'); + * }); + * ``` + * @since v8.6.0 + */ + setMulticastInterface(multicastInterface: string): void; + /** + * Sets or clears the `IP_MULTICAST_LOOP` socket option. When set to `true`, + * multicast packets will also be received on the local interface. + * + * This method throws `EBADF` if called on an unbound socket. + * @since v0.3.8 + */ + setMulticastLoopback(flag: boolean): boolean; + /** + * Sets the `IP_MULTICAST_TTL` socket option. While TTL generally stands for + * "Time to Live", in this context it specifies the number of IP hops that a + * packet is allowed to travel through, specifically for multicast traffic. Each + * router or gateway that forwards a packet decrements the TTL. If the TTL is + * decremented to 0 by a router, it will not be forwarded. + * + * The `ttl` argument may be between 0 and 255\. The default on most systems is `1`. + * + * This method throws `EBADF` if called on an unbound socket. + * @since v0.3.8 + */ + setMulticastTTL(ttl: number): number; + /** + * Sets the `SO_RCVBUF` socket option. Sets the maximum socket receive buffer + * in bytes. + * + * This method throws `ERR_SOCKET_BUFFER_SIZE` if called on an unbound socket. + * @since v8.7.0 + */ + setRecvBufferSize(size: number): void; + /** + * Sets the `SO_SNDBUF` socket option. Sets the maximum socket send buffer + * in bytes. + * + * This method throws `ERR_SOCKET_BUFFER_SIZE` if called on an unbound socket. + * @since v8.7.0 + */ + setSendBufferSize(size: number): void; + /** + * Sets the `IP_TTL` socket option. While TTL generally stands for "Time to Live", + * in this context it specifies the number of IP hops that a packet is allowed to + * travel through. Each router or gateway that forwards a packet decrements the + * TTL. If the TTL is decremented to 0 by a router, it will not be forwarded. + * Changing TTL values is typically done for network probes or when multicasting. + * + * The `ttl` argument may be between 1 and 255\. The default on most systems + * is 64. + * + * This method throws `EBADF` if called on an unbound socket. + * @since v0.1.101 + */ + setTTL(ttl: number): number; + /** + * By default, binding a socket will cause it to block the Node.js process from + * exiting as long as the socket is open. The `socket.unref()` method can be used + * to exclude the socket from the reference counting that keeps the Node.js + * process active, allowing the process to exit even if the socket is still + * listening. + * + * Calling `socket.unref()` multiple times will have no addition effect. + * + * The `socket.unref()` method returns a reference to the socket so calls can be + * chained. + * @since v0.9.1 + */ + unref(): this; + /** + * Tells the kernel to join a source-specific multicast channel at the given`sourceAddress` and `groupAddress`, using the `multicastInterface` with the`IP_ADD_SOURCE_MEMBERSHIP` socket + * option. If the `multicastInterface` argument + * is not specified, the operating system will choose one interface and will add + * membership to it. To add membership to every available interface, call`socket.addSourceSpecificMembership()` multiple times, once per interface. + * + * When called on an unbound socket, this method will implicitly bind to a random + * port, listening on all interfaces. + * @since v13.1.0, v12.16.0 + */ + addSourceSpecificMembership(sourceAddress: string, groupAddress: string, multicastInterface?: string): void; + /** + * Instructs the kernel to leave a source-specific multicast channel at the given`sourceAddress` and `groupAddress` using the `IP_DROP_SOURCE_MEMBERSHIP`socket option. This method is + * automatically called by the kernel when the + * socket is closed or the process terminates, so most apps will never have + * reason to call this. + * + * If `multicastInterface` is not specified, the operating system will attempt to + * drop membership on all valid interfaces. + * @since v13.1.0, v12.16.0 + */ + dropSourceSpecificMembership(sourceAddress: string, groupAddress: string, multicastInterface?: string): void; + /** + * events.EventEmitter + * 1. close + * 2. connect + * 3. error + * 4. listening + * 5. message + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'connect', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'listening', listener: () => void): this; + addListener(event: 'message', listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'close'): boolean; + emit(event: 'connect'): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'listening'): boolean; + emit(event: 'message', msg: Buffer, rinfo: RemoteInfo): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'connect', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'listening', listener: () => void): this; + on(event: 'message', listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'connect', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'listening', listener: () => void): this; + once(event: 'message', listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'connect', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'listening', listener: () => void): this; + prependListener(event: 'message', listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'connect', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'listening', listener: () => void): this; + prependOnceListener(event: 'message', listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; + } +} +declare module 'node:dgram' { + export * from 'dgram'; +} diff --git a/node_modules/@types/node/diagnostics_channel.d.ts b/node_modules/@types/node/diagnostics_channel.d.ts new file mode 100644 index 0000000..3dcaa03 --- /dev/null +++ b/node_modules/@types/node/diagnostics_channel.d.ts @@ -0,0 +1,153 @@ +/** + * The `diagnostics_channel` module provides an API to create named channels + * to report arbitrary message data for diagnostics purposes. + * + * It can be accessed using: + * + * ```js + * import diagnostics_channel from 'diagnostics_channel'; + * ``` + * + * It is intended that a module writer wanting to report diagnostics messages + * will create one or many top-level channels to report messages through. + * Channels may also be acquired at runtime but it is not encouraged + * due to the additional overhead of doing so. Channels may be exported for + * convenience, but as long as the name is known it can be acquired anywhere. + * + * If you intend for your module to produce diagnostics data for others to + * consume it is recommended that you include documentation of what named + * channels are used along with the shape of the message data. Channel names + * should generally include the module name to avoid collisions with data from + * other modules. + * @experimental + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/diagnostics_channel.js) + */ +declare module 'diagnostics_channel' { + /** + * Check if there are active subscribers to the named channel. This is helpful if + * the message you want to send might be expensive to prepare. + * + * This API is optional but helpful when trying to publish messages from very + * performance-sensitive code. + * + * ```js + * import diagnostics_channel from 'diagnostics_channel'; + * + * if (diagnostics_channel.hasSubscribers('my-channel')) { + * // There are subscribers, prepare and publish message + * } + * ``` + * @since v15.1.0, v14.17.0 + * @param name The channel name + * @return If there are active subscribers + */ + function hasSubscribers(name: string | symbol): boolean; + /** + * This is the primary entry-point for anyone wanting to interact with a named + * channel. It produces a channel object which is optimized to reduce overhead at + * publish time as much as possible. + * + * ```js + * import diagnostics_channel from 'diagnostics_channel'; + * + * const channel = diagnostics_channel.channel('my-channel'); + * ``` + * @since v15.1.0, v14.17.0 + * @param name The channel name + * @return The named channel object + */ + function channel(name: string | symbol): Channel; + type ChannelListener = (message: unknown, name: string | symbol) => void; + /** + * The class `Channel` represents an individual named channel within the data + * pipeline. It is use to track subscribers and to publish messages when there + * are subscribers present. It exists as a separate object to avoid channel + * lookups at publish time, enabling very fast publish speeds and allowing + * for heavy use while incurring very minimal cost. Channels are created with {@link channel}, constructing a channel directly + * with `new Channel(name)` is not supported. + * @since v15.1.0, v14.17.0 + */ + class Channel { + readonly name: string | symbol; + /** + * Check if there are active subscribers to this channel. This is helpful if + * the message you want to send might be expensive to prepare. + * + * This API is optional but helpful when trying to publish messages from very + * performance-sensitive code. + * + * ```js + * import diagnostics_channel from 'diagnostics_channel'; + * + * const channel = diagnostics_channel.channel('my-channel'); + * + * if (channel.hasSubscribers) { + * // There are subscribers, prepare and publish message + * } + * ``` + * @since v15.1.0, v14.17.0 + */ + readonly hasSubscribers: boolean; + private constructor(name: string | symbol); + /** + * Publish a message to any subscribers to the channel. This will + * trigger message handlers synchronously so they will execute within + * the same context. + * + * ```js + * import diagnostics_channel from 'diagnostics_channel'; + * + * const channel = diagnostics_channel.channel('my-channel'); + * + * channel.publish({ + * some: 'message' + * }); + * ``` + * @since v15.1.0, v14.17.0 + * @param message The message to send to the channel subscribers + */ + publish(message: unknown): void; + /** + * Register a message handler to subscribe to this channel. This message handler + * will be run synchronously whenever a message is published to the channel. Any + * errors thrown in the message handler will trigger an `'uncaughtException'`. + * + * ```js + * import diagnostics_channel from 'diagnostics_channel'; + * + * const channel = diagnostics_channel.channel('my-channel'); + * + * channel.subscribe((message, name) => { + * // Received data + * }); + * ``` + * @since v15.1.0, v14.17.0 + * @param onMessage The handler to receive channel messages + */ + subscribe(onMessage: ChannelListener): void; + /** + * Remove a message handler previously registered to this channel with `channel.subscribe(onMessage)`. + * + * ```js + * import diagnostics_channel from 'diagnostics_channel'; + * + * const channel = diagnostics_channel.channel('my-channel'); + * + * function onMessage(message, name) { + * // Received data + * } + * + * channel.subscribe(onMessage); + * + * channel.unsubscribe(onMessage); + * ``` + * @since v15.1.0, v14.17.0 + * @param onMessage The previous subscribed handler to remove + * @return `true` if the handler was found, `false` otherwise. + */ + unsubscribe(onMessage: ChannelListener): void; + } +} +declare module 'node:diagnostics_channel' { + export * from 'diagnostics_channel'; +} diff --git a/node_modules/@types/node/dns.d.ts b/node_modules/@types/node/dns.d.ts new file mode 100644 index 0000000..305367b --- /dev/null +++ b/node_modules/@types/node/dns.d.ts @@ -0,0 +1,659 @@ +/** + * The `dns` module enables name resolution. For example, use it to look up IP + * addresses of host names. + * + * Although named for the [Domain Name System (DNS)](https://en.wikipedia.org/wiki/Domain_Name_System), it does not always use the + * DNS protocol for lookups. {@link lookup} uses the operating system + * facilities to perform name resolution. It may not need to perform any network + * communication. To perform name resolution the way other applications on the same + * system do, use {@link lookup}. + * + * ```js + * const dns = require('dns'); + * + * dns.lookup('example.org', (err, address, family) => { + * console.log('address: %j family: IPv%s', address, family); + * }); + * // address: "93.184.216.34" family: IPv4 + * ``` + * + * All other functions in the `dns` module connect to an actual DNS server to + * perform name resolution. They will always use the network to perform DNS + * queries. These functions do not use the same set of configuration files used by {@link lookup} (e.g. `/etc/hosts`). Use these functions to always perform + * DNS queries, bypassing other name-resolution facilities. + * + * ```js + * const dns = require('dns'); + * + * dns.resolve4('archive.org', (err, addresses) => { + * if (err) throw err; + * + * console.log(`addresses: ${JSON.stringify(addresses)}`); + * + * addresses.forEach((a) => { + * dns.reverse(a, (err, hostnames) => { + * if (err) { + * throw err; + * } + * console.log(`reverse for ${a}: ${JSON.stringify(hostnames)}`); + * }); + * }); + * }); + * ``` + * + * See the `Implementation considerations section` for more information. + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/dns.js) + */ +declare module 'dns' { + import * as dnsPromises from 'node:dns/promises'; + // Supported getaddrinfo flags. + export const ADDRCONFIG: number; + export const V4MAPPED: number; + /** + * If `dns.V4MAPPED` is specified, return resolved IPv6 addresses as + * well as IPv4 mapped IPv6 addresses. + */ + export const ALL: number; + export interface LookupOptions { + family?: number | undefined; + hints?: number | undefined; + all?: boolean | undefined; + /** + * @default true + */ + verbatim?: boolean | undefined; + } + export interface LookupOneOptions extends LookupOptions { + all?: false | undefined; + } + export interface LookupAllOptions extends LookupOptions { + all: true; + } + export interface LookupAddress { + address: string; + family: number; + } + /** + * Resolves a host name (e.g. `'nodejs.org'`) into the first found A (IPv4) or + * AAAA (IPv6) record. All `option` properties are optional. If `options` is an + * integer, then it must be `4` or `6` – if `options` is not provided, then IPv4 + * and IPv6 addresses are both returned if found. + * + * With the `all` option set to `true`, the arguments for `callback` change to`(err, addresses)`, with `addresses` being an array of objects with the + * properties `address` and `family`. + * + * On error, `err` is an `Error` object, where `err.code` is the error code. + * Keep in mind that `err.code` will be set to `'ENOTFOUND'` not only when + * the host name does not exist but also when the lookup fails in other ways + * such as no available file descriptors. + * + * `dns.lookup()` does not necessarily have anything to do with the DNS protocol. + * The implementation uses an operating system facility that can associate names + * with addresses, and vice versa. This implementation can have subtle but + * important consequences on the behavior of any Node.js program. Please take some + * time to consult the `Implementation considerations section` before using`dns.lookup()`. + * + * Example usage: + * + * ```js + * const dns = require('dns'); + * const options = { + * family: 6, + * hints: dns.ADDRCONFIG | dns.V4MAPPED, + * }; + * dns.lookup('example.com', options, (err, address, family) => + * console.log('address: %j family: IPv%s', address, family)); + * // address: "2606:2800:220:1:248:1893:25c8:1946" family: IPv6 + * + * // When options.all is true, the result will be an Array. + * options.all = true; + * dns.lookup('example.com', options, (err, addresses) => + * console.log('addresses: %j', addresses)); + * // addresses: [{"address":"2606:2800:220:1:248:1893:25c8:1946","family":6}] + * ``` + * + * If this method is invoked as its `util.promisify()` ed version, and `all`is not set to `true`, it returns a `Promise` for an `Object` with `address` and`family` properties. + * @since v0.1.90 + */ + export function lookup(hostname: string, family: number, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; + export function lookup(hostname: string, options: LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; + export function lookup(hostname: string, options: LookupAllOptions, callback: (err: NodeJS.ErrnoException | null, addresses: LookupAddress[]) => void): void; + export function lookup(hostname: string, options: LookupOptions, callback: (err: NodeJS.ErrnoException | null, address: string | LookupAddress[], family: number) => void): void; + export function lookup(hostname: string, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; + export namespace lookup { + function __promisify__(hostname: string, options: LookupAllOptions): Promise; + function __promisify__(hostname: string, options?: LookupOneOptions | number): Promise; + function __promisify__(hostname: string, options: LookupOptions): Promise; + } + /** + * Resolves the given `address` and `port` into a host name and service using + * the operating system's underlying `getnameinfo` implementation. + * + * If `address` is not a valid IP address, a `TypeError` will be thrown. + * The `port` will be coerced to a number. If it is not a legal port, a `TypeError`will be thrown. + * + * On an error, `err` is an `Error` object, where `err.code` is the error code. + * + * ```js + * const dns = require('dns'); + * dns.lookupService('127.0.0.1', 22, (err, hostname, service) => { + * console.log(hostname, service); + * // Prints: localhost ssh + * }); + * ``` + * + * If this method is invoked as its `util.promisify()` ed version, it returns a`Promise` for an `Object` with `hostname` and `service` properties. + * @since v0.11.14 + */ + export function lookupService(address: string, port: number, callback: (err: NodeJS.ErrnoException | null, hostname: string, service: string) => void): void; + export namespace lookupService { + function __promisify__( + address: string, + port: number + ): Promise<{ + hostname: string; + service: string; + }>; + } + export interface ResolveOptions { + ttl: boolean; + } + export interface ResolveWithTtlOptions extends ResolveOptions { + ttl: true; + } + export interface RecordWithTtl { + address: string; + ttl: number; + } + /** @deprecated Use `AnyARecord` or `AnyAaaaRecord` instead. */ + export type AnyRecordWithTtl = AnyARecord | AnyAaaaRecord; + export interface AnyARecord extends RecordWithTtl { + type: 'A'; + } + export interface AnyAaaaRecord extends RecordWithTtl { + type: 'AAAA'; + } + export interface CaaRecord { + critial: number; + issue?: string | undefined; + issuewild?: string | undefined; + iodef?: string | undefined; + contactemail?: string | undefined; + contactphone?: string | undefined; + } + export interface MxRecord { + priority: number; + exchange: string; + } + export interface AnyMxRecord extends MxRecord { + type: 'MX'; + } + export interface NaptrRecord { + flags: string; + service: string; + regexp: string; + replacement: string; + order: number; + preference: number; + } + export interface AnyNaptrRecord extends NaptrRecord { + type: 'NAPTR'; + } + export interface SoaRecord { + nsname: string; + hostmaster: string; + serial: number; + refresh: number; + retry: number; + expire: number; + minttl: number; + } + export interface AnySoaRecord extends SoaRecord { + type: 'SOA'; + } + export interface SrvRecord { + priority: number; + weight: number; + port: number; + name: string; + } + export interface AnySrvRecord extends SrvRecord { + type: 'SRV'; + } + export interface AnyTxtRecord { + type: 'TXT'; + entries: string[]; + } + export interface AnyNsRecord { + type: 'NS'; + value: string; + } + export interface AnyPtrRecord { + type: 'PTR'; + value: string; + } + export interface AnyCnameRecord { + type: 'CNAME'; + value: string; + } + export type AnyRecord = AnyARecord | AnyAaaaRecord | AnyCnameRecord | AnyMxRecord | AnyNaptrRecord | AnyNsRecord | AnyPtrRecord | AnySoaRecord | AnySrvRecord | AnyTxtRecord; + /** + * Uses the DNS protocol to resolve a host name (e.g. `'nodejs.org'`) into an array + * of the resource records. The `callback` function has arguments`(err, records)`. When successful, `records` will be an array of resource + * records. The type and structure of individual results varies based on `rrtype`: + * + * + * + * On error, `err` is an `Error` object, where `err.code` is one of the `DNS error codes`. + * @since v0.1.27 + * @param hostname Host name to resolve. + * @param [rrtype='A'] Resource record type. + */ + export function resolve(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve(hostname: string, rrtype: 'A', callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve(hostname: string, rrtype: 'AAAA', callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve(hostname: string, rrtype: 'ANY', callback: (err: NodeJS.ErrnoException | null, addresses: AnyRecord[]) => void): void; + export function resolve(hostname: string, rrtype: 'CNAME', callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve(hostname: string, rrtype: 'MX', callback: (err: NodeJS.ErrnoException | null, addresses: MxRecord[]) => void): void; + export function resolve(hostname: string, rrtype: 'NAPTR', callback: (err: NodeJS.ErrnoException | null, addresses: NaptrRecord[]) => void): void; + export function resolve(hostname: string, rrtype: 'NS', callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve(hostname: string, rrtype: 'PTR', callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve(hostname: string, rrtype: 'SOA', callback: (err: NodeJS.ErrnoException | null, addresses: SoaRecord) => void): void; + export function resolve(hostname: string, rrtype: 'SRV', callback: (err: NodeJS.ErrnoException | null, addresses: SrvRecord[]) => void): void; + export function resolve(hostname: string, rrtype: 'TXT', callback: (err: NodeJS.ErrnoException | null, addresses: string[][]) => void): void; + export function resolve( + hostname: string, + rrtype: string, + callback: (err: NodeJS.ErrnoException | null, addresses: string[] | MxRecord[] | NaptrRecord[] | SoaRecord | SrvRecord[] | string[][] | AnyRecord[]) => void + ): void; + export namespace resolve { + function __promisify__(hostname: string, rrtype?: 'A' | 'AAAA' | 'CNAME' | 'NS' | 'PTR'): Promise; + function __promisify__(hostname: string, rrtype: 'ANY'): Promise; + function __promisify__(hostname: string, rrtype: 'MX'): Promise; + function __promisify__(hostname: string, rrtype: 'NAPTR'): Promise; + function __promisify__(hostname: string, rrtype: 'SOA'): Promise; + function __promisify__(hostname: string, rrtype: 'SRV'): Promise; + function __promisify__(hostname: string, rrtype: 'TXT'): Promise; + function __promisify__(hostname: string, rrtype: string): Promise; + } + /** + * Uses the DNS protocol to resolve a IPv4 addresses (`A` records) for the`hostname`. The `addresses` argument passed to the `callback` function + * will contain an array of IPv4 addresses (e.g.`['74.125.79.104', '74.125.79.105', '74.125.79.106']`). + * @since v0.1.16 + * @param hostname Host name to resolve. + */ + export function resolve4(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve4(hostname: string, options: ResolveWithTtlOptions, callback: (err: NodeJS.ErrnoException | null, addresses: RecordWithTtl[]) => void): void; + export function resolve4(hostname: string, options: ResolveOptions, callback: (err: NodeJS.ErrnoException | null, addresses: string[] | RecordWithTtl[]) => void): void; + export namespace resolve4 { + function __promisify__(hostname: string): Promise; + function __promisify__(hostname: string, options: ResolveWithTtlOptions): Promise; + function __promisify__(hostname: string, options?: ResolveOptions): Promise; + } + /** + * Uses the DNS protocol to resolve a IPv6 addresses (`AAAA` records) for the`hostname`. The `addresses` argument passed to the `callback` function + * will contain an array of IPv6 addresses. + * @since v0.1.16 + * @param hostname Host name to resolve. + */ + export function resolve6(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve6(hostname: string, options: ResolveWithTtlOptions, callback: (err: NodeJS.ErrnoException | null, addresses: RecordWithTtl[]) => void): void; + export function resolve6(hostname: string, options: ResolveOptions, callback: (err: NodeJS.ErrnoException | null, addresses: string[] | RecordWithTtl[]) => void): void; + export namespace resolve6 { + function __promisify__(hostname: string): Promise; + function __promisify__(hostname: string, options: ResolveWithTtlOptions): Promise; + function __promisify__(hostname: string, options?: ResolveOptions): Promise; + } + /** + * Uses the DNS protocol to resolve `CNAME` records for the `hostname`. The`addresses` argument passed to the `callback` function + * will contain an array of canonical name records available for the `hostname`(e.g. `['bar.example.com']`). + * @since v0.3.2 + */ + export function resolveCname(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export namespace resolveCname { + function __promisify__(hostname: string): Promise; + } + /** + * Uses the DNS protocol to resolve `CAA` records for the `hostname`. The`addresses` argument passed to the `callback` function + * will contain an array of certification authority authorization records + * available for the `hostname` (e.g. `[{critical: 0, iodef: 'mailto:pki@example.com'}, {critical: 128, issue: 'pki.example.com'}]`). + * @since v15.0.0, v14.17.0 + */ + export function resolveCaa(hostname: string, callback: (err: NodeJS.ErrnoException | null, records: CaaRecord[]) => void): void; + export namespace resolveCaa { + function __promisify__(hostname: string): Promise; + } + /** + * Uses the DNS protocol to resolve mail exchange records (`MX` records) for the`hostname`. The `addresses` argument passed to the `callback` function will + * contain an array of objects containing both a `priority` and `exchange`property (e.g. `[{priority: 10, exchange: 'mx.example.com'}, ...]`). + * @since v0.1.27 + */ + export function resolveMx(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: MxRecord[]) => void): void; + export namespace resolveMx { + function __promisify__(hostname: string): Promise; + } + /** + * Uses the DNS protocol to resolve regular expression based records (`NAPTR`records) for the `hostname`. The `addresses` argument passed to the `callback`function will contain an array of + * objects with the following properties: + * + * * `flags` + * * `service` + * * `regexp` + * * `replacement` + * * `order` + * * `preference` + * + * ```js + * { + * flags: 's', + * service: 'SIP+D2U', + * regexp: '', + * replacement: '_sip._udp.example.com', + * order: 30, + * preference: 100 + * } + * ``` + * @since v0.9.12 + */ + export function resolveNaptr(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: NaptrRecord[]) => void): void; + export namespace resolveNaptr { + function __promisify__(hostname: string): Promise; + } + /** + * Uses the DNS protocol to resolve name server records (`NS` records) for the`hostname`. The `addresses` argument passed to the `callback` function will + * contain an array of name server records available for `hostname`(e.g. `['ns1.example.com', 'ns2.example.com']`). + * @since v0.1.90 + */ + export function resolveNs(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export namespace resolveNs { + function __promisify__(hostname: string): Promise; + } + /** + * Uses the DNS protocol to resolve pointer records (`PTR` records) for the`hostname`. The `addresses` argument passed to the `callback` function will + * be an array of strings containing the reply records. + * @since v6.0.0 + */ + export function resolvePtr(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export namespace resolvePtr { + function __promisify__(hostname: string): Promise; + } + /** + * Uses the DNS protocol to resolve a start of authority record (`SOA` record) for + * the `hostname`. The `address` argument passed to the `callback` function will + * be an object with the following properties: + * + * * `nsname` + * * `hostmaster` + * * `serial` + * * `refresh` + * * `retry` + * * `expire` + * * `minttl` + * + * ```js + * { + * nsname: 'ns.example.com', + * hostmaster: 'root.example.com', + * serial: 2013101809, + * refresh: 10000, + * retry: 2400, + * expire: 604800, + * minttl: 3600 + * } + * ``` + * @since v0.11.10 + */ + export function resolveSoa(hostname: string, callback: (err: NodeJS.ErrnoException | null, address: SoaRecord) => void): void; + export namespace resolveSoa { + function __promisify__(hostname: string): Promise; + } + /** + * Uses the DNS protocol to resolve service records (`SRV` records) for the`hostname`. The `addresses` argument passed to the `callback` function will + * be an array of objects with the following properties: + * + * * `priority` + * * `weight` + * * `port` + * * `name` + * + * ```js + * { + * priority: 10, + * weight: 5, + * port: 21223, + * name: 'service.example.com' + * } + * ``` + * @since v0.1.27 + */ + export function resolveSrv(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: SrvRecord[]) => void): void; + export namespace resolveSrv { + function __promisify__(hostname: string): Promise; + } + /** + * Uses the DNS protocol to resolve text queries (`TXT` records) for the`hostname`. The `records` argument passed to the `callback` function is a + * two-dimensional array of the text records available for `hostname` (e.g.`[ ['v=spf1 ip4:0.0.0.0 ', '~all' ] ]`). Each sub-array contains TXT chunks of + * one record. Depending on the use case, these could be either joined together or + * treated separately. + * @since v0.1.27 + */ + export function resolveTxt(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[][]) => void): void; + export namespace resolveTxt { + function __promisify__(hostname: string): Promise; + } + /** + * Uses the DNS protocol to resolve all records (also known as `ANY` or `*` query). + * The `ret` argument passed to the `callback` function will be an array containing + * various types of records. Each object has a property `type` that indicates the + * type of the current record. And depending on the `type`, additional properties + * will be present on the object: + * + * + * + * Here is an example of the `ret` object passed to the callback: + * + * ```js + * [ { type: 'A', address: '127.0.0.1', ttl: 299 }, + * { type: 'CNAME', value: 'example.com' }, + * { type: 'MX', exchange: 'alt4.aspmx.l.example.com', priority: 50 }, + * { type: 'NS', value: 'ns1.example.com' }, + * { type: 'TXT', entries: [ 'v=spf1 include:_spf.example.com ~all' ] }, + * { type: 'SOA', + * nsname: 'ns1.example.com', + * hostmaster: 'admin.example.com', + * serial: 156696742, + * refresh: 900, + * retry: 900, + * expire: 1800, + * minttl: 60 } ] + * ``` + * + * DNS server operators may choose not to respond to `ANY`queries. It may be better to call individual methods like {@link resolve4},{@link resolveMx}, and so on. For more details, see [RFC + * 8482](https://tools.ietf.org/html/rfc8482). + */ + export function resolveAny(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: AnyRecord[]) => void): void; + export namespace resolveAny { + function __promisify__(hostname: string): Promise; + } + /** + * Performs a reverse DNS query that resolves an IPv4 or IPv6 address to an + * array of host names. + * + * On error, `err` is an `Error` object, where `err.code` is + * one of the `DNS error codes`. + * @since v0.1.16 + */ + export function reverse(ip: string, callback: (err: NodeJS.ErrnoException | null, hostnames: string[]) => void): void; + /** + * Sets the IP address and port of servers to be used when performing DNS + * resolution. The `servers` argument is an array of [RFC 5952](https://tools.ietf.org/html/rfc5952#section-6) formatted + * addresses. If the port is the IANA default DNS port (53) it can be omitted. + * + * ```js + * dns.setServers([ + * '4.4.4.4', + * '[2001:4860:4860::8888]', + * '4.4.4.4:1053', + * '[2001:4860:4860::8888]:1053', + * ]); + * ``` + * + * An error will be thrown if an invalid address is provided. + * + * The `dns.setServers()` method must not be called while a DNS query is in + * progress. + * + * The {@link setServers} method affects only {@link resolve},`dns.resolve*()` and {@link reverse} (and specifically _not_ {@link lookup}). + * + * This method works much like [resolve.conf](https://man7.org/linux/man-pages/man5/resolv.conf.5.html). + * That is, if attempting to resolve with the first server provided results in a`NOTFOUND` error, the `resolve()` method will _not_ attempt to resolve with + * subsequent servers provided. Fallback DNS servers will only be used if the + * earlier ones time out or result in some other error. + * @since v0.11.3 + * @param servers array of `RFC 5952` formatted addresses + */ + export function setServers(servers: ReadonlyArray): void; + /** + * Returns an array of IP address strings, formatted according to [RFC 5952](https://tools.ietf.org/html/rfc5952#section-6), + * that are currently configured for DNS resolution. A string will include a port + * section if a custom port is used. + * + * ```js + * [ + * '4.4.4.4', + * '2001:4860:4860::8888', + * '4.4.4.4:1053', + * '[2001:4860:4860::8888]:1053', + * ] + * ``` + * @since v0.11.3 + */ + export function getServers(): string[]; + /** + * Set the default value of `verbatim` in {@link lookup} and `dnsPromises.lookup()`. The value could be: + * + * * `ipv4first`: sets default `verbatim` `false`. + * * `verbatim`: sets default `verbatim` `true`. + * + * The default is `ipv4first` and {@link setDefaultResultOrder} have higher + * priority than `--dns-result-order`. When using `worker threads`,{@link setDefaultResultOrder} from the main thread won't affect the default + * dns orders in workers. + * @since v16.4.0, v14.18.0 + * @param order must be `'ipv4first'` or `'verbatim'`. + */ + export function setDefaultResultOrder(order: 'ipv4first' | 'verbatim'): void; + // Error codes + export const NODATA: string; + export const FORMERR: string; + export const SERVFAIL: string; + export const NOTFOUND: string; + export const NOTIMP: string; + export const REFUSED: string; + export const BADQUERY: string; + export const BADNAME: string; + export const BADFAMILY: string; + export const BADRESP: string; + export const CONNREFUSED: string; + export const TIMEOUT: string; + export const EOF: string; + export const FILE: string; + export const NOMEM: string; + export const DESTRUCTION: string; + export const BADSTR: string; + export const BADFLAGS: string; + export const NONAME: string; + export const BADHINTS: string; + export const NOTINITIALIZED: string; + export const LOADIPHLPAPI: string; + export const ADDRGETNETWORKPARAMS: string; + export const CANCELLED: string; + export interface ResolverOptions { + timeout?: number | undefined; + /** + * @default 4 + */ + tries?: number; + } + /** + * An independent resolver for DNS requests. + * + * Creating a new resolver uses the default server settings. Setting + * the servers used for a resolver using `resolver.setServers()` does not affect + * other resolvers: + * + * ```js + * const { Resolver } = require('dns'); + * const resolver = new Resolver(); + * resolver.setServers(['4.4.4.4']); + * + * // This request will use the server at 4.4.4.4, independent of global settings. + * resolver.resolve4('example.org', (err, addresses) => { + * // ... + * }); + * ``` + * + * The following methods from the `dns` module are available: + * + * * `resolver.getServers()` + * * `resolver.resolve()` + * * `resolver.resolve4()` + * * `resolver.resolve6()` + * * `resolver.resolveAny()` + * * `resolver.resolveCaa()` + * * `resolver.resolveCname()` + * * `resolver.resolveMx()` + * * `resolver.resolveNaptr()` + * * `resolver.resolveNs()` + * * `resolver.resolvePtr()` + * * `resolver.resolveSoa()` + * * `resolver.resolveSrv()` + * * `resolver.resolveTxt()` + * * `resolver.reverse()` + * * `resolver.setServers()` + * @since v8.3.0 + */ + export class Resolver { + constructor(options?: ResolverOptions); + /** + * Cancel all outstanding DNS queries made by this resolver. The corresponding + * callbacks will be called with an error with code `ECANCELLED`. + * @since v8.3.0 + */ + cancel(): void; + getServers: typeof getServers; + resolve: typeof resolve; + resolve4: typeof resolve4; + resolve6: typeof resolve6; + resolveAny: typeof resolveAny; + resolveCname: typeof resolveCname; + resolveMx: typeof resolveMx; + resolveNaptr: typeof resolveNaptr; + resolveNs: typeof resolveNs; + resolvePtr: typeof resolvePtr; + resolveSoa: typeof resolveSoa; + resolveSrv: typeof resolveSrv; + resolveTxt: typeof resolveTxt; + reverse: typeof reverse; + /** + * The resolver instance will send its requests from the specified IP address. + * This allows programs to specify outbound interfaces when used on multi-homed + * systems. + * + * If a v4 or v6 address is not specified, it is set to the default, and the + * operating system will choose a local address automatically. + * + * The resolver will use the v4 local address when making requests to IPv4 DNS + * servers, and the v6 local address when making requests to IPv6 DNS servers. + * The `rrtype` of resolution requests has no impact on the local address used. + * @since v15.1.0, v14.17.0 + * @param [ipv4='0.0.0.0'] A string representation of an IPv4 address. + * @param [ipv6='::0'] A string representation of an IPv6 address. + */ + setLocalAddress(ipv4?: string, ipv6?: string): void; + setServers: typeof setServers; + } + export { dnsPromises as promises }; +} +declare module 'node:dns' { + export * from 'dns'; +} diff --git a/node_modules/@types/node/dns/promises.d.ts b/node_modules/@types/node/dns/promises.d.ts new file mode 100644 index 0000000..77cd807 --- /dev/null +++ b/node_modules/@types/node/dns/promises.d.ts @@ -0,0 +1,370 @@ +/** + * The `dns.promises` API provides an alternative set of asynchronous DNS methods + * that return `Promise` objects rather than using callbacks. The API is accessible + * via `require('dns').promises` or `require('dns/promises')`. + * @since v10.6.0 + */ +declare module 'dns/promises' { + import { + LookupAddress, + LookupOneOptions, + LookupAllOptions, + LookupOptions, + AnyRecord, + CaaRecord, + MxRecord, + NaptrRecord, + SoaRecord, + SrvRecord, + ResolveWithTtlOptions, + RecordWithTtl, + ResolveOptions, + ResolverOptions, + } from 'node:dns'; + /** + * Returns an array of IP address strings, formatted according to [RFC 5952](https://tools.ietf.org/html/rfc5952#section-6), + * that are currently configured for DNS resolution. A string will include a port + * section if a custom port is used. + * + * ```js + * [ + * '4.4.4.4', + * '2001:4860:4860::8888', + * '4.4.4.4:1053', + * '[2001:4860:4860::8888]:1053', + * ] + * ``` + * @since v10.6.0 + */ + function getServers(): string[]; + /** + * Resolves a host name (e.g. `'nodejs.org'`) into the first found A (IPv4) or + * AAAA (IPv6) record. All `option` properties are optional. If `options` is an + * integer, then it must be `4` or `6` – if `options` is not provided, then IPv4 + * and IPv6 addresses are both returned if found. + * + * With the `all` option set to `true`, the `Promise` is resolved with `addresses`being an array of objects with the properties `address` and `family`. + * + * On error, the `Promise` is rejected with an `Error` object, where `err.code`is the error code. + * Keep in mind that `err.code` will be set to `'ENOTFOUND'` not only when + * the host name does not exist but also when the lookup fails in other ways + * such as no available file descriptors. + * + * `dnsPromises.lookup()` does not necessarily have anything to do with the DNS + * protocol. The implementation uses an operating system facility that can + * associate names with addresses, and vice versa. This implementation can have + * subtle but important consequences on the behavior of any Node.js program. Please + * take some time to consult the `Implementation considerations section` before + * using `dnsPromises.lookup()`. + * + * Example usage: + * + * ```js + * const dns = require('dns'); + * const dnsPromises = dns.promises; + * const options = { + * family: 6, + * hints: dns.ADDRCONFIG | dns.V4MAPPED, + * }; + * + * dnsPromises.lookup('example.com', options).then((result) => { + * console.log('address: %j family: IPv%s', result.address, result.family); + * // address: "2606:2800:220:1:248:1893:25c8:1946" family: IPv6 + * }); + * + * // When options.all is true, the result will be an Array. + * options.all = true; + * dnsPromises.lookup('example.com', options).then((result) => { + * console.log('addresses: %j', result); + * // addresses: [{"address":"2606:2800:220:1:248:1893:25c8:1946","family":6}] + * }); + * ``` + * @since v10.6.0 + */ + function lookup(hostname: string, family: number): Promise; + function lookup(hostname: string, options: LookupOneOptions): Promise; + function lookup(hostname: string, options: LookupAllOptions): Promise; + function lookup(hostname: string, options: LookupOptions): Promise; + function lookup(hostname: string): Promise; + /** + * Resolves the given `address` and `port` into a host name and service using + * the operating system's underlying `getnameinfo` implementation. + * + * If `address` is not a valid IP address, a `TypeError` will be thrown. + * The `port` will be coerced to a number. If it is not a legal port, a `TypeError`will be thrown. + * + * On error, the `Promise` is rejected with an `Error` object, where `err.code`is the error code. + * + * ```js + * const dnsPromises = require('dns').promises; + * dnsPromises.lookupService('127.0.0.1', 22).then((result) => { + * console.log(result.hostname, result.service); + * // Prints: localhost ssh + * }); + * ``` + * @since v10.6.0 + */ + function lookupService( + address: string, + port: number + ): Promise<{ + hostname: string; + service: string; + }>; + /** + * Uses the DNS protocol to resolve a host name (e.g. `'nodejs.org'`) into an array + * of the resource records. When successful, the `Promise` is resolved with an + * array of resource records. The type and structure of individual results vary + * based on `rrtype`: + * + * + * + * On error, the `Promise` is rejected with an `Error` object, where `err.code`is one of the `DNS error codes`. + * @since v10.6.0 + * @param hostname Host name to resolve. + * @param [rrtype='A'] Resource record type. + */ + function resolve(hostname: string): Promise; + function resolve(hostname: string, rrtype: 'A'): Promise; + function resolve(hostname: string, rrtype: 'AAAA'): Promise; + function resolve(hostname: string, rrtype: 'ANY'): Promise; + function resolve(hostname: string, rrtype: 'CAA'): Promise; + function resolve(hostname: string, rrtype: 'CNAME'): Promise; + function resolve(hostname: string, rrtype: 'MX'): Promise; + function resolve(hostname: string, rrtype: 'NAPTR'): Promise; + function resolve(hostname: string, rrtype: 'NS'): Promise; + function resolve(hostname: string, rrtype: 'PTR'): Promise; + function resolve(hostname: string, rrtype: 'SOA'): Promise; + function resolve(hostname: string, rrtype: 'SRV'): Promise; + function resolve(hostname: string, rrtype: 'TXT'): Promise; + function resolve(hostname: string, rrtype: string): Promise; + /** + * Uses the DNS protocol to resolve IPv4 addresses (`A` records) for the`hostname`. On success, the `Promise` is resolved with an array of IPv4 + * addresses (e.g. `['74.125.79.104', '74.125.79.105', '74.125.79.106']`). + * @since v10.6.0 + * @param hostname Host name to resolve. + */ + function resolve4(hostname: string): Promise; + function resolve4(hostname: string, options: ResolveWithTtlOptions): Promise; + function resolve4(hostname: string, options: ResolveOptions): Promise; + /** + * Uses the DNS protocol to resolve IPv6 addresses (`AAAA` records) for the`hostname`. On success, the `Promise` is resolved with an array of IPv6 + * addresses. + * @since v10.6.0 + * @param hostname Host name to resolve. + */ + function resolve6(hostname: string): Promise; + function resolve6(hostname: string, options: ResolveWithTtlOptions): Promise; + function resolve6(hostname: string, options: ResolveOptions): Promise; + /** + * Uses the DNS protocol to resolve all records (also known as `ANY` or `*` query). + * On success, the `Promise` is resolved with an array containing various types of + * records. Each object has a property `type` that indicates the type of the + * current record. And depending on the `type`, additional properties will be + * present on the object: + * + * + * + * Here is an example of the result object: + * + * ```js + * [ { type: 'A', address: '127.0.0.1', ttl: 299 }, + * { type: 'CNAME', value: 'example.com' }, + * { type: 'MX', exchange: 'alt4.aspmx.l.example.com', priority: 50 }, + * { type: 'NS', value: 'ns1.example.com' }, + * { type: 'TXT', entries: [ 'v=spf1 include:_spf.example.com ~all' ] }, + * { type: 'SOA', + * nsname: 'ns1.example.com', + * hostmaster: 'admin.example.com', + * serial: 156696742, + * refresh: 900, + * retry: 900, + * expire: 1800, + * minttl: 60 } ] + * ``` + * @since v10.6.0 + */ + function resolveAny(hostname: string): Promise; + /** + * Uses the DNS protocol to resolve `CAA` records for the `hostname`. On success, + * the `Promise` is resolved with an array of objects containing available + * certification authority authorization records available for the `hostname`(e.g. `[{critical: 0, iodef: 'mailto:pki@example.com'},{critical: 128, issue: 'pki.example.com'}]`). + * @since v15.0.0, v14.17.0 + */ + function resolveCaa(hostname: string): Promise; + /** + * Uses the DNS protocol to resolve `CNAME` records for the `hostname`. On success, + * the `Promise` is resolved with an array of canonical name records available for + * the `hostname` (e.g. `['bar.example.com']`). + * @since v10.6.0 + */ + function resolveCname(hostname: string): Promise; + /** + * Uses the DNS protocol to resolve mail exchange records (`MX` records) for the`hostname`. On success, the `Promise` is resolved with an array of objects + * containing both a `priority` and `exchange` property (e.g.`[{priority: 10, exchange: 'mx.example.com'}, ...]`). + * @since v10.6.0 + */ + function resolveMx(hostname: string): Promise; + /** + * Uses the DNS protocol to resolve regular expression based records (`NAPTR`records) for the `hostname`. On success, the `Promise` is resolved with an array + * of objects with the following properties: + * + * * `flags` + * * `service` + * * `regexp` + * * `replacement` + * * `order` + * * `preference` + * + * ```js + * { + * flags: 's', + * service: 'SIP+D2U', + * regexp: '', + * replacement: '_sip._udp.example.com', + * order: 30, + * preference: 100 + * } + * ``` + * @since v10.6.0 + */ + function resolveNaptr(hostname: string): Promise; + /** + * Uses the DNS protocol to resolve name server records (`NS` records) for the`hostname`. On success, the `Promise` is resolved with an array of name server + * records available for `hostname` (e.g.`['ns1.example.com', 'ns2.example.com']`). + * @since v10.6.0 + */ + function resolveNs(hostname: string): Promise; + /** + * Uses the DNS protocol to resolve pointer records (`PTR` records) for the`hostname`. On success, the `Promise` is resolved with an array of strings + * containing the reply records. + * @since v10.6.0 + */ + function resolvePtr(hostname: string): Promise; + /** + * Uses the DNS protocol to resolve a start of authority record (`SOA` record) for + * the `hostname`. On success, the `Promise` is resolved with an object with the + * following properties: + * + * * `nsname` + * * `hostmaster` + * * `serial` + * * `refresh` + * * `retry` + * * `expire` + * * `minttl` + * + * ```js + * { + * nsname: 'ns.example.com', + * hostmaster: 'root.example.com', + * serial: 2013101809, + * refresh: 10000, + * retry: 2400, + * expire: 604800, + * minttl: 3600 + * } + * ``` + * @since v10.6.0 + */ + function resolveSoa(hostname: string): Promise; + /** + * Uses the DNS protocol to resolve service records (`SRV` records) for the`hostname`. On success, the `Promise` is resolved with an array of objects with + * the following properties: + * + * * `priority` + * * `weight` + * * `port` + * * `name` + * + * ```js + * { + * priority: 10, + * weight: 5, + * port: 21223, + * name: 'service.example.com' + * } + * ``` + * @since v10.6.0 + */ + function resolveSrv(hostname: string): Promise; + /** + * Uses the DNS protocol to resolve text queries (`TXT` records) for the`hostname`. On success, the `Promise` is resolved with a two-dimensional array + * of the text records available for `hostname` (e.g.`[ ['v=spf1 ip4:0.0.0.0 ', '~all' ] ]`). Each sub-array contains TXT chunks of + * one record. Depending on the use case, these could be either joined together or + * treated separately. + * @since v10.6.0 + */ + function resolveTxt(hostname: string): Promise; + /** + * Performs a reverse DNS query that resolves an IPv4 or IPv6 address to an + * array of host names. + * + * On error, the `Promise` is rejected with an `Error` object, where `err.code`is one of the `DNS error codes`. + * @since v10.6.0 + */ + function reverse(ip: string): Promise; + /** + * Sets the IP address and port of servers to be used when performing DNS + * resolution. The `servers` argument is an array of [RFC 5952](https://tools.ietf.org/html/rfc5952#section-6) formatted + * addresses. If the port is the IANA default DNS port (53) it can be omitted. + * + * ```js + * dnsPromises.setServers([ + * '4.4.4.4', + * '[2001:4860:4860::8888]', + * '4.4.4.4:1053', + * '[2001:4860:4860::8888]:1053', + * ]); + * ``` + * + * An error will be thrown if an invalid address is provided. + * + * The `dnsPromises.setServers()` method must not be called while a DNS query is in + * progress. + * + * This method works much like [resolve.conf](https://man7.org/linux/man-pages/man5/resolv.conf.5.html). + * That is, if attempting to resolve with the first server provided results in a`NOTFOUND` error, the `resolve()` method will _not_ attempt to resolve with + * subsequent servers provided. Fallback DNS servers will only be used if the + * earlier ones time out or result in some other error. + * @since v10.6.0 + * @param servers array of `RFC 5952` formatted addresses + */ + function setServers(servers: ReadonlyArray): void; + /** + * Set the default value of `verbatim` in `dns.lookup()` and `dnsPromises.lookup()`. The value could be: + * + * * `ipv4first`: sets default `verbatim` `false`. + * * `verbatim`: sets default `verbatim` `true`. + * + * The default is `ipv4first` and `dnsPromises.setDefaultResultOrder()` have + * higher priority than `--dns-result-order`. When using `worker threads`,`dnsPromises.setDefaultResultOrder()` from the main thread won't affect the + * default dns orders in workers. + * @since v16.4.0, v14.18.0 + * @param order must be `'ipv4first'` or `'verbatim'`. + */ + function setDefaultResultOrder(order: 'ipv4first' | 'verbatim'): void; + class Resolver { + constructor(options?: ResolverOptions); + cancel(): void; + getServers: typeof getServers; + resolve: typeof resolve; + resolve4: typeof resolve4; + resolve6: typeof resolve6; + resolveAny: typeof resolveAny; + resolveCname: typeof resolveCname; + resolveMx: typeof resolveMx; + resolveNaptr: typeof resolveNaptr; + resolveNs: typeof resolveNs; + resolvePtr: typeof resolvePtr; + resolveSoa: typeof resolveSoa; + resolveSrv: typeof resolveSrv; + resolveTxt: typeof resolveTxt; + reverse: typeof reverse; + setLocalAddress(ipv4?: string, ipv6?: string): void; + setServers: typeof setServers; + } +} +declare module 'node:dns/promises' { + export * from 'dns/promises'; +} diff --git a/node_modules/@types/node/dom-events.d.ts b/node_modules/@types/node/dom-events.d.ts new file mode 100644 index 0000000..b9c1c3a --- /dev/null +++ b/node_modules/@types/node/dom-events.d.ts @@ -0,0 +1,126 @@ +export {}; // Don't export anything! + +//// DOM-like Events +// NB: The Event / EventTarget / EventListener implementations below were copied +// from lib.dom.d.ts, then edited to reflect Node's documentation at +// https://nodejs.org/api/events.html#class-eventtarget. +// Please read that link to understand important implementation differences. + +// This conditional type will be the existing global Event in a browser, or +// the copy below in a Node environment. +type __Event = typeof globalThis extends { onmessage: any, Event: any } +? {} +: { + /** This is not used in Node.js and is provided purely for completeness. */ + readonly bubbles: boolean; + /** Alias for event.stopPropagation(). This is not used in Node.js and is provided purely for completeness. */ + cancelBubble: () => void; + /** True if the event was created with the cancelable option */ + readonly cancelable: boolean; + /** This is not used in Node.js and is provided purely for completeness. */ + readonly composed: boolean; + /** Returns an array containing the current EventTarget as the only entry or empty if the event is not being dispatched. This is not used in Node.js and is provided purely for completeness. */ + composedPath(): [EventTarget?] + /** Alias for event.target. */ + readonly currentTarget: EventTarget | null; + /** Is true if cancelable is true and event.preventDefault() has been called. */ + readonly defaultPrevented: boolean; + /** This is not used in Node.js and is provided purely for completeness. */ + readonly eventPhase: 0 | 2; + /** The `AbortSignal` "abort" event is emitted with `isTrusted` set to `true`. The value is `false` in all other cases. */ + readonly isTrusted: boolean; + /** Sets the `defaultPrevented` property to `true` if `cancelable` is `true`. */ + preventDefault(): void; + /** This is not used in Node.js and is provided purely for completeness. */ + returnValue: boolean; + /** Alias for event.target. */ + readonly srcElement: EventTarget | null; + /** Stops the invocation of event listeners after the current one completes. */ + stopImmediatePropagation(): void; + /** This is not used in Node.js and is provided purely for completeness. */ + stopPropagation(): void; + /** The `EventTarget` dispatching the event */ + readonly target: EventTarget | null; + /** The millisecond timestamp when the Event object was created. */ + readonly timeStamp: number; + /** Returns the type of event, e.g. "click", "hashchange", or "submit". */ + readonly type: string; +}; + +// See comment above explaining conditional type +type __EventTarget = typeof globalThis extends { onmessage: any, EventTarget: any } +? {} +: { + /** + * Adds a new handler for the `type` event. Any given `listener` is added only once per `type` and per `capture` option value. + * + * If the `once` option is true, the `listener` is removed after the next time a `type` event is dispatched. + * + * The `capture` option is not used by Node.js in any functional way other than tracking registered event listeners per the `EventTarget` specification. + * Specifically, the `capture` option is used as part of the key when registering a `listener`. + * Any individual `listener` may be added once with `capture = false`, and once with `capture = true`. + */ + addEventListener( + type: string, + listener: EventListener | EventListenerObject, + options?: AddEventListenerOptions | boolean, + ): void; + /** Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise. */ + dispatchEvent(event: Event): boolean; + /** Removes the event listener in target's event listener list with the same type, callback, and options. */ + removeEventListener( + type: string, + listener: EventListener | EventListenerObject, + options?: EventListenerOptions | boolean, + ): void; +}; + +interface EventInit { + bubbles?: boolean; + cancelable?: boolean; + composed?: boolean; +} + +interface EventListenerOptions { + /** Not directly used by Node.js. Added for API completeness. Default: `false`. */ + capture?: boolean; +} + +interface AddEventListenerOptions extends EventListenerOptions { + /** When `true`, the listener is automatically removed when it is first invoked. Default: `false`. */ + once?: boolean; + /** When `true`, serves as a hint that the listener will not call the `Event` object's `preventDefault()` method. Default: false. */ + passive?: boolean; +} + +interface EventListener { + (evt: Event): void; +} + +interface EventListenerObject { + handleEvent(object: Event): void; +} + +import {} from 'events'; // Make this an ambient declaration +declare global { + /** An event which takes place in the DOM. */ + interface Event extends __Event {} + var Event: typeof globalThis extends { onmessage: any, Event: infer T } + ? T + : { + prototype: __Event; + new (type: string, eventInitDict?: EventInit): __Event; + }; + + /** + * EventTarget is a DOM interface implemented by objects that can + * receive events and may have listeners for them. + */ + interface EventTarget extends __EventTarget {} + var EventTarget: typeof globalThis extends { onmessage: any, EventTarget: infer T } + ? T + : { + prototype: __EventTarget; + new (): __EventTarget; + }; +} diff --git a/node_modules/@types/node/domain.d.ts b/node_modules/@types/node/domain.d.ts new file mode 100644 index 0000000..fafe68a --- /dev/null +++ b/node_modules/@types/node/domain.d.ts @@ -0,0 +1,170 @@ +/** + * **This module is pending deprecation.** Once a replacement API has been + * finalized, this module will be fully deprecated. Most developers should + * **not** have cause to use this module. Users who absolutely must have + * the functionality that domains provide may rely on it for the time being + * but should expect to have to migrate to a different solution + * in the future. + * + * Domains provide a way to handle multiple different IO operations as a + * single group. If any of the event emitters or callbacks registered to a + * domain emit an `'error'` event, or throw an error, then the domain object + * will be notified, rather than losing the context of the error in the`process.on('uncaughtException')` handler, or causing the program to + * exit immediately with an error code. + * @deprecated Since v1.4.2 - Deprecated + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/domain.js) + */ +declare module 'domain' { + import EventEmitter = require('node:events'); + /** + * The `Domain` class encapsulates the functionality of routing errors and + * uncaught exceptions to the active `Domain` object. + * + * To handle the errors that it catches, listen to its `'error'` event. + */ + class Domain extends EventEmitter { + /** + * An array of timers and event emitters that have been explicitly added + * to the domain. + */ + members: Array; + /** + * The `enter()` method is plumbing used by the `run()`, `bind()`, and`intercept()` methods to set the active domain. It sets `domain.active` and`process.domain` to the domain, and implicitly + * pushes the domain onto the domain + * stack managed by the domain module (see {@link exit} for details on the + * domain stack). The call to `enter()` delimits the beginning of a chain of + * asynchronous calls and I/O operations bound to a domain. + * + * Calling `enter()` changes only the active domain, and does not alter the domain + * itself. `enter()` and `exit()` can be called an arbitrary number of times on a + * single domain. + */ + enter(): void; + /** + * The `exit()` method exits the current domain, popping it off the domain stack. + * Any time execution is going to switch to the context of a different chain of + * asynchronous calls, it's important to ensure that the current domain is exited. + * The call to `exit()` delimits either the end of or an interruption to the chain + * of asynchronous calls and I/O operations bound to a domain. + * + * If there are multiple, nested domains bound to the current execution context,`exit()` will exit any domains nested within this domain. + * + * Calling `exit()` changes only the active domain, and does not alter the domain + * itself. `enter()` and `exit()` can be called an arbitrary number of times on a + * single domain. + */ + exit(): void; + /** + * Run the supplied function in the context of the domain, implicitly + * binding all event emitters, timers, and lowlevel requests that are + * created in that context. Optionally, arguments can be passed to + * the function. + * + * This is the most basic way to use a domain. + * + * ```js + * const domain = require('domain'); + * const fs = require('fs'); + * const d = domain.create(); + * d.on('error', (er) => { + * console.error('Caught error!', er); + * }); + * d.run(() => { + * process.nextTick(() => { + * setTimeout(() => { // Simulating some various async stuff + * fs.open('non-existent file', 'r', (er, fd) => { + * if (er) throw er; + * // proceed... + * }); + * }, 100); + * }); + * }); + * ``` + * + * In this example, the `d.on('error')` handler will be triggered, rather + * than crashing the program. + */ + run(fn: (...args: any[]) => T, ...args: any[]): T; + /** + * Explicitly adds an emitter to the domain. If any event handlers called by + * the emitter throw an error, or if the emitter emits an `'error'` event, it + * will be routed to the domain's `'error'` event, just like with implicit + * binding. + * + * This also works with timers that are returned from `setInterval()` and `setTimeout()`. If their callback function throws, it will be caught by + * the domain `'error'` handler. + * + * If the Timer or `EventEmitter` was already bound to a domain, it is removed + * from that one, and bound to this one instead. + * @param emitter emitter or timer to be added to the domain + */ + add(emitter: EventEmitter | NodeJS.Timer): void; + /** + * The opposite of {@link add}. Removes domain handling from the + * specified emitter. + * @param emitter emitter or timer to be removed from the domain + */ + remove(emitter: EventEmitter | NodeJS.Timer): void; + /** + * The returned function will be a wrapper around the supplied callback + * function. When the returned function is called, any errors that are + * thrown will be routed to the domain's `'error'` event. + * + * ```js + * const d = domain.create(); + * + * function readSomeFile(filename, cb) { + * fs.readFile(filename, 'utf8', d.bind((er, data) => { + * // If this throws, it will also be passed to the domain. + * return cb(er, data ? JSON.parse(data) : null); + * })); + * } + * + * d.on('error', (er) => { + * // An error occurred somewhere. If we throw it now, it will crash the program + * // with the normal line number and stack message. + * }); + * ``` + * @param callback The callback function + * @return The bound function + */ + bind(callback: T): T; + /** + * This method is almost identical to {@link bind}. However, in + * addition to catching thrown errors, it will also intercept `Error` objects sent as the first argument to the function. + * + * In this way, the common `if (err) return callback(err);` pattern can be replaced + * with a single error handler in a single place. + * + * ```js + * const d = domain.create(); + * + * function readSomeFile(filename, cb) { + * fs.readFile(filename, 'utf8', d.intercept((data) => { + * // Note, the first argument is never passed to the + * // callback since it is assumed to be the 'Error' argument + * // and thus intercepted by the domain. + * + * // If this throws, it will also be passed to the domain + * // so the error-handling logic can be moved to the 'error' + * // event on the domain instead of being repeated throughout + * // the program. + * return cb(null, JSON.parse(data)); + * })); + * } + * + * d.on('error', (er) => { + * // An error occurred somewhere. If we throw it now, it will crash the program + * // with the normal line number and stack message. + * }); + * ``` + * @param callback The callback function + * @return The intercepted function + */ + intercept(callback: T): T; + } + function create(): Domain; +} +declare module 'node:domain' { + export * from 'domain'; +} diff --git a/node_modules/@types/node/events.d.ts b/node_modules/@types/node/events.d.ts new file mode 100644 index 0000000..4633df1 --- /dev/null +++ b/node_modules/@types/node/events.d.ts @@ -0,0 +1,678 @@ +/** + * Much of the Node.js core API is built around an idiomatic asynchronous + * event-driven architecture in which certain kinds of objects (called "emitters") + * emit named events that cause `Function` objects ("listeners") to be called. + * + * For instance: a `net.Server` object emits an event each time a peer + * connects to it; a `fs.ReadStream` emits an event when the file is opened; + * a `stream` emits an event whenever data is available to be read. + * + * All objects that emit events are instances of the `EventEmitter` class. These + * objects expose an `eventEmitter.on()` function that allows one or more + * functions to be attached to named events emitted by the object. Typically, + * event names are camel-cased strings but any valid JavaScript property key + * can be used. + * + * When the `EventEmitter` object emits an event, all of the functions attached + * to that specific event are called _synchronously_. Any values returned by the + * called listeners are _ignored_ and discarded. + * + * The following example shows a simple `EventEmitter` instance with a single + * listener. The `eventEmitter.on()` method is used to register listeners, while + * the `eventEmitter.emit()` method is used to trigger the event. + * + * ```js + * const EventEmitter = require('events'); + * + * class MyEmitter extends EventEmitter {} + * + * const myEmitter = new MyEmitter(); + * myEmitter.on('event', () => { + * console.log('an event occurred!'); + * }); + * myEmitter.emit('event'); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/events.js) + */ +declare module 'events' { + // NOTE: This class is in the docs but is **not actually exported** by Node. + // If https://github.com/nodejs/node/issues/39903 gets resolved and Node + // actually starts exporting the class, uncomment below. + + // import { EventListener, EventListenerObject } from '__dom-events'; + // /** The NodeEventTarget is a Node.js-specific extension to EventTarget that emulates a subset of the EventEmitter API. */ + // interface NodeEventTarget extends EventTarget { + // /** + // * Node.js-specific extension to the `EventTarget` class that emulates the equivalent `EventEmitter` API. + // * The only difference between `addListener()` and `addEventListener()` is that addListener() will return a reference to the EventTarget. + // */ + // addListener(type: string, listener: EventListener | EventListenerObject, options?: { once: boolean }): this; + // /** Node.js-specific extension to the `EventTarget` class that returns an array of event `type` names for which event listeners are registered. */ + // eventNames(): string[]; + // /** Node.js-specific extension to the `EventTarget` class that returns the number of event listeners registered for the `type`. */ + // listenerCount(type: string): number; + // /** Node.js-specific alias for `eventTarget.removeListener()`. */ + // off(type: string, listener: EventListener | EventListenerObject): this; + // /** Node.js-specific alias for `eventTarget.addListener()`. */ + // on(type: string, listener: EventListener | EventListenerObject, options?: { once: boolean }): this; + // /** Node.js-specific extension to the `EventTarget` class that adds a `once` listener for the given event `type`. This is equivalent to calling `on` with the `once` option set to `true`. */ + // once(type: string, listener: EventListener | EventListenerObject): this; + // /** + // * Node.js-specific extension to the `EventTarget` class. + // * If `type` is specified, removes all registered listeners for `type`, + // * otherwise removes all registered listeners. + // */ + // removeAllListeners(type: string): this; + // /** + // * Node.js-specific extension to the `EventTarget` class that removes the listener for the given `type`. + // * The only difference between `removeListener()` and `removeEventListener()` is that `removeListener()` will return a reference to the `EventTarget`. + // */ + // removeListener(type: string, listener: EventListener | EventListenerObject): this; + // } + + interface EventEmitterOptions { + /** + * Enables automatic capturing of promise rejection. + */ + captureRejections?: boolean | undefined; + } + // Any EventTarget with a Node-style `once` function + interface _NodeEventTarget { + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + } + // Any EventTarget with a DOM-style `addEventListener` + interface _DOMEventTarget { + addEventListener( + eventName: string, + listener: (...args: any[]) => void, + opts?: { + once: boolean; + } + ): any; + } + interface StaticEventEmitterOptions { + signal?: AbortSignal | undefined; + } + interface EventEmitter extends NodeJS.EventEmitter {} + /** + * The `EventEmitter` class is defined and exposed by the `events` module: + * + * ```js + * const EventEmitter = require('events'); + * ``` + * + * All `EventEmitter`s emit the event `'newListener'` when new listeners are + * added and `'removeListener'` when existing listeners are removed. + * + * It supports the following option: + * @since v0.1.26 + */ + class EventEmitter { + constructor(options?: EventEmitterOptions); + /** + * Creates a `Promise` that is fulfilled when the `EventEmitter` emits the given + * event or that is rejected if the `EventEmitter` emits `'error'` while waiting. + * The `Promise` will resolve with an array of all the arguments emitted to the + * given event. + * + * This method is intentionally generic and works with the web platform [EventTarget](https://dom.spec.whatwg.org/#interface-eventtarget) interface, which has no special`'error'` event + * semantics and does not listen to the `'error'` event. + * + * ```js + * const { once, EventEmitter } = require('events'); + * + * async function run() { + * const ee = new EventEmitter(); + * + * process.nextTick(() => { + * ee.emit('myevent', 42); + * }); + * + * const [value] = await once(ee, 'myevent'); + * console.log(value); + * + * const err = new Error('kaboom'); + * process.nextTick(() => { + * ee.emit('error', err); + * }); + * + * try { + * await once(ee, 'myevent'); + * } catch (err) { + * console.log('error happened', err); + * } + * } + * + * run(); + * ``` + * + * The special handling of the `'error'` event is only used when `events.once()`is used to wait for another event. If `events.once()` is used to wait for the + * '`error'` event itself, then it is treated as any other kind of event without + * special handling: + * + * ```js + * const { EventEmitter, once } = require('events'); + * + * const ee = new EventEmitter(); + * + * once(ee, 'error') + * .then(([err]) => console.log('ok', err.message)) + * .catch((err) => console.log('error', err.message)); + * + * ee.emit('error', new Error('boom')); + * + * // Prints: ok boom + * ``` + * + * An `AbortSignal` can be used to cancel waiting for the event: + * + * ```js + * const { EventEmitter, once } = require('events'); + * + * const ee = new EventEmitter(); + * const ac = new AbortController(); + * + * async function foo(emitter, event, signal) { + * try { + * await once(emitter, event, { signal }); + * console.log('event emitted!'); + * } catch (error) { + * if (error.name === 'AbortError') { + * console.error('Waiting for the event was canceled!'); + * } else { + * console.error('There was an error', error.message); + * } + * } + * } + * + * foo(ee, 'foo', ac.signal); + * ac.abort(); // Abort waiting for the event + * ee.emit('foo'); // Prints: Waiting for the event was canceled! + * ``` + * @since v11.13.0, v10.16.0 + */ + static once(emitter: _NodeEventTarget, eventName: string | symbol, options?: StaticEventEmitterOptions): Promise; + static once(emitter: _DOMEventTarget, eventName: string, options?: StaticEventEmitterOptions): Promise; + /** + * ```js + * const { on, EventEmitter } = require('events'); + * + * (async () => { + * const ee = new EventEmitter(); + * + * // Emit later on + * process.nextTick(() => { + * ee.emit('foo', 'bar'); + * ee.emit('foo', 42); + * }); + * + * for await (const event of on(ee, 'foo')) { + * // The execution of this inner block is synchronous and it + * // processes one event at a time (even with await). Do not use + * // if concurrent execution is required. + * console.log(event); // prints ['bar'] [42] + * } + * // Unreachable here + * })(); + * ``` + * + * Returns an `AsyncIterator` that iterates `eventName` events. It will throw + * if the `EventEmitter` emits `'error'`. It removes all listeners when + * exiting the loop. The `value` returned by each iteration is an array + * composed of the emitted event arguments. + * + * An `AbortSignal` can be used to cancel waiting on events: + * + * ```js + * const { on, EventEmitter } = require('events'); + * const ac = new AbortController(); + * + * (async () => { + * const ee = new EventEmitter(); + * + * // Emit later on + * process.nextTick(() => { + * ee.emit('foo', 'bar'); + * ee.emit('foo', 42); + * }); + * + * for await (const event of on(ee, 'foo', { signal: ac.signal })) { + * // The execution of this inner block is synchronous and it + * // processes one event at a time (even with await). Do not use + * // if concurrent execution is required. + * console.log(event); // prints ['bar'] [42] + * } + * // Unreachable here + * })(); + * + * process.nextTick(() => ac.abort()); + * ``` + * @since v13.6.0, v12.16.0 + * @param eventName The name of the event being listened for + * @return that iterates `eventName` events emitted by the `emitter` + */ + static on(emitter: NodeJS.EventEmitter, eventName: string, options?: StaticEventEmitterOptions): AsyncIterableIterator; + /** + * A class method that returns the number of listeners for the given `eventName`registered on the given `emitter`. + * + * ```js + * const { EventEmitter, listenerCount } = require('events'); + * const myEmitter = new EventEmitter(); + * myEmitter.on('event', () => {}); + * myEmitter.on('event', () => {}); + * console.log(listenerCount(myEmitter, 'event')); + * // Prints: 2 + * ``` + * @since v0.9.12 + * @deprecated Since v3.2.0 - Use `listenerCount` instead. + * @param emitter The emitter to query + * @param eventName The event name + */ + static listenerCount(emitter: NodeJS.EventEmitter, eventName: string | symbol): number; + /** + * Returns a copy of the array of listeners for the event named `eventName`. + * + * For `EventEmitter`s this behaves exactly the same as calling `.listeners` on + * the emitter. + * + * For `EventTarget`s this is the only way to get the event listeners for the + * event target. This is useful for debugging and diagnostic purposes. + * + * ```js + * const { getEventListeners, EventEmitter } = require('events'); + * + * { + * const ee = new EventEmitter(); + * const listener = () => console.log('Events are fun'); + * ee.on('foo', listener); + * getEventListeners(ee, 'foo'); // [listener] + * } + * { + * const et = new EventTarget(); + * const listener = () => console.log('Events are fun'); + * et.addEventListener('foo', listener); + * getEventListeners(et, 'foo'); // [listener] + * } + * ``` + * @since v15.2.0, v14.17.0 + */ + static getEventListeners(emitter: _DOMEventTarget | NodeJS.EventEmitter, name: string | symbol): Function[]; + /** + * ```js + * const { + * setMaxListeners, + * EventEmitter + * } = require('events'); + * + * const target = new EventTarget(); + * const emitter = new EventEmitter(); + * + * setMaxListeners(5, target, emitter); + * ``` + * @since v15.4.0 + * @param n A non-negative number. The maximum number of listeners per `EventTarget` event. + * @param eventsTargets Zero or more {EventTarget} or {EventEmitter} instances. If none are specified, `n` is set as the default max for all newly created {EventTarget} and {EventEmitter} + * objects. + */ + static setMaxListeners(n?: number, ...eventTargets: Array<_DOMEventTarget | NodeJS.EventEmitter>): void; + /** + * This symbol shall be used to install a listener for only monitoring `'error'` + * events. Listeners installed using this symbol are called before the regular + * `'error'` listeners are called. + * + * Installing a listener using this symbol does not change the behavior once an + * `'error'` event is emitted, therefore the process will still crash if no + * regular `'error'` listener is installed. + */ + static readonly errorMonitor: unique symbol; + static readonly captureRejectionSymbol: unique symbol; + /** + * Sets or gets the default captureRejection value for all emitters. + */ + // TODO: These should be described using static getter/setter pairs: + static captureRejections: boolean; + static defaultMaxListeners: number; + } + import internal = require('node:events'); + namespace EventEmitter { + // Should just be `export { EventEmitter }`, but that doesn't work in TypeScript 3.4 + export { internal as EventEmitter }; + export interface Abortable { + /** + * When provided the corresponding `AbortController` can be used to cancel an asynchronous action. + */ + signal?: AbortSignal | undefined; + } + } + global { + namespace NodeJS { + interface EventEmitter { + /** + * Alias for `emitter.on(eventName, listener)`. + * @since v0.1.26 + */ + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + /** + * Adds the `listener` function to the end of the listeners array for the + * event named `eventName`. No checks are made to see if the `listener` has + * already been added. Multiple calls passing the same combination of `eventName`and `listener` will result in the `listener` being added, and called, multiple + * times. + * + * ```js + * server.on('connection', (stream) => { + * console.log('someone connected!'); + * }); + * ``` + * + * Returns a reference to the `EventEmitter`, so that calls can be chained. + * + * By default, event listeners are invoked in the order they are added. The`emitter.prependListener()` method can be used as an alternative to add the + * event listener to the beginning of the listeners array. + * + * ```js + * const myEE = new EventEmitter(); + * myEE.on('foo', () => console.log('a')); + * myEE.prependListener('foo', () => console.log('b')); + * myEE.emit('foo'); + * // Prints: + * // b + * // a + * ``` + * @since v0.1.101 + * @param eventName The name of the event. + * @param listener The callback function + */ + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + /** + * Adds a **one-time**`listener` function for the event named `eventName`. The + * next time `eventName` is triggered, this listener is removed and then invoked. + * + * ```js + * server.once('connection', (stream) => { + * console.log('Ah, we have our first user!'); + * }); + * ``` + * + * Returns a reference to the `EventEmitter`, so that calls can be chained. + * + * By default, event listeners are invoked in the order they are added. The`emitter.prependOnceListener()` method can be used as an alternative to add the + * event listener to the beginning of the listeners array. + * + * ```js + * const myEE = new EventEmitter(); + * myEE.once('foo', () => console.log('a')); + * myEE.prependOnceListener('foo', () => console.log('b')); + * myEE.emit('foo'); + * // Prints: + * // b + * // a + * ``` + * @since v0.3.0 + * @param eventName The name of the event. + * @param listener The callback function + */ + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + /** + * Removes the specified `listener` from the listener array for the event named`eventName`. + * + * ```js + * const callback = (stream) => { + * console.log('someone connected!'); + * }; + * server.on('connection', callback); + * // ... + * server.removeListener('connection', callback); + * ``` + * + * `removeListener()` will remove, at most, one instance of a listener from the + * listener array. If any single listener has been added multiple times to the + * listener array for the specified `eventName`, then `removeListener()` must be + * called multiple times to remove each instance. + * + * Once an event is emitted, all listeners attached to it at the + * time of emitting are called in order. This implies that any`removeListener()` or `removeAllListeners()` calls _after_ emitting and _before_ the last listener finishes execution + * will not remove them from`emit()` in progress. Subsequent events behave as expected. + * + * ```js + * const myEmitter = new MyEmitter(); + * + * const callbackA = () => { + * console.log('A'); + * myEmitter.removeListener('event', callbackB); + * }; + * + * const callbackB = () => { + * console.log('B'); + * }; + * + * myEmitter.on('event', callbackA); + * + * myEmitter.on('event', callbackB); + * + * // callbackA removes listener callbackB but it will still be called. + * // Internal listener array at time of emit [callbackA, callbackB] + * myEmitter.emit('event'); + * // Prints: + * // A + * // B + * + * // callbackB is now removed. + * // Internal listener array [callbackA] + * myEmitter.emit('event'); + * // Prints: + * // A + * ``` + * + * Because listeners are managed using an internal array, calling this will + * change the position indices of any listener registered _after_ the listener + * being removed. This will not impact the order in which listeners are called, + * but it means that any copies of the listener array as returned by + * the `emitter.listeners()` method will need to be recreated. + * + * When a single function has been added as a handler multiple times for a single + * event (as in the example below), `removeListener()` will remove the most + * recently added instance. In the example the `once('ping')`listener is removed: + * + * ```js + * const ee = new EventEmitter(); + * + * function pong() { + * console.log('pong'); + * } + * + * ee.on('ping', pong); + * ee.once('ping', pong); + * ee.removeListener('ping', pong); + * + * ee.emit('ping'); + * ee.emit('ping'); + * ``` + * + * Returns a reference to the `EventEmitter`, so that calls can be chained. + * @since v0.1.26 + */ + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + /** + * Alias for `emitter.removeListener()`. + * @since v10.0.0 + */ + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + /** + * Removes all listeners, or those of the specified `eventName`. + * + * It is bad practice to remove listeners added elsewhere in the code, + * particularly when the `EventEmitter` instance was created by some other + * component or module (e.g. sockets or file streams). + * + * Returns a reference to the `EventEmitter`, so that calls can be chained. + * @since v0.1.26 + */ + removeAllListeners(event?: string | symbol): this; + /** + * By default `EventEmitter`s will print a warning if more than `10` listeners are + * added for a particular event. This is a useful default that helps finding + * memory leaks. The `emitter.setMaxListeners()` method allows the limit to be + * modified for this specific `EventEmitter` instance. The value can be set to`Infinity` (or `0`) to indicate an unlimited number of listeners. + * + * Returns a reference to the `EventEmitter`, so that calls can be chained. + * @since v0.3.5 + */ + setMaxListeners(n: number): this; + /** + * Returns the current max listener value for the `EventEmitter` which is either + * set by `emitter.setMaxListeners(n)` or defaults to {@link defaultMaxListeners}. + * @since v1.0.0 + */ + getMaxListeners(): number; + /** + * Returns a copy of the array of listeners for the event named `eventName`. + * + * ```js + * server.on('connection', (stream) => { + * console.log('someone connected!'); + * }); + * console.log(util.inspect(server.listeners('connection'))); + * // Prints: [ [Function] ] + * ``` + * @since v0.1.26 + */ + listeners(eventName: string | symbol): Function[]; + /** + * Returns a copy of the array of listeners for the event named `eventName`, + * including any wrappers (such as those created by `.once()`). + * + * ```js + * const emitter = new EventEmitter(); + * emitter.once('log', () => console.log('log once')); + * + * // Returns a new Array with a function `onceWrapper` which has a property + * // `listener` which contains the original listener bound above + * const listeners = emitter.rawListeners('log'); + * const logFnWrapper = listeners[0]; + * + * // Logs "log once" to the console and does not unbind the `once` event + * logFnWrapper.listener(); + * + * // Logs "log once" to the console and removes the listener + * logFnWrapper(); + * + * emitter.on('log', () => console.log('log persistently')); + * // Will return a new Array with a single function bound by `.on()` above + * const newListeners = emitter.rawListeners('log'); + * + * // Logs "log persistently" twice + * newListeners[0](); + * emitter.emit('log'); + * ``` + * @since v9.4.0 + */ + rawListeners(eventName: string | symbol): Function[]; + /** + * Synchronously calls each of the listeners registered for the event named`eventName`, in the order they were registered, passing the supplied arguments + * to each. + * + * Returns `true` if the event had listeners, `false` otherwise. + * + * ```js + * const EventEmitter = require('events'); + * const myEmitter = new EventEmitter(); + * + * // First listener + * myEmitter.on('event', function firstListener() { + * console.log('Helloooo! first listener'); + * }); + * // Second listener + * myEmitter.on('event', function secondListener(arg1, arg2) { + * console.log(`event with parameters ${arg1}, ${arg2} in second listener`); + * }); + * // Third listener + * myEmitter.on('event', function thirdListener(...args) { + * const parameters = args.join(', '); + * console.log(`event with parameters ${parameters} in third listener`); + * }); + * + * console.log(myEmitter.listeners('event')); + * + * myEmitter.emit('event', 1, 2, 3, 4, 5); + * + * // Prints: + * // [ + * // [Function: firstListener], + * // [Function: secondListener], + * // [Function: thirdListener] + * // ] + * // Helloooo! first listener + * // event with parameters 1, 2 in second listener + * // event with parameters 1, 2, 3, 4, 5 in third listener + * ``` + * @since v0.1.26 + */ + emit(eventName: string | symbol, ...args: any[]): boolean; + /** + * Returns the number of listeners listening to the event named `eventName`. + * @since v3.2.0 + * @param eventName The name of the event being listened for + */ + listenerCount(eventName: string | symbol): number; + /** + * Adds the `listener` function to the _beginning_ of the listeners array for the + * event named `eventName`. No checks are made to see if the `listener` has + * already been added. Multiple calls passing the same combination of `eventName`and `listener` will result in the `listener` being added, and called, multiple + * times. + * + * ```js + * server.prependListener('connection', (stream) => { + * console.log('someone connected!'); + * }); + * ``` + * + * Returns a reference to the `EventEmitter`, so that calls can be chained. + * @since v6.0.0 + * @param eventName The name of the event. + * @param listener The callback function + */ + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + /** + * Adds a **one-time**`listener` function for the event named `eventName` to the _beginning_ of the listeners array. The next time `eventName` is triggered, this + * listener is removed, and then invoked. + * + * ```js + * server.prependOnceListener('connection', (stream) => { + * console.log('Ah, we have our first user!'); + * }); + * ``` + * + * Returns a reference to the `EventEmitter`, so that calls can be chained. + * @since v6.0.0 + * @param eventName The name of the event. + * @param listener The callback function + */ + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + /** + * Returns an array listing the events for which the emitter has registered + * listeners. The values in the array are strings or `Symbol`s. + * + * ```js + * const EventEmitter = require('events'); + * const myEE = new EventEmitter(); + * myEE.on('foo', () => {}); + * myEE.on('bar', () => {}); + * + * const sym = Symbol('symbol'); + * myEE.on(sym, () => {}); + * + * console.log(myEE.eventNames()); + * // Prints: [ 'foo', 'bar', Symbol(symbol) ] + * ``` + * @since v6.0.0 + */ + eventNames(): Array; + } + } + } + export = EventEmitter; +} +declare module 'node:events' { + import events = require('events'); + export = events; +} diff --git a/node_modules/@types/node/fs.d.ts b/node_modules/@types/node/fs.d.ts new file mode 100644 index 0000000..75c53fb --- /dev/null +++ b/node_modules/@types/node/fs.d.ts @@ -0,0 +1,3872 @@ +/** + * The `fs` module enables interacting with the file system in a + * way modeled on standard POSIX functions. + * + * To use the promise-based APIs: + * + * ```js + * import * as fs from 'fs/promises'; + * ``` + * + * To use the callback and sync APIs: + * + * ```js + * import * as fs from 'fs'; + * ``` + * + * All file system operations have synchronous, callback, and promise-based + * forms, and are accessible using both CommonJS syntax and ES6 Modules (ESM). + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/fs.js) + */ +declare module 'fs' { + import * as stream from 'node:stream'; + import { Abortable, EventEmitter } from 'node:events'; + import { URL } from 'node:url'; + import * as promises from 'node:fs/promises'; + export { promises }; + /** + * Valid types for path values in "fs". + */ + export type PathLike = string | Buffer | URL; + export type PathOrFileDescriptor = PathLike | number; + export type TimeLike = string | number | Date; + export type NoParamCallback = (err: NodeJS.ErrnoException | null) => void; + export type BufferEncodingOption = + | 'buffer' + | { + encoding: 'buffer'; + }; + export interface ObjectEncodingOptions { + encoding?: BufferEncoding | null | undefined; + } + export type EncodingOption = ObjectEncodingOptions | BufferEncoding | undefined | null; + export type OpenMode = number | string; + export type Mode = number | string; + export interface StatsBase { + isFile(): boolean; + isDirectory(): boolean; + isBlockDevice(): boolean; + isCharacterDevice(): boolean; + isSymbolicLink(): boolean; + isFIFO(): boolean; + isSocket(): boolean; + dev: T; + ino: T; + mode: T; + nlink: T; + uid: T; + gid: T; + rdev: T; + size: T; + blksize: T; + blocks: T; + atimeMs: T; + mtimeMs: T; + ctimeMs: T; + birthtimeMs: T; + atime: Date; + mtime: Date; + ctime: Date; + birthtime: Date; + } + export interface Stats extends StatsBase {} + /** + * A `fs.Stats` object provides information about a file. + * + * Objects returned from {@link stat}, {@link lstat} and {@link fstat} and + * their synchronous counterparts are of this type. + * If `bigint` in the `options` passed to those methods is true, the numeric values + * will be `bigint` instead of `number`, and the object will contain additional + * nanosecond-precision properties suffixed with `Ns`. + * + * ```console + * Stats { + * dev: 2114, + * ino: 48064969, + * mode: 33188, + * nlink: 1, + * uid: 85, + * gid: 100, + * rdev: 0, + * size: 527, + * blksize: 4096, + * blocks: 8, + * atimeMs: 1318289051000.1, + * mtimeMs: 1318289051000.1, + * ctimeMs: 1318289051000.1, + * birthtimeMs: 1318289051000.1, + * atime: Mon, 10 Oct 2011 23:24:11 GMT, + * mtime: Mon, 10 Oct 2011 23:24:11 GMT, + * ctime: Mon, 10 Oct 2011 23:24:11 GMT, + * birthtime: Mon, 10 Oct 2011 23:24:11 GMT } + * ``` + * + * `bigint` version: + * + * ```console + * BigIntStats { + * dev: 2114n, + * ino: 48064969n, + * mode: 33188n, + * nlink: 1n, + * uid: 85n, + * gid: 100n, + * rdev: 0n, + * size: 527n, + * blksize: 4096n, + * blocks: 8n, + * atimeMs: 1318289051000n, + * mtimeMs: 1318289051000n, + * ctimeMs: 1318289051000n, + * birthtimeMs: 1318289051000n, + * atimeNs: 1318289051000000000n, + * mtimeNs: 1318289051000000000n, + * ctimeNs: 1318289051000000000n, + * birthtimeNs: 1318289051000000000n, + * atime: Mon, 10 Oct 2011 23:24:11 GMT, + * mtime: Mon, 10 Oct 2011 23:24:11 GMT, + * ctime: Mon, 10 Oct 2011 23:24:11 GMT, + * birthtime: Mon, 10 Oct 2011 23:24:11 GMT } + * ``` + * @since v0.1.21 + */ + export class Stats {} + /** + * A representation of a directory entry, which can be a file or a subdirectory + * within the directory, as returned by reading from an `fs.Dir`. The + * directory entry is a combination of the file name and file type pairs. + * + * Additionally, when {@link readdir} or {@link readdirSync} is called with + * the `withFileTypes` option set to `true`, the resulting array is filled with `fs.Dirent` objects, rather than strings or `Buffer` s. + * @since v10.10.0 + */ + export class Dirent { + /** + * Returns `true` if the `fs.Dirent` object describes a regular file. + * @since v10.10.0 + */ + isFile(): boolean; + /** + * Returns `true` if the `fs.Dirent` object describes a file system + * directory. + * @since v10.10.0 + */ + isDirectory(): boolean; + /** + * Returns `true` if the `fs.Dirent` object describes a block device. + * @since v10.10.0 + */ + isBlockDevice(): boolean; + /** + * Returns `true` if the `fs.Dirent` object describes a character device. + * @since v10.10.0 + */ + isCharacterDevice(): boolean; + /** + * Returns `true` if the `fs.Dirent` object describes a symbolic link. + * @since v10.10.0 + */ + isSymbolicLink(): boolean; + /** + * Returns `true` if the `fs.Dirent` object describes a first-in-first-out + * (FIFO) pipe. + * @since v10.10.0 + */ + isFIFO(): boolean; + /** + * Returns `true` if the `fs.Dirent` object describes a socket. + * @since v10.10.0 + */ + isSocket(): boolean; + /** + * The file name that this `fs.Dirent` object refers to. The type of this + * value is determined by the `options.encoding` passed to {@link readdir} or {@link readdirSync}. + * @since v10.10.0 + */ + name: string; + } + /** + * A class representing a directory stream. + * + * Created by {@link opendir}, {@link opendirSync}, or `fsPromises.opendir()`. + * + * ```js + * import { opendir } from 'fs/promises'; + * + * try { + * const dir = await opendir('./'); + * for await (const dirent of dir) + * console.log(dirent.name); + * } catch (err) { + * console.error(err); + * } + * ``` + * + * When using the async iterator, the `fs.Dir` object will be automatically + * closed after the iterator exits. + * @since v12.12.0 + */ + export class Dir implements AsyncIterable { + /** + * The read-only path of this directory as was provided to {@link opendir},{@link opendirSync}, or `fsPromises.opendir()`. + * @since v12.12.0 + */ + readonly path: string; + /** + * Asynchronously iterates over the directory via `readdir(3)` until all entries have been read. + */ + [Symbol.asyncIterator](): AsyncIterableIterator; + /** + * Asynchronously close the directory's underlying resource handle. + * Subsequent reads will result in errors. + * + * A promise is returned that will be resolved after the resource has been + * closed. + * @since v12.12.0 + */ + close(): Promise; + close(cb: NoParamCallback): void; + /** + * Synchronously close the directory's underlying resource handle. + * Subsequent reads will result in errors. + * @since v12.12.0 + */ + closeSync(): void; + /** + * Asynchronously read the next directory entry via [`readdir(3)`](http://man7.org/linux/man-pages/man3/readdir.3.html) as an `fs.Dirent`. + * + * A promise is returned that will be resolved with an `fs.Dirent`, or `null`if there are no more directory entries to read. + * + * Directory entries returned by this function are in no particular order as + * provided by the operating system's underlying directory mechanisms. + * Entries added or removed while iterating over the directory might not be + * included in the iteration results. + * @since v12.12.0 + * @return containing {fs.Dirent|null} + */ + read(): Promise; + read(cb: (err: NodeJS.ErrnoException | null, dirEnt: Dirent | null) => void): void; + /** + * Synchronously read the next directory entry as an `fs.Dirent`. See the + * POSIX [`readdir(3)`](http://man7.org/linux/man-pages/man3/readdir.3.html) documentation for more detail. + * + * If there are no more directory entries to read, `null` will be returned. + * + * Directory entries returned by this function are in no particular order as + * provided by the operating system's underlying directory mechanisms. + * Entries added or removed while iterating over the directory might not be + * included in the iteration results. + * @since v12.12.0 + */ + readSync(): Dirent | null; + } + /** + * Class: fs.StatWatcher + * @since v14.3.0, v12.20.0 + * Extends `EventEmitter` + * A successful call to {@link watchFile} method will return a new fs.StatWatcher object. + */ + export interface StatWatcher extends EventEmitter { + /** + * When called, requests that the Node.js event loop _not_ exit so long as the `fs.StatWatcher` is active. Calling `watcher.ref()` multiple times will have + * no effect. + * + * By default, all `fs.StatWatcher` objects are "ref'ed", making it normally + * unnecessary to call `watcher.ref()` unless `watcher.unref()` had been + * called previously. + * @since v14.3.0, v12.20.0 + */ + ref(): this; + /** + * When called, the active `fs.StatWatcher` object will not require the Node.js + * event loop to remain active. If there is no other activity keeping the + * event loop running, the process may exit before the `fs.StatWatcher` object's + * callback is invoked. Calling `watcher.unref()` multiple times will have + * no effect. + * @since v14.3.0, v12.20.0 + */ + unref(): this; + } + export interface FSWatcher extends EventEmitter { + /** + * Stop watching for changes on the given `fs.FSWatcher`. Once stopped, the `fs.FSWatcher` object is no longer usable. + * @since v0.5.8 + */ + close(): void; + /** + * events.EventEmitter + * 1. change + * 2. error + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this; + addListener(event: 'error', listener: (error: Error) => void): this; + addListener(event: 'close', listener: () => void): this; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this; + on(event: 'error', listener: (error: Error) => void): this; + on(event: 'close', listener: () => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this; + once(event: 'error', listener: (error: Error) => void): this; + once(event: 'close', listener: () => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this; + prependListener(event: 'error', listener: (error: Error) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this; + prependOnceListener(event: 'error', listener: (error: Error) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + } + /** + * Instances of `fs.ReadStream` are created and returned using the {@link createReadStream} function. + * @since v0.1.93 + */ + export class ReadStream extends stream.Readable { + close(callback?: (err?: NodeJS.ErrnoException | null) => void): void; + /** + * The number of bytes that have been read so far. + * @since v6.4.0 + */ + bytesRead: number; + /** + * The path to the file the stream is reading from as specified in the first + * argument to `fs.createReadStream()`. If `path` is passed as a string, then`readStream.path` will be a string. If `path` is passed as a `Buffer`, then`readStream.path` will be a + * `Buffer`. If `fd` is specified, then`readStream.path` will be `undefined`. + * @since v0.1.93 + */ + path: string | Buffer; + /** + * This property is `true` if the underlying file has not been opened yet, + * i.e. before the `'ready'` event is emitted. + * @since v11.2.0, v10.16.0 + */ + pending: boolean; + /** + * events.EventEmitter + * 1. open + * 2. close + * 3. ready + */ + addListener(event: 'close', listener: () => void): this; + addListener(event: 'data', listener: (chunk: Buffer | string) => void): this; + addListener(event: 'end', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'open', listener: (fd: number) => void): this; + addListener(event: 'pause', listener: () => void): this; + addListener(event: 'readable', listener: () => void): this; + addListener(event: 'ready', listener: () => void): this; + addListener(event: 'resume', listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'data', listener: (chunk: Buffer | string) => void): this; + on(event: 'end', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'open', listener: (fd: number) => void): this; + on(event: 'pause', listener: () => void): this; + on(event: 'readable', listener: () => void): this; + on(event: 'ready', listener: () => void): this; + on(event: 'resume', listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'data', listener: (chunk: Buffer | string) => void): this; + once(event: 'end', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'open', listener: (fd: number) => void): this; + once(event: 'pause', listener: () => void): this; + once(event: 'readable', listener: () => void): this; + once(event: 'ready', listener: () => void): this; + once(event: 'resume', listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'data', listener: (chunk: Buffer | string) => void): this; + prependListener(event: 'end', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'open', listener: (fd: number) => void): this; + prependListener(event: 'pause', listener: () => void): this; + prependListener(event: 'readable', listener: () => void): this; + prependListener(event: 'ready', listener: () => void): this; + prependListener(event: 'resume', listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'data', listener: (chunk: Buffer | string) => void): this; + prependOnceListener(event: 'end', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'open', listener: (fd: number) => void): this; + prependOnceListener(event: 'pause', listener: () => void): this; + prependOnceListener(event: 'readable', listener: () => void): this; + prependOnceListener(event: 'ready', listener: () => void): this; + prependOnceListener(event: 'resume', listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + /** + * * Extends `stream.Writable` + * + * Instances of `fs.WriteStream` are created and returned using the {@link createWriteStream} function. + * @since v0.1.93 + */ + export class WriteStream extends stream.Writable { + /** + * Closes `writeStream`. Optionally accepts a + * callback that will be executed once the `writeStream`is closed. + * @since v0.9.4 + */ + close(callback?: (err?: NodeJS.ErrnoException | null) => void): void; + /** + * The number of bytes written so far. Does not include data that is still queued + * for writing. + * @since v0.4.7 + */ + bytesWritten: number; + /** + * The path to the file the stream is writing to as specified in the first + * argument to {@link createWriteStream}. If `path` is passed as a string, then`writeStream.path` will be a string. If `path` is passed as a `Buffer`, then`writeStream.path` will be a + * `Buffer`. + * @since v0.1.93 + */ + path: string | Buffer; + /** + * This property is `true` if the underlying file has not been opened yet, + * i.e. before the `'ready'` event is emitted. + * @since v11.2.0 + */ + pending: boolean; + /** + * events.EventEmitter + * 1. open + * 2. close + * 3. ready + */ + addListener(event: 'close', listener: () => void): this; + addListener(event: 'drain', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'finish', listener: () => void): this; + addListener(event: 'open', listener: (fd: number) => void): this; + addListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + addListener(event: 'ready', listener: () => void): this; + addListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'drain', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'finish', listener: () => void): this; + on(event: 'open', listener: (fd: number) => void): this; + on(event: 'pipe', listener: (src: stream.Readable) => void): this; + on(event: 'ready', listener: () => void): this; + on(event: 'unpipe', listener: (src: stream.Readable) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'drain', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'finish', listener: () => void): this; + once(event: 'open', listener: (fd: number) => void): this; + once(event: 'pipe', listener: (src: stream.Readable) => void): this; + once(event: 'ready', listener: () => void): this; + once(event: 'unpipe', listener: (src: stream.Readable) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'drain', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'finish', listener: () => void): this; + prependListener(event: 'open', listener: (fd: number) => void): this; + prependListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + prependListener(event: 'ready', listener: () => void): this; + prependListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'drain', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'finish', listener: () => void): this; + prependOnceListener(event: 'open', listener: (fd: number) => void): this; + prependOnceListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + prependOnceListener(event: 'ready', listener: () => void): this; + prependOnceListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + /** + * Asynchronously rename file at `oldPath` to the pathname provided + * as `newPath`. In the case that `newPath` already exists, it will + * be overwritten. If there is a directory at `newPath`, an error will + * be raised instead. No arguments other than a possible exception are + * given to the completion callback. + * + * See also: [`rename(2)`](http://man7.org/linux/man-pages/man2/rename.2.html). + * + * ```js + * import { rename } from 'fs'; + * + * rename('oldFile.txt', 'newFile.txt', (err) => { + * if (err) throw err; + * console.log('Rename complete!'); + * }); + * ``` + * @since v0.0.2 + */ + export function rename(oldPath: PathLike, newPath: PathLike, callback: NoParamCallback): void; + export namespace rename { + /** + * Asynchronous rename(2) - Change the name or location of a file or directory. + * @param oldPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function __promisify__(oldPath: PathLike, newPath: PathLike): Promise; + } + /** + * Renames the file from `oldPath` to `newPath`. Returns `undefined`. + * + * See the POSIX [`rename(2)`](http://man7.org/linux/man-pages/man2/rename.2.html) documentation for more details. + * @since v0.1.21 + */ + export function renameSync(oldPath: PathLike, newPath: PathLike): void; + /** + * Truncates the file. No arguments other than a possible exception are + * given to the completion callback. A file descriptor can also be passed as the + * first argument. In this case, `fs.ftruncate()` is called. + * + * ```js + * import { truncate } from 'fs'; + * // Assuming that 'path/file.txt' is a regular file. + * truncate('path/file.txt', (err) => { + * if (err) throw err; + * console.log('path/file.txt was truncated'); + * }); + * ``` + * + * Passing a file descriptor is deprecated and may result in an error being thrown + * in the future. + * + * See the POSIX [`truncate(2)`](http://man7.org/linux/man-pages/man2/truncate.2.html) documentation for more details. + * @since v0.8.6 + * @param [len=0] + */ + export function truncate(path: PathLike, len: number | undefined | null, callback: NoParamCallback): void; + /** + * Asynchronous truncate(2) - Truncate a file to a specified length. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function truncate(path: PathLike, callback: NoParamCallback): void; + export namespace truncate { + /** + * Asynchronous truncate(2) - Truncate a file to a specified length. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param len If not specified, defaults to `0`. + */ + function __promisify__(path: PathLike, len?: number | null): Promise; + } + /** + * Truncates the file. Returns `undefined`. A file descriptor can also be + * passed as the first argument. In this case, `fs.ftruncateSync()` is called. + * + * Passing a file descriptor is deprecated and may result in an error being thrown + * in the future. + * @since v0.8.6 + * @param [len=0] + */ + export function truncateSync(path: PathLike, len?: number | null): void; + /** + * Truncates the file descriptor. No arguments other than a possible exception are + * given to the completion callback. + * + * See the POSIX [`ftruncate(2)`](http://man7.org/linux/man-pages/man2/ftruncate.2.html) documentation for more detail. + * + * If the file referred to by the file descriptor was larger than `len` bytes, only + * the first `len` bytes will be retained in the file. + * + * For example, the following program retains only the first four bytes of the + * file: + * + * ```js + * import { open, close, ftruncate } from 'fs'; + * + * function closeFd(fd) { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * + * open('temp.txt', 'r+', (err, fd) => { + * if (err) throw err; + * + * try { + * ftruncate(fd, 4, (err) => { + * closeFd(fd); + * if (err) throw err; + * }); + * } catch (err) { + * closeFd(fd); + * if (err) throw err; + * } + * }); + * ``` + * + * If the file previously was shorter than `len` bytes, it is extended, and the + * extended part is filled with null bytes (`'\0'`): + * + * If `len` is negative then `0` will be used. + * @since v0.8.6 + * @param [len=0] + */ + export function ftruncate(fd: number, len: number | undefined | null, callback: NoParamCallback): void; + /** + * Asynchronous ftruncate(2) - Truncate a file to a specified length. + * @param fd A file descriptor. + */ + export function ftruncate(fd: number, callback: NoParamCallback): void; + export namespace ftruncate { + /** + * Asynchronous ftruncate(2) - Truncate a file to a specified length. + * @param fd A file descriptor. + * @param len If not specified, defaults to `0`. + */ + function __promisify__(fd: number, len?: number | null): Promise; + } + /** + * Truncates the file descriptor. Returns `undefined`. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link ftruncate}. + * @since v0.8.6 + * @param [len=0] + */ + export function ftruncateSync(fd: number, len?: number | null): void; + /** + * Asynchronously changes owner and group of a file. No arguments other than a + * possible exception are given to the completion callback. + * + * See the POSIX [`chown(2)`](http://man7.org/linux/man-pages/man2/chown.2.html) documentation for more detail. + * @since v0.1.97 + */ + export function chown(path: PathLike, uid: number, gid: number, callback: NoParamCallback): void; + export namespace chown { + /** + * Asynchronous chown(2) - Change ownership of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(path: PathLike, uid: number, gid: number): Promise; + } + /** + * Synchronously changes owner and group of a file. Returns `undefined`. + * This is the synchronous version of {@link chown}. + * + * See the POSIX [`chown(2)`](http://man7.org/linux/man-pages/man2/chown.2.html) documentation for more detail. + * @since v0.1.97 + */ + export function chownSync(path: PathLike, uid: number, gid: number): void; + /** + * Sets the owner of the file. No arguments other than a possible exception are + * given to the completion callback. + * + * See the POSIX [`fchown(2)`](http://man7.org/linux/man-pages/man2/fchown.2.html) documentation for more detail. + * @since v0.4.7 + */ + export function fchown(fd: number, uid: number, gid: number, callback: NoParamCallback): void; + export namespace fchown { + /** + * Asynchronous fchown(2) - Change ownership of a file. + * @param fd A file descriptor. + */ + function __promisify__(fd: number, uid: number, gid: number): Promise; + } + /** + * Sets the owner of the file. Returns `undefined`. + * + * See the POSIX [`fchown(2)`](http://man7.org/linux/man-pages/man2/fchown.2.html) documentation for more detail. + * @since v0.4.7 + * @param uid The file's new owner's user id. + * @param gid The file's new group's group id. + */ + export function fchownSync(fd: number, uid: number, gid: number): void; + /** + * Set the owner of the symbolic link. No arguments other than a possible + * exception are given to the completion callback. + * + * See the POSIX [`lchown(2)`](http://man7.org/linux/man-pages/man2/lchown.2.html) documentation for more detail. + */ + export function lchown(path: PathLike, uid: number, gid: number, callback: NoParamCallback): void; + export namespace lchown { + /** + * Asynchronous lchown(2) - Change ownership of a file. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(path: PathLike, uid: number, gid: number): Promise; + } + /** + * Set the owner for the path. Returns `undefined`. + * + * See the POSIX [`lchown(2)`](http://man7.org/linux/man-pages/man2/lchown.2.html) documentation for more details. + * @param uid The file's new owner's user id. + * @param gid The file's new group's group id. + */ + export function lchownSync(path: PathLike, uid: number, gid: number): void; + /** + * Changes the access and modification times of a file in the same way as {@link utimes}, with the difference that if the path refers to a symbolic + * link, then the link is not dereferenced: instead, the timestamps of the + * symbolic link itself are changed. + * + * No arguments other than a possible exception are given to the completion + * callback. + * @since v14.5.0, v12.19.0 + */ + export function lutimes(path: PathLike, atime: TimeLike, mtime: TimeLike, callback: NoParamCallback): void; + export namespace lutimes { + /** + * Changes the access and modification times of a file in the same way as `fsPromises.utimes()`, + * with the difference that if the path refers to a symbolic link, then the link is not + * dereferenced: instead, the timestamps of the symbolic link itself are changed. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function __promisify__(path: PathLike, atime: TimeLike, mtime: TimeLike): Promise; + } + /** + * Change the file system timestamps of the symbolic link referenced by `path`. + * Returns `undefined`, or throws an exception when parameters are incorrect or + * the operation fails. This is the synchronous version of {@link lutimes}. + * @since v14.5.0, v12.19.0 + */ + export function lutimesSync(path: PathLike, atime: TimeLike, mtime: TimeLike): void; + /** + * Asynchronously changes the permissions of a file. No arguments other than a + * possible exception are given to the completion callback. + * + * See the POSIX [`chmod(2)`](http://man7.org/linux/man-pages/man2/chmod.2.html) documentation for more detail. + * + * ```js + * import { chmod } from 'fs'; + * + * chmod('my_file.txt', 0o775, (err) => { + * if (err) throw err; + * console.log('The permissions for file "my_file.txt" have been changed!'); + * }); + * ``` + * @since v0.1.30 + */ + export function chmod(path: PathLike, mode: Mode, callback: NoParamCallback): void; + export namespace chmod { + /** + * Asynchronous chmod(2) - Change permissions of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function __promisify__(path: PathLike, mode: Mode): Promise; + } + /** + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link chmod}. + * + * See the POSIX [`chmod(2)`](http://man7.org/linux/man-pages/man2/chmod.2.html) documentation for more detail. + * @since v0.6.7 + */ + export function chmodSync(path: PathLike, mode: Mode): void; + /** + * Sets the permissions on the file. No arguments other than a possible exception + * are given to the completion callback. + * + * See the POSIX [`fchmod(2)`](http://man7.org/linux/man-pages/man2/fchmod.2.html) documentation for more detail. + * @since v0.4.7 + */ + export function fchmod(fd: number, mode: Mode, callback: NoParamCallback): void; + export namespace fchmod { + /** + * Asynchronous fchmod(2) - Change permissions of a file. + * @param fd A file descriptor. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function __promisify__(fd: number, mode: Mode): Promise; + } + /** + * Sets the permissions on the file. Returns `undefined`. + * + * See the POSIX [`fchmod(2)`](http://man7.org/linux/man-pages/man2/fchmod.2.html) documentation for more detail. + * @since v0.4.7 + */ + export function fchmodSync(fd: number, mode: Mode): void; + /** + * Changes the permissions on a symbolic link. No arguments other than a possible + * exception are given to the completion callback. + * + * This method is only implemented on macOS. + * + * See the POSIX [`lchmod(2)`](https://www.freebsd.org/cgi/man.cgi?query=lchmod&sektion=2) documentation for more detail. + * @deprecated Since v0.4.7 + */ + export function lchmod(path: PathLike, mode: Mode, callback: NoParamCallback): void; + /** @deprecated */ + export namespace lchmod { + /** + * Asynchronous lchmod(2) - Change permissions of a file. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function __promisify__(path: PathLike, mode: Mode): Promise; + } + /** + * Changes the permissions on a symbolic link. Returns `undefined`. + * + * This method is only implemented on macOS. + * + * See the POSIX [`lchmod(2)`](https://www.freebsd.org/cgi/man.cgi?query=lchmod&sektion=2) documentation for more detail. + * @deprecated Since v0.4.7 + */ + export function lchmodSync(path: PathLike, mode: Mode): void; + /** + * Asynchronous [`stat(2)`](http://man7.org/linux/man-pages/man2/stat.2.html). The callback gets two arguments `(err, stats)` where`stats` is an `fs.Stats` object. + * + * In case of an error, the `err.code` will be one of `Common System Errors`. + * + * Using `fs.stat()` to check for the existence of a file before calling`fs.open()`, `fs.readFile()` or `fs.writeFile()` is not recommended. + * Instead, user code should open/read/write the file directly and handle the + * error raised if the file is not available. + * + * To check if a file exists without manipulating it afterwards, {@link access} is recommended. + * + * For example, given the following directory structure: + * + * ```text + * - txtDir + * -- file.txt + * - app.js + * ``` + * + * The next program will check for the stats of the given paths: + * + * ```js + * import { stat } from 'fs'; + * + * const pathsToCheck = ['./txtDir', './txtDir/file.txt']; + * + * for (let i = 0; i < pathsToCheck.length; i++) { + * stat(pathsToCheck[i], (err, stats) => { + * console.log(stats.isDirectory()); + * console.log(stats); + * }); + * } + * ``` + * + * The resulting output will resemble: + * + * ```console + * true + * Stats { + * dev: 16777220, + * mode: 16877, + * nlink: 3, + * uid: 501, + * gid: 20, + * rdev: 0, + * blksize: 4096, + * ino: 14214262, + * size: 96, + * blocks: 0, + * atimeMs: 1561174653071.963, + * mtimeMs: 1561174614583.3518, + * ctimeMs: 1561174626623.5366, + * birthtimeMs: 1561174126937.2893, + * atime: 2019-06-22T03:37:33.072Z, + * mtime: 2019-06-22T03:36:54.583Z, + * ctime: 2019-06-22T03:37:06.624Z, + * birthtime: 2019-06-22T03:28:46.937Z + * } + * false + * Stats { + * dev: 16777220, + * mode: 33188, + * nlink: 1, + * uid: 501, + * gid: 20, + * rdev: 0, + * blksize: 4096, + * ino: 14214074, + * size: 8, + * blocks: 8, + * atimeMs: 1561174616618.8555, + * mtimeMs: 1561174614584, + * ctimeMs: 1561174614583.8145, + * birthtimeMs: 1561174007710.7478, + * atime: 2019-06-22T03:36:56.619Z, + * mtime: 2019-06-22T03:36:54.584Z, + * ctime: 2019-06-22T03:36:54.584Z, + * birthtime: 2019-06-22T03:26:47.711Z + * } + * ``` + * @since v0.0.2 + */ + export function stat(path: PathLike, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void; + export function stat( + path: PathLike, + options: + | (StatOptions & { + bigint?: false | undefined; + }) + | undefined, + callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void + ): void; + export function stat( + path: PathLike, + options: StatOptions & { + bigint: true; + }, + callback: (err: NodeJS.ErrnoException | null, stats: BigIntStats) => void + ): void; + export function stat(path: PathLike, options: StatOptions | undefined, callback: (err: NodeJS.ErrnoException | null, stats: Stats | BigIntStats) => void): void; + export namespace stat { + /** + * Asynchronous stat(2) - Get file status. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__( + path: PathLike, + options?: StatOptions & { + bigint?: false | undefined; + } + ): Promise; + function __promisify__( + path: PathLike, + options: StatOptions & { + bigint: true; + } + ): Promise; + function __promisify__(path: PathLike, options?: StatOptions): Promise; + } + export interface StatSyncFn extends Function { + (path: PathLike, options?: undefined): Stats; + ( + path: PathLike, + options?: StatSyncOptions & { + bigint?: false | undefined; + throwIfNoEntry: false; + } + ): Stats | undefined; + ( + path: PathLike, + options: StatSyncOptions & { + bigint: true; + throwIfNoEntry: false; + } + ): BigIntStats | undefined; + ( + path: PathLike, + options?: StatSyncOptions & { + bigint?: false | undefined; + } + ): Stats; + ( + path: PathLike, + options: StatSyncOptions & { + bigint: true; + } + ): BigIntStats; + ( + path: PathLike, + options: StatSyncOptions & { + bigint: boolean; + throwIfNoEntry?: false | undefined; + } + ): Stats | BigIntStats; + (path: PathLike, options?: StatSyncOptions): Stats | BigIntStats | undefined; + } + /** + * Synchronous stat(2) - Get file status. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export const statSync: StatSyncFn; + /** + * Invokes the callback with the `fs.Stats` for the file descriptor. + * + * See the POSIX [`fstat(2)`](http://man7.org/linux/man-pages/man2/fstat.2.html) documentation for more detail. + * @since v0.1.95 + */ + export function fstat(fd: number, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void; + export function fstat( + fd: number, + options: + | (StatOptions & { + bigint?: false | undefined; + }) + | undefined, + callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void + ): void; + export function fstat( + fd: number, + options: StatOptions & { + bigint: true; + }, + callback: (err: NodeJS.ErrnoException | null, stats: BigIntStats) => void + ): void; + export function fstat(fd: number, options: StatOptions | undefined, callback: (err: NodeJS.ErrnoException | null, stats: Stats | BigIntStats) => void): void; + export namespace fstat { + /** + * Asynchronous fstat(2) - Get file status. + * @param fd A file descriptor. + */ + function __promisify__( + fd: number, + options?: StatOptions & { + bigint?: false | undefined; + } + ): Promise; + function __promisify__( + fd: number, + options: StatOptions & { + bigint: true; + } + ): Promise; + function __promisify__(fd: number, options?: StatOptions): Promise; + } + /** + * Retrieves the `fs.Stats` for the file descriptor. + * + * See the POSIX [`fstat(2)`](http://man7.org/linux/man-pages/man2/fstat.2.html) documentation for more detail. + * @since v0.1.95 + */ + export function fstatSync( + fd: number, + options?: StatOptions & { + bigint?: false | undefined; + } + ): Stats; + export function fstatSync( + fd: number, + options: StatOptions & { + bigint: true; + } + ): BigIntStats; + export function fstatSync(fd: number, options?: StatOptions): Stats | BigIntStats; + /** + * Retrieves the `fs.Stats` for the symbolic link referred to by the path. + * The callback gets two arguments `(err, stats)` where `stats` is a `fs.Stats` object. `lstat()` is identical to `stat()`, except that if `path` is a symbolic + * link, then the link itself is stat-ed, not the file that it refers to. + * + * See the POSIX [`lstat(2)`](http://man7.org/linux/man-pages/man2/lstat.2.html) documentation for more details. + * @since v0.1.30 + */ + export function lstat(path: PathLike, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void; + export function lstat( + path: PathLike, + options: + | (StatOptions & { + bigint?: false | undefined; + }) + | undefined, + callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void + ): void; + export function lstat( + path: PathLike, + options: StatOptions & { + bigint: true; + }, + callback: (err: NodeJS.ErrnoException | null, stats: BigIntStats) => void + ): void; + export function lstat(path: PathLike, options: StatOptions | undefined, callback: (err: NodeJS.ErrnoException | null, stats: Stats | BigIntStats) => void): void; + export namespace lstat { + /** + * Asynchronous lstat(2) - Get file status. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__( + path: PathLike, + options?: StatOptions & { + bigint?: false | undefined; + } + ): Promise; + function __promisify__( + path: PathLike, + options: StatOptions & { + bigint: true; + } + ): Promise; + function __promisify__(path: PathLike, options?: StatOptions): Promise; + } + /** + * Synchronous lstat(2) - Get file status. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export const lstatSync: StatSyncFn; + /** + * Creates a new link from the `existingPath` to the `newPath`. See the POSIX [`link(2)`](http://man7.org/linux/man-pages/man2/link.2.html) documentation for more detail. No arguments other than + * a possible + * exception are given to the completion callback. + * @since v0.1.31 + */ + export function link(existingPath: PathLike, newPath: PathLike, callback: NoParamCallback): void; + export namespace link { + /** + * Asynchronous link(2) - Create a new link (also known as a hard link) to an existing file. + * @param existingPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(existingPath: PathLike, newPath: PathLike): Promise; + } + /** + * Creates a new link from the `existingPath` to the `newPath`. See the POSIX [`link(2)`](http://man7.org/linux/man-pages/man2/link.2.html) documentation for more detail. Returns `undefined`. + * @since v0.1.31 + */ + export function linkSync(existingPath: PathLike, newPath: PathLike): void; + /** + * Creates the link called `path` pointing to `target`. No arguments other than a + * possible exception are given to the completion callback. + * + * See the POSIX [`symlink(2)`](http://man7.org/linux/man-pages/man2/symlink.2.html) documentation for more details. + * + * The `type` argument is only available on Windows and ignored on other platforms. + * It can be set to `'dir'`, `'file'`, or `'junction'`. If the `type` argument is + * not set, Node.js will autodetect `target` type and use `'file'` or `'dir'`. If + * the `target` does not exist, `'file'` will be used. Windows junction points + * require the destination path to be absolute. When using `'junction'`, the`target` argument will automatically be normalized to absolute path. + * + * Relative targets are relative to the link’s parent directory. + * + * ```js + * import { symlink } from 'fs'; + * + * symlink('./mew', './mewtwo', callback); + * ``` + * + * The above example creates a symbolic link `mewtwo` which points to `mew` in the + * same directory: + * + * ```bash + * $ tree . + * . + * ├── mew + * └── mewtwo -> ./mew + * ``` + * @since v0.1.31 + */ + export function symlink(target: PathLike, path: PathLike, type: symlink.Type | undefined | null, callback: NoParamCallback): void; + /** + * Asynchronous symlink(2) - Create a new symbolic link to an existing file. + * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol. + * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol. + */ + export function symlink(target: PathLike, path: PathLike, callback: NoParamCallback): void; + export namespace symlink { + /** + * Asynchronous symlink(2) - Create a new symbolic link to an existing file. + * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol. + * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol. + * @param type May be set to `'dir'`, `'file'`, or `'junction'` (default is `'file'`) and is only available on Windows (ignored on other platforms). + * When using `'junction'`, the `target` argument will automatically be normalized to an absolute path. + */ + function __promisify__(target: PathLike, path: PathLike, type?: string | null): Promise; + type Type = 'dir' | 'file' | 'junction'; + } + /** + * Returns `undefined`. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link symlink}. + * @since v0.1.31 + */ + export function symlinkSync(target: PathLike, path: PathLike, type?: symlink.Type | null): void; + /** + * Reads the contents of the symbolic link referred to by `path`. The callback gets + * two arguments `(err, linkString)`. + * + * See the POSIX [`readlink(2)`](http://man7.org/linux/man-pages/man2/readlink.2.html) documentation for more details. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the link path passed to the callback. If the `encoding` is set to `'buffer'`, + * the link path returned will be passed as a `Buffer` object. + * @since v0.1.31 + */ + export function readlink(path: PathLike, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, linkString: string) => void): void; + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readlink(path: PathLike, options: BufferEncodingOption, callback: (err: NodeJS.ErrnoException | null, linkString: Buffer) => void): void; + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readlink(path: PathLike, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, linkString: string | Buffer) => void): void; + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function readlink(path: PathLike, callback: (err: NodeJS.ErrnoException | null, linkString: string) => void): void; + export namespace readlink { + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options?: EncodingOption): Promise; + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options: BufferEncodingOption): Promise; + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options?: EncodingOption): Promise; + } + /** + * Returns the symbolic link's string value. + * + * See the POSIX [`readlink(2)`](http://man7.org/linux/man-pages/man2/readlink.2.html) documentation for more details. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the link path returned. If the `encoding` is set to `'buffer'`, + * the link path returned will be passed as a `Buffer` object. + * @since v0.1.31 + */ + export function readlinkSync(path: PathLike, options?: EncodingOption): string; + /** + * Synchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readlinkSync(path: PathLike, options: BufferEncodingOption): Buffer; + /** + * Synchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readlinkSync(path: PathLike, options?: EncodingOption): string | Buffer; + /** + * Asynchronously computes the canonical pathname by resolving `.`, `..` and + * symbolic links. + * + * A canonical pathname is not necessarily unique. Hard links and bind mounts can + * expose a file system entity through many pathnames. + * + * This function behaves like [`realpath(3)`](http://man7.org/linux/man-pages/man3/realpath.3.html), with some exceptions: + * + * 1. No case conversion is performed on case-insensitive file systems. + * 2. The maximum number of symbolic links is platform-independent and generally + * (much) higher than what the native [`realpath(3)`](http://man7.org/linux/man-pages/man3/realpath.3.html) implementation supports. + * + * The `callback` gets two arguments `(err, resolvedPath)`. May use `process.cwd`to resolve relative paths. + * + * Only paths that can be converted to UTF8 strings are supported. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the path passed to the callback. If the `encoding` is set to `'buffer'`, + * the path returned will be passed as a `Buffer` object. + * + * If `path` resolves to a socket or a pipe, the function will return a system + * dependent name for that object. + * @since v0.1.31 + */ + export function realpath(path: PathLike, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void): void; + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function realpath(path: PathLike, options: BufferEncodingOption, callback: (err: NodeJS.ErrnoException | null, resolvedPath: Buffer) => void): void; + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function realpath(path: PathLike, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string | Buffer) => void): void; + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function realpath(path: PathLike, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void): void; + export namespace realpath { + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options?: EncodingOption): Promise; + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options: BufferEncodingOption): Promise; + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options?: EncodingOption): Promise; + /** + * Asynchronous [`realpath(3)`](http://man7.org/linux/man-pages/man3/realpath.3.html). + * + * The `callback` gets two arguments `(err, resolvedPath)`. + * + * Only paths that can be converted to UTF8 strings are supported. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the path passed to the callback. If the `encoding` is set to `'buffer'`, + * the path returned will be passed as a `Buffer` object. + * + * On Linux, when Node.js is linked against musl libc, the procfs file system must + * be mounted on `/proc` in order for this function to work. Glibc does not have + * this restriction. + * @since v9.2.0 + */ + function native(path: PathLike, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void): void; + function native(path: PathLike, options: BufferEncodingOption, callback: (err: NodeJS.ErrnoException | null, resolvedPath: Buffer) => void): void; + function native(path: PathLike, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string | Buffer) => void): void; + function native(path: PathLike, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void): void; + } + /** + * Returns the resolved pathname. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link realpath}. + * @since v0.1.31 + */ + export function realpathSync(path: PathLike, options?: EncodingOption): string; + /** + * Synchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function realpathSync(path: PathLike, options: BufferEncodingOption): Buffer; + /** + * Synchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function realpathSync(path: PathLike, options?: EncodingOption): string | Buffer; + export namespace realpathSync { + function native(path: PathLike, options?: EncodingOption): string; + function native(path: PathLike, options: BufferEncodingOption): Buffer; + function native(path: PathLike, options?: EncodingOption): string | Buffer; + } + /** + * Asynchronously removes a file or symbolic link. No arguments other than a + * possible exception are given to the completion callback. + * + * ```js + * import { unlink } from 'fs'; + * // Assuming that 'path/file.txt' is a regular file. + * unlink('path/file.txt', (err) => { + * if (err) throw err; + * console.log('path/file.txt was deleted'); + * }); + * ``` + * + * `fs.unlink()` will not work on a directory, empty or otherwise. To remove a + * directory, use {@link rmdir}. + * + * See the POSIX [`unlink(2)`](http://man7.org/linux/man-pages/man2/unlink.2.html) documentation for more details. + * @since v0.0.2 + */ + export function unlink(path: PathLike, callback: NoParamCallback): void; + export namespace unlink { + /** + * Asynchronous unlink(2) - delete a name and possibly the file it refers to. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(path: PathLike): Promise; + } + /** + * Synchronous [`unlink(2)`](http://man7.org/linux/man-pages/man2/unlink.2.html). Returns `undefined`. + * @since v0.1.21 + */ + export function unlinkSync(path: PathLike): void; + export interface RmDirOptions { + /** + * If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or + * `EPERM` error is encountered, Node.js will retry the operation with a linear + * backoff wait of `retryDelay` ms longer on each try. This option represents the + * number of retries. This option is ignored if the `recursive` option is not + * `true`. + * @default 0 + */ + maxRetries?: number | undefined; + /** + * @deprecated since v14.14.0 In future versions of Node.js and will trigger a warning + * `fs.rmdir(path, { recursive: true })` will throw if `path` does not exist or is a file. + * Use `fs.rm(path, { recursive: true, force: true })` instead. + * + * If `true`, perform a recursive directory removal. In + * recursive mode, operations are retried on failure. + * @default false + */ + recursive?: boolean | undefined; + /** + * The amount of time in milliseconds to wait between retries. + * This option is ignored if the `recursive` option is not `true`. + * @default 100 + */ + retryDelay?: number | undefined; + } + /** + * Asynchronous [`rmdir(2)`](http://man7.org/linux/man-pages/man2/rmdir.2.html). No arguments other than a possible exception are given + * to the completion callback. + * + * Using `fs.rmdir()` on a file (not a directory) results in an `ENOENT` error on + * Windows and an `ENOTDIR` error on POSIX. + * + * To get a behavior similar to the `rm -rf` Unix command, use {@link rm} with options `{ recursive: true, force: true }`. + * @since v0.0.2 + */ + export function rmdir(path: PathLike, callback: NoParamCallback): void; + export function rmdir(path: PathLike, options: RmDirOptions, callback: NoParamCallback): void; + export namespace rmdir { + /** + * Asynchronous rmdir(2) - delete a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(path: PathLike, options?: RmDirOptions): Promise; + } + /** + * Synchronous [`rmdir(2)`](http://man7.org/linux/man-pages/man2/rmdir.2.html). Returns `undefined`. + * + * Using `fs.rmdirSync()` on a file (not a directory) results in an `ENOENT` error + * on Windows and an `ENOTDIR` error on POSIX. + * + * To get a behavior similar to the `rm -rf` Unix command, use {@link rmSync} with options `{ recursive: true, force: true }`. + * @since v0.1.21 + */ + export function rmdirSync(path: PathLike, options?: RmDirOptions): void; + export interface RmOptions { + /** + * When `true`, exceptions will be ignored if `path` does not exist. + * @default false + */ + force?: boolean | undefined; + /** + * If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or + * `EPERM` error is encountered, Node.js will retry the operation with a linear + * backoff wait of `retryDelay` ms longer on each try. This option represents the + * number of retries. This option is ignored if the `recursive` option is not + * `true`. + * @default 0 + */ + maxRetries?: number | undefined; + /** + * If `true`, perform a recursive directory removal. In + * recursive mode, operations are retried on failure. + * @default false + */ + recursive?: boolean | undefined; + /** + * The amount of time in milliseconds to wait between retries. + * This option is ignored if the `recursive` option is not `true`. + * @default 100 + */ + retryDelay?: number | undefined; + } + /** + * Asynchronously removes files and directories (modeled on the standard POSIX `rm`utility). No arguments other than a possible exception are given to the + * completion callback. + * @since v14.14.0 + */ + export function rm(path: PathLike, callback: NoParamCallback): void; + export function rm(path: PathLike, options: RmOptions, callback: NoParamCallback): void; + export namespace rm { + /** + * Asynchronously removes files and directories (modeled on the standard POSIX `rm` utility). + */ + function __promisify__(path: PathLike, options?: RmOptions): Promise; + } + /** + * Synchronously removes files and directories (modeled on the standard POSIX `rm`utility). Returns `undefined`. + * @since v14.14.0 + */ + export function rmSync(path: PathLike, options?: RmOptions): void; + export interface MakeDirectoryOptions { + /** + * Indicates whether parent folders should be created. + * If a folder was created, the path to the first created folder will be returned. + * @default false + */ + recursive?: boolean | undefined; + /** + * A file mode. If a string is passed, it is parsed as an octal integer. If not specified + * @default 0o777 + */ + mode?: Mode | undefined; + } + /** + * Asynchronously creates a directory. + * + * The callback is given a possible exception and, if `recursive` is `true`, the + * first directory path created, `(err[, path])`.`path` can still be `undefined` when `recursive` is `true`, if no directory was + * created. + * + * The optional `options` argument can be an integer specifying `mode` (permission + * and sticky bits), or an object with a `mode` property and a `recursive`property indicating whether parent directories should be created. Calling`fs.mkdir()` when `path` is a directory that + * exists results in an error only + * when `recursive` is false. + * + * ```js + * import { mkdir } from 'fs'; + * + * // Creates /tmp/a/apple, regardless of whether `/tmp` and /tmp/a exist. + * mkdir('/tmp/a/apple', { recursive: true }, (err) => { + * if (err) throw err; + * }); + * ``` + * + * On Windows, using `fs.mkdir()` on the root directory even with recursion will + * result in an error: + * + * ```js + * import { mkdir } from 'fs'; + * + * mkdir('/', { recursive: true }, (err) => { + * // => [Error: EPERM: operation not permitted, mkdir 'C:\'] + * }); + * ``` + * + * See the POSIX [`mkdir(2)`](http://man7.org/linux/man-pages/man2/mkdir.2.html) documentation for more details. + * @since v0.1.8 + */ + export function mkdir( + path: PathLike, + options: MakeDirectoryOptions & { + recursive: true; + }, + callback: (err: NodeJS.ErrnoException | null, path?: string) => void + ): void; + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + export function mkdir( + path: PathLike, + options: + | Mode + | (MakeDirectoryOptions & { + recursive?: false | undefined; + }) + | null + | undefined, + callback: NoParamCallback + ): void; + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + export function mkdir(path: PathLike, options: Mode | MakeDirectoryOptions | null | undefined, callback: (err: NodeJS.ErrnoException | null, path?: string) => void): void; + /** + * Asynchronous mkdir(2) - create a directory with a mode of `0o777`. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function mkdir(path: PathLike, callback: NoParamCallback): void; + export namespace mkdir { + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function __promisify__( + path: PathLike, + options: MakeDirectoryOptions & { + recursive: true; + } + ): Promise; + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function __promisify__( + path: PathLike, + options?: + | Mode + | (MakeDirectoryOptions & { + recursive?: false | undefined; + }) + | null + ): Promise; + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function __promisify__(path: PathLike, options?: Mode | MakeDirectoryOptions | null): Promise; + } + /** + * Synchronously creates a directory. Returns `undefined`, or if `recursive` is`true`, the first directory path created. + * This is the synchronous version of {@link mkdir}. + * + * See the POSIX [`mkdir(2)`](http://man7.org/linux/man-pages/man2/mkdir.2.html) documentation for more details. + * @since v0.1.21 + */ + export function mkdirSync( + path: PathLike, + options: MakeDirectoryOptions & { + recursive: true; + } + ): string | undefined; + /** + * Synchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + export function mkdirSync( + path: PathLike, + options?: + | Mode + | (MakeDirectoryOptions & { + recursive?: false | undefined; + }) + | null + ): void; + /** + * Synchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + export function mkdirSync(path: PathLike, options?: Mode | MakeDirectoryOptions | null): string | undefined; + /** + * Creates a unique temporary directory. + * + * Generates six random characters to be appended behind a required`prefix` to create a unique temporary directory. Due to platform + * inconsistencies, avoid trailing `X` characters in `prefix`. Some platforms, + * notably the BSDs, can return more than six random characters, and replace + * trailing `X` characters in `prefix` with random characters. + * + * The created directory path is passed as a string to the callback's second + * parameter. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use. + * + * ```js + * import { mkdtemp } from 'fs'; + * + * mkdtemp(path.join(os.tmpdir(), 'foo-'), (err, directory) => { + * if (err) throw err; + * console.log(directory); + * // Prints: /tmp/foo-itXde2 or C:\Users\...\AppData\Local\Temp\foo-itXde2 + * }); + * ``` + * + * The `fs.mkdtemp()` method will append the six randomly selected characters + * directly to the `prefix` string. For instance, given a directory `/tmp`, if the + * intention is to create a temporary directory _within_`/tmp`, the `prefix`must end with a trailing platform-specific path separator + * (`require('path').sep`). + * + * ```js + * import { tmpdir } from 'os'; + * import { mkdtemp } from 'fs'; + * + * // The parent directory for the new temporary directory + * const tmpDir = tmpdir(); + * + * // This method is *INCORRECT*: + * mkdtemp(tmpDir, (err, directory) => { + * if (err) throw err; + * console.log(directory); + * // Will print something similar to `/tmpabc123`. + * // A new temporary directory is created at the file system root + * // rather than *within* the /tmp directory. + * }); + * + * // This method is *CORRECT*: + * import { sep } from 'path'; + * mkdtemp(`${tmpDir}${sep}`, (err, directory) => { + * if (err) throw err; + * console.log(directory); + * // Will print something similar to `/tmp/abc123`. + * // A new temporary directory is created within + * // the /tmp directory. + * }); + * ``` + * @since v5.10.0 + */ + export function mkdtemp(prefix: string, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, folder: string) => void): void; + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function mkdtemp( + prefix: string, + options: + | 'buffer' + | { + encoding: 'buffer'; + }, + callback: (err: NodeJS.ErrnoException | null, folder: Buffer) => void + ): void; + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function mkdtemp(prefix: string, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, folder: string | Buffer) => void): void; + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + */ + export function mkdtemp(prefix: string, callback: (err: NodeJS.ErrnoException | null, folder: string) => void): void; + export namespace mkdtemp { + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(prefix: string, options?: EncodingOption): Promise; + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(prefix: string, options: BufferEncodingOption): Promise; + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(prefix: string, options?: EncodingOption): Promise; + } + /** + * Returns the created directory path. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link mkdtemp}. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use. + * @since v5.10.0 + */ + export function mkdtempSync(prefix: string, options?: EncodingOption): string; + /** + * Synchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function mkdtempSync(prefix: string, options: BufferEncodingOption): Buffer; + /** + * Synchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function mkdtempSync(prefix: string, options?: EncodingOption): string | Buffer; + /** + * Reads the contents of a directory. The callback gets two arguments `(err, files)`where `files` is an array of the names of the files in the directory excluding`'.'` and `'..'`. + * + * See the POSIX [`readdir(3)`](http://man7.org/linux/man-pages/man3/readdir.3.html) documentation for more details. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the filenames passed to the callback. If the `encoding` is set to `'buffer'`, + * the filenames returned will be passed as `Buffer` objects. + * + * If `options.withFileTypes` is set to `true`, the `files` array will contain `fs.Dirent` objects. + * @since v0.1.8 + */ + export function readdir( + path: PathLike, + options: + | { + encoding: BufferEncoding | null; + withFileTypes?: false | undefined; + } + | BufferEncoding + | undefined + | null, + callback: (err: NodeJS.ErrnoException | null, files: string[]) => void + ): void; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readdir( + path: PathLike, + options: + | { + encoding: 'buffer'; + withFileTypes?: false | undefined; + } + | 'buffer', + callback: (err: NodeJS.ErrnoException | null, files: Buffer[]) => void + ): void; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readdir( + path: PathLike, + options: + | (ObjectEncodingOptions & { + withFileTypes?: false | undefined; + }) + | BufferEncoding + | undefined + | null, + callback: (err: NodeJS.ErrnoException | null, files: string[] | Buffer[]) => void + ): void; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function readdir(path: PathLike, callback: (err: NodeJS.ErrnoException | null, files: string[]) => void): void; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent. + */ + export function readdir( + path: PathLike, + options: ObjectEncodingOptions & { + withFileTypes: true; + }, + callback: (err: NodeJS.ErrnoException | null, files: Dirent[]) => void + ): void; + export namespace readdir { + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__( + path: PathLike, + options?: + | { + encoding: BufferEncoding | null; + withFileTypes?: false | undefined; + } + | BufferEncoding + | null + ): Promise; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__( + path: PathLike, + options: + | 'buffer' + | { + encoding: 'buffer'; + withFileTypes?: false | undefined; + } + ): Promise; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__( + path: PathLike, + options?: + | (ObjectEncodingOptions & { + withFileTypes?: false | undefined; + }) + | BufferEncoding + | null + ): Promise; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent + */ + function __promisify__( + path: PathLike, + options: ObjectEncodingOptions & { + withFileTypes: true; + } + ): Promise; + } + /** + * Reads the contents of the directory. + * + * See the POSIX [`readdir(3)`](http://man7.org/linux/man-pages/man3/readdir.3.html) documentation for more details. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the filenames returned. If the `encoding` is set to `'buffer'`, + * the filenames returned will be passed as `Buffer` objects. + * + * If `options.withFileTypes` is set to `true`, the result will contain `fs.Dirent` objects. + * @since v0.1.21 + */ + export function readdirSync( + path: PathLike, + options?: + | { + encoding: BufferEncoding | null; + withFileTypes?: false | undefined; + } + | BufferEncoding + | null + ): string[]; + /** + * Synchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readdirSync( + path: PathLike, + options: + | { + encoding: 'buffer'; + withFileTypes?: false | undefined; + } + | 'buffer' + ): Buffer[]; + /** + * Synchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readdirSync( + path: PathLike, + options?: + | (ObjectEncodingOptions & { + withFileTypes?: false | undefined; + }) + | BufferEncoding + | null + ): string[] | Buffer[]; + /** + * Synchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent. + */ + export function readdirSync( + path: PathLike, + options: ObjectEncodingOptions & { + withFileTypes: true; + } + ): Dirent[]; + /** + * Closes the file descriptor. No arguments other than a possible exception are + * given to the completion callback. + * + * Calling `fs.close()` on any file descriptor (`fd`) that is currently in use + * through any other `fs` operation may lead to undefined behavior. + * + * See the POSIX [`close(2)`](http://man7.org/linux/man-pages/man2/close.2.html) documentation for more detail. + * @since v0.0.2 + */ + export function close(fd: number, callback?: NoParamCallback): void; + export namespace close { + /** + * Asynchronous close(2) - close a file descriptor. + * @param fd A file descriptor. + */ + function __promisify__(fd: number): Promise; + } + /** + * Closes the file descriptor. Returns `undefined`. + * + * Calling `fs.closeSync()` on any file descriptor (`fd`) that is currently in use + * through any other `fs` operation may lead to undefined behavior. + * + * See the POSIX [`close(2)`](http://man7.org/linux/man-pages/man2/close.2.html) documentation for more detail. + * @since v0.1.21 + */ + export function closeSync(fd: number): void; + /** + * Asynchronous file open. See the POSIX [`open(2)`](http://man7.org/linux/man-pages/man2/open.2.html) documentation for more details. + * + * `mode` sets the file mode (permission and sticky bits), but only if the file was + * created. On Windows, only the write permission can be manipulated; see {@link chmod}. + * + * The callback gets two arguments `(err, fd)`. + * + * Some characters (`< > : " / \ | ? *`) are reserved under Windows as documented + * by [Naming Files, Paths, and Namespaces](https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file). Under NTFS, if the filename contains + * a colon, Node.js will open a file system stream, as described by [this MSDN page](https://docs.microsoft.com/en-us/windows/desktop/FileIO/using-streams). + * + * Functions based on `fs.open()` exhibit this behavior as well:`fs.writeFile()`, `fs.readFile()`, etc. + * @since v0.0.2 + * @param [flags='r'] See `support of file system `flags``. + * @param [mode=0o666] + */ + export function open(path: PathLike, flags: OpenMode | undefined, mode: Mode | undefined | null, callback: (err: NodeJS.ErrnoException | null, fd: number) => void): void; + /** + * Asynchronous open(2) - open and possibly create a file. If the file is created, its mode will be `0o666`. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param [flags='r'] See `support of file system `flags``. + */ + export function open(path: PathLike, flags: OpenMode | undefined, callback: (err: NodeJS.ErrnoException | null, fd: number) => void): void; + /** + * Asynchronous open(2) - open and possibly create a file. If the file is created, its mode will be `0o666`. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function open(path: PathLike, callback: (err: NodeJS.ErrnoException | null, fd: number) => void): void; + + export namespace open { + /** + * Asynchronous open(2) - open and possibly create a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. If not supplied, defaults to `0o666`. + */ + function __promisify__(path: PathLike, flags: OpenMode, mode?: Mode | null): Promise; + } + /** + * Returns an integer representing the file descriptor. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link open}. + * @since v0.1.21 + * @param [flags='r'] + * @param [mode=0o666] + */ + export function openSync(path: PathLike, flags: OpenMode, mode?: Mode | null): number; + /** + * Change the file system timestamps of the object referenced by `path`. + * + * The `atime` and `mtime` arguments follow these rules: + * + * * Values can be either numbers representing Unix epoch time in seconds,`Date`s, or a numeric string like `'123456789.0'`. + * * If the value can not be converted to a number, or is `NaN`, `Infinity` or`-Infinity`, an `Error` will be thrown. + * @since v0.4.2 + */ + export function utimes(path: PathLike, atime: TimeLike, mtime: TimeLike, callback: NoParamCallback): void; + export namespace utimes { + /** + * Asynchronously change file timestamps of the file referenced by the supplied path. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function __promisify__(path: PathLike, atime: TimeLike, mtime: TimeLike): Promise; + } + /** + * Returns `undefined`. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link utimes}. + * @since v0.4.2 + */ + export function utimesSync(path: PathLike, atime: TimeLike, mtime: TimeLike): void; + /** + * Change the file system timestamps of the object referenced by the supplied file + * descriptor. See {@link utimes}. + * @since v0.4.2 + */ + export function futimes(fd: number, atime: TimeLike, mtime: TimeLike, callback: NoParamCallback): void; + export namespace futimes { + /** + * Asynchronously change file timestamps of the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function __promisify__(fd: number, atime: TimeLike, mtime: TimeLike): Promise; + } + /** + * Synchronous version of {@link futimes}. Returns `undefined`. + * @since v0.4.2 + */ + export function futimesSync(fd: number, atime: TimeLike, mtime: TimeLike): void; + /** + * Request that all data for the open file descriptor is flushed to the storage + * device. The specific implementation is operating system and device specific. + * Refer to the POSIX [`fsync(2)`](http://man7.org/linux/man-pages/man2/fsync.2.html) documentation for more detail. No arguments other + * than a possible exception are given to the completion callback. + * @since v0.1.96 + */ + export function fsync(fd: number, callback: NoParamCallback): void; + export namespace fsync { + /** + * Asynchronous fsync(2) - synchronize a file's in-core state with the underlying storage device. + * @param fd A file descriptor. + */ + function __promisify__(fd: number): Promise; + } + /** + * Request that all data for the open file descriptor is flushed to the storage + * device. The specific implementation is operating system and device specific. + * Refer to the POSIX [`fsync(2)`](http://man7.org/linux/man-pages/man2/fsync.2.html) documentation for more detail. Returns `undefined`. + * @since v0.1.96 + */ + export function fsyncSync(fd: number): void; + /** + * Write `buffer` to the file specified by `fd`. + * + * `offset` determines the part of the buffer to be written, and `length` is + * an integer specifying the number of bytes to write. + * + * `position` refers to the offset from the beginning of the file where this data + * should be written. If `typeof position !== 'number'`, the data will be written + * at the current position. See [`pwrite(2)`](http://man7.org/linux/man-pages/man2/pwrite.2.html). + * + * The callback will be given three arguments `(err, bytesWritten, buffer)` where`bytesWritten` specifies how many _bytes_ were written from `buffer`. + * + * If this method is invoked as its `util.promisify()` ed version, it returns + * a promise for an `Object` with `bytesWritten` and `buffer` properties. + * + * It is unsafe to use `fs.write()` multiple times on the same file without waiting + * for the callback. For this scenario, {@link createWriteStream} is + * recommended. + * + * On Linux, positional writes don't work when the file is opened in append mode. + * The kernel ignores the position argument and always appends the data to + * the end of the file. + * @since v0.0.2 + */ + export function write( + fd: number, + buffer: TBuffer, + offset: number | undefined | null, + length: number | undefined | null, + position: number | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void + ): void; + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. + */ + export function write( + fd: number, + buffer: TBuffer, + offset: number | undefined | null, + length: number | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void + ): void; + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + */ + export function write( + fd: number, + buffer: TBuffer, + offset: number | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void + ): void; + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + */ + export function write(fd: number, buffer: TBuffer, callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void): void; + /** + * Asynchronously writes `string` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param string A string to write. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + * @param encoding The expected string encoding. + */ + export function write( + fd: number, + string: string, + position: number | undefined | null, + encoding: BufferEncoding | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void + ): void; + /** + * Asynchronously writes `string` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param string A string to write. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + */ + export function write(fd: number, string: string, position: number | undefined | null, callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void): void; + /** + * Asynchronously writes `string` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param string A string to write. + */ + export function write(fd: number, string: string, callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void): void; + export namespace write { + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + */ + function __promisify__( + fd: number, + buffer?: TBuffer, + offset?: number, + length?: number, + position?: number | null + ): Promise<{ + bytesWritten: number; + buffer: TBuffer; + }>; + /** + * Asynchronously writes `string` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param string A string to write. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + * @param encoding The expected string encoding. + */ + function __promisify__( + fd: number, + string: string, + position?: number | null, + encoding?: BufferEncoding | null + ): Promise<{ + bytesWritten: number; + buffer: string; + }>; + } + /** + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link write}. + * @since v0.1.21 + * @return The number of bytes written. + */ + export function writeSync(fd: number, buffer: NodeJS.ArrayBufferView, offset?: number | null, length?: number | null, position?: number | null): number; + /** + * Synchronously writes `string` to the file referenced by the supplied file descriptor, returning the number of bytes written. + * @param fd A file descriptor. + * @param string A string to write. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + * @param encoding The expected string encoding. + */ + export function writeSync(fd: number, string: string, position?: number | null, encoding?: BufferEncoding | null): number; + export type ReadPosition = number | bigint; + export interface ReadSyncOptions { + /** + * @default 0 + */ + offset?: number | undefined; + /** + * @default `length of buffer` + */ + length?: number | undefined; + /** + * @default null + */ + position?: ReadPosition | null | undefined; + } + export interface ReadAsyncOptions extends ReadSyncOptions { + buffer?: TBuffer; + } + /** + * Read data from the file specified by `fd`. + * + * The callback is given the three arguments, `(err, bytesRead, buffer)`. + * + * If the file is not modified concurrently, the end-of-file is reached when the + * number of bytes read is zero. + * + * If this method is invoked as its `util.promisify()` ed version, it returns + * a promise for an `Object` with `bytesRead` and `buffer` properties. + * @since v0.0.2 + * @param buffer The buffer that the data will be written to. + * @param offset The position in `buffer` to write the data to. + * @param length The number of bytes to read. + * @param position Specifies where to begin reading from in the file. If `position` is `null` or `-1 `, data will be read from the current file position, and the file position will be updated. If + * `position` is an integer, the file position will be unchanged. + */ + export function read( + fd: number, + buffer: TBuffer, + offset: number, + length: number, + position: ReadPosition | null, + callback: (err: NodeJS.ErrnoException | null, bytesRead: number, buffer: TBuffer) => void + ): void; + /** + * Similar to the above `fs.read` function, this version takes an optional `options` object. + * If not otherwise specified in an `options` object, + * `buffer` defaults to `Buffer.alloc(16384)`, + * `offset` defaults to `0`, + * `length` defaults to `buffer.byteLength`, `- offset` as of Node 17.6.0 + * `position` defaults to `null` + * @since v12.17.0, 13.11.0 + */ + export function read( + fd: number, + options: ReadAsyncOptions, + callback: (err: NodeJS.ErrnoException | null, bytesRead: number, buffer: TBuffer) => void + ): void; + export function read(fd: number, callback: (err: NodeJS.ErrnoException | null, bytesRead: number, buffer: NodeJS.ArrayBufferView) => void): void; + export namespace read { + /** + * @param fd A file descriptor. + * @param buffer The buffer that the data will be written to. + * @param offset The offset in the buffer at which to start writing. + * @param length The number of bytes to read. + * @param position The offset from the beginning of the file from which data should be read. If `null`, data will be read from the current position. + */ + function __promisify__( + fd: number, + buffer: TBuffer, + offset: number, + length: number, + position: number | null + ): Promise<{ + bytesRead: number; + buffer: TBuffer; + }>; + function __promisify__( + fd: number, + options: ReadAsyncOptions + ): Promise<{ + bytesRead: number; + buffer: TBuffer; + }>; + function __promisify__(fd: number): Promise<{ + bytesRead: number; + buffer: NodeJS.ArrayBufferView; + }>; + } + /** + * Returns the number of `bytesRead`. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link read}. + * @since v0.1.21 + */ + export function readSync(fd: number, buffer: NodeJS.ArrayBufferView, offset: number, length: number, position: ReadPosition | null): number; + /** + * Similar to the above `fs.readSync` function, this version takes an optional `options` object. + * If no `options` object is specified, it will default with the above values. + */ + export function readSync(fd: number, buffer: NodeJS.ArrayBufferView, opts?: ReadSyncOptions): number; + /** + * Asynchronously reads the entire contents of a file. + * + * ```js + * import { readFile } from 'fs'; + * + * readFile('/etc/passwd', (err, data) => { + * if (err) throw err; + * console.log(data); + * }); + * ``` + * + * The callback is passed two arguments `(err, data)`, where `data` is the + * contents of the file. + * + * If no encoding is specified, then the raw buffer is returned. + * + * If `options` is a string, then it specifies the encoding: + * + * ```js + * import { readFile } from 'fs'; + * + * readFile('/etc/passwd', 'utf8', callback); + * ``` + * + * When the path is a directory, the behavior of `fs.readFile()` and {@link readFileSync} is platform-specific. On macOS, Linux, and Windows, an + * error will be returned. On FreeBSD, a representation of the directory's contents + * will be returned. + * + * ```js + * import { readFile } from 'fs'; + * + * // macOS, Linux, and Windows + * readFile('', (err, data) => { + * // => [Error: EISDIR: illegal operation on a directory, read ] + * }); + * + * // FreeBSD + * readFile('', (err, data) => { + * // => null, + * }); + * ``` + * + * It is possible to abort an ongoing request using an `AbortSignal`. If a + * request is aborted the callback is called with an `AbortError`: + * + * ```js + * import { readFile } from 'fs'; + * + * const controller = new AbortController(); + * const signal = controller.signal; + * readFile(fileInfo[0].name, { signal }, (err, buf) => { + * // ... + * }); + * // When you want to abort the request + * controller.abort(); + * ``` + * + * The `fs.readFile()` function buffers the entire file. To minimize memory costs, + * when possible prefer streaming via `fs.createReadStream()`. + * + * Aborting an ongoing request does not abort individual operating + * system requests but rather the internal buffering `fs.readFile` performs. + * @since v0.1.29 + * @param path filename or file descriptor + */ + export function readFile( + path: PathOrFileDescriptor, + options: + | ({ + encoding?: null | undefined; + flag?: string | undefined; + } & Abortable) + | undefined + | null, + callback: (err: NodeJS.ErrnoException | null, data: Buffer) => void + ): void; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + export function readFile( + path: PathOrFileDescriptor, + options: + | ({ + encoding: BufferEncoding; + flag?: string | undefined; + } & Abortable) + | BufferEncoding, + callback: (err: NodeJS.ErrnoException | null, data: string) => void + ): void; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + export function readFile( + path: PathOrFileDescriptor, + options: + | (ObjectEncodingOptions & { + flag?: string | undefined; + } & Abortable) + | BufferEncoding + | undefined + | null, + callback: (err: NodeJS.ErrnoException | null, data: string | Buffer) => void + ): void; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + */ + export function readFile(path: PathOrFileDescriptor, callback: (err: NodeJS.ErrnoException | null, data: Buffer) => void): void; + export namespace readFile { + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function __promisify__( + path: PathOrFileDescriptor, + options?: { + encoding?: null | undefined; + flag?: string | undefined; + } | null + ): Promise; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function __promisify__( + path: PathOrFileDescriptor, + options: + | { + encoding: BufferEncoding; + flag?: string | undefined; + } + | BufferEncoding + ): Promise; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function __promisify__( + path: PathOrFileDescriptor, + options?: + | (ObjectEncodingOptions & { + flag?: string | undefined; + }) + | BufferEncoding + | null + ): Promise; + } + /** + * Returns the contents of the `path`. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link readFile}. + * + * If the `encoding` option is specified then this function returns a + * string. Otherwise it returns a buffer. + * + * Similar to {@link readFile}, when the path is a directory, the behavior of`fs.readFileSync()` is platform-specific. + * + * ```js + * import { readFileSync } from 'fs'; + * + * // macOS, Linux, and Windows + * readFileSync(''); + * // => [Error: EISDIR: illegal operation on a directory, read ] + * + * // FreeBSD + * readFileSync(''); // => + * ``` + * @since v0.1.8 + * @param path filename or file descriptor + */ + export function readFileSync( + path: PathOrFileDescriptor, + options?: { + encoding?: null | undefined; + flag?: string | undefined; + } | null + ): Buffer; + /** + * Synchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + export function readFileSync( + path: PathOrFileDescriptor, + options: + | { + encoding: BufferEncoding; + flag?: string | undefined; + } + | BufferEncoding + ): string; + /** + * Synchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + export function readFileSync( + path: PathOrFileDescriptor, + options?: + | (ObjectEncodingOptions & { + flag?: string | undefined; + }) + | BufferEncoding + | null + ): string | Buffer; + export type WriteFileOptions = + | (ObjectEncodingOptions & + Abortable & { + mode?: Mode | undefined; + flag?: string | undefined; + }) + | BufferEncoding + | null; + /** + * When `file` is a filename, asynchronously writes data to the file, replacing the + * file if it already exists. `data` can be a string or a buffer. + * + * When `file` is a file descriptor, the behavior is similar to calling`fs.write()` directly (which is recommended). See the notes below on using + * a file descriptor. + * + * The `encoding` option is ignored if `data` is a buffer. + * + * The `mode` option only affects the newly created file. See {@link open} for more details. + * + * ```js + * import { writeFile } from 'fs'; + * import { Buffer } from 'buffer'; + * + * const data = new Uint8Array(Buffer.from('Hello Node.js')); + * writeFile('message.txt', data, (err) => { + * if (err) throw err; + * console.log('The file has been saved!'); + * }); + * ``` + * + * If `options` is a string, then it specifies the encoding: + * + * ```js + * import { writeFile } from 'fs'; + * + * writeFile('message.txt', 'Hello Node.js', 'utf8', callback); + * ``` + * + * It is unsafe to use `fs.writeFile()` multiple times on the same file without + * waiting for the callback. For this scenario, {@link createWriteStream} is + * recommended. + * + * Similarly to `fs.readFile` \- `fs.writeFile` is a convenience method that + * performs multiple `write` calls internally to write the buffer passed to it. + * For performance sensitive code consider using {@link createWriteStream}. + * + * It is possible to use an `AbortSignal` to cancel an `fs.writeFile()`. + * Cancelation is "best effort", and some amount of data is likely still + * to be written. + * + * ```js + * import { writeFile } from 'fs'; + * import { Buffer } from 'buffer'; + * + * const controller = new AbortController(); + * const { signal } = controller; + * const data = new Uint8Array(Buffer.from('Hello Node.js')); + * writeFile('message.txt', data, { signal }, (err) => { + * // When a request is aborted - the callback is called with an AbortError + * }); + * // When the request should be aborted + * controller.abort(); + * ``` + * + * Aborting an ongoing request does not abort individual operating + * system requests but rather the internal buffering `fs.writeFile` performs. + * @since v0.1.29 + * @param file filename or file descriptor + */ + export function writeFile(file: PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, options: WriteFileOptions, callback: NoParamCallback): void; + /** + * Asynchronously writes data to a file, replacing the file if it already exists. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + */ + export function writeFile(path: PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, callback: NoParamCallback): void; + export namespace writeFile { + /** + * Asynchronously writes data to a file, replacing the file if it already exists. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'w'` is used. + */ + function __promisify__(path: PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, options?: WriteFileOptions): Promise; + } + /** + * Returns `undefined`. + * + * The `mode` option only affects the newly created file. See {@link open} for more details. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link writeFile}. + * @since v0.1.29 + * @param file filename or file descriptor + */ + export function writeFileSync(file: PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, options?: WriteFileOptions): void; + /** + * Asynchronously append data to a file, creating the file if it does not yet + * exist. `data` can be a string or a `Buffer`. + * + * The `mode` option only affects the newly created file. See {@link open} for more details. + * + * ```js + * import { appendFile } from 'fs'; + * + * appendFile('message.txt', 'data to append', (err) => { + * if (err) throw err; + * console.log('The "data to append" was appended to file!'); + * }); + * ``` + * + * If `options` is a string, then it specifies the encoding: + * + * ```js + * import { appendFile } from 'fs'; + * + * appendFile('message.txt', 'data to append', 'utf8', callback); + * ``` + * + * The `path` may be specified as a numeric file descriptor that has been opened + * for appending (using `fs.open()` or `fs.openSync()`). The file descriptor will + * not be closed automatically. + * + * ```js + * import { open, close, appendFile } from 'fs'; + * + * function closeFd(fd) { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * + * open('message.txt', 'a', (err, fd) => { + * if (err) throw err; + * + * try { + * appendFile(fd, 'data to append', 'utf8', (err) => { + * closeFd(fd); + * if (err) throw err; + * }); + * } catch (err) { + * closeFd(fd); + * throw err; + * } + * }); + * ``` + * @since v0.6.7 + * @param path filename or file descriptor + */ + export function appendFile(path: PathOrFileDescriptor, data: string | Uint8Array, options: WriteFileOptions, callback: NoParamCallback): void; + /** + * Asynchronously append data to a file, creating the file if it does not exist. + * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + */ + export function appendFile(file: PathOrFileDescriptor, data: string | Uint8Array, callback: NoParamCallback): void; + export namespace appendFile { + /** + * Asynchronously append data to a file, creating the file if it does not exist. + * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'a'` is used. + */ + function __promisify__(file: PathOrFileDescriptor, data: string | Uint8Array, options?: WriteFileOptions): Promise; + } + /** + * Synchronously append data to a file, creating the file if it does not yet + * exist. `data` can be a string or a `Buffer`. + * + * The `mode` option only affects the newly created file. See {@link open} for more details. + * + * ```js + * import { appendFileSync } from 'fs'; + * + * try { + * appendFileSync('message.txt', 'data to append'); + * console.log('The "data to append" was appended to file!'); + * } catch (err) { + * // Handle the error + * } + * ``` + * + * If `options` is a string, then it specifies the encoding: + * + * ```js + * import { appendFileSync } from 'fs'; + * + * appendFileSync('message.txt', 'data to append', 'utf8'); + * ``` + * + * The `path` may be specified as a numeric file descriptor that has been opened + * for appending (using `fs.open()` or `fs.openSync()`). The file descriptor will + * not be closed automatically. + * + * ```js + * import { openSync, closeSync, appendFileSync } from 'fs'; + * + * let fd; + * + * try { + * fd = openSync('message.txt', 'a'); + * appendFileSync(fd, 'data to append', 'utf8'); + * } catch (err) { + * // Handle the error + * } finally { + * if (fd !== undefined) + * closeSync(fd); + * } + * ``` + * @since v0.6.7 + * @param path filename or file descriptor + */ + export function appendFileSync(path: PathOrFileDescriptor, data: string | Uint8Array, options?: WriteFileOptions): void; + /** + * Watch for changes on `filename`. The callback `listener` will be called each + * time the file is accessed. + * + * The `options` argument may be omitted. If provided, it should be an object. The`options` object may contain a boolean named `persistent` that indicates + * whether the process should continue to run as long as files are being watched. + * The `options` object may specify an `interval` property indicating how often the + * target should be polled in milliseconds. + * + * The `listener` gets two arguments the current stat object and the previous + * stat object: + * + * ```js + * import { watchFile } from 'fs'; + * + * watchFile('message.text', (curr, prev) => { + * console.log(`the current mtime is: ${curr.mtime}`); + * console.log(`the previous mtime was: ${prev.mtime}`); + * }); + * ``` + * + * These stat objects are instances of `fs.Stat`. If the `bigint` option is `true`, + * the numeric values in these objects are specified as `BigInt`s. + * + * To be notified when the file was modified, not just accessed, it is necessary + * to compare `curr.mtimeMs` and `prev.mtimeMs`. + * + * When an `fs.watchFile` operation results in an `ENOENT` error, it + * will invoke the listener once, with all the fields zeroed (or, for dates, the + * Unix Epoch). If the file is created later on, the listener will be called + * again, with the latest stat objects. This is a change in functionality since + * v0.10. + * + * Using {@link watch} is more efficient than `fs.watchFile` and`fs.unwatchFile`. `fs.watch` should be used instead of `fs.watchFile` and`fs.unwatchFile` when possible. + * + * When a file being watched by `fs.watchFile()` disappears and reappears, + * then the contents of `previous` in the second callback event (the file's + * reappearance) will be the same as the contents of `previous` in the first + * callback event (its disappearance). + * + * This happens when: + * + * * the file is deleted, followed by a restore + * * the file is renamed and then renamed a second time back to its original name + * @since v0.1.31 + */ + export interface WatchFileOptions { + bigint?: boolean | undefined; + persistent?: boolean | undefined; + interval?: number | undefined; + } + /** + * Watch for changes on `filename`. The callback `listener` will be called each + * time the file is accessed. + * + * The `options` argument may be omitted. If provided, it should be an object. The`options` object may contain a boolean named `persistent` that indicates + * whether the process should continue to run as long as files are being watched. + * The `options` object may specify an `interval` property indicating how often the + * target should be polled in milliseconds. + * + * The `listener` gets two arguments the current stat object and the previous + * stat object: + * + * ```js + * import { watchFile } from 'fs'; + * + * watchFile('message.text', (curr, prev) => { + * console.log(`the current mtime is: ${curr.mtime}`); + * console.log(`the previous mtime was: ${prev.mtime}`); + * }); + * ``` + * + * These stat objects are instances of `fs.Stat`. If the `bigint` option is `true`, + * the numeric values in these objects are specified as `BigInt`s. + * + * To be notified when the file was modified, not just accessed, it is necessary + * to compare `curr.mtimeMs` and `prev.mtimeMs`. + * + * When an `fs.watchFile` operation results in an `ENOENT` error, it + * will invoke the listener once, with all the fields zeroed (or, for dates, the + * Unix Epoch). If the file is created later on, the listener will be called + * again, with the latest stat objects. This is a change in functionality since + * v0.10. + * + * Using {@link watch} is more efficient than `fs.watchFile` and`fs.unwatchFile`. `fs.watch` should be used instead of `fs.watchFile` and`fs.unwatchFile` when possible. + * + * When a file being watched by `fs.watchFile()` disappears and reappears, + * then the contents of `previous` in the second callback event (the file's + * reappearance) will be the same as the contents of `previous` in the first + * callback event (its disappearance). + * + * This happens when: + * + * * the file is deleted, followed by a restore + * * the file is renamed and then renamed a second time back to its original name + * @since v0.1.31 + */ + export function watchFile( + filename: PathLike, + options: + | (WatchFileOptions & { + bigint?: false | undefined; + }) + | undefined, + listener: (curr: Stats, prev: Stats) => void + ): StatWatcher; + export function watchFile( + filename: PathLike, + options: + | (WatchFileOptions & { + bigint: true; + }) + | undefined, + listener: (curr: BigIntStats, prev: BigIntStats) => void + ): StatWatcher; + /** + * Watch for changes on `filename`. The callback `listener` will be called each time the file is accessed. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + */ + export function watchFile(filename: PathLike, listener: (curr: Stats, prev: Stats) => void): StatWatcher; + /** + * Stop watching for changes on `filename`. If `listener` is specified, only that + * particular listener is removed. Otherwise, _all_ listeners are removed, + * effectively stopping watching of `filename`. + * + * Calling `fs.unwatchFile()` with a filename that is not being watched is a + * no-op, not an error. + * + * Using {@link watch} is more efficient than `fs.watchFile()` and`fs.unwatchFile()`. `fs.watch()` should be used instead of `fs.watchFile()`and `fs.unwatchFile()` when possible. + * @since v0.1.31 + * @param listener Optional, a listener previously attached using `fs.watchFile()` + */ + export function unwatchFile(filename: PathLike, listener?: (curr: Stats, prev: Stats) => void): void; + export interface WatchOptions extends Abortable { + encoding?: BufferEncoding | 'buffer' | undefined; + persistent?: boolean | undefined; + recursive?: boolean | undefined; + } + export type WatchEventType = 'rename' | 'change'; + export type WatchListener = (event: WatchEventType, filename: T) => void; + /** + * Watch for changes on `filename`, where `filename` is either a file or a + * directory. + * + * The second argument is optional. If `options` is provided as a string, it + * specifies the `encoding`. Otherwise `options` should be passed as an object. + * + * The listener callback gets two arguments `(eventType, filename)`. `eventType`is either `'rename'` or `'change'`, and `filename` is the name of the file + * which triggered the event. + * + * On most platforms, `'rename'` is emitted whenever a filename appears or + * disappears in the directory. + * + * The listener callback is attached to the `'change'` event fired by `fs.FSWatcher`, but it is not the same thing as the `'change'` value of`eventType`. + * + * If a `signal` is passed, aborting the corresponding AbortController will close + * the returned `fs.FSWatcher`. + * @since v0.5.10 + * @param listener + */ + export function watch( + filename: PathLike, + options: + | (WatchOptions & { + encoding: 'buffer'; + }) + | 'buffer', + listener?: WatchListener + ): FSWatcher; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + export function watch(filename: PathLike, options?: WatchOptions | BufferEncoding | null, listener?: WatchListener): FSWatcher; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + export function watch(filename: PathLike, options: WatchOptions | string, listener?: WatchListener): FSWatcher; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + */ + export function watch(filename: PathLike, listener?: WatchListener): FSWatcher; + /** + * Test whether or not the given path exists by checking with the file system. + * Then call the `callback` argument with either true or false: + * + * ```js + * import { exists } from 'fs'; + * + * exists('/etc/passwd', (e) => { + * console.log(e ? 'it exists' : 'no passwd!'); + * }); + * ``` + * + * **The parameters for this callback are not consistent with other Node.js** + * **callbacks.** Normally, the first parameter to a Node.js callback is an `err`parameter, optionally followed by other parameters. The `fs.exists()` callback + * has only one boolean parameter. This is one reason `fs.access()` is recommended + * instead of `fs.exists()`. + * + * Using `fs.exists()` to check for the existence of a file before calling`fs.open()`, `fs.readFile()` or `fs.writeFile()` is not recommended. Doing + * so introduces a race condition, since other processes may change the file's + * state between the two calls. Instead, user code should open/read/write the + * file directly and handle the error raised if the file does not exist. + * + * **write (NOT RECOMMENDED)** + * + * ```js + * import { exists, open, close } from 'fs'; + * + * exists('myfile', (e) => { + * if (e) { + * console.error('myfile already exists'); + * } else { + * open('myfile', 'wx', (err, fd) => { + * if (err) throw err; + * + * try { + * writeMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * } + * }); + * ``` + * + * **write (RECOMMENDED)** + * + * ```js + * import { open, close } from 'fs'; + * open('myfile', 'wx', (err, fd) => { + * if (err) { + * if (err.code === 'EEXIST') { + * console.error('myfile already exists'); + * return; + * } + * + * throw err; + * } + * + * try { + * writeMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * ``` + * + * **read (NOT RECOMMENDED)** + * + * ```js + * import { open, close, exists } from 'fs'; + * + * exists('myfile', (e) => { + * if (e) { + * open('myfile', 'r', (err, fd) => { + * if (err) throw err; + * + * try { + * readMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * } else { + * console.error('myfile does not exist'); + * } + * }); + * ``` + * + * **read (RECOMMENDED)** + * + * ```js + * import { open, close } from 'fs'; + * + * open('myfile', 'r', (err, fd) => { + * if (err) { + * if (err.code === 'ENOENT') { + * console.error('myfile does not exist'); + * return; + * } + * + * throw err; + * } + * + * try { + * readMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * ``` + * + * The "not recommended" examples above check for existence and then use the + * file; the "recommended" examples are better because they use the file directly + * and handle the error, if any. + * + * In general, check for the existence of a file only if the file won’t be + * used directly, for example when its existence is a signal from another + * process. + * @since v0.0.2 + * @deprecated Since v1.0.0 - Use {@link stat} or {@link access} instead. + */ + export function exists(path: PathLike, callback: (exists: boolean) => void): void; + /** @deprecated */ + export namespace exists { + /** + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function __promisify__(path: PathLike): Promise; + } + /** + * Returns `true` if the path exists, `false` otherwise. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link exists}. + * + * `fs.exists()` is deprecated, but `fs.existsSync()` is not. The `callback`parameter to `fs.exists()` accepts parameters that are inconsistent with other + * Node.js callbacks. `fs.existsSync()` does not use a callback. + * + * ```js + * import { existsSync } from 'fs'; + * + * if (existsSync('/etc/passwd')) + * console.log('The path exists.'); + * ``` + * @since v0.1.21 + */ + export function existsSync(path: PathLike): boolean; + export namespace constants { + // File Access Constants + /** Constant for fs.access(). File is visible to the calling process. */ + const F_OK: number; + /** Constant for fs.access(). File can be read by the calling process. */ + const R_OK: number; + /** Constant for fs.access(). File can be written by the calling process. */ + const W_OK: number; + /** Constant for fs.access(). File can be executed by the calling process. */ + const X_OK: number; + // File Copy Constants + /** Constant for fs.copyFile. Flag indicating the destination file should not be overwritten if it already exists. */ + const COPYFILE_EXCL: number; + /** + * Constant for fs.copyFile. copy operation will attempt to create a copy-on-write reflink. + * If the underlying platform does not support copy-on-write, then a fallback copy mechanism is used. + */ + const COPYFILE_FICLONE: number; + /** + * Constant for fs.copyFile. Copy operation will attempt to create a copy-on-write reflink. + * If the underlying platform does not support copy-on-write, then the operation will fail with an error. + */ + const COPYFILE_FICLONE_FORCE: number; + // File Open Constants + /** Constant for fs.open(). Flag indicating to open a file for read-only access. */ + const O_RDONLY: number; + /** Constant for fs.open(). Flag indicating to open a file for write-only access. */ + const O_WRONLY: number; + /** Constant for fs.open(). Flag indicating to open a file for read-write access. */ + const O_RDWR: number; + /** Constant for fs.open(). Flag indicating to create the file if it does not already exist. */ + const O_CREAT: number; + /** Constant for fs.open(). Flag indicating that opening a file should fail if the O_CREAT flag is set and the file already exists. */ + const O_EXCL: number; + /** + * Constant for fs.open(). Flag indicating that if path identifies a terminal device, + * opening the path shall not cause that terminal to become the controlling terminal for the process + * (if the process does not already have one). + */ + const O_NOCTTY: number; + /** Constant for fs.open(). Flag indicating that if the file exists and is a regular file, and the file is opened successfully for write access, its length shall be truncated to zero. */ + const O_TRUNC: number; + /** Constant for fs.open(). Flag indicating that data will be appended to the end of the file. */ + const O_APPEND: number; + /** Constant for fs.open(). Flag indicating that the open should fail if the path is not a directory. */ + const O_DIRECTORY: number; + /** + * constant for fs.open(). + * Flag indicating reading accesses to the file system will no longer result in + * an update to the atime information associated with the file. + * This flag is available on Linux operating systems only. + */ + const O_NOATIME: number; + /** Constant for fs.open(). Flag indicating that the open should fail if the path is a symbolic link. */ + const O_NOFOLLOW: number; + /** Constant for fs.open(). Flag indicating that the file is opened for synchronous I/O. */ + const O_SYNC: number; + /** Constant for fs.open(). Flag indicating that the file is opened for synchronous I/O with write operations waiting for data integrity. */ + const O_DSYNC: number; + /** Constant for fs.open(). Flag indicating to open the symbolic link itself rather than the resource it is pointing to. */ + const O_SYMLINK: number; + /** Constant for fs.open(). When set, an attempt will be made to minimize caching effects of file I/O. */ + const O_DIRECT: number; + /** Constant for fs.open(). Flag indicating to open the file in nonblocking mode when possible. */ + const O_NONBLOCK: number; + // File Type Constants + /** Constant for fs.Stats mode property for determining a file's type. Bit mask used to extract the file type code. */ + const S_IFMT: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a regular file. */ + const S_IFREG: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a directory. */ + const S_IFDIR: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a character-oriented device file. */ + const S_IFCHR: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a block-oriented device file. */ + const S_IFBLK: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a FIFO/pipe. */ + const S_IFIFO: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a symbolic link. */ + const S_IFLNK: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a socket. */ + const S_IFSOCK: number; + // File Mode Constants + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by owner. */ + const S_IRWXU: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by owner. */ + const S_IRUSR: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by owner. */ + const S_IWUSR: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by owner. */ + const S_IXUSR: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by group. */ + const S_IRWXG: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by group. */ + const S_IRGRP: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by group. */ + const S_IWGRP: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by group. */ + const S_IXGRP: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by others. */ + const S_IRWXO: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by others. */ + const S_IROTH: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by others. */ + const S_IWOTH: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by others. */ + const S_IXOTH: number; + /** + * When set, a memory file mapping is used to access the file. This flag + * is available on Windows operating systems only. On other operating systems, + * this flag is ignored. + */ + const UV_FS_O_FILEMAP: number; + } + /** + * Tests a user's permissions for the file or directory specified by `path`. + * The `mode` argument is an optional integer that specifies the accessibility + * checks to be performed. `mode` should be either the value `fs.constants.F_OK`or a mask consisting of the bitwise OR of any of `fs.constants.R_OK`,`fs.constants.W_OK`, and `fs.constants.X_OK` + * (e.g.`fs.constants.W_OK | fs.constants.R_OK`). Check `File access constants` for + * possible values of `mode`. + * + * The final argument, `callback`, is a callback function that is invoked with + * a possible error argument. If any of the accessibility checks fail, the error + * argument will be an `Error` object. The following examples check if`package.json` exists, and if it is readable or writable. + * + * ```js + * import { access, constants } from 'fs'; + * + * const file = 'package.json'; + * + * // Check if the file exists in the current directory. + * access(file, constants.F_OK, (err) => { + * console.log(`${file} ${err ? 'does not exist' : 'exists'}`); + * }); + * + * // Check if the file is readable. + * access(file, constants.R_OK, (err) => { + * console.log(`${file} ${err ? 'is not readable' : 'is readable'}`); + * }); + * + * // Check if the file is writable. + * access(file, constants.W_OK, (err) => { + * console.log(`${file} ${err ? 'is not writable' : 'is writable'}`); + * }); + * + * // Check if the file is readable and writable. + * access(file, constants.R_OK | constants.W_OK, (err) => { + * console.log(`${file} ${err ? 'is not' : 'is'} readable and writable`); + * }); + * ``` + * + * Do not use `fs.access()` to check for the accessibility of a file before calling`fs.open()`, `fs.readFile()` or `fs.writeFile()`. Doing + * so introduces a race condition, since other processes may change the file's + * state between the two calls. Instead, user code should open/read/write the + * file directly and handle the error raised if the file is not accessible. + * + * **write (NOT RECOMMENDED)** + * + * ```js + * import { access, open, close } from 'fs'; + * + * access('myfile', (err) => { + * if (!err) { + * console.error('myfile already exists'); + * return; + * } + * + * open('myfile', 'wx', (err, fd) => { + * if (err) throw err; + * + * try { + * writeMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * }); + * ``` + * + * **write (RECOMMENDED)** + * + * ```js + * import { open, close } from 'fs'; + * + * open('myfile', 'wx', (err, fd) => { + * if (err) { + * if (err.code === 'EEXIST') { + * console.error('myfile already exists'); + * return; + * } + * + * throw err; + * } + * + * try { + * writeMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * ``` + * + * **read (NOT RECOMMENDED)** + * + * ```js + * import { access, open, close } from 'fs'; + * access('myfile', (err) => { + * if (err) { + * if (err.code === 'ENOENT') { + * console.error('myfile does not exist'); + * return; + * } + * + * throw err; + * } + * + * open('myfile', 'r', (err, fd) => { + * if (err) throw err; + * + * try { + * readMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * }); + * ``` + * + * **read (RECOMMENDED)** + * + * ```js + * import { open, close } from 'fs'; + * + * open('myfile', 'r', (err, fd) => { + * if (err) { + * if (err.code === 'ENOENT') { + * console.error('myfile does not exist'); + * return; + * } + * + * throw err; + * } + * + * try { + * readMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * ``` + * + * The "not recommended" examples above check for accessibility and then use the + * file; the "recommended" examples are better because they use the file directly + * and handle the error, if any. + * + * In general, check for the accessibility of a file only if the file will not be + * used directly, for example when its accessibility is a signal from another + * process. + * + * On Windows, access-control policies (ACLs) on a directory may limit access to + * a file or directory. The `fs.access()` function, however, does not check the + * ACL and therefore may report that a path is accessible even if the ACL restricts + * the user from reading or writing to it. + * @since v0.11.15 + * @param [mode=fs.constants.F_OK] + */ + export function access(path: PathLike, mode: number | undefined, callback: NoParamCallback): void; + /** + * Asynchronously tests a user's permissions for the file specified by path. + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + */ + export function access(path: PathLike, callback: NoParamCallback): void; + export namespace access { + /** + * Asynchronously tests a user's permissions for the file specified by path. + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function __promisify__(path: PathLike, mode?: number): Promise; + } + /** + * Synchronously tests a user's permissions for the file or directory specified + * by `path`. The `mode` argument is an optional integer that specifies the + * accessibility checks to be performed. `mode` should be either the value`fs.constants.F_OK` or a mask consisting of the bitwise OR of any of`fs.constants.R_OK`, `fs.constants.W_OK`, and + * `fs.constants.X_OK` (e.g.`fs.constants.W_OK | fs.constants.R_OK`). Check `File access constants` for + * possible values of `mode`. + * + * If any of the accessibility checks fail, an `Error` will be thrown. Otherwise, + * the method will return `undefined`. + * + * ```js + * import { accessSync, constants } from 'fs'; + * + * try { + * accessSync('etc/passwd', constants.R_OK | constants.W_OK); + * console.log('can read/write'); + * } catch (err) { + * console.error('no access!'); + * } + * ``` + * @since v0.11.15 + * @param [mode=fs.constants.F_OK] + */ + export function accessSync(path: PathLike, mode?: number): void; + interface StreamOptions { + flags?: string | undefined; + encoding?: BufferEncoding | undefined; + fd?: number | promises.FileHandle | undefined; + mode?: number | undefined; + autoClose?: boolean | undefined; + /** + * @default false + */ + emitClose?: boolean | undefined; + start?: number | undefined; + highWaterMark?: number | undefined; + } + interface ReadStreamOptions extends StreamOptions { + end?: number | undefined; + } + /** + * Unlike the 16 kb default `highWaterMark` for a `stream.Readable`, the stream + * returned by this method has a default `highWaterMark` of 64 kb. + * + * `options` can include `start` and `end` values to read a range of bytes from + * the file instead of the entire file. Both `start` and `end` are inclusive and + * start counting at 0, allowed values are in the + * \[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\] range. If `fd` is specified and `start` is + * omitted or `undefined`, `fs.createReadStream()` reads sequentially from the + * current file position. The `encoding` can be any one of those accepted by `Buffer`. + * + * If `fd` is specified, `ReadStream` will ignore the `path` argument and will use + * the specified file descriptor. This means that no `'open'` event will be + * emitted. `fd` should be blocking; non-blocking `fd`s should be passed to `net.Socket`. + * + * If `fd` points to a character device that only supports blocking reads + * (such as keyboard or sound card), read operations do not finish until data is + * available. This can prevent the process from exiting and the stream from + * closing naturally. + * + * By default, the stream will emit a `'close'` event after it has been + * destroyed. Set the `emitClose` option to `false` to change this behavior. + * + * By providing the `fs` option, it is possible to override the corresponding `fs`implementations for `open`, `read`, and `close`. When providing the `fs` option, + * an override for `read` is required. If no `fd` is provided, an override for`open` is also required. If `autoClose` is `true`, an override for `close` is + * also required. + * + * ```js + * import { createReadStream } from 'fs'; + * + * // Create a stream from some character device. + * const stream = createReadStream('/dev/input/event0'); + * setTimeout(() => { + * stream.close(); // This may not close the stream. + * // Artificially marking end-of-stream, as if the underlying resource had + * // indicated end-of-file by itself, allows the stream to close. + * // This does not cancel pending read operations, and if there is such an + * // operation, the process may still not be able to exit successfully + * // until it finishes. + * stream.push(null); + * stream.read(0); + * }, 100); + * ``` + * + * If `autoClose` is false, then the file descriptor won't be closed, even if + * there's an error. It is the application's responsibility to close it and make + * sure there's no file descriptor leak. If `autoClose` is set to true (default + * behavior), on `'error'` or `'end'` the file descriptor will be closed + * automatically. + * + * `mode` sets the file mode (permission and sticky bits), but only if the + * file was created. + * + * An example to read the last 10 bytes of a file which is 100 bytes long: + * + * ```js + * import { createReadStream } from 'fs'; + * + * createReadStream('sample.txt', { start: 90, end: 99 }); + * ``` + * + * If `options` is a string, then it specifies the encoding. + * @since v0.1.31 + */ + export function createReadStream(path: PathLike, options?: BufferEncoding | ReadStreamOptions): ReadStream; + /** + * `options` may also include a `start` option to allow writing data at some + * position past the beginning of the file, allowed values are in the + * \[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\] range. Modifying a file rather than + * replacing it may require the `flags` option to be set to `r+` rather than the + * default `w`. The `encoding` can be any one of those accepted by `Buffer`. + * + * If `autoClose` is set to true (default behavior) on `'error'` or `'finish'`the file descriptor will be closed automatically. If `autoClose` is false, + * then the file descriptor won't be closed, even if there's an error. + * It is the application's responsibility to close it and make sure there's no + * file descriptor leak. + * + * By default, the stream will emit a `'close'` event after it has been + * destroyed. Set the `emitClose` option to `false` to change this behavior. + * + * By providing the `fs` option it is possible to override the corresponding `fs`implementations for `open`, `write`, `writev` and `close`. Overriding `write()`without `writev()` can reduce + * performance as some optimizations (`_writev()`) + * will be disabled. When providing the `fs` option, overrides for at least one of`write` and `writev` are required. If no `fd` option is supplied, an override + * for `open` is also required. If `autoClose` is `true`, an override for `close`is also required. + * + * Like `fs.ReadStream`, if `fd` is specified, `fs.WriteStream` will ignore the`path` argument and will use the specified file descriptor. This means that no`'open'` event will be + * emitted. `fd` should be blocking; non-blocking `fd`s + * should be passed to `net.Socket`. + * + * If `options` is a string, then it specifies the encoding. + * @since v0.1.31 + */ + export function createWriteStream(path: PathLike, options?: BufferEncoding | StreamOptions): WriteStream; + /** + * Forces all currently queued I/O operations associated with the file to the + * operating system's synchronized I/O completion state. Refer to the POSIX [`fdatasync(2)`](http://man7.org/linux/man-pages/man2/fdatasync.2.html) documentation for details. No arguments other + * than a possible + * exception are given to the completion callback. + * @since v0.1.96 + */ + export function fdatasync(fd: number, callback: NoParamCallback): void; + export namespace fdatasync { + /** + * Asynchronous fdatasync(2) - synchronize a file's in-core state with storage device. + * @param fd A file descriptor. + */ + function __promisify__(fd: number): Promise; + } + /** + * Forces all currently queued I/O operations associated with the file to the + * operating system's synchronized I/O completion state. Refer to the POSIX [`fdatasync(2)`](http://man7.org/linux/man-pages/man2/fdatasync.2.html) documentation for details. Returns `undefined`. + * @since v0.1.96 + */ + export function fdatasyncSync(fd: number): void; + /** + * Asynchronously copies `src` to `dest`. By default, `dest` is overwritten if it + * already exists. No arguments other than a possible exception are given to the + * callback function. Node.js makes no guarantees about the atomicity of the copy + * operation. If an error occurs after the destination file has been opened for + * writing, Node.js will attempt to remove the destination. + * + * `mode` is an optional integer that specifies the behavior + * of the copy operation. It is possible to create a mask consisting of the bitwise + * OR of two or more values (e.g.`fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE`). + * + * * `fs.constants.COPYFILE_EXCL`: The copy operation will fail if `dest` already + * exists. + * * `fs.constants.COPYFILE_FICLONE`: The copy operation will attempt to create a + * copy-on-write reflink. If the platform does not support copy-on-write, then a + * fallback copy mechanism is used. + * * `fs.constants.COPYFILE_FICLONE_FORCE`: The copy operation will attempt to + * create a copy-on-write reflink. If the platform does not support + * copy-on-write, then the operation will fail. + * + * ```js + * import { copyFile, constants } from 'fs'; + * + * function callback(err) { + * if (err) throw err; + * console.log('source.txt was copied to destination.txt'); + * } + * + * // destination.txt will be created or overwritten by default. + * copyFile('source.txt', 'destination.txt', callback); + * + * // By using COPYFILE_EXCL, the operation will fail if destination.txt exists. + * copyFile('source.txt', 'destination.txt', constants.COPYFILE_EXCL, callback); + * ``` + * @since v8.5.0 + * @param src source filename to copy + * @param dest destination filename of the copy operation + * @param [mode=0] modifiers for copy operation. + */ + export function copyFile(src: PathLike, dest: PathLike, callback: NoParamCallback): void; + export function copyFile(src: PathLike, dest: PathLike, mode: number, callback: NoParamCallback): void; + export namespace copyFile { + function __promisify__(src: PathLike, dst: PathLike, mode?: number): Promise; + } + /** + * Synchronously copies `src` to `dest`. By default, `dest` is overwritten if it + * already exists. Returns `undefined`. Node.js makes no guarantees about the + * atomicity of the copy operation. If an error occurs after the destination file + * has been opened for writing, Node.js will attempt to remove the destination. + * + * `mode` is an optional integer that specifies the behavior + * of the copy operation. It is possible to create a mask consisting of the bitwise + * OR of two or more values (e.g.`fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE`). + * + * * `fs.constants.COPYFILE_EXCL`: The copy operation will fail if `dest` already + * exists. + * * `fs.constants.COPYFILE_FICLONE`: The copy operation will attempt to create a + * copy-on-write reflink. If the platform does not support copy-on-write, then a + * fallback copy mechanism is used. + * * `fs.constants.COPYFILE_FICLONE_FORCE`: The copy operation will attempt to + * create a copy-on-write reflink. If the platform does not support + * copy-on-write, then the operation will fail. + * + * ```js + * import { copyFileSync, constants } from 'fs'; + * + * // destination.txt will be created or overwritten by default. + * copyFileSync('source.txt', 'destination.txt'); + * console.log('source.txt was copied to destination.txt'); + * + * // By using COPYFILE_EXCL, the operation will fail if destination.txt exists. + * copyFileSync('source.txt', 'destination.txt', constants.COPYFILE_EXCL); + * ``` + * @since v8.5.0 + * @param src source filename to copy + * @param dest destination filename of the copy operation + * @param [mode=0] modifiers for copy operation. + */ + export function copyFileSync(src: PathLike, dest: PathLike, mode?: number): void; + /** + * Write an array of `ArrayBufferView`s to the file specified by `fd` using`writev()`. + * + * `position` is the offset from the beginning of the file where this data + * should be written. If `typeof position !== 'number'`, the data will be written + * at the current position. + * + * The callback will be given three arguments: `err`, `bytesWritten`, and`buffers`. `bytesWritten` is how many bytes were written from `buffers`. + * + * If this method is `util.promisify()` ed, it returns a promise for an`Object` with `bytesWritten` and `buffers` properties. + * + * It is unsafe to use `fs.writev()` multiple times on the same file without + * waiting for the callback. For this scenario, use {@link createWriteStream}. + * + * On Linux, positional writes don't work when the file is opened in append mode. + * The kernel ignores the position argument and always appends the data to + * the end of the file. + * @since v12.9.0 + */ + export function writev(fd: number, buffers: ReadonlyArray, cb: (err: NodeJS.ErrnoException | null, bytesWritten: number, buffers: NodeJS.ArrayBufferView[]) => void): void; + export function writev( + fd: number, + buffers: ReadonlyArray, + position: number, + cb: (err: NodeJS.ErrnoException | null, bytesWritten: number, buffers: NodeJS.ArrayBufferView[]) => void + ): void; + export interface WriteVResult { + bytesWritten: number; + buffers: NodeJS.ArrayBufferView[]; + } + export namespace writev { + function __promisify__(fd: number, buffers: ReadonlyArray, position?: number): Promise; + } + /** + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link writev}. + * @since v12.9.0 + * @return The number of bytes written. + */ + export function writevSync(fd: number, buffers: ReadonlyArray, position?: number): number; + /** + * Read from a file specified by `fd` and write to an array of `ArrayBufferView`s + * using `readv()`. + * + * `position` is the offset from the beginning of the file from where data + * should be read. If `typeof position !== 'number'`, the data will be read + * from the current position. + * + * The callback will be given three arguments: `err`, `bytesRead`, and`buffers`. `bytesRead` is how many bytes were read from the file. + * + * If this method is invoked as its `util.promisify()` ed version, it returns + * a promise for an `Object` with `bytesRead` and `buffers` properties. + * @since v13.13.0, v12.17.0 + */ + export function readv(fd: number, buffers: ReadonlyArray, cb: (err: NodeJS.ErrnoException | null, bytesRead: number, buffers: NodeJS.ArrayBufferView[]) => void): void; + export function readv( + fd: number, + buffers: ReadonlyArray, + position: number, + cb: (err: NodeJS.ErrnoException | null, bytesRead: number, buffers: NodeJS.ArrayBufferView[]) => void + ): void; + export interface ReadVResult { + bytesRead: number; + buffers: NodeJS.ArrayBufferView[]; + } + export namespace readv { + function __promisify__(fd: number, buffers: ReadonlyArray, position?: number): Promise; + } + /** + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link readv}. + * @since v13.13.0, v12.17.0 + * @return The number of bytes read. + */ + export function readvSync(fd: number, buffers: ReadonlyArray, position?: number): number; + export interface OpenDirOptions { + encoding?: BufferEncoding | undefined; + /** + * Number of directory entries that are buffered + * internally when reading from the directory. Higher values lead to better + * performance but higher memory usage. + * @default 32 + */ + bufferSize?: number | undefined; + } + /** + * Synchronously open a directory. See [`opendir(3)`](http://man7.org/linux/man-pages/man3/opendir.3.html). + * + * Creates an `fs.Dir`, which contains all further functions for reading from + * and cleaning up the directory. + * + * The `encoding` option sets the encoding for the `path` while opening the + * directory and subsequent read operations. + * @since v12.12.0 + */ + export function opendirSync(path: PathLike, options?: OpenDirOptions): Dir; + /** + * Asynchronously open a directory. See the POSIX [`opendir(3)`](http://man7.org/linux/man-pages/man3/opendir.3.html) documentation for + * more details. + * + * Creates an `fs.Dir`, which contains all further functions for reading from + * and cleaning up the directory. + * + * The `encoding` option sets the encoding for the `path` while opening the + * directory and subsequent read operations. + * @since v12.12.0 + */ + export function opendir(path: PathLike, cb: (err: NodeJS.ErrnoException | null, dir: Dir) => void): void; + export function opendir(path: PathLike, options: OpenDirOptions, cb: (err: NodeJS.ErrnoException | null, dir: Dir) => void): void; + export namespace opendir { + function __promisify__(path: PathLike, options?: OpenDirOptions): Promise; + } + export interface BigIntStats extends StatsBase { + atimeNs: bigint; + mtimeNs: bigint; + ctimeNs: bigint; + birthtimeNs: bigint; + } + export interface BigIntOptions { + bigint: true; + } + export interface StatOptions { + bigint?: boolean | undefined; + } + export interface StatSyncOptions extends StatOptions { + throwIfNoEntry?: boolean | undefined; + } + interface CopyOptionsBase { + /** + * Dereference symlinks + * @default false + */ + dereference?: boolean; + /** + * When `force` is `false`, and the destination + * exists, throw an error. + * @default false + */ + errorOnExist?: boolean; + /** + * Overwrite existing file or directory. _The copy + * operation will ignore errors if you set this to false and the destination + * exists. Use the `errorOnExist` option to change this behavior. + * @default true + */ + force?: boolean; + /** + * When `true` timestamps from `src` will + * be preserved. + * @default false + */ + preserveTimestamps?: boolean; + /** + * Copy directories recursively. + * @default false + */ + recursive?: boolean; + /** + * When true, path resolution for symlinks will be skipped + * @default false + */ + verbatimSymlinks?: boolean; + } + export interface CopyOptions extends CopyOptionsBase { + /** + * Function to filter copied files/directories. Return + * `true` to copy the item, `false` to ignore it. + */ + filter?(source: string, destination: string): boolean | Promise; + } + export interface CopySyncOptions extends CopyOptionsBase { + /** + * Function to filter copied files/directories. Return + * `true` to copy the item, `false` to ignore it. + */ + filter?(source: string, destination: string): boolean; + } + /** + * Asynchronously copies the entire directory structure from `src` to `dest`, + * including subdirectories and files. + * + * When copying a directory to another directory, globs are not supported and + * behavior is similar to `cp dir1/ dir2/`. + * @since v16.7.0 + * @experimental + * @param src source path to copy. + * @param dest destination path to copy to. + */ + export function cp(source: string | URL, destination: string | URL, callback: (err: NodeJS.ErrnoException | null) => void): void; + export function cp(source: string | URL, destination: string | URL, opts: CopyOptions, callback: (err: NodeJS.ErrnoException | null) => void): void; + /** + * Synchronously copies the entire directory structure from `src` to `dest`, + * including subdirectories and files. + * + * When copying a directory to another directory, globs are not supported and + * behavior is similar to `cp dir1/ dir2/`. + * @since v16.7.0 + * @experimental + * @param src source path to copy. + * @param dest destination path to copy to. + */ + export function cpSync(source: string | URL, destination: string | URL, opts?: CopySyncOptions): void; +} +declare module 'node:fs' { + export * from 'fs'; +} diff --git a/node_modules/@types/node/fs/promises.d.ts b/node_modules/@types/node/fs/promises.d.ts new file mode 100644 index 0000000..aca2fd5 --- /dev/null +++ b/node_modules/@types/node/fs/promises.d.ts @@ -0,0 +1,1138 @@ +/** + * The `fs/promises` API provides asynchronous file system methods that return + * promises. + * + * The promise APIs use the underlying Node.js threadpool to perform file + * system operations off the event loop thread. These operations are not + * synchronized or threadsafe. Care must be taken when performing multiple + * concurrent modifications on the same file or data corruption may occur. + * @since v10.0.0 + */ +declare module 'fs/promises' { + import { Abortable } from 'node:events'; + import { Stream } from 'node:stream'; + import { ReadableStream } from 'node:stream/web'; + import { + BigIntStats, + BufferEncodingOption, + constants as fsConstants, + CopyOptions, + Dir, + Dirent, + MakeDirectoryOptions, + Mode, + ObjectEncodingOptions, + OpenDirOptions, + OpenMode, + PathLike, + ReadStream, + ReadVResult, + RmDirOptions, + RmOptions, + StatOptions, + Stats, + TimeLike, + WatchEventType, + WatchOptions, + WriteStream, + WriteVResult, + } from 'node:fs'; + import { Interface as ReadlineInterface } from 'node:readline'; + + interface FileChangeInfo { + eventType: WatchEventType; + filename: T; + } + interface FlagAndOpenMode { + mode?: Mode | undefined; + flag?: OpenMode | undefined; + } + interface FileReadResult { + bytesRead: number; + buffer: T; + } + interface FileReadOptions { + /** + * @default `Buffer.alloc(0xffff)` + */ + buffer?: T; + /** + * @default 0 + */ + offset?: number | null; + /** + * @default `buffer.byteLength` + */ + length?: number | null; + position?: number | null; + } + interface CreateReadStreamOptions { + encoding?: BufferEncoding | null | undefined; + autoClose?: boolean | undefined; + emitClose?: boolean | undefined; + start?: number | undefined; + end?: number | undefined; + highWaterMark?: number | undefined; + } + interface CreateWriteStreamOptions { + encoding?: BufferEncoding | null | undefined; + autoClose?: boolean | undefined; + emitClose?: boolean | undefined; + start?: number | undefined; + } + // TODO: Add `EventEmitter` close + interface FileHandle { + /** + * The numeric file descriptor managed by the {FileHandle} object. + * @since v10.0.0 + */ + readonly fd: number; + /** + * Alias of `filehandle.writeFile()`. + * + * When operating on file handles, the mode cannot be changed from what it was set + * to with `fsPromises.open()`. Therefore, this is equivalent to `filehandle.writeFile()`. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + appendFile(data: string | Uint8Array, options?: (ObjectEncodingOptions & FlagAndOpenMode) | BufferEncoding | null): Promise; + /** + * Changes the ownership of the file. A wrapper for [`chown(2)`](http://man7.org/linux/man-pages/man2/chown.2.html). + * @since v10.0.0 + * @param uid The file's new owner's user id. + * @param gid The file's new group's group id. + * @return Fulfills with `undefined` upon success. + */ + chown(uid: number, gid: number): Promise; + /** + * Modifies the permissions on the file. See [`chmod(2)`](http://man7.org/linux/man-pages/man2/chmod.2.html). + * @since v10.0.0 + * @param mode the file mode bit mask. + * @return Fulfills with `undefined` upon success. + */ + chmod(mode: Mode): Promise; + /** + * Unlike the 16 kb default `highWaterMark` for a `stream.Readable`, the stream + * returned by this method has a default `highWaterMark` of 64 kb. + * + * `options` can include `start` and `end` values to read a range of bytes from + * the file instead of the entire file. Both `start` and `end` are inclusive and + * start counting at 0, allowed values are in the + * \[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\] range. If `start` is + * omitted or `undefined`, `filehandle.createReadStream()` reads sequentially from + * the current file position. The `encoding` can be any one of those accepted by `Buffer`. + * + * If the `FileHandle` points to a character device that only supports blocking + * reads (such as keyboard or sound card), read operations do not finish until data + * is available. This can prevent the process from exiting and the stream from + * closing naturally. + * + * By default, the stream will emit a `'close'` event after it has been + * destroyed. Set the `emitClose` option to `false` to change this behavior. + * + * ```js + * import { open } from 'fs/promises'; + * + * const fd = await open('/dev/input/event0'); + * // Create a stream from some character device. + * const stream = fd.createReadStream(); + * setTimeout(() => { + * stream.close(); // This may not close the stream. + * // Artificially marking end-of-stream, as if the underlying resource had + * // indicated end-of-file by itself, allows the stream to close. + * // This does not cancel pending read operations, and if there is such an + * // operation, the process may still not be able to exit successfully + * // until it finishes. + * stream.push(null); + * stream.read(0); + * }, 100); + * ``` + * + * If `autoClose` is false, then the file descriptor won't be closed, even if + * there's an error. It is the application's responsibility to close it and make + * sure there's no file descriptor leak. If `autoClose` is set to true (default + * behavior), on `'error'` or `'end'` the file descriptor will be closed + * automatically. + * + * An example to read the last 10 bytes of a file which is 100 bytes long: + * + * ```js + * import { open } from 'fs/promises'; + * + * const fd = await open('sample.txt'); + * fd.createReadStream({ start: 90, end: 99 }); + * ``` + * @since v16.11.0 + */ + createReadStream(options?: CreateReadStreamOptions): ReadStream; + /** + * `options` may also include a `start` option to allow writing data at some + * position past the beginning of the file, allowed values are in the + * \[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\] range. Modifying a file rather than + * replacing it may require the `flags` `open` option to be set to `r+` rather than + * the default `r`. The `encoding` can be any one of those accepted by `Buffer`. + * + * If `autoClose` is set to true (default behavior) on `'error'` or `'finish'`the file descriptor will be closed automatically. If `autoClose` is false, + * then the file descriptor won't be closed, even if there's an error. + * It is the application's responsibility to close it and make sure there's no + * file descriptor leak. + * + * By default, the stream will emit a `'close'` event after it has been + * destroyed. Set the `emitClose` option to `false` to change this behavior. + * @since v16.11.0 + */ + createWriteStream(options?: CreateWriteStreamOptions): WriteStream; + /** + * Forces all currently queued I/O operations associated with the file to the + * operating system's synchronized I/O completion state. Refer to the POSIX [`fdatasync(2)`](http://man7.org/linux/man-pages/man2/fdatasync.2.html) documentation for details. + * + * Unlike `filehandle.sync` this method does not flush modified metadata. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + datasync(): Promise; + /** + * Request that all data for the open file descriptor is flushed to the storage + * device. The specific implementation is operating system and device specific. + * Refer to the POSIX [`fsync(2)`](http://man7.org/linux/man-pages/man2/fsync.2.html) documentation for more detail. + * @since v10.0.0 + * @return Fufills with `undefined` upon success. + */ + sync(): Promise; + /** + * Reads data from the file and stores that in the given buffer. + * + * If the file is not modified concurrently, the end-of-file is reached when the + * number of bytes read is zero. + * @since v10.0.0 + * @param buffer A buffer that will be filled with the file data read. + * @param offset The location in the buffer at which to start filling. + * @param length The number of bytes to read. + * @param position The location where to begin reading data from the file. If `null`, data will be read from the current file position, and the position will be updated. If `position` is an + * integer, the current file position will remain unchanged. + * @return Fulfills upon success with an object with two properties: + */ + read(buffer: T, offset?: number | null, length?: number | null, position?: number | null): Promise>; + read(options?: FileReadOptions): Promise>; + /** + * Returns a `ReadableStream` that may be used to read the files data. + * + * An error will be thrown if this method is called more than once or is called after the `FileHandle` is closed + * or closing. + * + * ```js + * import { open } from 'node:fs/promises'; + * + * const file = await open('./some/file/to/read'); + * + * for await (const chunk of file.readableWebStream()) + * console.log(chunk); + * + * await file.close(); + * ``` + * + * While the `ReadableStream` will read the file to completion, it will not close the `FileHandle` automatically. User code must still call the `fileHandle.close()` method. + * + * @since v17.0.0 + * @experimental + */ + readableWebStream(): ReadableStream; + /** + * Asynchronously reads the entire contents of a file. + * + * If `options` is a string, then it specifies the `encoding`. + * + * The `FileHandle` has to support reading. + * + * If one or more `filehandle.read()` calls are made on a file handle and then a`filehandle.readFile()` call is made, the data will be read from the current + * position till the end of the file. It doesn't always read from the beginning + * of the file. + * @since v10.0.0 + * @return Fulfills upon a successful read with the contents of the file. If no encoding is specified (using `options.encoding`), the data is returned as a {Buffer} object. Otherwise, the + * data will be a string. + */ + readFile( + options?: { + encoding?: null | undefined; + flag?: OpenMode | undefined; + } | null + ): Promise; + /** + * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically. + * The `FileHandle` must have been opened for reading. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + readFile( + options: + | { + encoding: BufferEncoding; + flag?: OpenMode | undefined; + } + | BufferEncoding + ): Promise; + /** + * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically. + * The `FileHandle` must have been opened for reading. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + readFile( + options?: + | (ObjectEncodingOptions & { + flag?: OpenMode | undefined; + }) + | BufferEncoding + | null + ): Promise; + /** + * Convenience method to create a `readline` interface and stream over the file. For example: + * + * ```js + * import { open } from 'node:fs/promises'; + * + * const file = await open('./some/file/to/read'); + * + * for await (const line of file.readLines()) { + * console.log(line); + * } + * ``` + * + * @since v18.11.0 + * @param options See `filehandle.createReadStream()` for the options. + */ + readLines(options?: CreateReadStreamOptions): ReadlineInterface; + /** + * @since v10.0.0 + * @return Fulfills with an {fs.Stats} for the file. + */ + stat( + opts?: StatOptions & { + bigint?: false | undefined; + } + ): Promise; + stat( + opts: StatOptions & { + bigint: true; + } + ): Promise; + stat(opts?: StatOptions): Promise; + /** + * Truncates the file. + * + * If the file was larger than `len` bytes, only the first `len` bytes will be + * retained in the file. + * + * The following example retains only the first four bytes of the file: + * + * ```js + * import { open } from 'fs/promises'; + * + * let filehandle = null; + * try { + * filehandle = await open('temp.txt', 'r+'); + * await filehandle.truncate(4); + * } finally { + * await filehandle?.close(); + * } + * ``` + * + * If the file previously was shorter than `len` bytes, it is extended, and the + * extended part is filled with null bytes (`'\0'`): + * + * If `len` is negative then `0` will be used. + * @since v10.0.0 + * @param [len=0] + * @return Fulfills with `undefined` upon success. + */ + truncate(len?: number): Promise; + /** + * Change the file system timestamps of the object referenced by the `FileHandle` then resolves the promise with no arguments upon success. + * @since v10.0.0 + */ + utimes(atime: TimeLike, mtime: TimeLike): Promise; + /** + * Asynchronously writes data to a file, replacing the file if it already exists.`data` can be a string, a buffer, an + * [AsyncIterable](https://tc39.github.io/ecma262/#sec-asynciterable-interface) or + * [Iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol) object. + * The promise is resolved with no arguments upon success. + * + * If `options` is a string, then it specifies the `encoding`. + * + * The `FileHandle` has to support writing. + * + * It is unsafe to use `filehandle.writeFile()` multiple times on the same file + * without waiting for the promise to be resolved (or rejected). + * + * If one or more `filehandle.write()` calls are made on a file handle and then a`filehandle.writeFile()` call is made, the data will be written from the + * current position till the end of the file. It doesn't always write from the + * beginning of the file. + * @since v10.0.0 + */ + writeFile(data: string | Uint8Array, options?: (ObjectEncodingOptions & FlagAndOpenMode & Abortable) | BufferEncoding | null): Promise; + /** + * Write `buffer` to the file. + * + * The promise is resolved with an object containing two properties: + * + * It is unsafe to use `filehandle.write()` multiple times on the same file + * without waiting for the promise to be resolved (or rejected). For this + * scenario, use `filehandle.createWriteStream()`. + * + * On Linux, positional writes do not work when the file is opened in append mode. + * The kernel ignores the position argument and always appends the data to + * the end of the file. + * @since v10.0.0 + * @param [offset=0] The start position from within `buffer` where the data to write begins. + * @param [length=buffer.byteLength - offset] The number of bytes from `buffer` to write. + * @param position The offset from the beginning of the file where the data from `buffer` should be written. If `position` is not a `number`, the data will be written at the current position. + * See the POSIX pwrite(2) documentation for more detail. + */ + write( + buffer: TBuffer, + offset?: number | null, + length?: number | null, + position?: number | null + ): Promise<{ + bytesWritten: number; + buffer: TBuffer; + }>; + write( + data: string, + position?: number | null, + encoding?: BufferEncoding | null + ): Promise<{ + bytesWritten: number; + buffer: string; + }>; + /** + * Write an array of [ArrayBufferView](https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView) s to the file. + * + * The promise is resolved with an object containing a two properties: + * + * It is unsafe to call `writev()` multiple times on the same file without waiting + * for the promise to be resolved (or rejected). + * + * On Linux, positional writes don't work when the file is opened in append mode. + * The kernel ignores the position argument and always appends the data to + * the end of the file. + * @since v12.9.0 + * @param position The offset from the beginning of the file where the data from `buffers` should be written. If `position` is not a `number`, the data will be written at the current + * position. + */ + writev(buffers: ReadonlyArray, position?: number): Promise; + /** + * Read from a file and write to an array of [ArrayBufferView](https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView) s + * @since v13.13.0, v12.17.0 + * @param position The offset from the beginning of the file where the data should be read from. If `position` is not a `number`, the data will be read from the current position. + * @return Fulfills upon success an object containing two properties: + */ + readv(buffers: ReadonlyArray, position?: number): Promise; + /** + * Closes the file handle after waiting for any pending operation on the handle to + * complete. + * + * ```js + * import { open } from 'fs/promises'; + * + * let filehandle; + * try { + * filehandle = await open('thefile.txt', 'r'); + * } finally { + * await filehandle?.close(); + * } + * ``` + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + close(): Promise; + } + + const constants: typeof fsConstants; + + /** + * Tests a user's permissions for the file or directory specified by `path`. + * The `mode` argument is an optional integer that specifies the accessibility + * checks to be performed. `mode` should be either the value `fs.constants.F_OK`or a mask consisting of the bitwise OR of any of `fs.constants.R_OK`,`fs.constants.W_OK`, and `fs.constants.X_OK` + * (e.g.`fs.constants.W_OK | fs.constants.R_OK`). Check `File access constants` for + * possible values of `mode`. + * + * If the accessibility check is successful, the promise is resolved with no + * value. If any of the accessibility checks fail, the promise is rejected + * with an [Error](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) object. The following example checks if the file`/etc/passwd` can be read and + * written by the current process. + * + * ```js + * import { access } from 'fs/promises'; + * import { constants } from 'fs'; + * + * try { + * await access('/etc/passwd', constants.R_OK | constants.W_OK); + * console.log('can access'); + * } catch { + * console.error('cannot access'); + * } + * ``` + * + * Using `fsPromises.access()` to check for the accessibility of a file before + * calling `fsPromises.open()` is not recommended. Doing so introduces a race + * condition, since other processes may change the file's state between the two + * calls. Instead, user code should open/read/write the file directly and handle + * the error raised if the file is not accessible. + * @since v10.0.0 + * @param [mode=fs.constants.F_OK] + * @return Fulfills with `undefined` upon success. + */ + function access(path: PathLike, mode?: number): Promise; + /** + * Asynchronously copies `src` to `dest`. By default, `dest` is overwritten if it + * already exists. + * + * No guarantees are made about the atomicity of the copy operation. If an + * error occurs after the destination file has been opened for writing, an attempt + * will be made to remove the destination. + * + * ```js + * import { constants } from 'fs'; + * import { copyFile } from 'fs/promises'; + * + * try { + * await copyFile('source.txt', 'destination.txt'); + * console.log('source.txt was copied to destination.txt'); + * } catch { + * console.log('The file could not be copied'); + * } + * + * // By using COPYFILE_EXCL, the operation will fail if destination.txt exists. + * try { + * await copyFile('source.txt', 'destination.txt', constants.COPYFILE_EXCL); + * console.log('source.txt was copied to destination.txt'); + * } catch { + * console.log('The file could not be copied'); + * } + * ``` + * @since v10.0.0 + * @param src source filename to copy + * @param dest destination filename of the copy operation + * @param [mode=0] Optional modifiers that specify the behavior of the copy operation. It is possible to create a mask consisting of the bitwise OR of two or more values (e.g. + * `fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE`) + * @return Fulfills with `undefined` upon success. + */ + function copyFile(src: PathLike, dest: PathLike, mode?: number): Promise; + /** + * Opens a `FileHandle`. + * + * Refer to the POSIX [`open(2)`](http://man7.org/linux/man-pages/man2/open.2.html) documentation for more detail. + * + * Some characters (`< > : " / \ | ? *`) are reserved under Windows as documented + * by [Naming Files, Paths, and Namespaces](https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file). Under NTFS, if the filename contains + * a colon, Node.js will open a file system stream, as described by [this MSDN page](https://docs.microsoft.com/en-us/windows/desktop/FileIO/using-streams). + * @since v10.0.0 + * @param [flags='r'] See `support of file system `flags``. + * @param [mode=0o666] Sets the file mode (permission and sticky bits) if the file is created. + * @return Fulfills with a {FileHandle} object. + */ + function open(path: PathLike, flags?: string | number, mode?: Mode): Promise; + /** + * Renames `oldPath` to `newPath`. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function rename(oldPath: PathLike, newPath: PathLike): Promise; + /** + * Truncates (shortens or extends the length) of the content at `path` to `len`bytes. + * @since v10.0.0 + * @param [len=0] + * @return Fulfills with `undefined` upon success. + */ + function truncate(path: PathLike, len?: number): Promise; + /** + * Removes the directory identified by `path`. + * + * Using `fsPromises.rmdir()` on a file (not a directory) results in the + * promise being rejected with an `ENOENT` error on Windows and an `ENOTDIR`error on POSIX. + * + * To get a behavior similar to the `rm -rf` Unix command, use `fsPromises.rm()` with options `{ recursive: true, force: true }`. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function rmdir(path: PathLike, options?: RmDirOptions): Promise; + /** + * Removes files and directories (modeled on the standard POSIX `rm` utility). + * @since v14.14.0 + * @return Fulfills with `undefined` upon success. + */ + function rm(path: PathLike, options?: RmOptions): Promise; + /** + * Asynchronously creates a directory. + * + * The optional `options` argument can be an integer specifying `mode` (permission + * and sticky bits), or an object with a `mode` property and a `recursive`property indicating whether parent directories should be created. Calling`fsPromises.mkdir()` when `path` is a directory + * that exists results in a + * rejection only when `recursive` is false. + * @since v10.0.0 + * @return Upon success, fulfills with `undefined` if `recursive` is `false`, or the first directory path created if `recursive` is `true`. + */ + function mkdir( + path: PathLike, + options: MakeDirectoryOptions & { + recursive: true; + } + ): Promise; + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function mkdir( + path: PathLike, + options?: + | Mode + | (MakeDirectoryOptions & { + recursive?: false | undefined; + }) + | null + ): Promise; + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function mkdir(path: PathLike, options?: Mode | MakeDirectoryOptions | null): Promise; + /** + * Reads the contents of a directory. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the filenames. If the `encoding` is set to `'buffer'`, the filenames returned + * will be passed as `Buffer` objects. + * + * If `options.withFileTypes` is set to `true`, the resolved array will contain `fs.Dirent` objects. + * + * ```js + * import { readdir } from 'fs/promises'; + * + * try { + * const files = await readdir(path); + * for (const file of files) + * console.log(file); + * } catch (err) { + * console.error(err); + * } + * ``` + * @since v10.0.0 + * @return Fulfills with an array of the names of the files in the directory excluding `'.'` and `'..'`. + */ + function readdir( + path: PathLike, + options?: + | (ObjectEncodingOptions & { + withFileTypes?: false | undefined; + }) + | BufferEncoding + | null + ): Promise; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdir( + path: PathLike, + options: + | { + encoding: 'buffer'; + withFileTypes?: false | undefined; + } + | 'buffer' + ): Promise; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdir( + path: PathLike, + options?: + | (ObjectEncodingOptions & { + withFileTypes?: false | undefined; + }) + | BufferEncoding + | null + ): Promise; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent. + */ + function readdir( + path: PathLike, + options: ObjectEncodingOptions & { + withFileTypes: true; + } + ): Promise; + /** + * Reads the contents of the symbolic link referred to by `path`. See the POSIX [`readlink(2)`](http://man7.org/linux/man-pages/man2/readlink.2.html) documentation for more detail. The promise is + * resolved with the`linkString` upon success. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the link path returned. If the `encoding` is set to `'buffer'`, the link path + * returned will be passed as a `Buffer` object. + * @since v10.0.0 + * @return Fulfills with the `linkString` upon success. + */ + function readlink(path: PathLike, options?: ObjectEncodingOptions | BufferEncoding | null): Promise; + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readlink(path: PathLike, options: BufferEncodingOption): Promise; + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readlink(path: PathLike, options?: ObjectEncodingOptions | string | null): Promise; + /** + * Creates a symbolic link. + * + * The `type` argument is only used on Windows platforms and can be one of `'dir'`,`'file'`, or `'junction'`. Windows junction points require the destination path + * to be absolute. When using `'junction'`, the `target` argument will + * automatically be normalized to absolute path. + * @since v10.0.0 + * @param [type='file'] + * @return Fulfills with `undefined` upon success. + */ + function symlink(target: PathLike, path: PathLike, type?: string | null): Promise; + /** + * Equivalent to `fsPromises.stat()` unless `path` refers to a symbolic link, + * in which case the link itself is stat-ed, not the file that it refers to. + * Refer to the POSIX [`lstat(2)`](http://man7.org/linux/man-pages/man2/lstat.2.html) document for more detail. + * @since v10.0.0 + * @return Fulfills with the {fs.Stats} object for the given symbolic link `path`. + */ + function lstat( + path: PathLike, + opts?: StatOptions & { + bigint?: false | undefined; + } + ): Promise; + function lstat( + path: PathLike, + opts: StatOptions & { + bigint: true; + } + ): Promise; + function lstat(path: PathLike, opts?: StatOptions): Promise; + /** + * @since v10.0.0 + * @return Fulfills with the {fs.Stats} object for the given `path`. + */ + function stat( + path: PathLike, + opts?: StatOptions & { + bigint?: false | undefined; + } + ): Promise; + function stat( + path: PathLike, + opts: StatOptions & { + bigint: true; + } + ): Promise; + function stat(path: PathLike, opts?: StatOptions): Promise; + /** + * Creates a new link from the `existingPath` to the `newPath`. See the POSIX [`link(2)`](http://man7.org/linux/man-pages/man2/link.2.html) documentation for more detail. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function link(existingPath: PathLike, newPath: PathLike): Promise; + /** + * If `path` refers to a symbolic link, then the link is removed without affecting + * the file or directory to which that link refers. If the `path` refers to a file + * path that is not a symbolic link, the file is deleted. See the POSIX [`unlink(2)`](http://man7.org/linux/man-pages/man2/unlink.2.html) documentation for more detail. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function unlink(path: PathLike): Promise; + /** + * Changes the permissions of a file. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function chmod(path: PathLike, mode: Mode): Promise; + /** + * Changes the permissions on a symbolic link. + * + * This method is only implemented on macOS. + * @deprecated Since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function lchmod(path: PathLike, mode: Mode): Promise; + /** + * Changes the ownership on a symbolic link. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function lchown(path: PathLike, uid: number, gid: number): Promise; + /** + * Changes the access and modification times of a file in the same way as `fsPromises.utimes()`, with the difference that if the path refers to a + * symbolic link, then the link is not dereferenced: instead, the timestamps of + * the symbolic link itself are changed. + * @since v14.5.0, v12.19.0 + * @return Fulfills with `undefined` upon success. + */ + function lutimes(path: PathLike, atime: TimeLike, mtime: TimeLike): Promise; + /** + * Changes the ownership of a file. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function chown(path: PathLike, uid: number, gid: number): Promise; + /** + * Change the file system timestamps of the object referenced by `path`. + * + * The `atime` and `mtime` arguments follow these rules: + * + * * Values can be either numbers representing Unix epoch time, `Date`s, or a + * numeric string like `'123456789.0'`. + * * If the value can not be converted to a number, or is `NaN`, `Infinity` or`-Infinity`, an `Error` will be thrown. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function utimes(path: PathLike, atime: TimeLike, mtime: TimeLike): Promise; + /** + * Determines the actual location of `path` using the same semantics as the`fs.realpath.native()` function. + * + * Only paths that can be converted to UTF8 strings are supported. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the path. If the `encoding` is set to `'buffer'`, the path returned will be + * passed as a `Buffer` object. + * + * On Linux, when Node.js is linked against musl libc, the procfs file system must + * be mounted on `/proc` in order for this function to work. Glibc does not have + * this restriction. + * @since v10.0.0 + * @return Fulfills with the resolved path upon success. + */ + function realpath(path: PathLike, options?: ObjectEncodingOptions | BufferEncoding | null): Promise; + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function realpath(path: PathLike, options: BufferEncodingOption): Promise; + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function realpath(path: PathLike, options?: ObjectEncodingOptions | BufferEncoding | null): Promise; + /** + * Creates a unique temporary directory. A unique directory name is generated by + * appending six random characters to the end of the provided `prefix`. Due to + * platform inconsistencies, avoid trailing `X` characters in `prefix`. Some + * platforms, notably the BSDs, can return more than six random characters, and + * replace trailing `X` characters in `prefix` with random characters. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use. + * + * ```js + * import { mkdtemp } from 'fs/promises'; + * + * try { + * await mkdtemp(path.join(os.tmpdir(), 'foo-')); + * } catch (err) { + * console.error(err); + * } + * ``` + * + * The `fsPromises.mkdtemp()` method will append the six randomly selected + * characters directly to the `prefix` string. For instance, given a directory`/tmp`, if the intention is to create a temporary directory _within_`/tmp`, the`prefix` must end with a trailing + * platform-specific path separator + * (`require('path').sep`). + * @since v10.0.0 + * @return Fulfills with a string containing the filesystem path of the newly created temporary directory. + */ + function mkdtemp(prefix: string, options?: ObjectEncodingOptions | BufferEncoding | null): Promise; + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function mkdtemp(prefix: string, options: BufferEncodingOption): Promise; + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function mkdtemp(prefix: string, options?: ObjectEncodingOptions | BufferEncoding | null): Promise; + /** + * Asynchronously writes data to a file, replacing the file if it already exists.`data` can be a string, a buffer, an + * [AsyncIterable](https://tc39.github.io/ecma262/#sec-asynciterable-interface) or + * [Iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol) object. + * + * The `encoding` option is ignored if `data` is a buffer. + * + * If `options` is a string, then it specifies the encoding. + * + * The `mode` option only affects the newly created file. See `fs.open()` for more details. + * + * Any specified `FileHandle` has to support writing. + * + * It is unsafe to use `fsPromises.writeFile()` multiple times on the same file + * without waiting for the promise to be settled. + * + * Similarly to `fsPromises.readFile` \- `fsPromises.writeFile` is a convenience + * method that performs multiple `write` calls internally to write the buffer + * passed to it. For performance sensitive code consider using `fs.createWriteStream()` or `filehandle.createWriteStream()`. + * + * It is possible to use an `AbortSignal` to cancel an `fsPromises.writeFile()`. + * Cancelation is "best effort", and some amount of data is likely still + * to be written. + * + * ```js + * import { writeFile } from 'fs/promises'; + * import { Buffer } from 'buffer'; + * + * try { + * const controller = new AbortController(); + * const { signal } = controller; + * const data = new Uint8Array(Buffer.from('Hello Node.js')); + * const promise = writeFile('message.txt', data, { signal }); + * + * // Abort the request before the promise settles. + * controller.abort(); + * + * await promise; + * } catch (err) { + * // When a request is aborted - err is an AbortError + * console.error(err); + * } + * ``` + * + * Aborting an ongoing request does not abort individual operating + * system requests but rather the internal buffering `fs.writeFile` performs. + * @since v10.0.0 + * @param file filename or `FileHandle` + * @return Fulfills with `undefined` upon success. + */ + function writeFile( + file: PathLike | FileHandle, + data: string | NodeJS.ArrayBufferView | Iterable | AsyncIterable | Stream, + options?: + | (ObjectEncodingOptions & { + mode?: Mode | undefined; + flag?: OpenMode | undefined; + } & Abortable) + | BufferEncoding + | null + ): Promise; + /** + * Asynchronously append data to a file, creating the file if it does not yet + * exist. `data` can be a string or a `Buffer`. + * + * If `options` is a string, then it specifies the `encoding`. + * + * The `mode` option only affects the newly created file. See `fs.open()` for more details. + * + * The `path` may be specified as a `FileHandle` that has been opened + * for appending (using `fsPromises.open()`). + * @since v10.0.0 + * @param path filename or {FileHandle} + * @return Fulfills with `undefined` upon success. + */ + function appendFile(path: PathLike | FileHandle, data: string | Uint8Array, options?: (ObjectEncodingOptions & FlagAndOpenMode) | BufferEncoding | null): Promise; + /** + * Asynchronously reads the entire contents of a file. + * + * If no encoding is specified (using `options.encoding`), the data is returned + * as a `Buffer` object. Otherwise, the data will be a string. + * + * If `options` is a string, then it specifies the encoding. + * + * When the `path` is a directory, the behavior of `fsPromises.readFile()` is + * platform-specific. On macOS, Linux, and Windows, the promise will be rejected + * with an error. On FreeBSD, a representation of the directory's contents will be + * returned. + * + * It is possible to abort an ongoing `readFile` using an `AbortSignal`. If a + * request is aborted the promise returned is rejected with an `AbortError`: + * + * ```js + * import { readFile } from 'fs/promises'; + * + * try { + * const controller = new AbortController(); + * const { signal } = controller; + * const promise = readFile(fileName, { signal }); + * + * // Abort the request before the promise settles. + * controller.abort(); + * + * await promise; + * } catch (err) { + * // When a request is aborted - err is an AbortError + * console.error(err); + * } + * ``` + * + * Aborting an ongoing request does not abort individual operating + * system requests but rather the internal buffering `fs.readFile` performs. + * + * Any specified `FileHandle` has to support reading. + * @since v10.0.0 + * @param path filename or `FileHandle` + * @return Fulfills with the contents of the file. + */ + function readFile( + path: PathLike | FileHandle, + options?: + | ({ + encoding?: null | undefined; + flag?: OpenMode | undefined; + } & Abortable) + | null + ): Promise; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFile( + path: PathLike | FileHandle, + options: + | ({ + encoding: BufferEncoding; + flag?: OpenMode | undefined; + } & Abortable) + | BufferEncoding + ): Promise; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFile( + path: PathLike | FileHandle, + options?: + | (ObjectEncodingOptions & + Abortable & { + flag?: OpenMode | undefined; + }) + | BufferEncoding + | null + ): Promise; + /** + * Asynchronously open a directory for iterative scanning. See the POSIX [`opendir(3)`](http://man7.org/linux/man-pages/man3/opendir.3.html) documentation for more detail. + * + * Creates an `fs.Dir`, which contains all further functions for reading from + * and cleaning up the directory. + * + * The `encoding` option sets the encoding for the `path` while opening the + * directory and subsequent read operations. + * + * Example using async iteration: + * + * ```js + * import { opendir } from 'fs/promises'; + * + * try { + * const dir = await opendir('./'); + * for await (const dirent of dir) + * console.log(dirent.name); + * } catch (err) { + * console.error(err); + * } + * ``` + * + * When using the async iterator, the `fs.Dir` object will be automatically + * closed after the iterator exits. + * @since v12.12.0 + * @return Fulfills with an {fs.Dir}. + */ + function opendir(path: PathLike, options?: OpenDirOptions): Promise; + /** + * Returns an async iterator that watches for changes on `filename`, where `filename`is either a file or a directory. + * + * ```js + * const { watch } = require('fs/promises'); + * + * const ac = new AbortController(); + * const { signal } = ac; + * setTimeout(() => ac.abort(), 10000); + * + * (async () => { + * try { + * const watcher = watch(__filename, { signal }); + * for await (const event of watcher) + * console.log(event); + * } catch (err) { + * if (err.name === 'AbortError') + * return; + * throw err; + * } + * })(); + * ``` + * + * On most platforms, `'rename'` is emitted whenever a filename appears or + * disappears in the directory. + * + * All the `caveats` for `fs.watch()` also apply to `fsPromises.watch()`. + * @since v15.9.0, v14.18.0 + * @return of objects with the properties: + */ + function watch( + filename: PathLike, + options: + | (WatchOptions & { + encoding: 'buffer'; + }) + | 'buffer' + ): AsyncIterable>; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + function watch(filename: PathLike, options?: WatchOptions | BufferEncoding): AsyncIterable>; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + function watch(filename: PathLike, options: WatchOptions | string): AsyncIterable> | AsyncIterable>; + /** + * Asynchronously copies the entire directory structure from `src` to `dest`, + * including subdirectories and files. + * + * When copying a directory to another directory, globs are not supported and + * behavior is similar to `cp dir1/ dir2/`. + * @since v16.7.0 + * @experimental + * @param src source path to copy. + * @param dest destination path to copy to. + * @return Fulfills with `undefined` upon success. + */ + function cp(source: string | URL, destination: string | URL, opts?: CopyOptions): Promise; +} +declare module 'node:fs/promises' { + export * from 'fs/promises'; +} diff --git a/node_modules/@types/node/globals.d.ts b/node_modules/@types/node/globals.d.ts new file mode 100644 index 0000000..80fd4cf --- /dev/null +++ b/node_modules/@types/node/globals.d.ts @@ -0,0 +1,300 @@ +// Declare "static" methods in Error +interface ErrorConstructor { + /** Create .stack property on a target object */ + captureStackTrace(targetObject: object, constructorOpt?: Function): void; + + /** + * Optional override for formatting stack traces + * + * @see https://v8.dev/docs/stack-trace-api#customizing-stack-traces + */ + prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined; + + stackTraceLimit: number; +} + +/*-----------------------------------------------* + * * + * GLOBAL * + * * + ------------------------------------------------*/ + +// For backwards compability +interface NodeRequire extends NodeJS.Require { } +interface RequireResolve extends NodeJS.RequireResolve { } +interface NodeModule extends NodeJS.Module { } + +declare var process: NodeJS.Process; +declare var console: Console; + +declare var __filename: string; +declare var __dirname: string; + +declare var require: NodeRequire; +declare var module: NodeModule; + +// Same as module.exports +declare var exports: any; + +/** + * Only available if `--expose-gc` is passed to the process. + */ +declare var gc: undefined | (() => void); + +//#region borrowed +// from https://github.com/microsoft/TypeScript/blob/38da7c600c83e7b31193a62495239a0fe478cb67/lib/lib.webworker.d.ts#L633 until moved to separate lib +/** A controller object that allows you to abort one or more DOM requests as and when desired. */ +interface AbortController { + /** + * Returns the AbortSignal object associated with this object. + */ + + readonly signal: AbortSignal; + /** + * Invoking this method will set this object's AbortSignal's aborted flag and signal to any observers that the associated activity is to be aborted. + */ + abort(): void; +} + +/** A signal object that allows you to communicate with a DOM request (such as a Fetch) and abort it if required via an AbortController object. */ +interface AbortSignal extends EventTarget { + /** + * Returns true if this AbortSignal's AbortController has signaled to abort, and false otherwise. + */ + readonly aborted: boolean; +} + +declare var AbortController: typeof globalThis extends {onmessage: any; AbortController: infer T} + ? T + : { + prototype: AbortController; + new(): AbortController; + }; + +declare var AbortSignal: typeof globalThis extends {onmessage: any; AbortSignal: infer T} + ? T + : { + prototype: AbortSignal; + new(): AbortSignal; + abort(reason?: any): AbortSignal; + timeout(milliseconds: number): AbortSignal; + }; +//#endregion borrowed + +//#region ArrayLike.at() +interface RelativeIndexable { + /** + * Takes an integer value and returns the item at that index, + * allowing for positive and negative integers. + * Negative integers count back from the last item in the array. + */ + at(index: number): T | undefined; +} +interface String extends RelativeIndexable {} +interface Array extends RelativeIndexable {} +interface ReadonlyArray extends RelativeIndexable {} +interface Int8Array extends RelativeIndexable {} +interface Uint8Array extends RelativeIndexable {} +interface Uint8ClampedArray extends RelativeIndexable {} +interface Int16Array extends RelativeIndexable {} +interface Uint16Array extends RelativeIndexable {} +interface Int32Array extends RelativeIndexable {} +interface Uint32Array extends RelativeIndexable {} +interface Float32Array extends RelativeIndexable {} +interface Float64Array extends RelativeIndexable {} +interface BigInt64Array extends RelativeIndexable {} +interface BigUint64Array extends RelativeIndexable {} +//#endregion ArrayLike.at() end + +/** + * @since v17.0.0 + * + * Creates a deep clone of an object. + */ +declare function structuredClone( + value: T, + transfer?: { transfer: ReadonlyArray }, +): T; + +/*----------------------------------------------* +* * +* GLOBAL INTERFACES * +* * +*-----------------------------------------------*/ +declare namespace NodeJS { + interface CallSite { + /** + * Value of "this" + */ + getThis(): unknown; + + /** + * 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; + + /** + * Current function + */ + getFunction(): Function | undefined; + + /** + * 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; + + /** + * Name of the property [of "this" or one of its prototypes] that holds + * the current function + */ + getMethodName(): string | null; + + /** + * Name of the script [if this function was defined in a script] + */ + getFileName(): string | null; + + /** + * Current line number [if this function was defined in a script] + */ + getLineNumber(): number | null; + + /** + * Current column number [if this function was defined in a script] + */ + getColumnNumber(): number | null; + + /** + * A call site object representing the location where eval was called + * [if this function was created using a call to eval] + */ + getEvalOrigin(): string | undefined; + + /** + * Is this a toplevel invocation, that is, is "this" the global object? + */ + isToplevel(): boolean; + + /** + * Does this call take place in code defined by a call to eval? + */ + isEval(): boolean; + + /** + * Is this call in native V8 code? + */ + isNative(): boolean; + + /** + * Is this a constructor call? + */ + isConstructor(): boolean; + } + + interface ErrnoException extends Error { + errno?: number | undefined; + code?: string | undefined; + path?: string | undefined; + syscall?: string | undefined; + } + + interface ReadableStream extends EventEmitter { + readable: boolean; + read(size?: number): string | Buffer; + setEncoding(encoding: BufferEncoding): this; + pause(): this; + resume(): this; + isPaused(): boolean; + pipe(destination: T, options?: { end?: boolean | undefined; }): T; + unpipe(destination?: WritableStream): this; + unshift(chunk: string | Uint8Array, encoding?: BufferEncoding): void; + wrap(oldStream: ReadableStream): this; + [Symbol.asyncIterator](): AsyncIterableIterator; + } + + interface WritableStream extends EventEmitter { + writable: boolean; + write(buffer: Uint8Array | string, cb?: (err?: Error | null) => void): boolean; + write(str: string, encoding?: BufferEncoding, cb?: (err?: Error | null) => void): boolean; + end(cb?: () => void): this; + end(data: string | Uint8Array, cb?: () => void): this; + end(str: string, encoding?: BufferEncoding, cb?: () => void): this; + } + + interface ReadWriteStream extends ReadableStream, WritableStream { } + + interface RefCounted { + ref(): this; + unref(): this; + } + + type TypedArray = + | Uint8Array + | Uint8ClampedArray + | Uint16Array + | Uint32Array + | Int8Array + | Int16Array + | Int32Array + | BigUint64Array + | BigInt64Array + | Float32Array + | Float64Array; + type ArrayBufferView = TypedArray | DataView; + + interface Require { + (id: string): any; + resolve: RequireResolve; + cache: Dict; + /** + * @deprecated + */ + extensions: RequireExtensions; + main: Module | undefined; + } + + interface RequireResolve { + (id: string, options?: { paths?: string[] | undefined; }): string; + paths(request: string): string[] | null; + } + + interface RequireExtensions extends Dict<(m: Module, filename: string) => any> { + '.js': (m: Module, filename: string) => any; + '.json': (m: Module, filename: string) => any; + '.node': (m: Module, filename: string) => any; + } + interface Module { + /** + * `true` if the module is running during the Node.js preload + */ + isPreloading: boolean; + exports: any; + require: Require; + id: string; + filename: string; + loaded: boolean; + /** @deprecated since v14.6.0 Please use `require.main` and `module.children` instead. */ + parent: Module | null | undefined; + children: Module[]; + /** + * @since v11.14.0 + * + * The directory name of the module. This is usually the same as the path.dirname() of the module.id. + */ + path: string; + paths: string[]; + } + + interface Dict { + [key: string]: T | undefined; + } + + interface ReadOnlyDict { + readonly [key: string]: T | undefined; + } +} diff --git a/node_modules/@types/node/globals.global.d.ts b/node_modules/@types/node/globals.global.d.ts new file mode 100644 index 0000000..ef1198c --- /dev/null +++ b/node_modules/@types/node/globals.global.d.ts @@ -0,0 +1 @@ +declare var global: typeof globalThis; diff --git a/node_modules/@types/node/http.d.ts b/node_modules/@types/node/http.d.ts new file mode 100644 index 0000000..e14de6c --- /dev/null +++ b/node_modules/@types/node/http.d.ts @@ -0,0 +1,1651 @@ +/** + * To use the HTTP server and client one must `require('http')`. + * + * The HTTP interfaces in Node.js are designed to support many features + * of the protocol which have been traditionally difficult to use. + * In particular, large, possibly chunk-encoded, messages. The interface is + * careful to never buffer entire requests or responses, so the + * user is able to stream data. + * + * HTTP message headers are represented by an object like this: + * + * ```js + * { 'content-length': '123', + * 'content-type': 'text/plain', + * 'connection': 'keep-alive', + * 'host': 'example.com', + * 'accept': '*' } + * ``` + * + * Keys are lowercased. Values are not modified. + * + * In order to support the full spectrum of possible HTTP applications, the Node.js + * HTTP API is very low-level. It deals with stream handling and message + * parsing only. It parses a message into headers and body but it does not + * parse the actual headers or the body. + * + * See `message.headers` for details on how duplicate headers are handled. + * + * The raw headers as they were received are retained in the `rawHeaders`property, which is an array of `[key, value, key2, value2, ...]`. For + * example, the previous message header object might have a `rawHeaders`list like the following: + * + * ```js + * [ 'ConTent-Length', '123456', + * 'content-LENGTH', '123', + * 'content-type', 'text/plain', + * 'CONNECTION', 'keep-alive', + * 'Host', 'example.com', + * 'accepT', '*' ] + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/http.js) + */ +declare module 'http' { + import * as stream from 'node:stream'; + import { URL } from 'node:url'; + import { TcpSocketConnectOpts, Socket, Server as NetServer, LookupFunction } from 'node:net'; + import { LookupOptions } from 'node:dns'; + // incoming headers will never contain number + interface IncomingHttpHeaders extends NodeJS.Dict { + accept?: string | undefined; + 'accept-language'?: string | undefined; + 'accept-patch'?: string | undefined; + 'accept-ranges'?: string | undefined; + 'access-control-allow-credentials'?: string | undefined; + 'access-control-allow-headers'?: string | undefined; + 'access-control-allow-methods'?: string | undefined; + 'access-control-allow-origin'?: string | undefined; + 'access-control-expose-headers'?: string | undefined; + 'access-control-max-age'?: string | undefined; + 'access-control-request-headers'?: string | undefined; + 'access-control-request-method'?: string | undefined; + age?: string | undefined; + allow?: string | undefined; + 'alt-svc'?: string | undefined; + authorization?: string | undefined; + 'cache-control'?: string | undefined; + connection?: string | undefined; + 'content-disposition'?: string | undefined; + 'content-encoding'?: string | undefined; + 'content-language'?: string | undefined; + 'content-length'?: string | undefined; + 'content-location'?: string | undefined; + 'content-range'?: string | undefined; + 'content-type'?: string | undefined; + cookie?: string | undefined; + date?: string | undefined; + etag?: string | undefined; + expect?: string | undefined; + expires?: string | undefined; + forwarded?: string | undefined; + from?: string | undefined; + host?: string | undefined; + 'if-match'?: string | undefined; + 'if-modified-since'?: string | undefined; + 'if-none-match'?: string | undefined; + 'if-unmodified-since'?: string | undefined; + 'last-modified'?: string | undefined; + location?: string | undefined; + origin?: string | undefined; + pragma?: string | undefined; + 'proxy-authenticate'?: string | undefined; + 'proxy-authorization'?: string | undefined; + 'public-key-pins'?: string | undefined; + range?: string | undefined; + referer?: string | undefined; + 'retry-after'?: string | undefined; + 'sec-websocket-accept'?: string | undefined; + 'sec-websocket-extensions'?: string | undefined; + 'sec-websocket-key'?: string | undefined; + 'sec-websocket-protocol'?: string | undefined; + 'sec-websocket-version'?: string | undefined; + 'set-cookie'?: string[] | undefined; + 'strict-transport-security'?: string | undefined; + tk?: string | undefined; + trailer?: string | undefined; + 'transfer-encoding'?: string | undefined; + upgrade?: string | undefined; + 'user-agent'?: string | undefined; + vary?: string | undefined; + via?: string | undefined; + warning?: string | undefined; + 'www-authenticate'?: string | undefined; + } + // outgoing headers allows numbers (as they are converted internally to strings) + type OutgoingHttpHeader = number | string | string[]; + interface OutgoingHttpHeaders extends NodeJS.Dict {} + interface ClientRequestArgs { + _defaultAgent?: Agent | undefined; + agent?: Agent | boolean | undefined; + auth?: string | null | undefined; + // https://github.com/nodejs/node/blob/master/lib/_http_client.js#L278 + createConnection?: + | ((options: ClientRequestArgs, oncreate: (err: Error, socket: Socket) => void) => Socket) + | undefined; + defaultPort?: number | string | undefined; + family?: number | undefined; + headers?: OutgoingHttpHeaders | undefined; + hints?: LookupOptions['hints']; + host?: string | null | undefined; + hostname?: string | null | undefined; + insecureHTTPParser?: boolean | undefined; + localAddress?: string | undefined; + localPort?: number | undefined; + lookup?: LookupFunction | undefined; + /** + * @default 16384 + */ + maxHeaderSize?: number | undefined; + method?: string | undefined; + path?: string | null | undefined; + port?: number | string | null | undefined; + protocol?: string | null | undefined; + setHost?: boolean | undefined; + signal?: AbortSignal | undefined; + socketPath?: string | undefined; + timeout?: number | undefined; + uniqueHeaders?: Array | undefined; + } + interface ServerOptions< + Request extends typeof IncomingMessage = typeof IncomingMessage, + Response extends typeof ServerResponse = typeof ServerResponse, + > { + /** + * Specifies the `IncomingMessage` class to be used. Useful for extending the original `IncomingMessage`. + */ + IncomingMessage?: Request | undefined; + /** + * Specifies the `ServerResponse` class to be used. Useful for extending the original `ServerResponse`. + */ + ServerResponse?: Response | undefined; + /** + * Sets the timeout value in milliseconds for receiving the entire request from the client. + * @see Server.requestTimeout for more information. + * @default 300000 + * @since v18.0.0 + */ + requestTimeout?: number | undefined; + /** + * The number of milliseconds of inactivity a server needs to wait for additional incoming data, + * after it has finished writing the last response, before a socket will be destroyed. + * @see Server.keepAliveTimeout for more information. + * @default 5000 + * @since v18.0.0 + */ + keepAliveTimeout?: number | undefined; + /** + * Sets the interval value in milliseconds to check for request and headers timeout in incomplete requests. + * @default 30000 + */ + connectionsCheckingInterval?: number | undefined; + /** + * Use an insecure HTTP parser that accepts invalid HTTP headers when `true`. + * Using the insecure parser should be avoided. + * See --insecure-http-parser for more information. + * @default false + */ + insecureHTTPParser?: boolean | undefined; + /** + * Optionally overrides the value of + * `--max-http-header-size` for requests received by this server, i.e. + * the maximum length of request headers in bytes. + * @default 16384 + * @since v13.3.0 + */ + maxHeaderSize?: number | undefined; + /** + * If set to `true`, it disables the use of Nagle's algorithm immediately after a new incoming connection is received. + * @default true + * @since v16.5.0 + */ + noDelay?: boolean | undefined; + /** + * If set to `true`, it enables keep-alive functionality on the socket immediately after a new incoming connection is received, + * similarly on what is done in `socket.setKeepAlive([enable][, initialDelay])`. + * @default false + * @since v16.5.0 + */ + keepAlive?: boolean | undefined; + /** + * If set to a positive number, it sets the initial delay before the first keepalive probe is sent on an idle socket. + * @default 0 + * @since v16.5.0 + */ + keepAliveInitialDelay?: number | undefined; + /** + * A list of response headers that should be sent only once. + * If the header's value is an array, the items will be joined using `; `. + */ + uniqueHeaders?: Array | undefined; + } + type RequestListener< + Request extends typeof IncomingMessage = typeof IncomingMessage, + Response extends typeof ServerResponse = typeof ServerResponse, + > = (req: InstanceType, res: InstanceType & { req: InstanceType }) => void; + /** + * @since v0.1.17 + */ + class Server< + Request extends typeof IncomingMessage = typeof IncomingMessage, + Response extends typeof ServerResponse = typeof ServerResponse, + > extends NetServer { + constructor(requestListener?: RequestListener); + constructor(options: ServerOptions, requestListener?: RequestListener); + /** + * Sets the timeout value for sockets, and emits a `'timeout'` event on + * the Server object, passing the socket as an argument, if a timeout + * occurs. + * + * If there is a `'timeout'` event listener on the Server object, then it + * will be called with the timed-out socket as an argument. + * + * By default, the Server does not timeout sockets. However, if a callback + * is assigned to the Server's `'timeout'` event, timeouts must be handled + * explicitly. + * @since v0.9.12 + * @param [msecs=0 (no timeout)] + */ + setTimeout(msecs?: number, callback?: () => void): this; + setTimeout(callback: () => void): this; + /** + * Limits maximum incoming headers count. If set to 0, no limit will be applied. + * @since v0.7.0 + */ + maxHeadersCount: number | null; + /** + * The maximum number of requests socket can handle + * before closing keep alive connection. + * + * A value of `0` will disable the limit. + * + * When the limit is reached it will set the `Connection` header value to `close`, + * but will not actually close the connection, subsequent requests sent + * after the limit is reached will get `503 Service Unavailable` as a response. + * @since v16.10.0 + */ + maxRequestsPerSocket: number | null; + /** + * The number of milliseconds of inactivity before a socket is presumed + * to have timed out. + * + * A value of `0` will disable the timeout behavior on incoming connections. + * + * The socket timeout logic is set up on connection, so changing this + * value only affects new connections to the server, not any existing connections. + * @since v0.9.12 + */ + timeout: number; + /** + * Limit the amount of time the parser will wait to receive the complete HTTP + * headers. + * + * If the timeout expires, the server responds with status 408 without + * forwarding the request to the request listener and then closes the connection. + * + * It must be set to a non-zero value (e.g. 120 seconds) to protect against + * potential Denial-of-Service attacks in case the server is deployed without a + * reverse proxy in front. + * @since v11.3.0, v10.14.0 + */ + headersTimeout: number; + /** + * The number of milliseconds of inactivity a server needs to wait for additional + * incoming data, after it has finished writing the last response, before a socket + * will be destroyed. If the server receives new data before the keep-alive + * timeout has fired, it will reset the regular inactivity timeout, i.e.,`server.timeout`. + * + * A value of `0` will disable the keep-alive timeout behavior on incoming + * connections. + * A value of `0` makes the http server behave similarly to Node.js versions prior + * to 8.0.0, which did not have a keep-alive timeout. + * + * The socket timeout logic is set up on connection, so changing this value only + * affects new connections to the server, not any existing connections. + * @since v8.0.0 + */ + keepAliveTimeout: number; + /** + * Sets the timeout value in milliseconds for receiving the entire request from + * the client. + * + * If the timeout expires, the server responds with status 408 without + * forwarding the request to the request listener and then closes the connection. + * + * It must be set to a non-zero value (e.g. 120 seconds) to protect against + * potential Denial-of-Service attacks in case the server is deployed without a + * reverse proxy in front. + * @since v14.11.0 + */ + requestTimeout: number; + /** + * Closes all connections connected to this server. + * @since v18.2.0 + */ + closeAllConnections(): void; + /** + * Closes all connections connected to this server which are not sending a request or waiting for a response. + * @since v18.2.0 + */ + closeIdleConnections(): void; + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'connection', listener: (socket: Socket) => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'listening', listener: () => void): this; + addListener(event: 'checkContinue', listener: RequestListener): this; + addListener(event: 'checkExpectation', listener: RequestListener): this; + addListener(event: 'clientError', listener: (err: Error, socket: stream.Duplex) => void): this; + addListener( + event: 'connect', + listener: (req: InstanceType, socket: stream.Duplex, head: Buffer) => void, + ): this; + addListener(event: 'request', listener: RequestListener): this; + addListener( + event: 'upgrade', + listener: (req: InstanceType, socket: stream.Duplex, head: Buffer) => void, + ): this; + emit(event: string, ...args: any[]): boolean; + emit(event: 'close'): boolean; + emit(event: 'connection', socket: Socket): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'listening'): boolean; + emit( + event: 'checkContinue', + req: InstanceType, + res: InstanceType & { req: InstanceType }, + ): boolean; + emit( + event: 'checkExpectation', + req: InstanceType, + res: InstanceType & { req: InstanceType }, + ): boolean; + emit(event: 'clientError', err: Error, socket: stream.Duplex): boolean; + emit(event: 'connect', req: InstanceType, socket: stream.Duplex, head: Buffer): boolean; + emit( + event: 'request', + req: InstanceType, + res: InstanceType & { req: InstanceType }, + ): boolean; + emit(event: 'upgrade', req: InstanceType, socket: stream.Duplex, head: Buffer): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'connection', listener: (socket: Socket) => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'listening', listener: () => void): this; + on(event: 'checkContinue', listener: RequestListener): this; + on(event: 'checkExpectation', listener: RequestListener): this; + on(event: 'clientError', listener: (err: Error, socket: stream.Duplex) => void): this; + on(event: 'connect', listener: (req: InstanceType, socket: stream.Duplex, head: Buffer) => void): this; + on(event: 'request', listener: RequestListener): this; + on(event: 'upgrade', listener: (req: InstanceType, socket: stream.Duplex, head: Buffer) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'connection', listener: (socket: Socket) => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'listening', listener: () => void): this; + once(event: 'checkContinue', listener: RequestListener): this; + once(event: 'checkExpectation', listener: RequestListener): this; + once(event: 'clientError', listener: (err: Error, socket: stream.Duplex) => void): this; + once( + event: 'connect', + listener: (req: InstanceType, socket: stream.Duplex, head: Buffer) => void, + ): this; + once(event: 'request', listener: RequestListener): this; + once( + event: 'upgrade', + listener: (req: InstanceType, socket: stream.Duplex, head: Buffer) => void, + ): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'connection', listener: (socket: Socket) => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'listening', listener: () => void): this; + prependListener(event: 'checkContinue', listener: RequestListener): this; + prependListener(event: 'checkExpectation', listener: RequestListener): this; + prependListener(event: 'clientError', listener: (err: Error, socket: stream.Duplex) => void): this; + prependListener( + event: 'connect', + listener: (req: InstanceType, socket: stream.Duplex, head: Buffer) => void, + ): this; + prependListener(event: 'request', listener: RequestListener): this; + prependListener( + event: 'upgrade', + listener: (req: InstanceType, socket: stream.Duplex, head: Buffer) => void, + ): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'connection', listener: (socket: Socket) => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'listening', listener: () => void): this; + prependOnceListener(event: 'checkContinue', listener: RequestListener): this; + prependOnceListener(event: 'checkExpectation', listener: RequestListener): this; + prependOnceListener(event: 'clientError', listener: (err: Error, socket: stream.Duplex) => void): this; + prependOnceListener( + event: 'connect', + listener: (req: InstanceType, socket: stream.Duplex, head: Buffer) => void, + ): this; + prependOnceListener(event: 'request', listener: RequestListener): this; + prependOnceListener( + event: 'upgrade', + listener: (req: InstanceType, socket: stream.Duplex, head: Buffer) => void, + ): this; + } + /** + * This class serves as the parent class of {@link ClientRequest} and {@link ServerResponse}. It is an abstract of outgoing message from + * the perspective of the participants of HTTP transaction. + * @since v0.1.17 + */ + class OutgoingMessage extends stream.Writable { + readonly req: Request; + chunkedEncoding: boolean; + shouldKeepAlive: boolean; + useChunkedEncodingByDefault: boolean; + sendDate: boolean; + /** + * @deprecated Use `writableEnded` instead. + */ + finished: boolean; + /** + * Read-only. `true` if the headers were sent, otherwise `false`. + * @since v0.9.3 + */ + readonly headersSent: boolean; + /** + * Aliases of `outgoingMessage.socket` + * @since v0.3.0 + * @deprecated Since v15.12.0,v14.17.1 - Use `socket` instead. + */ + readonly connection: Socket | null; + /** + * Reference to the underlying socket. Usually, users will not want to access + * this property. + * + * After calling `outgoingMessage.end()`, this property will be nulled. + * @since v0.3.0 + */ + readonly socket: Socket | null; + constructor(); + /** + * Once a socket is associated with the message and is connected,`socket.setTimeout()` will be called with `msecs` as the first parameter. + * @since v0.9.12 + * @param callback Optional function to be called when a timeout occurs. Same as binding to the `timeout` event. + */ + setTimeout(msecs: number, callback?: () => void): this; + /** + * Sets a single header value for the header object. + * @since v0.4.0 + * @param name Header name + * @param value Header value + */ + setHeader(name: string, value: number | string | ReadonlyArray): this; + /** + * Gets the value of HTTP header with the given name. If such a name doesn't + * exist in message, it will be `undefined`. + * @since v0.4.0 + * @param name Name of header + */ + getHeader(name: string): number | string | string[] | undefined; + /** + * Returns a shallow copy of the current outgoing headers. Since a shallow + * copy is used, array values may be mutated without additional calls to + * various header-related HTTP module methods. The keys of the returned + * object are the header names and the values are the respective header + * values. All header names are lowercase. + * + * The object returned by the `outgoingMessage.getHeaders()` method does + * not prototypically inherit from the JavaScript Object. This means that + * typical Object methods such as `obj.toString()`, `obj.hasOwnProperty()`, + * and others are not defined and will not work. + * + * ```js + * outgoingMessage.setHeader('Foo', 'bar'); + * outgoingMessage.setHeader('Set-Cookie', ['foo=bar', 'bar=baz']); + * + * const headers = outgoingMessage.getHeaders(); + * // headers === { foo: 'bar', 'set-cookie': ['foo=bar', 'bar=baz'] } + * ``` + * @since v7.7.0 + */ + getHeaders(): OutgoingHttpHeaders; + /** + * Returns an array of names of headers of the outgoing outgoingMessage. All + * names are lowercase. + * @since v7.7.0 + */ + getHeaderNames(): string[]; + /** + * Returns `true` if the header identified by `name` is currently set in the + * outgoing headers. The header name is case-insensitive. + * + * ```js + * const hasContentType = outgoingMessage.hasHeader('content-type'); + * ``` + * @since v7.7.0 + */ + hasHeader(name: string): boolean; + /** + * Removes a header that is queued for implicit sending. + * + * ```js + * outgoingMessage.removeHeader('Content-Encoding'); + * ``` + * @since v0.4.0 + * @param name Header name + */ + removeHeader(name: string): void; + /** + * Adds HTTP trailers (headers but at the end of the message) to the message. + * + * Trailers are **only** be emitted if the message is chunked encoded. If not, + * the trailer will be silently discarded. + * + * HTTP requires the `Trailer` header to be sent to emit trailers, + * with a list of header fields in its value, e.g. + * + * ```js + * message.writeHead(200, { 'Content-Type': 'text/plain', + * 'Trailer': 'Content-MD5' }); + * message.write(fileData); + * message.addTrailers({ 'Content-MD5': '7895bf4b8828b55ceaf47747b4bca667' }); + * message.end(); + * ``` + * + * Attempting to set a header field name or value that contains invalid characters + * will result in a `TypeError` being thrown. + * @since v0.3.0 + */ + addTrailers(headers: OutgoingHttpHeaders | ReadonlyArray<[string, string]>): void; + /** + * Compulsorily flushes the message headers + * + * For efficiency reason, Node.js normally buffers the message headers + * until `outgoingMessage.end()` is called or the first chunk of message data + * is written. It then tries to pack the headers and data into a single TCP + * packet. + * + * It is usually desired (it saves a TCP round-trip), but not when the first + * data is not sent until possibly much later. `outgoingMessage.flushHeaders()`bypasses the optimization and kickstarts the request. + * @since v1.6.0 + */ + flushHeaders(): void; + } + /** + * This object is created internally by an HTTP server, not by the user. It is + * passed as the second parameter to the `'request'` event. + * @since v0.1.17 + */ + class ServerResponse extends OutgoingMessage { + /** + * When using implicit headers (not calling `response.writeHead()` explicitly), + * this property controls the status code that will be sent to the client when + * the headers get flushed. + * + * ```js + * response.statusCode = 404; + * ``` + * + * After response header was sent to the client, this property indicates the + * status code which was sent out. + * @since v0.4.0 + */ + statusCode: number; + /** + * When using implicit headers (not calling `response.writeHead()` explicitly), + * this property controls the status message that will be sent to the client when + * the headers get flushed. If this is left as `undefined` then the standard + * message for the status code will be used. + * + * ```js + * response.statusMessage = 'Not found'; + * ``` + * + * After response header was sent to the client, this property indicates the + * status message which was sent out. + * @since v0.11.8 + */ + statusMessage: string; + constructor(req: Request); + assignSocket(socket: Socket): void; + detachSocket(socket: Socket): void; + /** + * Sends an HTTP/1.1 100 Continue message to the client, indicating that + * the request body should be sent. See the `'checkContinue'` event on`Server`. + * @since v0.3.0 + */ + writeContinue(callback?: () => void): void; + /** + * Sends an HTTP/1.1 103 Early Hints message to the client with a Link header, + * indicating that the user agent can preload/preconnect the linked resources. + * The `hints` is an object containing the values of headers to be sent with + * early hints message. The optional `callback` argument will be called when + * the response message has been written. + * + * Example: + * + * ```js + * const earlyHintsLink = '; rel=preload; as=style'; + * response.writeEarlyHints({ + * 'link': earlyHintsLink, + * }); + * + * const earlyHintsLinks = [ + * '; rel=preload; as=style', + * '; rel=preload; as=script', + * ]; + * response.writeEarlyHints({ + * 'link': earlyHintsLinks, + * 'x-trace-id': 'id for diagnostics' + * }); + * + * const earlyHintsCallback = () => console.log('early hints message sent'); + * response.writeEarlyHints({ + * 'link': earlyHintsLinks + * }, earlyHintsCallback); + * ``` + * + * @since v18.11.0 + * @param hints An object containing the values of headers + * @param callback Will be called when the response message has been written + */ + writeEarlyHints(hints: Record, callback?: () => void): void; + /** + * Sends a response header to the request. The status code is a 3-digit HTTP + * status code, like `404`. The last argument, `headers`, are the response headers. + * Optionally one can give a human-readable `statusMessage` as the second + * argument. + * + * `headers` may be an `Array` where the keys and values are in the same list. + * It is _not_ a list of tuples. So, the even-numbered offsets are key values, + * and the odd-numbered offsets are the associated values. The array is in the same + * format as `request.rawHeaders`. + * + * Returns a reference to the `ServerResponse`, so that calls can be chained. + * + * ```js + * const body = 'hello world'; + * response + * .writeHead(200, { + * 'Content-Length': Buffer.byteLength(body), + * 'Content-Type': 'text/plain' + * }) + * .end(body); + * ``` + * + * This method must only be called once on a message and it must + * be called before `response.end()` is called. + * + * If `response.write()` or `response.end()` are called before calling + * this, the implicit/mutable headers will be calculated and call this function. + * + * When headers have been set with `response.setHeader()`, they will be merged + * with any headers passed to `response.writeHead()`, with the headers passed + * to `response.writeHead()` given precedence. + * + * If this method is called and `response.setHeader()` has not been called, + * it will directly write the supplied header values onto the network channel + * without caching internally, and the `response.getHeader()` on the header + * will not yield the expected result. If progressive population of headers is + * desired with potential future retrieval and modification, use `response.setHeader()` instead. + * + * ```js + * // Returns content-type = text/plain + * const server = http.createServer((req, res) => { + * res.setHeader('Content-Type', 'text/html'); + * res.setHeader('X-Foo', 'bar'); + * res.writeHead(200, { 'Content-Type': 'text/plain' }); + * res.end('ok'); + * }); + * ``` + * + * `Content-Length` is given in bytes, not characters. Use `Buffer.byteLength()` to determine the length of the body in bytes. Node.js + * does not check whether `Content-Length` and the length of the body which has + * been transmitted are equal or not. + * + * Attempting to set a header field name or value that contains invalid characters + * will result in a `TypeError` being thrown. + * @since v0.1.30 + */ + writeHead( + statusCode: number, + statusMessage?: string, + headers?: OutgoingHttpHeaders | OutgoingHttpHeader[], + ): this; + writeHead(statusCode: number, headers?: OutgoingHttpHeaders | OutgoingHttpHeader[]): this; + /** + * Sends an HTTP/1.1 102 Processing message to the client, indicating that + * the request body should be sent. + * @since v10.0.0 + */ + writeProcessing(): void; + } + interface InformationEvent { + statusCode: number; + statusMessage: string; + httpVersion: string; + httpVersionMajor: number; + httpVersionMinor: number; + headers: IncomingHttpHeaders; + rawHeaders: string[]; + } + /** + * This object is created internally and returned from {@link request}. It + * represents an _in-progress_ request whose header has already been queued. The + * header is still mutable using the `setHeader(name, value)`,`getHeader(name)`, `removeHeader(name)` API. The actual header will + * be sent along with the first data chunk or when calling `request.end()`. + * + * To get the response, add a listener for `'response'` to the request object.`'response'` will be emitted from the request object when the response + * headers have been received. The `'response'` event is executed with one + * argument which is an instance of {@link IncomingMessage}. + * + * During the `'response'` event, one can add listeners to the + * response object; particularly to listen for the `'data'` event. + * + * If no `'response'` handler is added, then the response will be + * entirely discarded. However, if a `'response'` event handler is added, + * then the data from the response object **must** be consumed, either by + * calling `response.read()` whenever there is a `'readable'` event, or + * by adding a `'data'` handler, or by calling the `.resume()` method. + * Until the data is consumed, the `'end'` event will not fire. Also, until + * the data is read it will consume memory that can eventually lead to a + * 'process out of memory' error. + * + * For backward compatibility, `res` will only emit `'error'` if there is an`'error'` listener registered. + * + * Node.js does not check whether Content-Length and the length of the + * body which has been transmitted are equal or not. + * @since v0.1.17 + */ + class ClientRequest extends OutgoingMessage { + /** + * The `request.aborted` property will be `true` if the request has + * been aborted. + * @since v0.11.14 + * @deprecated Since v17.0.0,v16.12.0 - Check `destroyed` instead. + */ + aborted: boolean; + /** + * The request host. + * @since v14.5.0, v12.19.0 + */ + host: string; + /** + * The request protocol. + * @since v14.5.0, v12.19.0 + */ + protocol: string; + /** + * When sending request through a keep-alive enabled agent, the underlying socket + * might be reused. But if server closes connection at unfortunate time, client + * may run into a 'ECONNRESET' error. + * + * ```js + * const http = require('http'); + * + * // Server has a 5 seconds keep-alive timeout by default + * http + * .createServer((req, res) => { + * res.write('hello\n'); + * res.end(); + * }) + * .listen(3000); + * + * setInterval(() => { + * // Adapting a keep-alive agent + * http.get('http://localhost:3000', { agent }, (res) => { + * res.on('data', (data) => { + * // Do nothing + * }); + * }); + * }, 5000); // Sending request on 5s interval so it's easy to hit idle timeout + * ``` + * + * By marking a request whether it reused socket or not, we can do + * automatic error retry base on it. + * + * ```js + * const http = require('http'); + * const agent = new http.Agent({ keepAlive: true }); + * + * function retriableRequest() { + * const req = http + * .get('http://localhost:3000', { agent }, (res) => { + * // ... + * }) + * .on('error', (err) => { + * // Check if retry is needed + * if (req.reusedSocket && err.code === 'ECONNRESET') { + * retriableRequest(); + * } + * }); + * } + * + * retriableRequest(); + * ``` + * @since v13.0.0, v12.16.0 + */ + reusedSocket: boolean; + /** + * Limits maximum response headers count. If set to 0, no limit will be applied. + */ + maxHeadersCount: number; + constructor(url: string | URL | ClientRequestArgs, cb?: (res: IncomingMessage) => void); + /** + * The request method. + * @since v0.1.97 + */ + method: string; + /** + * The request path. + * @since v0.4.0 + */ + path: string; + /** + * Marks the request as aborting. Calling this will cause remaining data + * in the response to be dropped and the socket to be destroyed. + * @since v0.3.8 + * @deprecated Since v14.1.0,v13.14.0 - Use `destroy` instead. + */ + abort(): void; + onSocket(socket: Socket): void; + /** + * Once a socket is assigned to this request and is connected `socket.setTimeout()` will be called. + * @since v0.5.9 + * @param timeout Milliseconds before a request times out. + * @param callback Optional function to be called when a timeout occurs. Same as binding to the `'timeout'` event. + */ + setTimeout(timeout: number, callback?: () => void): this; + /** + * Once a socket is assigned to this request and is connected `socket.setNoDelay()` will be called. + * @since v0.5.9 + */ + setNoDelay(noDelay?: boolean): void; + /** + * Once a socket is assigned to this request and is connected `socket.setKeepAlive()` will be called. + * @since v0.5.9 + */ + setSocketKeepAlive(enable?: boolean, initialDelay?: number): void; + /** + * Returns an array containing the unique names of the current outgoing raw + * headers. Header names are returned with their exact casing being set. + * + * ```js + * request.setHeader('Foo', 'bar'); + * request.setHeader('Set-Cookie', ['foo=bar', 'bar=baz']); + * + * const headerNames = request.getRawHeaderNames(); + * // headerNames === ['Foo', 'Set-Cookie'] + * ``` + * @since v15.13.0, v14.17.0 + */ + getRawHeaderNames(): string[]; + /** + * @deprecated + */ + addListener(event: 'abort', listener: () => void): this; + addListener( + event: 'connect', + listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void, + ): this; + addListener(event: 'continue', listener: () => void): this; + addListener(event: 'information', listener: (info: InformationEvent) => void): this; + addListener(event: 'response', listener: (response: IncomingMessage) => void): this; + addListener(event: 'socket', listener: (socket: Socket) => void): this; + addListener(event: 'timeout', listener: () => void): this; + addListener( + event: 'upgrade', + listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void, + ): this; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'drain', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'finish', listener: () => void): this; + addListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + addListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + /** + * @deprecated + */ + on(event: 'abort', listener: () => void): this; + on(event: 'connect', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + on(event: 'continue', listener: () => void): this; + on(event: 'information', listener: (info: InformationEvent) => void): this; + on(event: 'response', listener: (response: IncomingMessage) => void): this; + on(event: 'socket', listener: (socket: Socket) => void): this; + on(event: 'timeout', listener: () => void): this; + on(event: 'upgrade', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'drain', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'finish', listener: () => void): this; + on(event: 'pipe', listener: (src: stream.Readable) => void): this; + on(event: 'unpipe', listener: (src: stream.Readable) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + /** + * @deprecated + */ + once(event: 'abort', listener: () => void): this; + once(event: 'connect', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + once(event: 'continue', listener: () => void): this; + once(event: 'information', listener: (info: InformationEvent) => void): this; + once(event: 'response', listener: (response: IncomingMessage) => void): this; + once(event: 'socket', listener: (socket: Socket) => void): this; + once(event: 'timeout', listener: () => void): this; + once(event: 'upgrade', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'drain', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'finish', listener: () => void): this; + once(event: 'pipe', listener: (src: stream.Readable) => void): this; + once(event: 'unpipe', listener: (src: stream.Readable) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + /** + * @deprecated + */ + prependListener(event: 'abort', listener: () => void): this; + prependListener( + event: 'connect', + listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void, + ): this; + prependListener(event: 'continue', listener: () => void): this; + prependListener(event: 'information', listener: (info: InformationEvent) => void): this; + prependListener(event: 'response', listener: (response: IncomingMessage) => void): this; + prependListener(event: 'socket', listener: (socket: Socket) => void): this; + prependListener(event: 'timeout', listener: () => void): this; + prependListener( + event: 'upgrade', + listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void, + ): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'drain', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'finish', listener: () => void): this; + prependListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + prependListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + /** + * @deprecated + */ + prependOnceListener(event: 'abort', listener: () => void): this; + prependOnceListener( + event: 'connect', + listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void, + ): this; + prependOnceListener(event: 'continue', listener: () => void): this; + prependOnceListener(event: 'information', listener: (info: InformationEvent) => void): this; + prependOnceListener(event: 'response', listener: (response: IncomingMessage) => void): this; + prependOnceListener(event: 'socket', listener: (socket: Socket) => void): this; + prependOnceListener(event: 'timeout', listener: () => void): this; + prependOnceListener( + event: 'upgrade', + listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void, + ): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'drain', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'finish', listener: () => void): this; + prependOnceListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + prependOnceListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + /** + * An `IncomingMessage` object is created by {@link Server} or {@link ClientRequest} and passed as the first argument to the `'request'` and `'response'` event respectively. It may be used to + * access response + * status, headers and data. + * + * Different from its `socket` value which is a subclass of `stream.Duplex`, the`IncomingMessage` itself extends `stream.Readable` and is created separately to + * parse and emit the incoming HTTP headers and payload, as the underlying socket + * may be reused multiple times in case of keep-alive. + * @since v0.1.17 + */ + class IncomingMessage extends stream.Readable { + constructor(socket: Socket); + /** + * The `message.aborted` property will be `true` if the request has + * been aborted. + * @since v10.1.0 + * @deprecated Since v17.0.0,v16.12.0 - Check `message.destroyed` from stream.Readable. + */ + aborted: boolean; + /** + * In case of server request, the HTTP version sent by the client. In the case of + * client response, the HTTP version of the connected-to server. + * Probably either `'1.1'` or `'1.0'`. + * + * Also `message.httpVersionMajor` is the first integer and`message.httpVersionMinor` is the second. + * @since v0.1.1 + */ + httpVersion: string; + httpVersionMajor: number; + httpVersionMinor: number; + /** + * The `message.complete` property will be `true` if a complete HTTP message has + * been received and successfully parsed. + * + * This property is particularly useful as a means of determining if a client or + * server fully transmitted a message before a connection was terminated: + * + * ```js + * const req = http.request({ + * host: '127.0.0.1', + * port: 8080, + * method: 'POST' + * }, (res) => { + * res.resume(); + * res.on('end', () => { + * if (!res.complete) + * console.error( + * 'The connection was terminated while the message was still being sent'); + * }); + * }); + * ``` + * @since v0.3.0 + */ + complete: boolean; + /** + * Alias for `message.socket`. + * @since v0.1.90 + * @deprecated Since v16.0.0 - Use `socket`. + */ + connection: Socket; + /** + * The `net.Socket` object associated with the connection. + * + * With HTTPS support, use `request.socket.getPeerCertificate()` to obtain the + * client's authentication details. + * + * This property is guaranteed to be an instance of the `net.Socket` class, + * a subclass of `stream.Duplex`, unless the user specified a socket + * type other than `net.Socket` or internally nulled. + * @since v0.3.0 + */ + socket: Socket; + /** + * The request/response headers object. + * + * Key-value pairs of header names and values. Header names are lower-cased. + * + * ```js + * // Prints something like: + * // + * // { 'user-agent': 'curl/7.22.0', + * // host: '127.0.0.1:8000', + * // accept: '*' } + * console.log(request.getHeaders()); + * ``` + * + * Duplicates in raw headers are handled in the following ways, depending on the + * header name: + * + * * Duplicates of `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`, `server`, or `user-agent` are discarded. + * * `set-cookie` is always an array. Duplicates are added to the array. + * * For duplicate `cookie` headers, the values are joined together with '; '. + * * For all other headers, the values are joined together with ', '. + * @since v0.1.5 + */ + headers: IncomingHttpHeaders; + /** + * The raw request/response headers list exactly as they were received. + * + * The keys and values are in the same list. It is _not_ a + * list of tuples. So, the even-numbered offsets are key values, and the + * odd-numbered offsets are the associated values. + * + * Header names are not lowercased, and duplicates are not merged. + * + * ```js + * // Prints something like: + * // + * // [ 'user-agent', + * // 'this is invalid because there can be only one', + * // 'User-Agent', + * // 'curl/7.22.0', + * // 'Host', + * // '127.0.0.1:8000', + * // 'ACCEPT', + * // '*' ] + * console.log(request.rawHeaders); + * ``` + * @since v0.11.6 + */ + rawHeaders: string[]; + /** + * The request/response trailers object. Only populated at the `'end'` event. + * @since v0.3.0 + */ + trailers: NodeJS.Dict; + /** + * The raw request/response trailer keys and values exactly as they were + * received. Only populated at the `'end'` event. + * @since v0.11.6 + */ + rawTrailers: string[]; + /** + * Calls `message.socket.setTimeout(msecs, callback)`. + * @since v0.5.9 + */ + setTimeout(msecs: number, callback?: () => void): this; + /** + * **Only valid for request obtained from {@link Server}.** + * + * The request method as a string. Read only. Examples: `'GET'`, `'DELETE'`. + * @since v0.1.1 + */ + method?: string | undefined; + /** + * **Only valid for request obtained from {@link Server}.** + * + * Request URL string. This contains only the URL that is present in the actual + * HTTP request. Take the following request: + * + * ```http + * GET /status?name=ryan HTTP/1.1 + * Accept: text/plain + * ``` + * + * To parse the URL into its parts: + * + * ```js + * new URL(request.url, `http://${request.getHeaders().host}`); + * ``` + * + * When `request.url` is `'/status?name=ryan'` and`request.getHeaders().host` is `'localhost:3000'`: + * + * ```console + * $ node + * > new URL(request.url, `http://${request.getHeaders().host}`) + * URL { + * href: 'http://localhost:3000/status?name=ryan', + * origin: 'http://localhost:3000', + * protocol: 'http:', + * username: '', + * password: '', + * host: 'localhost:3000', + * hostname: 'localhost', + * port: '3000', + * pathname: '/status', + * search: '?name=ryan', + * searchParams: URLSearchParams { 'name' => 'ryan' }, + * hash: '' + * } + * ``` + * @since v0.1.90 + */ + url?: string | undefined; + /** + * **Only valid for response obtained from {@link ClientRequest}.** + * + * The 3-digit HTTP response status code. E.G. `404`. + * @since v0.1.1 + */ + statusCode?: number | undefined; + /** + * **Only valid for response obtained from {@link ClientRequest}.** + * + * The HTTP response status message (reason phrase). E.G. `OK` or `Internal Server Error`. + * @since v0.11.10 + */ + statusMessage?: string | undefined; + /** + * Calls `destroy()` on the socket that received the `IncomingMessage`. If `error`is provided, an `'error'` event is emitted on the socket and `error` is passed + * as an argument to any listeners on the event. + * @since v0.3.0 + */ + destroy(error?: Error): this; + } + interface AgentOptions extends Partial { + /** + * Keep sockets around in a pool to be used by other requests in the future. Default = false + */ + keepAlive?: boolean | undefined; + /** + * When using HTTP KeepAlive, how often to send TCP KeepAlive packets over sockets being kept alive. Default = 1000. + * Only relevant if keepAlive is set to true. + */ + keepAliveMsecs?: number | undefined; + /** + * Maximum number of sockets to allow per host. Default for Node 0.10 is 5, default for Node 0.12 is Infinity + */ + maxSockets?: number | undefined; + /** + * Maximum number of sockets allowed for all hosts in total. Each request will use a new socket until the maximum is reached. Default: Infinity. + */ + maxTotalSockets?: number | undefined; + /** + * Maximum number of sockets to leave open in a free state. Only relevant if keepAlive is set to true. Default = 256. + */ + maxFreeSockets?: number | undefined; + /** + * Socket timeout in milliseconds. This will set the timeout after the socket is connected. + */ + timeout?: number | undefined; + /** + * Scheduling strategy to apply when picking the next free socket to use. + * @default `lifo` + */ + scheduling?: 'fifo' | 'lifo' | undefined; + } + /** + * An `Agent` is responsible for managing connection persistence + * and reuse for HTTP clients. It maintains a queue of pending requests + * for a given host and port, reusing a single socket connection for each + * until the queue is empty, at which time the socket is either destroyed + * or put into a pool where it is kept to be used again for requests to the + * same host and port. Whether it is destroyed or pooled depends on the`keepAlive` `option`. + * + * Pooled connections have TCP Keep-Alive enabled for them, but servers may + * still close idle connections, in which case they will be removed from the + * pool and a new connection will be made when a new HTTP request is made for + * that host and port. Servers may also refuse to allow multiple requests + * over the same connection, in which case the connection will have to be + * remade for every request and cannot be pooled. The `Agent` will still make + * the requests to that server, but each one will occur over a new connection. + * + * When a connection is closed by the client or the server, it is removed + * from the pool. Any unused sockets in the pool will be unrefed so as not + * to keep the Node.js process running when there are no outstanding requests. + * (see `socket.unref()`). + * + * It is good practice, to `destroy()` an `Agent` instance when it is no + * longer in use, because unused sockets consume OS resources. + * + * Sockets are removed from an agent when the socket emits either + * a `'close'` event or an `'agentRemove'` event. When intending to keep one + * HTTP request open for a long time without keeping it in the agent, something + * like the following may be done: + * + * ```js + * http.get(options, (res) => { + * // Do stuff + * }).on('socket', (socket) => { + * socket.emit('agentRemove'); + * }); + * ``` + * + * An agent may also be used for an individual request. By providing`{agent: false}` as an option to the `http.get()` or `http.request()`functions, a one-time use `Agent` with default options + * will be used + * for the client connection. + * + * `agent:false`: + * + * ```js + * http.get({ + * hostname: 'localhost', + * port: 80, + * path: '/', + * agent: false // Create a new agent just for this one request + * }, (res) => { + * // Do stuff with response + * }); + * ``` + * @since v0.3.4 + */ + class Agent { + /** + * By default set to 256\. For agents with `keepAlive` enabled, this + * sets the maximum number of sockets that will be left open in the free + * state. + * @since v0.11.7 + */ + maxFreeSockets: number; + /** + * By default set to `Infinity`. Determines how many concurrent sockets the agent + * can have open per origin. Origin is the returned value of `agent.getName()`. + * @since v0.3.6 + */ + maxSockets: number; + /** + * By default set to `Infinity`. Determines how many concurrent sockets the agent + * can have open. Unlike `maxSockets`, this parameter applies across all origins. + * @since v14.5.0, v12.19.0 + */ + maxTotalSockets: number; + /** + * An object which contains arrays of sockets currently awaiting use by + * the agent when `keepAlive` is enabled. Do not modify. + * + * Sockets in the `freeSockets` list will be automatically destroyed and + * removed from the array on `'timeout'`. + * @since v0.11.4 + */ + readonly freeSockets: NodeJS.ReadOnlyDict; + /** + * An object which contains arrays of sockets currently in use by the + * agent. Do not modify. + * @since v0.3.6 + */ + readonly sockets: NodeJS.ReadOnlyDict; + /** + * An object which contains queues of requests that have not yet been assigned to + * sockets. Do not modify. + * @since v0.5.9 + */ + readonly requests: NodeJS.ReadOnlyDict; + constructor(opts?: AgentOptions); + /** + * Destroy any sockets that are currently in use by the agent. + * + * It is usually not necessary to do this. However, if using an + * agent with `keepAlive` enabled, then it is best to explicitly shut down + * the agent when it is no longer needed. Otherwise, + * sockets might stay open for quite a long time before the server + * terminates them. + * @since v0.11.4 + */ + destroy(): void; + } + const METHODS: string[]; + const STATUS_CODES: { + [errorCode: number]: string | undefined; + [errorCode: string]: string | undefined; + }; + /** + * Returns a new instance of {@link Server}. + * + * The `requestListener` is a function which is automatically + * added to the `'request'` event. + * @since v0.1.13 + */ + function createServer< + Request extends typeof IncomingMessage = typeof IncomingMessage, + Response extends typeof ServerResponse = typeof ServerResponse, + >(requestListener?: RequestListener): Server; + function createServer< + Request extends typeof IncomingMessage = typeof IncomingMessage, + Response extends typeof ServerResponse = typeof ServerResponse, + >( + options: ServerOptions, + requestListener?: RequestListener, + ): Server; + // although RequestOptions are passed as ClientRequestArgs to ClientRequest directly, + // create interface RequestOptions would make the naming more clear to developers + interface RequestOptions extends ClientRequestArgs {} + /** + * `options` in `socket.connect()` are also supported. + * + * Node.js maintains several connections per server to make HTTP requests. + * This function allows one to transparently issue requests. + * + * `url` can be a string or a `URL` object. If `url` is a + * string, it is automatically parsed with `new URL()`. If it is a `URL` object, it will be automatically converted to an ordinary `options` object. + * + * If both `url` and `options` are specified, the objects are merged, with the`options` properties taking precedence. + * + * The optional `callback` parameter will be added as a one-time listener for + * the `'response'` event. + * + * `http.request()` returns an instance of the {@link ClientRequest} class. The `ClientRequest` instance is a writable stream. If one needs to + * upload a file with a POST request, then write to the `ClientRequest` object. + * + * ```js + * const http = require('http'); + * + * const postData = JSON.stringify({ + * 'msg': 'Hello World!' + * }); + * + * const options = { + * hostname: 'www.google.com', + * port: 80, + * path: '/upload', + * method: 'POST', + * headers: { + * 'Content-Type': 'application/json', + * 'Content-Length': Buffer.byteLength(postData) + * } + * }; + * + * const req = http.request(options, (res) => { + * console.log(`STATUS: ${res.statusCode}`); + * console.log(`HEADERS: ${JSON.stringify(res.headers)}`); + * res.setEncoding('utf8'); + * res.on('data', (chunk) => { + * console.log(`BODY: ${chunk}`); + * }); + * res.on('end', () => { + * console.log('No more data in response.'); + * }); + * }); + * + * req.on('error', (e) => { + * console.error(`problem with request: ${e.message}`); + * }); + * + * // Write data to request body + * req.write(postData); + * req.end(); + * ``` + * + * In the example `req.end()` was called. With `http.request()` one + * must always call `req.end()` to signify the end of the request - + * even if there is no data being written to the request body. + * + * If any error is encountered during the request (be that with DNS resolution, + * TCP level errors, or actual HTTP parse errors) an `'error'` event is emitted + * on the returned request object. As with all `'error'` events, if no listeners + * are registered the error will be thrown. + * + * There are a few special headers that should be noted. + * + * * Sending a 'Connection: keep-alive' will notify Node.js that the connection to + * the server should be persisted until the next request. + * * Sending a 'Content-Length' header will disable the default chunked encoding. + * * Sending an 'Expect' header will immediately send the request headers. + * Usually, when sending 'Expect: 100-continue', both a timeout and a listener + * for the `'continue'` event should be set. See RFC 2616 Section 8.2.3 for more + * information. + * * Sending an Authorization header will override using the `auth` option + * to compute basic authentication. + * + * Example using a `URL` as `options`: + * + * ```js + * const options = new URL('http://abc:xyz@example.com'); + * + * const req = http.request(options, (res) => { + * // ... + * }); + * ``` + * + * In a successful request, the following events will be emitted in the following + * order: + * + * * `'socket'` + * * `'response'` + * * `'data'` any number of times, on the `res` object + * (`'data'` will not be emitted at all if the response body is empty, for + * instance, in most redirects) + * * `'end'` on the `res` object + * * `'close'` + * + * In the case of a connection error, the following events will be emitted: + * + * * `'socket'` + * * `'error'` + * * `'close'` + * + * In the case of a premature connection close before the response is received, + * the following events will be emitted in the following order: + * + * * `'socket'` + * * `'error'` with an error with message `'Error: socket hang up'` and code`'ECONNRESET'` + * * `'close'` + * + * In the case of a premature connection close after the response is received, + * the following events will be emitted in the following order: + * + * * `'socket'` + * * `'response'` + * * `'data'` any number of times, on the `res` object + * * (connection closed here) + * * `'aborted'` on the `res` object + * * `'error'` on the `res` object with an error with message`'Error: aborted'` and code `'ECONNRESET'`. + * * `'close'` + * * `'close'` on the `res` object + * + * If `req.destroy()` is called before a socket is assigned, the following + * events will be emitted in the following order: + * + * * (`req.destroy()` called here) + * * `'error'` with an error with message `'Error: socket hang up'` and code`'ECONNRESET'` + * * `'close'` + * + * If `req.destroy()` is called before the connection succeeds, the following + * events will be emitted in the following order: + * + * * `'socket'` + * * (`req.destroy()` called here) + * * `'error'` with an error with message `'Error: socket hang up'` and code`'ECONNRESET'` + * * `'close'` + * + * If `req.destroy()` is called after the response is received, the following + * events will be emitted in the following order: + * + * * `'socket'` + * * `'response'` + * * `'data'` any number of times, on the `res` object + * * (`req.destroy()` called here) + * * `'aborted'` on the `res` object + * * `'error'` on the `res` object with an error with message`'Error: aborted'` and code `'ECONNRESET'`. + * * `'close'` + * * `'close'` on the `res` object + * + * If `req.abort()` is called before a socket is assigned, the following + * events will be emitted in the following order: + * + * * (`req.abort()` called here) + * * `'abort'` + * * `'close'` + * + * If `req.abort()` is called before the connection succeeds, the following + * events will be emitted in the following order: + * + * * `'socket'` + * * (`req.abort()` called here) + * * `'abort'` + * * `'error'` with an error with message `'Error: socket hang up'` and code`'ECONNRESET'` + * * `'close'` + * + * If `req.abort()` is called after the response is received, the following + * events will be emitted in the following order: + * + * * `'socket'` + * * `'response'` + * * `'data'` any number of times, on the `res` object + * * (`req.abort()` called here) + * * `'abort'` + * * `'aborted'` on the `res` object + * * `'error'` on the `res` object with an error with message`'Error: aborted'` and code `'ECONNRESET'`. + * * `'close'` + * * `'close'` on the `res` object + * + * Setting the `timeout` option or using the `setTimeout()` function will + * not abort the request or do anything besides add a `'timeout'` event. + * + * Passing an `AbortSignal` and then calling `abort` on the corresponding`AbortController` will behave the same way as calling `.destroy()` on the + * request itself. + * @since v0.3.6 + */ + function request(options: RequestOptions | string | URL, callback?: (res: IncomingMessage) => void): ClientRequest; + function request( + url: string | URL, + options: RequestOptions, + callback?: (res: IncomingMessage) => void, + ): ClientRequest; + /** + * Since most requests are GET requests without bodies, Node.js provides this + * convenience method. The only difference between this method and {@link request} is that it sets the method to GET and calls `req.end()`automatically. The callback must take care to consume the + * response + * data for reasons stated in {@link ClientRequest} section. + * + * The `callback` is invoked with a single argument that is an instance of {@link IncomingMessage}. + * + * JSON fetching example: + * + * ```js + * http.get('http://localhost:8000/', (res) => { + * const { statusCode } = res; + * const contentType = res.headers['content-type']; + * + * let error; + * // Any 2xx status code signals a successful response but + * // here we're only checking for 200. + * if (statusCode !== 200) { + * error = new Error('Request Failed.\n' + + * `Status Code: ${statusCode}`); + * } else if (!/^application\/json/.test(contentType)) { + * error = new Error('Invalid content-type.\n' + + * `Expected application/json but received ${contentType}`); + * } + * if (error) { + * console.error(error.message); + * // Consume response data to free up memory + * res.resume(); + * return; + * } + * + * res.setEncoding('utf8'); + * let rawData = ''; + * res.on('data', (chunk) => { rawData += chunk; }); + * res.on('end', () => { + * try { + * const parsedData = JSON.parse(rawData); + * console.log(parsedData); + * } catch (e) { + * console.error(e.message); + * } + * }); + * }).on('error', (e) => { + * console.error(`Got error: ${e.message}`); + * }); + * + * // Create a local server to receive data from + * const server = http.createServer((req, res) => { + * res.writeHead(200, { 'Content-Type': 'application/json' }); + * res.end(JSON.stringify({ + * data: 'Hello World!' + * })); + * }); + * + * server.listen(8000); + * ``` + * @since v0.3.6 + * @param options Accepts the same `options` as {@link request}, with the `method` always set to `GET`. Properties that are inherited from the prototype are ignored. + */ + function get(options: RequestOptions | string | URL, callback?: (res: IncomingMessage) => void): ClientRequest; + function get(url: string | URL, options: RequestOptions, callback?: (res: IncomingMessage) => void): ClientRequest; + + /** + * Performs the low-level validations on the provided name that are done when `res.setHeader(name, value)` is called. + * Passing illegal value as name will result in a TypeError being thrown, identified by `code: 'ERR_INVALID_HTTP_TOKEN'`. + * @param name Header name + * @since v14.3.0 + */ + function validateHeaderName(name: string): void; + /** + * Performs the low-level validations on the provided value that are done when `res.setHeader(name, value)` is called. + * Passing illegal value as value will result in a TypeError being thrown. + * - Undefined value error is identified by `code: 'ERR_HTTP_INVALID_HEADER_VALUE'`. + * - Invalid value character error is identified by `code: 'ERR_INVALID_CHAR'`. + * @param name Header name + * @param value Header value + * @since v14.3.0 + */ + function validateHeaderValue(name: string, value: string): void; + + /** + * Set the maximum number of idle HTTP parsers. Default: 1000. + * @param count + * @since v18.8.0, v16.18.0 + */ + function setMaxIdleHTTPParsers(count: number): void; + + let globalAgent: Agent; + /** + * Read-only property specifying the maximum allowed size of HTTP headers in bytes. + * Defaults to 16KB. Configurable using the `--max-http-header-size` CLI option. + */ + const maxHeaderSize: number; +} +declare module 'node:http' { + export * from 'http'; +} diff --git a/node_modules/@types/node/http2.d.ts b/node_modules/@types/node/http2.d.ts new file mode 100644 index 0000000..0e36826 --- /dev/null +++ b/node_modules/@types/node/http2.d.ts @@ -0,0 +1,2134 @@ +/** + * The `http2` module provides an implementation of the [HTTP/2](https://tools.ietf.org/html/rfc7540) protocol. It + * can be accessed using: + * + * ```js + * const http2 = require('http2'); + * ``` + * @since v8.4.0 + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/http2.js) + */ +declare module 'http2' { + import EventEmitter = require('node:events'); + import * as fs from 'node:fs'; + import * as net from 'node:net'; + import * as stream from 'node:stream'; + import * as tls from 'node:tls'; + import * as url from 'node:url'; + import { IncomingHttpHeaders as Http1IncomingHttpHeaders, OutgoingHttpHeaders, IncomingMessage, ServerResponse } from 'node:http'; + export { OutgoingHttpHeaders } from 'node:http'; + export interface IncomingHttpStatusHeader { + ':status'?: number | undefined; + } + export interface IncomingHttpHeaders extends Http1IncomingHttpHeaders { + ':path'?: string | undefined; + ':method'?: string | undefined; + ':authority'?: string | undefined; + ':scheme'?: string | undefined; + } + // Http2Stream + export interface StreamPriorityOptions { + exclusive?: boolean | undefined; + parent?: number | undefined; + weight?: number | undefined; + silent?: boolean | undefined; + } + export interface StreamState { + localWindowSize?: number | undefined; + state?: number | undefined; + localClose?: number | undefined; + remoteClose?: number | undefined; + sumDependencyWeight?: number | undefined; + weight?: number | undefined; + } + export interface ServerStreamResponseOptions { + endStream?: boolean | undefined; + waitForTrailers?: boolean | undefined; + } + export interface StatOptions { + offset: number; + length: number; + } + export interface ServerStreamFileResponseOptions { + statCheck?(stats: fs.Stats, headers: OutgoingHttpHeaders, statOptions: StatOptions): void | boolean; + waitForTrailers?: boolean | undefined; + offset?: number | undefined; + length?: number | undefined; + } + export interface ServerStreamFileResponseOptionsWithError extends ServerStreamFileResponseOptions { + onError?(err: NodeJS.ErrnoException): void; + } + export interface Http2Stream extends stream.Duplex { + /** + * Set to `true` if the `Http2Stream` instance was aborted abnormally. When set, + * the `'aborted'` event will have been emitted. + * @since v8.4.0 + */ + readonly aborted: boolean; + /** + * This property shows the number of characters currently buffered to be written. + * See `net.Socket.bufferSize` for details. + * @since v11.2.0, v10.16.0 + */ + readonly bufferSize: number; + /** + * Set to `true` if the `Http2Stream` instance has been closed. + * @since v9.4.0 + */ + readonly closed: boolean; + /** + * Set to `true` if the `Http2Stream` instance has been destroyed and is no longer + * usable. + * @since v8.4.0 + */ + readonly destroyed: boolean; + /** + * Set to `true` if the `END_STREAM` flag was set in the request or response + * HEADERS frame received, indicating that no additional data should be received + * and the readable side of the `Http2Stream` will be closed. + * @since v10.11.0 + */ + readonly endAfterHeaders: boolean; + /** + * The numeric stream identifier of this `Http2Stream` instance. Set to `undefined`if the stream identifier has not yet been assigned. + * @since v8.4.0 + */ + readonly id?: number | undefined; + /** + * Set to `true` if the `Http2Stream` instance has not yet been assigned a + * numeric stream identifier. + * @since v9.4.0 + */ + readonly pending: boolean; + /** + * Set to the `RST_STREAM` `error code` reported when the `Http2Stream` is + * destroyed after either receiving an `RST_STREAM` frame from the connected peer, + * calling `http2stream.close()`, or `http2stream.destroy()`. Will be`undefined` if the `Http2Stream` has not been closed. + * @since v8.4.0 + */ + readonly rstCode: number; + /** + * An object containing the outbound headers sent for this `Http2Stream`. + * @since v9.5.0 + */ + readonly sentHeaders: OutgoingHttpHeaders; + /** + * An array of objects containing the outbound informational (additional) headers + * sent for this `Http2Stream`. + * @since v9.5.0 + */ + readonly sentInfoHeaders?: OutgoingHttpHeaders[] | undefined; + /** + * An object containing the outbound trailers sent for this `HttpStream`. + * @since v9.5.0 + */ + readonly sentTrailers?: OutgoingHttpHeaders | undefined; + /** + * A reference to the `Http2Session` instance that owns this `Http2Stream`. The + * value will be `undefined` after the `Http2Stream` instance is destroyed. + * @since v8.4.0 + */ + readonly session: Http2Session; + /** + * Provides miscellaneous information about the current state of the`Http2Stream`. + * + * A current state of this `Http2Stream`. + * @since v8.4.0 + */ + readonly state: StreamState; + /** + * Closes the `Http2Stream` instance by sending an `RST_STREAM` frame to the + * connected HTTP/2 peer. + * @since v8.4.0 + * @param [code=http2.constants.NGHTTP2_NO_ERROR] Unsigned 32-bit integer identifying the error code. + * @param callback An optional function registered to listen for the `'close'` event. + */ + close(code?: number, callback?: () => void): void; + /** + * Updates the priority for this `Http2Stream` instance. + * @since v8.4.0 + */ + priority(options: StreamPriorityOptions): void; + /** + * ```js + * const http2 = require('http2'); + * const client = http2.connect('http://example.org:8000'); + * const { NGHTTP2_CANCEL } = http2.constants; + * const req = client.request({ ':path': '/' }); + * + * // Cancel the stream if there's no activity after 5 seconds + * req.setTimeout(5000, () => req.close(NGHTTP2_CANCEL)); + * ``` + * @since v8.4.0 + */ + setTimeout(msecs: number, callback?: () => void): void; + /** + * Sends a trailing `HEADERS` frame to the connected HTTP/2 peer. This method + * will cause the `Http2Stream` to be immediately closed and must only be + * called after the `'wantTrailers'` event has been emitted. When sending a + * request or sending a response, the `options.waitForTrailers` option must be set + * in order to keep the `Http2Stream` open after the final `DATA` frame so that + * trailers can be sent. + * + * ```js + * const http2 = require('http2'); + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * stream.respond(undefined, { waitForTrailers: true }); + * stream.on('wantTrailers', () => { + * stream.sendTrailers({ xyz: 'abc' }); + * }); + * stream.end('Hello World'); + * }); + * ``` + * + * The HTTP/1 specification forbids trailers from containing HTTP/2 pseudo-header + * fields (e.g. `':method'`, `':path'`, etc). + * @since v10.0.0 + */ + sendTrailers(headers: OutgoingHttpHeaders): void; + addListener(event: 'aborted', listener: () => void): this; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'data', listener: (chunk: Buffer | string) => void): this; + addListener(event: 'drain', listener: () => void): this; + addListener(event: 'end', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'finish', listener: () => void): this; + addListener(event: 'frameError', listener: (frameType: number, errorCode: number) => void): this; + addListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + addListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + addListener(event: 'streamClosed', listener: (code: number) => void): this; + addListener(event: 'timeout', listener: () => void): this; + addListener(event: 'trailers', listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; + addListener(event: 'wantTrailers', listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'aborted'): boolean; + emit(event: 'close'): boolean; + emit(event: 'data', chunk: Buffer | string): boolean; + emit(event: 'drain'): boolean; + emit(event: 'end'): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'finish'): boolean; + emit(event: 'frameError', frameType: number, errorCode: number): boolean; + emit(event: 'pipe', src: stream.Readable): boolean; + emit(event: 'unpipe', src: stream.Readable): boolean; + emit(event: 'streamClosed', code: number): boolean; + emit(event: 'timeout'): boolean; + emit(event: 'trailers', trailers: IncomingHttpHeaders, flags: number): boolean; + emit(event: 'wantTrailers'): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'aborted', listener: () => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'data', listener: (chunk: Buffer | string) => void): this; + on(event: 'drain', listener: () => void): this; + on(event: 'end', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'finish', listener: () => void): this; + on(event: 'frameError', listener: (frameType: number, errorCode: number) => void): this; + on(event: 'pipe', listener: (src: stream.Readable) => void): this; + on(event: 'unpipe', listener: (src: stream.Readable) => void): this; + on(event: 'streamClosed', listener: (code: number) => void): this; + on(event: 'timeout', listener: () => void): this; + on(event: 'trailers', listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; + on(event: 'wantTrailers', listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'aborted', listener: () => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'data', listener: (chunk: Buffer | string) => void): this; + once(event: 'drain', listener: () => void): this; + once(event: 'end', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'finish', listener: () => void): this; + once(event: 'frameError', listener: (frameType: number, errorCode: number) => void): this; + once(event: 'pipe', listener: (src: stream.Readable) => void): this; + once(event: 'unpipe', listener: (src: stream.Readable) => void): this; + once(event: 'streamClosed', listener: (code: number) => void): this; + once(event: 'timeout', listener: () => void): this; + once(event: 'trailers', listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; + once(event: 'wantTrailers', listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'aborted', listener: () => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'data', listener: (chunk: Buffer | string) => void): this; + prependListener(event: 'drain', listener: () => void): this; + prependListener(event: 'end', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'finish', listener: () => void): this; + prependListener(event: 'frameError', listener: (frameType: number, errorCode: number) => void): this; + prependListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + prependListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + prependListener(event: 'streamClosed', listener: (code: number) => void): this; + prependListener(event: 'timeout', listener: () => void): this; + prependListener(event: 'trailers', listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; + prependListener(event: 'wantTrailers', listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'aborted', listener: () => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'data', listener: (chunk: Buffer | string) => void): this; + prependOnceListener(event: 'drain', listener: () => void): this; + prependOnceListener(event: 'end', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'finish', listener: () => void): this; + prependOnceListener(event: 'frameError', listener: (frameType: number, errorCode: number) => void): this; + prependOnceListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + prependOnceListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + prependOnceListener(event: 'streamClosed', listener: (code: number) => void): this; + prependOnceListener(event: 'timeout', listener: () => void): this; + prependOnceListener(event: 'trailers', listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; + prependOnceListener(event: 'wantTrailers', listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + export interface ClientHttp2Stream extends Http2Stream { + addListener(event: 'continue', listener: () => {}): this; + addListener(event: 'headers', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + addListener(event: 'push', listener: (headers: IncomingHttpHeaders, flags: number) => void): this; + addListener(event: 'response', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'continue'): boolean; + emit(event: 'headers', headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean; + emit(event: 'push', headers: IncomingHttpHeaders, flags: number): boolean; + emit(event: 'response', headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'continue', listener: () => {}): this; + on(event: 'headers', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + on(event: 'push', listener: (headers: IncomingHttpHeaders, flags: number) => void): this; + on(event: 'response', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'continue', listener: () => {}): this; + once(event: 'headers', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + once(event: 'push', listener: (headers: IncomingHttpHeaders, flags: number) => void): this; + once(event: 'response', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'continue', listener: () => {}): this; + prependListener(event: 'headers', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependListener(event: 'push', listener: (headers: IncomingHttpHeaders, flags: number) => void): this; + prependListener(event: 'response', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'continue', listener: () => {}): this; + prependOnceListener(event: 'headers', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependOnceListener(event: 'push', listener: (headers: IncomingHttpHeaders, flags: number) => void): this; + prependOnceListener(event: 'response', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + export interface ServerHttp2Stream extends Http2Stream { + /** + * True if headers were sent, false otherwise (read-only). + * @since v8.4.0 + */ + readonly headersSent: boolean; + /** + * Read-only property mapped to the `SETTINGS_ENABLE_PUSH` flag of the remote + * client's most recent `SETTINGS` frame. Will be `true` if the remote peer + * accepts push streams, `false` otherwise. Settings are the same for every`Http2Stream` in the same `Http2Session`. + * @since v8.4.0 + */ + readonly pushAllowed: boolean; + /** + * Sends an additional informational `HEADERS` frame to the connected HTTP/2 peer. + * @since v8.4.0 + */ + additionalHeaders(headers: OutgoingHttpHeaders): void; + /** + * Initiates a push stream. The callback is invoked with the new `Http2Stream`instance created for the push stream passed as the second argument, or an`Error` passed as the first argument. + * + * ```js + * const http2 = require('http2'); + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * stream.respond({ ':status': 200 }); + * stream.pushStream({ ':path': '/' }, (err, pushStream, headers) => { + * if (err) throw err; + * pushStream.respond({ ':status': 200 }); + * pushStream.end('some pushed data'); + * }); + * stream.end('some data'); + * }); + * ``` + * + * Setting the weight of a push stream is not allowed in the `HEADERS` frame. Pass + * a `weight` value to `http2stream.priority` with the `silent` option set to`true` to enable server-side bandwidth balancing between concurrent streams. + * + * Calling `http2stream.pushStream()` from within a pushed stream is not permitted + * and will throw an error. + * @since v8.4.0 + * @param callback Callback that is called once the push stream has been initiated. + */ + pushStream(headers: OutgoingHttpHeaders, callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void): void; + pushStream(headers: OutgoingHttpHeaders, options?: StreamPriorityOptions, callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void): void; + /** + * ```js + * const http2 = require('http2'); + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * stream.respond({ ':status': 200 }); + * stream.end('some data'); + * }); + * ``` + * + * When the `options.waitForTrailers` option is set, the `'wantTrailers'` event + * will be emitted immediately after queuing the last chunk of payload data to be + * sent. The `http2stream.sendTrailers()` method can then be used to sent trailing + * header fields to the peer. + * + * When `options.waitForTrailers` is set, the `Http2Stream` will not automatically + * close when the final `DATA` frame is transmitted. User code must call either`http2stream.sendTrailers()` or `http2stream.close()` to close the`Http2Stream`. + * + * ```js + * const http2 = require('http2'); + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * stream.respond({ ':status': 200 }, { waitForTrailers: true }); + * stream.on('wantTrailers', () => { + * stream.sendTrailers({ ABC: 'some value to send' }); + * }); + * stream.end('some data'); + * }); + * ``` + * @since v8.4.0 + */ + respond(headers?: OutgoingHttpHeaders, options?: ServerStreamResponseOptions): void; + /** + * Initiates a response whose data is read from the given file descriptor. No + * validation is performed on the given file descriptor. If an error occurs while + * attempting to read data using the file descriptor, the `Http2Stream` will be + * closed using an `RST_STREAM` frame using the standard `INTERNAL_ERROR` code. + * + * When used, the `Http2Stream` object's `Duplex` interface will be closed + * automatically. + * + * ```js + * const http2 = require('http2'); + * const fs = require('fs'); + * + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * const fd = fs.openSync('/some/file', 'r'); + * + * const stat = fs.fstatSync(fd); + * const headers = { + * 'content-length': stat.size, + * 'last-modified': stat.mtime.toUTCString(), + * 'content-type': 'text/plain; charset=utf-8' + * }; + * stream.respondWithFD(fd, headers); + * stream.on('close', () => fs.closeSync(fd)); + * }); + * ``` + * + * The optional `options.statCheck` function may be specified to give user code + * an opportunity to set additional content headers based on the `fs.Stat` details + * of the given fd. If the `statCheck` function is provided, the`http2stream.respondWithFD()` method will perform an `fs.fstat()` call to + * collect details on the provided file descriptor. + * + * The `offset` and `length` options may be used to limit the response to a + * specific range subset. This can be used, for instance, to support HTTP Range + * requests. + * + * The file descriptor or `FileHandle` is not closed when the stream is closed, + * so it will need to be closed manually once it is no longer needed. + * Using the same file descriptor concurrently for multiple streams + * is not supported and may result in data loss. Re-using a file descriptor + * after a stream has finished is supported. + * + * When the `options.waitForTrailers` option is set, the `'wantTrailers'` event + * will be emitted immediately after queuing the last chunk of payload data to be + * sent. The `http2stream.sendTrailers()` method can then be used to sent trailing + * header fields to the peer. + * + * When `options.waitForTrailers` is set, the `Http2Stream` will not automatically + * close when the final `DATA` frame is transmitted. User code _must_ call either`http2stream.sendTrailers()` or `http2stream.close()` to close the`Http2Stream`. + * + * ```js + * const http2 = require('http2'); + * const fs = require('fs'); + * + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * const fd = fs.openSync('/some/file', 'r'); + * + * const stat = fs.fstatSync(fd); + * const headers = { + * 'content-length': stat.size, + * 'last-modified': stat.mtime.toUTCString(), + * 'content-type': 'text/plain; charset=utf-8' + * }; + * stream.respondWithFD(fd, headers, { waitForTrailers: true }); + * stream.on('wantTrailers', () => { + * stream.sendTrailers({ ABC: 'some value to send' }); + * }); + * + * stream.on('close', () => fs.closeSync(fd)); + * }); + * ``` + * @since v8.4.0 + * @param fd A readable file descriptor. + */ + respondWithFD(fd: number | fs.promises.FileHandle, headers?: OutgoingHttpHeaders, options?: ServerStreamFileResponseOptions): void; + /** + * Sends a regular file as the response. The `path` must specify a regular file + * or an `'error'` event will be emitted on the `Http2Stream` object. + * + * When used, the `Http2Stream` object's `Duplex` interface will be closed + * automatically. + * + * The optional `options.statCheck` function may be specified to give user code + * an opportunity to set additional content headers based on the `fs.Stat` details + * of the given file: + * + * If an error occurs while attempting to read the file data, the `Http2Stream`will be closed using an `RST_STREAM` frame using the standard `INTERNAL_ERROR`code. If the `onError` callback is + * defined, then it will be called. Otherwise + * the stream will be destroyed. + * + * Example using a file path: + * + * ```js + * const http2 = require('http2'); + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * function statCheck(stat, headers) { + * headers['last-modified'] = stat.mtime.toUTCString(); + * } + * + * function onError(err) { + * // stream.respond() can throw if the stream has been destroyed by + * // the other side. + * try { + * if (err.code === 'ENOENT') { + * stream.respond({ ':status': 404 }); + * } else { + * stream.respond({ ':status': 500 }); + * } + * } catch (err) { + * // Perform actual error handling. + * console.log(err); + * } + * stream.end(); + * } + * + * stream.respondWithFile('/some/file', + * { 'content-type': 'text/plain; charset=utf-8' }, + * { statCheck, onError }); + * }); + * ``` + * + * The `options.statCheck` function may also be used to cancel the send operation + * by returning `false`. For instance, a conditional request may check the stat + * results to determine if the file has been modified to return an appropriate`304` response: + * + * ```js + * const http2 = require('http2'); + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * function statCheck(stat, headers) { + * // Check the stat here... + * stream.respond({ ':status': 304 }); + * return false; // Cancel the send operation + * } + * stream.respondWithFile('/some/file', + * { 'content-type': 'text/plain; charset=utf-8' }, + * { statCheck }); + * }); + * ``` + * + * The `content-length` header field will be automatically set. + * + * The `offset` and `length` options may be used to limit the response to a + * specific range subset. This can be used, for instance, to support HTTP Range + * requests. + * + * The `options.onError` function may also be used to handle all the errors + * that could happen before the delivery of the file is initiated. The + * default behavior is to destroy the stream. + * + * When the `options.waitForTrailers` option is set, the `'wantTrailers'` event + * will be emitted immediately after queuing the last chunk of payload data to be + * sent. The `http2stream.sendTrailers()` method can then be used to sent trailing + * header fields to the peer. + * + * When `options.waitForTrailers` is set, the `Http2Stream` will not automatically + * close when the final `DATA` frame is transmitted. User code must call either`http2stream.sendTrailers()` or `http2stream.close()` to close the`Http2Stream`. + * + * ```js + * const http2 = require('http2'); + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * stream.respondWithFile('/some/file', + * { 'content-type': 'text/plain; charset=utf-8' }, + * { waitForTrailers: true }); + * stream.on('wantTrailers', () => { + * stream.sendTrailers({ ABC: 'some value to send' }); + * }); + * }); + * ``` + * @since v8.4.0 + */ + respondWithFile(path: string, headers?: OutgoingHttpHeaders, options?: ServerStreamFileResponseOptionsWithError): void; + } + // Http2Session + export interface Settings { + headerTableSize?: number | undefined; + enablePush?: boolean | undefined; + initialWindowSize?: number | undefined; + maxFrameSize?: number | undefined; + maxConcurrentStreams?: number | undefined; + maxHeaderListSize?: number | undefined; + enableConnectProtocol?: boolean | undefined; + } + export interface ClientSessionRequestOptions { + endStream?: boolean | undefined; + exclusive?: boolean | undefined; + parent?: number | undefined; + weight?: number | undefined; + waitForTrailers?: boolean | undefined; + signal?: AbortSignal | undefined; + } + export interface SessionState { + effectiveLocalWindowSize?: number | undefined; + effectiveRecvDataLength?: number | undefined; + nextStreamID?: number | undefined; + localWindowSize?: number | undefined; + lastProcStreamID?: number | undefined; + remoteWindowSize?: number | undefined; + outboundQueueSize?: number | undefined; + deflateDynamicTableSize?: number | undefined; + inflateDynamicTableSize?: number | undefined; + } + export interface Http2Session extends EventEmitter { + /** + * Value will be `undefined` if the `Http2Session` is not yet connected to a + * socket, `h2c` if the `Http2Session` is not connected to a `TLSSocket`, or + * will return the value of the connected `TLSSocket`'s own `alpnProtocol`property. + * @since v9.4.0 + */ + readonly alpnProtocol?: string | undefined; + /** + * Will be `true` if this `Http2Session` instance has been closed, otherwise`false`. + * @since v9.4.0 + */ + readonly closed: boolean; + /** + * Will be `true` if this `Http2Session` instance is still connecting, will be set + * to `false` before emitting `connect` event and/or calling the `http2.connect`callback. + * @since v10.0.0 + */ + readonly connecting: boolean; + /** + * Will be `true` if this `Http2Session` instance has been destroyed and must no + * longer be used, otherwise `false`. + * @since v8.4.0 + */ + readonly destroyed: boolean; + /** + * Value is `undefined` if the `Http2Session` session socket has not yet been + * connected, `true` if the `Http2Session` is connected with a `TLSSocket`, + * and `false` if the `Http2Session` is connected to any other kind of socket + * or stream. + * @since v9.4.0 + */ + readonly encrypted?: boolean | undefined; + /** + * A prototype-less object describing the current local settings of this`Http2Session`. The local settings are local to _this_`Http2Session` instance. + * @since v8.4.0 + */ + readonly localSettings: Settings; + /** + * If the `Http2Session` is connected to a `TLSSocket`, the `originSet` property + * will return an `Array` of origins for which the `Http2Session` may be + * considered authoritative. + * + * The `originSet` property is only available when using a secure TLS connection. + * @since v9.4.0 + */ + readonly originSet?: string[] | undefined; + /** + * Indicates whether the `Http2Session` is currently waiting for acknowledgment of + * a sent `SETTINGS` frame. Will be `true` after calling the`http2session.settings()` method. Will be `false` once all sent `SETTINGS`frames have been acknowledged. + * @since v8.4.0 + */ + readonly pendingSettingsAck: boolean; + /** + * A prototype-less object describing the current remote settings of this`Http2Session`. The remote settings are set by the _connected_ HTTP/2 peer. + * @since v8.4.0 + */ + readonly remoteSettings: Settings; + /** + * Returns a `Proxy` object that acts as a `net.Socket` (or `tls.TLSSocket`) but + * limits available methods to ones safe to use with HTTP/2. + * + * `destroy`, `emit`, `end`, `pause`, `read`, `resume`, and `write` will throw + * an error with code `ERR_HTTP2_NO_SOCKET_MANIPULATION`. See `Http2Session and Sockets` for more information. + * + * `setTimeout` method will be called on this `Http2Session`. + * + * All other interactions will be routed directly to the socket. + * @since v8.4.0 + */ + readonly socket: net.Socket | tls.TLSSocket; + /** + * Provides miscellaneous information about the current state of the`Http2Session`. + * + * An object describing the current status of this `Http2Session`. + * @since v8.4.0 + */ + readonly state: SessionState; + /** + * The `http2session.type` will be equal to`http2.constants.NGHTTP2_SESSION_SERVER` if this `Http2Session` instance is a + * server, and `http2.constants.NGHTTP2_SESSION_CLIENT` if the instance is a + * client. + * @since v8.4.0 + */ + readonly type: number; + /** + * Gracefully closes the `Http2Session`, allowing any existing streams to + * complete on their own and preventing new `Http2Stream` instances from being + * created. Once closed, `http2session.destroy()`_might_ be called if there + * are no open `Http2Stream` instances. + * + * If specified, the `callback` function is registered as a handler for the`'close'` event. + * @since v9.4.0 + */ + close(callback?: () => void): void; + /** + * Immediately terminates the `Http2Session` and the associated `net.Socket` or`tls.TLSSocket`. + * + * Once destroyed, the `Http2Session` will emit the `'close'` event. If `error`is not undefined, an `'error'` event will be emitted immediately before the`'close'` event. + * + * If there are any remaining open `Http2Streams` associated with the`Http2Session`, those will also be destroyed. + * @since v8.4.0 + * @param error An `Error` object if the `Http2Session` is being destroyed due to an error. + * @param code The HTTP/2 error code to send in the final `GOAWAY` frame. If unspecified, and `error` is not undefined, the default is `INTERNAL_ERROR`, otherwise defaults to `NO_ERROR`. + */ + destroy(error?: Error, code?: number): void; + /** + * Transmits a `GOAWAY` frame to the connected peer _without_ shutting down the`Http2Session`. + * @since v9.4.0 + * @param code An HTTP/2 error code + * @param lastStreamID The numeric ID of the last processed `Http2Stream` + * @param opaqueData A `TypedArray` or `DataView` instance containing additional data to be carried within the `GOAWAY` frame. + */ + goaway(code?: number, lastStreamID?: number, opaqueData?: NodeJS.ArrayBufferView): void; + /** + * Sends a `PING` frame to the connected HTTP/2 peer. A `callback` function must + * be provided. The method will return `true` if the `PING` was sent, `false`otherwise. + * + * The maximum number of outstanding (unacknowledged) pings is determined by the`maxOutstandingPings` configuration option. The default maximum is 10. + * + * If provided, the `payload` must be a `Buffer`, `TypedArray`, or `DataView`containing 8 bytes of data that will be transmitted with the `PING` and + * returned with the ping acknowledgment. + * + * The callback will be invoked with three arguments: an error argument that will + * be `null` if the `PING` was successfully acknowledged, a `duration` argument + * that reports the number of milliseconds elapsed since the ping was sent and the + * acknowledgment was received, and a `Buffer` containing the 8-byte `PING`payload. + * + * ```js + * session.ping(Buffer.from('abcdefgh'), (err, duration, payload) => { + * if (!err) { + * console.log(`Ping acknowledged in ${duration} milliseconds`); + * console.log(`With payload '${payload.toString()}'`); + * } + * }); + * ``` + * + * If the `payload` argument is not specified, the default payload will be the + * 64-bit timestamp (little endian) marking the start of the `PING` duration. + * @since v8.9.3 + * @param payload Optional ping payload. + */ + ping(callback: (err: Error | null, duration: number, payload: Buffer) => void): boolean; + ping(payload: NodeJS.ArrayBufferView, callback: (err: Error | null, duration: number, payload: Buffer) => void): boolean; + /** + * Calls `ref()` on this `Http2Session`instance's underlying `net.Socket`. + * @since v9.4.0 + */ + ref(): void; + /** + * Sets the local endpoint's window size. + * The `windowSize` is the total window size to set, not + * the delta. + * + * ```js + * const http2 = require('http2'); + * + * const server = http2.createServer(); + * const expectedWindowSize = 2 ** 20; + * server.on('connect', (session) => { + * + * // Set local window size to be 2 ** 20 + * session.setLocalWindowSize(expectedWindowSize); + * }); + * ``` + * @since v15.3.0, v14.18.0 + */ + setLocalWindowSize(windowSize: number): void; + /** + * Used to set a callback function that is called when there is no activity on + * the `Http2Session` after `msecs` milliseconds. The given `callback` is + * registered as a listener on the `'timeout'` event. + * @since v8.4.0 + */ + setTimeout(msecs: number, callback?: () => void): void; + /** + * Updates the current local settings for this `Http2Session` and sends a new`SETTINGS` frame to the connected HTTP/2 peer. + * + * Once called, the `http2session.pendingSettingsAck` property will be `true`while the session is waiting for the remote peer to acknowledge the new + * settings. + * + * The new settings will not become effective until the `SETTINGS` acknowledgment + * is received and the `'localSettings'` event is emitted. It is possible to send + * multiple `SETTINGS` frames while acknowledgment is still pending. + * @since v8.4.0 + * @param callback Callback that is called once the session is connected or right away if the session is already connected. + */ + settings(settings: Settings, callback?: (err: Error | null, settings: Settings, duration: number) => void): void; + /** + * Calls `unref()` on this `Http2Session`instance's underlying `net.Socket`. + * @since v9.4.0 + */ + unref(): void; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'frameError', listener: (frameType: number, errorCode: number, streamID: number) => void): this; + addListener(event: 'goaway', listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; + addListener(event: 'localSettings', listener: (settings: Settings) => void): this; + addListener(event: 'ping', listener: () => void): this; + addListener(event: 'remoteSettings', listener: (settings: Settings) => void): this; + addListener(event: 'timeout', listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'close'): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'frameError', frameType: number, errorCode: number, streamID: number): boolean; + emit(event: 'goaway', errorCode: number, lastStreamID: number, opaqueData: Buffer): boolean; + emit(event: 'localSettings', settings: Settings): boolean; + emit(event: 'ping'): boolean; + emit(event: 'remoteSettings', settings: Settings): boolean; + emit(event: 'timeout'): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'close', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'frameError', listener: (frameType: number, errorCode: number, streamID: number) => void): this; + on(event: 'goaway', listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; + on(event: 'localSettings', listener: (settings: Settings) => void): this; + on(event: 'ping', listener: () => void): this; + on(event: 'remoteSettings', listener: (settings: Settings) => void): this; + on(event: 'timeout', listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'frameError', listener: (frameType: number, errorCode: number, streamID: number) => void): this; + once(event: 'goaway', listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; + once(event: 'localSettings', listener: (settings: Settings) => void): this; + once(event: 'ping', listener: () => void): this; + once(event: 'remoteSettings', listener: (settings: Settings) => void): this; + once(event: 'timeout', listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'frameError', listener: (frameType: number, errorCode: number, streamID: number) => void): this; + prependListener(event: 'goaway', listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; + prependListener(event: 'localSettings', listener: (settings: Settings) => void): this; + prependListener(event: 'ping', listener: () => void): this; + prependListener(event: 'remoteSettings', listener: (settings: Settings) => void): this; + prependListener(event: 'timeout', listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'frameError', listener: (frameType: number, errorCode: number, streamID: number) => void): this; + prependOnceListener(event: 'goaway', listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; + prependOnceListener(event: 'localSettings', listener: (settings: Settings) => void): this; + prependOnceListener(event: 'ping', listener: () => void): this; + prependOnceListener(event: 'remoteSettings', listener: (settings: Settings) => void): this; + prependOnceListener(event: 'timeout', listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + export interface ClientHttp2Session extends Http2Session { + /** + * For HTTP/2 Client `Http2Session` instances only, the `http2session.request()`creates and returns an `Http2Stream` instance that can be used to send an + * HTTP/2 request to the connected server. + * + * When a `ClientHttp2Session` is first created, the socket may not yet be + * connected. if `clienthttp2session.request()` is called during this time, the + * actual request will be deferred until the socket is ready to go. + * If the `session` is closed before the actual request be executed, an`ERR_HTTP2_GOAWAY_SESSION` is thrown. + * + * This method is only available if `http2session.type` is equal to`http2.constants.NGHTTP2_SESSION_CLIENT`. + * + * ```js + * const http2 = require('http2'); + * const clientSession = http2.connect('https://localhost:1234'); + * const { + * HTTP2_HEADER_PATH, + * HTTP2_HEADER_STATUS + * } = http2.constants; + * + * const req = clientSession.request({ [HTTP2_HEADER_PATH]: '/' }); + * req.on('response', (headers) => { + * console.log(headers[HTTP2_HEADER_STATUS]); + * req.on('data', (chunk) => { // .. }); + * req.on('end', () => { // .. }); + * }); + * ``` + * + * When the `options.waitForTrailers` option is set, the `'wantTrailers'` event + * is emitted immediately after queuing the last chunk of payload data to be sent. + * The `http2stream.sendTrailers()` method can then be called to send trailing + * headers to the peer. + * + * When `options.waitForTrailers` is set, the `Http2Stream` will not automatically + * close when the final `DATA` frame is transmitted. User code must call either`http2stream.sendTrailers()` or `http2stream.close()` to close the`Http2Stream`. + * + * When `options.signal` is set with an `AbortSignal` and then `abort` on the + * corresponding `AbortController` is called, the request will emit an `'error'`event with an `AbortError` error. + * + * The `:method` and `:path` pseudo-headers are not specified within `headers`, + * they respectively default to: + * + * * `:method` \= `'GET'` + * * `:path` \= `/` + * @since v8.4.0 + */ + request(headers?: OutgoingHttpHeaders, options?: ClientSessionRequestOptions): ClientHttp2Stream; + addListener(event: 'altsvc', listener: (alt: string, origin: string, stream: number) => void): this; + addListener(event: 'origin', listener: (origins: string[]) => void): this; + addListener(event: 'connect', listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + addListener(event: 'stream', listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'altsvc', alt: string, origin: string, stream: number): boolean; + emit(event: 'origin', origins: ReadonlyArray): boolean; + emit(event: 'connect', session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket): boolean; + emit(event: 'stream', stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'altsvc', listener: (alt: string, origin: string, stream: number) => void): this; + on(event: 'origin', listener: (origins: string[]) => void): this; + on(event: 'connect', listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + on(event: 'stream', listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'altsvc', listener: (alt: string, origin: string, stream: number) => void): this; + once(event: 'origin', listener: (origins: string[]) => void): this; + once(event: 'connect', listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + once(event: 'stream', listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'altsvc', listener: (alt: string, origin: string, stream: number) => void): this; + prependListener(event: 'origin', listener: (origins: string[]) => void): this; + prependListener(event: 'connect', listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + prependListener(event: 'stream', listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'altsvc', listener: (alt: string, origin: string, stream: number) => void): this; + prependOnceListener(event: 'origin', listener: (origins: string[]) => void): this; + prependOnceListener(event: 'connect', listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + prependOnceListener(event: 'stream', listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + export interface AlternativeServiceOptions { + origin: number | string | url.URL; + } + export interface ServerHttp2Session extends Http2Session { + readonly server: Http2Server | Http2SecureServer; + /** + * Submits an `ALTSVC` frame (as defined by [RFC 7838](https://tools.ietf.org/html/rfc7838)) to the connected client. + * + * ```js + * const http2 = require('http2'); + * + * const server = http2.createServer(); + * server.on('session', (session) => { + * // Set altsvc for origin https://example.org:80 + * session.altsvc('h2=":8000"', 'https://example.org:80'); + * }); + * + * server.on('stream', (stream) => { + * // Set altsvc for a specific stream + * stream.session.altsvc('h2=":8000"', stream.id); + * }); + * ``` + * + * Sending an `ALTSVC` frame with a specific stream ID indicates that the alternate + * service is associated with the origin of the given `Http2Stream`. + * + * The `alt` and origin string _must_ contain only ASCII bytes and are + * strictly interpreted as a sequence of ASCII bytes. The special value `'clear'`may be passed to clear any previously set alternative service for a given + * domain. + * + * When a string is passed for the `originOrStream` argument, it will be parsed as + * a URL and the origin will be derived. For instance, the origin for the + * HTTP URL `'https://example.org/foo/bar'` is the ASCII string`'https://example.org'`. An error will be thrown if either the given string + * cannot be parsed as a URL or if a valid origin cannot be derived. + * + * A `URL` object, or any object with an `origin` property, may be passed as`originOrStream`, in which case the value of the `origin` property will be + * used. The value of the `origin` property _must_ be a properly serialized + * ASCII origin. + * @since v9.4.0 + * @param alt A description of the alternative service configuration as defined by `RFC 7838`. + * @param originOrStream Either a URL string specifying the origin (or an `Object` with an `origin` property) or the numeric identifier of an active `Http2Stream` as given by the + * `http2stream.id` property. + */ + altsvc(alt: string, originOrStream: number | string | url.URL | AlternativeServiceOptions): void; + /** + * Submits an `ORIGIN` frame (as defined by [RFC 8336](https://tools.ietf.org/html/rfc8336)) to the connected client + * to advertise the set of origins for which the server is capable of providing + * authoritative responses. + * + * ```js + * const http2 = require('http2'); + * const options = getSecureOptionsSomehow(); + * const server = http2.createSecureServer(options); + * server.on('stream', (stream) => { + * stream.respond(); + * stream.end('ok'); + * }); + * server.on('session', (session) => { + * session.origin('https://example.com', 'https://example.org'); + * }); + * ``` + * + * When a string is passed as an `origin`, it will be parsed as a URL and the + * origin will be derived. For instance, the origin for the HTTP URL`'https://example.org/foo/bar'` is the ASCII string`'https://example.org'`. An error will be thrown if either the given + * string + * cannot be parsed as a URL or if a valid origin cannot be derived. + * + * A `URL` object, or any object with an `origin` property, may be passed as + * an `origin`, in which case the value of the `origin` property will be + * used. The value of the `origin` property _must_ be a properly serialized + * ASCII origin. + * + * Alternatively, the `origins` option may be used when creating a new HTTP/2 + * server using the `http2.createSecureServer()` method: + * + * ```js + * const http2 = require('http2'); + * const options = getSecureOptionsSomehow(); + * options.origins = ['https://example.com', 'https://example.org']; + * const server = http2.createSecureServer(options); + * server.on('stream', (stream) => { + * stream.respond(); + * stream.end('ok'); + * }); + * ``` + * @since v10.12.0 + * @param origins One or more URL Strings passed as separate arguments. + */ + origin( + ...origins: Array< + | string + | url.URL + | { + origin: string; + } + > + ): void; + addListener(event: 'connect', listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + addListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'connect', session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket): boolean; + emit(event: 'stream', stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'connect', listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + on(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'connect', listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + once(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'connect', listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + prependListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'connect', listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + prependOnceListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + // Http2Server + export interface SessionOptions { + maxDeflateDynamicTableSize?: number | undefined; + maxSessionMemory?: number | undefined; + maxHeaderListPairs?: number | undefined; + maxOutstandingPings?: number | undefined; + maxSendHeaderBlockLength?: number | undefined; + paddingStrategy?: number | undefined; + peerMaxConcurrentStreams?: number | undefined; + settings?: Settings | undefined; + /** + * Specifies a timeout in milliseconds that + * a server should wait when an [`'unknownProtocol'`][] is emitted. If the + * socket has not been destroyed by that time the server will destroy it. + * @default 100000 + */ + unknownProtocolTimeout?: number | undefined; + selectPadding?(frameLen: number, maxFrameLen: number): number; + createConnection?(authority: url.URL, option: SessionOptions): stream.Duplex; + } + export interface ClientSessionOptions extends SessionOptions { + maxReservedRemoteStreams?: number | undefined; + createConnection?: ((authority: url.URL, option: SessionOptions) => stream.Duplex) | undefined; + protocol?: 'http:' | 'https:' | undefined; + } + export interface ServerSessionOptions extends SessionOptions { + Http1IncomingMessage?: typeof IncomingMessage | undefined; + Http1ServerResponse?: typeof ServerResponse | undefined; + Http2ServerRequest?: typeof Http2ServerRequest | undefined; + Http2ServerResponse?: typeof Http2ServerResponse | undefined; + } + export interface SecureClientSessionOptions extends ClientSessionOptions, tls.ConnectionOptions {} + export interface SecureServerSessionOptions extends ServerSessionOptions, tls.TlsOptions {} + export interface ServerOptions extends ServerSessionOptions {} + export interface SecureServerOptions extends SecureServerSessionOptions { + allowHTTP1?: boolean | undefined; + origins?: string[] | undefined; + } + interface HTTP2ServerCommon { + setTimeout(msec?: number, callback?: () => void): this; + /** + * Throws ERR_HTTP2_INVALID_SETTING_VALUE for invalid settings values. + * Throws ERR_INVALID_ARG_TYPE for invalid settings argument. + */ + updateSettings(settings: Settings): void; + } + export interface Http2Server extends net.Server, HTTP2ServerCommon { + addListener(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + addListener(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + addListener(event: 'session', listener: (session: ServerHttp2Session) => void): this; + addListener(event: 'sessionError', listener: (err: Error) => void): this; + addListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + addListener(event: 'timeout', listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'checkContinue', request: Http2ServerRequest, response: Http2ServerResponse): boolean; + emit(event: 'request', request: Http2ServerRequest, response: Http2ServerResponse): boolean; + emit(event: 'session', session: ServerHttp2Session): boolean; + emit(event: 'sessionError', err: Error): boolean; + emit(event: 'stream', stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean; + emit(event: 'timeout'): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + on(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + on(event: 'session', listener: (session: ServerHttp2Session) => void): this; + on(event: 'sessionError', listener: (err: Error) => void): this; + on(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + on(event: 'timeout', listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + once(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + once(event: 'session', listener: (session: ServerHttp2Session) => void): this; + once(event: 'sessionError', listener: (err: Error) => void): this; + once(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + once(event: 'timeout', listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependListener(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependListener(event: 'session', listener: (session: ServerHttp2Session) => void): this; + prependListener(event: 'sessionError', listener: (err: Error) => void): this; + prependListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependListener(event: 'timeout', listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependOnceListener(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependOnceListener(event: 'session', listener: (session: ServerHttp2Session) => void): this; + prependOnceListener(event: 'sessionError', listener: (err: Error) => void): this; + prependOnceListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependOnceListener(event: 'timeout', listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + export interface Http2SecureServer extends tls.Server, HTTP2ServerCommon { + addListener(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + addListener(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + addListener(event: 'session', listener: (session: ServerHttp2Session) => void): this; + addListener(event: 'sessionError', listener: (err: Error) => void): this; + addListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + addListener(event: 'timeout', listener: () => void): this; + addListener(event: 'unknownProtocol', listener: (socket: tls.TLSSocket) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'checkContinue', request: Http2ServerRequest, response: Http2ServerResponse): boolean; + emit(event: 'request', request: Http2ServerRequest, response: Http2ServerResponse): boolean; + emit(event: 'session', session: ServerHttp2Session): boolean; + emit(event: 'sessionError', err: Error): boolean; + emit(event: 'stream', stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean; + emit(event: 'timeout'): boolean; + emit(event: 'unknownProtocol', socket: tls.TLSSocket): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + on(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + on(event: 'session', listener: (session: ServerHttp2Session) => void): this; + on(event: 'sessionError', listener: (err: Error) => void): this; + on(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + on(event: 'timeout', listener: () => void): this; + on(event: 'unknownProtocol', listener: (socket: tls.TLSSocket) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + once(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + once(event: 'session', listener: (session: ServerHttp2Session) => void): this; + once(event: 'sessionError', listener: (err: Error) => void): this; + once(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + once(event: 'timeout', listener: () => void): this; + once(event: 'unknownProtocol', listener: (socket: tls.TLSSocket) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependListener(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependListener(event: 'session', listener: (session: ServerHttp2Session) => void): this; + prependListener(event: 'sessionError', listener: (err: Error) => void): this; + prependListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependListener(event: 'timeout', listener: () => void): this; + prependListener(event: 'unknownProtocol', listener: (socket: tls.TLSSocket) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependOnceListener(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependOnceListener(event: 'session', listener: (session: ServerHttp2Session) => void): this; + prependOnceListener(event: 'sessionError', listener: (err: Error) => void): this; + prependOnceListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependOnceListener(event: 'timeout', listener: () => void): this; + prependOnceListener(event: 'unknownProtocol', listener: (socket: tls.TLSSocket) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + /** + * A `Http2ServerRequest` object is created by {@link Server} or {@link SecureServer} and passed as the first argument to the `'request'` event. It may be used to access a request status, + * headers, and + * data. + * @since v8.4.0 + */ + export class Http2ServerRequest extends stream.Readable { + constructor(stream: ServerHttp2Stream, headers: IncomingHttpHeaders, options: stream.ReadableOptions, rawHeaders: ReadonlyArray); + /** + * The `request.aborted` property will be `true` if the request has + * been aborted. + * @since v10.1.0 + */ + readonly aborted: boolean; + /** + * The request authority pseudo header field. Because HTTP/2 allows requests + * to set either `:authority` or `host`, this value is derived from`req.headers[':authority']` if present. Otherwise, it is derived from`req.headers['host']`. + * @since v8.4.0 + */ + readonly authority: string; + /** + * See `request.socket`. + * @since v8.4.0 + * @deprecated Since v13.0.0 - Use `socket`. + */ + readonly connection: net.Socket | tls.TLSSocket; + /** + * The `request.complete` property will be `true` if the request has + * been completed, aborted, or destroyed. + * @since v12.10.0 + */ + readonly complete: boolean; + /** + * The request/response headers object. + * + * Key-value pairs of header names and values. Header names are lower-cased. + * + * ```js + * // Prints something like: + * // + * // { 'user-agent': 'curl/7.22.0', + * // host: '127.0.0.1:8000', + * // accept: '*' } + * console.log(request.headers); + * ``` + * + * See `HTTP/2 Headers Object`. + * + * In HTTP/2, the request path, host name, protocol, and method are represented as + * special headers prefixed with the `:` character (e.g. `':path'`). These special + * headers will be included in the `request.headers` object. Care must be taken not + * to inadvertently modify these special headers or errors may occur. For instance, + * removing all headers from the request will cause errors to occur: + * + * ```js + * removeAllHeaders(request.headers); + * assert(request.url); // Fails because the :path header has been removed + * ``` + * @since v8.4.0 + */ + readonly headers: IncomingHttpHeaders; + /** + * In case of server request, the HTTP version sent by the client. In the case of + * client response, the HTTP version of the connected-to server. Returns`'2.0'`. + * + * Also `message.httpVersionMajor` is the first integer and`message.httpVersionMinor` is the second. + * @since v8.4.0 + */ + readonly httpVersion: string; + readonly httpVersionMinor: number; + readonly httpVersionMajor: number; + /** + * The request method as a string. Read-only. Examples: `'GET'`, `'DELETE'`. + * @since v8.4.0 + */ + readonly method: string; + /** + * The raw request/response headers list exactly as they were received. + * + * The keys and values are in the same list. It is _not_ a + * list of tuples. So, the even-numbered offsets are key values, and the + * odd-numbered offsets are the associated values. + * + * Header names are not lowercased, and duplicates are not merged. + * + * ```js + * // Prints something like: + * // + * // [ 'user-agent', + * // 'this is invalid because there can be only one', + * // 'User-Agent', + * // 'curl/7.22.0', + * // 'Host', + * // '127.0.0.1:8000', + * // 'ACCEPT', + * // '*' ] + * console.log(request.rawHeaders); + * ``` + * @since v8.4.0 + */ + readonly rawHeaders: string[]; + /** + * The raw request/response trailer keys and values exactly as they were + * received. Only populated at the `'end'` event. + * @since v8.4.0 + */ + readonly rawTrailers: string[]; + /** + * The request scheme pseudo header field indicating the scheme + * portion of the target URL. + * @since v8.4.0 + */ + readonly scheme: string; + /** + * Returns a `Proxy` object that acts as a `net.Socket` (or `tls.TLSSocket`) but + * applies getters, setters, and methods based on HTTP/2 logic. + * + * `destroyed`, `readable`, and `writable` properties will be retrieved from and + * set on `request.stream`. + * + * `destroy`, `emit`, `end`, `on` and `once` methods will be called on`request.stream`. + * + * `setTimeout` method will be called on `request.stream.session`. + * + * `pause`, `read`, `resume`, and `write` will throw an error with code`ERR_HTTP2_NO_SOCKET_MANIPULATION`. See `Http2Session and Sockets` for + * more information. + * + * All other interactions will be routed directly to the socket. With TLS support, + * use `request.socket.getPeerCertificate()` to obtain the client's + * authentication details. + * @since v8.4.0 + */ + readonly socket: net.Socket | tls.TLSSocket; + /** + * The `Http2Stream` object backing the request. + * @since v8.4.0 + */ + readonly stream: ServerHttp2Stream; + /** + * The request/response trailers object. Only populated at the `'end'` event. + * @since v8.4.0 + */ + readonly trailers: IncomingHttpHeaders; + /** + * Request URL string. This contains only the URL that is present in the actual + * HTTP request. If the request is: + * + * ```http + * GET /status?name=ryan HTTP/1.1 + * Accept: text/plain + * ``` + * + * Then `request.url` will be: + * + * ```js + * '/status?name=ryan' + * ``` + * + * To parse the url into its parts, `new URL()` can be used: + * + * ```console + * $ node + * > new URL('/status?name=ryan', 'http://example.com') + * URL { + * href: 'http://example.com/status?name=ryan', + * origin: 'http://example.com', + * protocol: 'http:', + * username: '', + * password: '', + * host: 'example.com', + * hostname: 'example.com', + * port: '', + * pathname: '/status', + * search: '?name=ryan', + * searchParams: URLSearchParams { 'name' => 'ryan' }, + * hash: '' + * } + * ``` + * @since v8.4.0 + */ + url: string; + /** + * Sets the `Http2Stream`'s timeout value to `msecs`. If a callback is + * provided, then it is added as a listener on the `'timeout'` event on + * the response object. + * + * If no `'timeout'` listener is added to the request, the response, or + * the server, then `Http2Stream` s are destroyed when they time out. If a + * handler is assigned to the request, the response, or the server's `'timeout'`events, timed out sockets must be handled explicitly. + * @since v8.4.0 + */ + setTimeout(msecs: number, callback?: () => void): void; + read(size?: number): Buffer | string | null; + addListener(event: 'aborted', listener: (hadError: boolean, code: number) => void): this; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'data', listener: (chunk: Buffer | string) => void): this; + addListener(event: 'end', listener: () => void): this; + addListener(event: 'readable', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'aborted', hadError: boolean, code: number): boolean; + emit(event: 'close'): boolean; + emit(event: 'data', chunk: Buffer | string): boolean; + emit(event: 'end'): boolean; + emit(event: 'readable'): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'aborted', listener: (hadError: boolean, code: number) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'data', listener: (chunk: Buffer | string) => void): this; + on(event: 'end', listener: () => void): this; + on(event: 'readable', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'aborted', listener: (hadError: boolean, code: number) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'data', listener: (chunk: Buffer | string) => void): this; + once(event: 'end', listener: () => void): this; + once(event: 'readable', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'aborted', listener: (hadError: boolean, code: number) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'data', listener: (chunk: Buffer | string) => void): this; + prependListener(event: 'end', listener: () => void): this; + prependListener(event: 'readable', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'aborted', listener: (hadError: boolean, code: number) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'data', listener: (chunk: Buffer | string) => void): this; + prependOnceListener(event: 'end', listener: () => void): this; + prependOnceListener(event: 'readable', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + /** + * This object is created internally by an HTTP server, not by the user. It is + * passed as the second parameter to the `'request'` event. + * @since v8.4.0 + */ + export class Http2ServerResponse extends stream.Writable { + constructor(stream: ServerHttp2Stream); + /** + * See `response.socket`. + * @since v8.4.0 + * @deprecated Since v13.0.0 - Use `socket`. + */ + readonly connection: net.Socket | tls.TLSSocket; + /** + * Boolean value that indicates whether the response has completed. Starts + * as `false`. After `response.end()` executes, the value will be `true`. + * @since v8.4.0 + * @deprecated Since v13.4.0,v12.16.0 - Use `writableEnded`. + */ + readonly finished: boolean; + /** + * True if headers were sent, false otherwise (read-only). + * @since v8.4.0 + */ + readonly headersSent: boolean; + /** + * A reference to the original HTTP2 request object. + * @since v15.7.0 + */ + readonly req: Http2ServerRequest; + /** + * Returns a `Proxy` object that acts as a `net.Socket` (or `tls.TLSSocket`) but + * applies getters, setters, and methods based on HTTP/2 logic. + * + * `destroyed`, `readable`, and `writable` properties will be retrieved from and + * set on `response.stream`. + * + * `destroy`, `emit`, `end`, `on` and `once` methods will be called on`response.stream`. + * + * `setTimeout` method will be called on `response.stream.session`. + * + * `pause`, `read`, `resume`, and `write` will throw an error with code`ERR_HTTP2_NO_SOCKET_MANIPULATION`. See `Http2Session and Sockets` for + * more information. + * + * All other interactions will be routed directly to the socket. + * + * ```js + * const http2 = require('http2'); + * const server = http2.createServer((req, res) => { + * const ip = req.socket.remoteAddress; + * const port = req.socket.remotePort; + * res.end(`Your IP address is ${ip} and your source port is ${port}.`); + * }).listen(3000); + * ``` + * @since v8.4.0 + */ + readonly socket: net.Socket | tls.TLSSocket; + /** + * The `Http2Stream` object backing the response. + * @since v8.4.0 + */ + readonly stream: ServerHttp2Stream; + /** + * When true, the Date header will be automatically generated and sent in + * the response if it is not already present in the headers. Defaults to true. + * + * This should only be disabled for testing; HTTP requires the Date header + * in responses. + * @since v8.4.0 + */ + sendDate: boolean; + /** + * When using implicit headers (not calling `response.writeHead()` explicitly), + * this property controls the status code that will be sent to the client when + * the headers get flushed. + * + * ```js + * response.statusCode = 404; + * ``` + * + * After response header was sent to the client, this property indicates the + * status code which was sent out. + * @since v8.4.0 + */ + statusCode: number; + /** + * Status message is not supported by HTTP/2 (RFC 7540 8.1.2.4). It returns + * an empty string. + * @since v8.4.0 + */ + statusMessage: ''; + /** + * This method adds HTTP trailing headers (a header but at the end of the + * message) to the response. + * + * Attempting to set a header field name or value that contains invalid characters + * will result in a `TypeError` being thrown. + * @since v8.4.0 + */ + addTrailers(trailers: OutgoingHttpHeaders): void; + /** + * This method signals to the server that all of the response headers and body + * have been sent; that server should consider this message complete. + * The method, `response.end()`, MUST be called on each response. + * + * If `data` is specified, it is equivalent to calling `response.write(data, encoding)` followed by `response.end(callback)`. + * + * If `callback` is specified, it will be called when the response stream + * is finished. + * @since v8.4.0 + */ + end(callback?: () => void): this; + end(data: string | Uint8Array, callback?: () => void): this; + end(data: string | Uint8Array, encoding: BufferEncoding, callback?: () => void): this; + /** + * Reads out a header that has already been queued but not sent to the client. + * The name is case-insensitive. + * + * ```js + * const contentType = response.getHeader('content-type'); + * ``` + * @since v8.4.0 + */ + getHeader(name: string): string; + /** + * Returns an array containing the unique names of the current outgoing headers. + * All header names are lowercase. + * + * ```js + * response.setHeader('Foo', 'bar'); + * response.setHeader('Set-Cookie', ['foo=bar', 'bar=baz']); + * + * const headerNames = response.getHeaderNames(); + * // headerNames === ['foo', 'set-cookie'] + * ``` + * @since v8.4.0 + */ + getHeaderNames(): string[]; + /** + * Returns a shallow copy of the current outgoing headers. Since a shallow copy + * is used, array values may be mutated without additional calls to various + * header-related http module methods. The keys of the returned object are the + * header names and the values are the respective header values. All header names + * are lowercase. + * + * The object returned by the `response.getHeaders()` method _does not_prototypically inherit from the JavaScript `Object`. This means that typical`Object` methods such as `obj.toString()`, + * `obj.hasOwnProperty()`, and others + * are not defined and _will not work_. + * + * ```js + * response.setHeader('Foo', 'bar'); + * response.setHeader('Set-Cookie', ['foo=bar', 'bar=baz']); + * + * const headers = response.getHeaders(); + * // headers === { foo: 'bar', 'set-cookie': ['foo=bar', 'bar=baz'] } + * ``` + * @since v8.4.0 + */ + getHeaders(): OutgoingHttpHeaders; + /** + * Returns `true` if the header identified by `name` is currently set in the + * outgoing headers. The header name matching is case-insensitive. + * + * ```js + * const hasContentType = response.hasHeader('content-type'); + * ``` + * @since v8.4.0 + */ + hasHeader(name: string): boolean; + /** + * Removes a header that has been queued for implicit sending. + * + * ```js + * response.removeHeader('Content-Encoding'); + * ``` + * @since v8.4.0 + */ + removeHeader(name: string): void; + /** + * Sets a single header value for implicit headers. If this header already exists + * in the to-be-sent headers, its value will be replaced. Use an array of strings + * here to send multiple headers with the same name. + * + * ```js + * response.setHeader('Content-Type', 'text/html; charset=utf-8'); + * ``` + * + * or + * + * ```js + * response.setHeader('Set-Cookie', ['type=ninja', 'language=javascript']); + * ``` + * + * Attempting to set a header field name or value that contains invalid characters + * will result in a `TypeError` being thrown. + * + * When headers have been set with `response.setHeader()`, they will be merged + * with any headers passed to `response.writeHead()`, with the headers passed + * to `response.writeHead()` given precedence. + * + * ```js + * // Returns content-type = text/plain + * const server = http2.createServer((req, res) => { + * res.setHeader('Content-Type', 'text/html; charset=utf-8'); + * res.setHeader('X-Foo', 'bar'); + * res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' }); + * res.end('ok'); + * }); + * ``` + * @since v8.4.0 + */ + setHeader(name: string, value: number | string | ReadonlyArray): void; + /** + * Sets the `Http2Stream`'s timeout value to `msecs`. If a callback is + * provided, then it is added as a listener on the `'timeout'` event on + * the response object. + * + * If no `'timeout'` listener is added to the request, the response, or + * the server, then `Http2Stream` s are destroyed when they time out. If a + * handler is assigned to the request, the response, or the server's `'timeout'`events, timed out sockets must be handled explicitly. + * @since v8.4.0 + */ + setTimeout(msecs: number, callback?: () => void): void; + /** + * If this method is called and `response.writeHead()` has not been called, + * it will switch to implicit header mode and flush the implicit headers. + * + * This sends a chunk of the response body. This method may + * be called multiple times to provide successive parts of the body. + * + * In the `http` module, the response body is omitted when the + * request is a HEAD request. Similarly, the `204` and `304` responses _must not_ include a message body. + * + * `chunk` can be a string or a buffer. If `chunk` is a string, + * the second parameter specifies how to encode it into a byte stream. + * By default the `encoding` is `'utf8'`. `callback` will be called when this chunk + * of data is flushed. + * + * This is the raw HTTP body and has nothing to do with higher-level multi-part + * body encodings that may be used. + * + * The first time `response.write()` is called, it will send the buffered + * header information and the first chunk of the body to the client. The second + * time `response.write()` is called, Node.js assumes data will be streamed, + * and sends the new data separately. That is, the response is buffered up to the + * first chunk of the body. + * + * Returns `true` if the entire data was flushed successfully to the kernel + * buffer. Returns `false` if all or part of the data was queued in user memory.`'drain'` will be emitted when the buffer is free again. + * @since v8.4.0 + */ + write(chunk: string | Uint8Array, callback?: (err: Error) => void): boolean; + write(chunk: string | Uint8Array, encoding: BufferEncoding, callback?: (err: Error) => void): boolean; + /** + * Sends a status `100 Continue` to the client, indicating that the request body + * should be sent. See the `'checkContinue'` event on `Http2Server` and`Http2SecureServer`. + * @since v8.4.0 + */ + writeContinue(): void; + /** + * Sends a status `103 Early Hints` to the client with a Link header, + * indicating that the user agent can preload/preconnect the linked resources. + * The `hints` is an object containing the values of headers to be sent with + * early hints message. + * + * Example: + * + * ```js + * const earlyHintsLink = '; rel=preload; as=style'; + * response.writeEarlyHints({ + * 'link': earlyHintsLink, + * }); + * + * const earlyHintsLinks = [ + * '; rel=preload; as=style', + * '; rel=preload; as=script', + * ]; + * response.writeEarlyHints({ + * 'link': earlyHintsLinks, + * 'x-trace-id': 'id for diagnostics' + * }); + * ``` + * + * @since v18.11.0 + * @param hints An object containing the values of headers + */ + writeEarlyHints(hints: Record): void; + /** + * Sends a response header to the request. The status code is a 3-digit HTTP + * status code, like `404`. The last argument, `headers`, are the response headers. + * + * Returns a reference to the `Http2ServerResponse`, so that calls can be chained. + * + * For compatibility with `HTTP/1`, a human-readable `statusMessage` may be + * passed as the second argument. However, because the `statusMessage` has no + * meaning within HTTP/2, the argument will have no effect and a process warning + * will be emitted. + * + * ```js + * const body = 'hello world'; + * response.writeHead(200, { + * 'Content-Length': Buffer.byteLength(body), + * 'Content-Type': 'text/plain; charset=utf-8', + * }); + * ``` + * + * `Content-Length` is given in bytes not characters. The`Buffer.byteLength()` API may be used to determine the number of bytes in a + * given encoding. On outbound messages, Node.js does not check if Content-Length + * and the length of the body being transmitted are equal or not. However, when + * receiving messages, Node.js will automatically reject messages when the`Content-Length` does not match the actual payload size. + * + * This method may be called at most one time on a message before `response.end()` is called. + * + * If `response.write()` or `response.end()` are called before calling + * this, the implicit/mutable headers will be calculated and call this function. + * + * When headers have been set with `response.setHeader()`, they will be merged + * with any headers passed to `response.writeHead()`, with the headers passed + * to `response.writeHead()` given precedence. + * + * ```js + * // Returns content-type = text/plain + * const server = http2.createServer((req, res) => { + * res.setHeader('Content-Type', 'text/html; charset=utf-8'); + * res.setHeader('X-Foo', 'bar'); + * res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' }); + * res.end('ok'); + * }); + * ``` + * + * Attempting to set a header field name or value that contains invalid characters + * will result in a `TypeError` being thrown. + * @since v8.4.0 + */ + writeHead(statusCode: number, headers?: OutgoingHttpHeaders): this; + writeHead(statusCode: number, statusMessage: string, headers?: OutgoingHttpHeaders): this; + /** + * Call `http2stream.pushStream()` with the given headers, and wrap the + * given `Http2Stream` on a newly created `Http2ServerResponse` as the callback + * parameter if successful. When `Http2ServerRequest` is closed, the callback is + * called with an error `ERR_HTTP2_INVALID_STREAM`. + * @since v8.4.0 + * @param headers An object describing the headers + * @param callback Called once `http2stream.pushStream()` is finished, or either when the attempt to create the pushed `Http2Stream` has failed or has been rejected, or the state of + * `Http2ServerRequest` is closed prior to calling the `http2stream.pushStream()` method + */ + createPushResponse(headers: OutgoingHttpHeaders, callback: (err: Error | null, res: Http2ServerResponse) => void): void; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'drain', listener: () => void): this; + addListener(event: 'error', listener: (error: Error) => void): this; + addListener(event: 'finish', listener: () => void): this; + addListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + addListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'close'): boolean; + emit(event: 'drain'): boolean; + emit(event: 'error', error: Error): boolean; + emit(event: 'finish'): boolean; + emit(event: 'pipe', src: stream.Readable): boolean; + emit(event: 'unpipe', src: stream.Readable): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'close', listener: () => void): this; + on(event: 'drain', listener: () => void): this; + on(event: 'error', listener: (error: Error) => void): this; + on(event: 'finish', listener: () => void): this; + on(event: 'pipe', listener: (src: stream.Readable) => void): this; + on(event: 'unpipe', listener: (src: stream.Readable) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'drain', listener: () => void): this; + once(event: 'error', listener: (error: Error) => void): this; + once(event: 'finish', listener: () => void): this; + once(event: 'pipe', listener: (src: stream.Readable) => void): this; + once(event: 'unpipe', listener: (src: stream.Readable) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'drain', listener: () => void): this; + prependListener(event: 'error', listener: (error: Error) => void): this; + prependListener(event: 'finish', listener: () => void): this; + prependListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + prependListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'drain', listener: () => void): this; + prependOnceListener(event: 'error', listener: (error: Error) => void): this; + prependOnceListener(event: 'finish', listener: () => void): this; + prependOnceListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + prependOnceListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + export namespace constants { + const NGHTTP2_SESSION_SERVER: number; + const NGHTTP2_SESSION_CLIENT: number; + const NGHTTP2_STREAM_STATE_IDLE: number; + const NGHTTP2_STREAM_STATE_OPEN: number; + const NGHTTP2_STREAM_STATE_RESERVED_LOCAL: number; + const NGHTTP2_STREAM_STATE_RESERVED_REMOTE: number; + const NGHTTP2_STREAM_STATE_HALF_CLOSED_LOCAL: number; + const NGHTTP2_STREAM_STATE_HALF_CLOSED_REMOTE: number; + const NGHTTP2_STREAM_STATE_CLOSED: number; + const NGHTTP2_NO_ERROR: number; + const NGHTTP2_PROTOCOL_ERROR: number; + const NGHTTP2_INTERNAL_ERROR: number; + const NGHTTP2_FLOW_CONTROL_ERROR: number; + const NGHTTP2_SETTINGS_TIMEOUT: number; + const NGHTTP2_STREAM_CLOSED: number; + const NGHTTP2_FRAME_SIZE_ERROR: number; + const NGHTTP2_REFUSED_STREAM: number; + const NGHTTP2_CANCEL: number; + const NGHTTP2_COMPRESSION_ERROR: number; + const NGHTTP2_CONNECT_ERROR: number; + const NGHTTP2_ENHANCE_YOUR_CALM: number; + const NGHTTP2_INADEQUATE_SECURITY: number; + const NGHTTP2_HTTP_1_1_REQUIRED: number; + const NGHTTP2_ERR_FRAME_SIZE_ERROR: number; + const NGHTTP2_FLAG_NONE: number; + const NGHTTP2_FLAG_END_STREAM: number; + const NGHTTP2_FLAG_END_HEADERS: number; + const NGHTTP2_FLAG_ACK: number; + const NGHTTP2_FLAG_PADDED: number; + const NGHTTP2_FLAG_PRIORITY: number; + const DEFAULT_SETTINGS_HEADER_TABLE_SIZE: number; + const DEFAULT_SETTINGS_ENABLE_PUSH: number; + const DEFAULT_SETTINGS_INITIAL_WINDOW_SIZE: number; + const DEFAULT_SETTINGS_MAX_FRAME_SIZE: number; + const MAX_MAX_FRAME_SIZE: number; + const MIN_MAX_FRAME_SIZE: number; + const MAX_INITIAL_WINDOW_SIZE: number; + const NGHTTP2_DEFAULT_WEIGHT: number; + const NGHTTP2_SETTINGS_HEADER_TABLE_SIZE: number; + const NGHTTP2_SETTINGS_ENABLE_PUSH: number; + const NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS: number; + const NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE: number; + const NGHTTP2_SETTINGS_MAX_FRAME_SIZE: number; + const NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE: number; + const PADDING_STRATEGY_NONE: number; + const PADDING_STRATEGY_MAX: number; + const PADDING_STRATEGY_CALLBACK: number; + const HTTP2_HEADER_STATUS: string; + const HTTP2_HEADER_METHOD: string; + const HTTP2_HEADER_AUTHORITY: string; + const HTTP2_HEADER_SCHEME: string; + const HTTP2_HEADER_PATH: string; + const HTTP2_HEADER_ACCEPT_CHARSET: string; + const HTTP2_HEADER_ACCEPT_ENCODING: string; + const HTTP2_HEADER_ACCEPT_LANGUAGE: string; + const HTTP2_HEADER_ACCEPT_RANGES: string; + const HTTP2_HEADER_ACCEPT: string; + const HTTP2_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN: string; + const HTTP2_HEADER_AGE: string; + const HTTP2_HEADER_ALLOW: string; + const HTTP2_HEADER_AUTHORIZATION: string; + const HTTP2_HEADER_CACHE_CONTROL: string; + const HTTP2_HEADER_CONNECTION: string; + const HTTP2_HEADER_CONTENT_DISPOSITION: string; + const HTTP2_HEADER_CONTENT_ENCODING: string; + const HTTP2_HEADER_CONTENT_LANGUAGE: string; + const HTTP2_HEADER_CONTENT_LENGTH: string; + const HTTP2_HEADER_CONTENT_LOCATION: string; + const HTTP2_HEADER_CONTENT_MD5: string; + const HTTP2_HEADER_CONTENT_RANGE: string; + const HTTP2_HEADER_CONTENT_TYPE: string; + const HTTP2_HEADER_COOKIE: string; + const HTTP2_HEADER_DATE: string; + const HTTP2_HEADER_ETAG: string; + const HTTP2_HEADER_EXPECT: string; + const HTTP2_HEADER_EXPIRES: string; + const HTTP2_HEADER_FROM: string; + const HTTP2_HEADER_HOST: string; + const HTTP2_HEADER_IF_MATCH: string; + const HTTP2_HEADER_IF_MODIFIED_SINCE: string; + const HTTP2_HEADER_IF_NONE_MATCH: string; + const HTTP2_HEADER_IF_RANGE: string; + const HTTP2_HEADER_IF_UNMODIFIED_SINCE: string; + const HTTP2_HEADER_LAST_MODIFIED: string; + const HTTP2_HEADER_LINK: string; + const HTTP2_HEADER_LOCATION: string; + const HTTP2_HEADER_MAX_FORWARDS: string; + const HTTP2_HEADER_PREFER: string; + const HTTP2_HEADER_PROXY_AUTHENTICATE: string; + const HTTP2_HEADER_PROXY_AUTHORIZATION: string; + const HTTP2_HEADER_RANGE: string; + const HTTP2_HEADER_REFERER: string; + const HTTP2_HEADER_REFRESH: string; + const HTTP2_HEADER_RETRY_AFTER: string; + const HTTP2_HEADER_SERVER: string; + const HTTP2_HEADER_SET_COOKIE: string; + const HTTP2_HEADER_STRICT_TRANSPORT_SECURITY: string; + const HTTP2_HEADER_TRANSFER_ENCODING: string; + const HTTP2_HEADER_TE: string; + const HTTP2_HEADER_UPGRADE: string; + const HTTP2_HEADER_USER_AGENT: string; + const HTTP2_HEADER_VARY: string; + const HTTP2_HEADER_VIA: string; + const HTTP2_HEADER_WWW_AUTHENTICATE: string; + const HTTP2_HEADER_HTTP2_SETTINGS: string; + const HTTP2_HEADER_KEEP_ALIVE: string; + const HTTP2_HEADER_PROXY_CONNECTION: string; + const HTTP2_METHOD_ACL: string; + const HTTP2_METHOD_BASELINE_CONTROL: string; + const HTTP2_METHOD_BIND: string; + const HTTP2_METHOD_CHECKIN: string; + const HTTP2_METHOD_CHECKOUT: string; + const HTTP2_METHOD_CONNECT: string; + const HTTP2_METHOD_COPY: string; + const HTTP2_METHOD_DELETE: string; + const HTTP2_METHOD_GET: string; + const HTTP2_METHOD_HEAD: string; + const HTTP2_METHOD_LABEL: string; + const HTTP2_METHOD_LINK: string; + const HTTP2_METHOD_LOCK: string; + const HTTP2_METHOD_MERGE: string; + const HTTP2_METHOD_MKACTIVITY: string; + const HTTP2_METHOD_MKCALENDAR: string; + const HTTP2_METHOD_MKCOL: string; + const HTTP2_METHOD_MKREDIRECTREF: string; + const HTTP2_METHOD_MKWORKSPACE: string; + const HTTP2_METHOD_MOVE: string; + const HTTP2_METHOD_OPTIONS: string; + const HTTP2_METHOD_ORDERPATCH: string; + const HTTP2_METHOD_PATCH: string; + const HTTP2_METHOD_POST: string; + const HTTP2_METHOD_PRI: string; + const HTTP2_METHOD_PROPFIND: string; + const HTTP2_METHOD_PROPPATCH: string; + const HTTP2_METHOD_PUT: string; + const HTTP2_METHOD_REBIND: string; + const HTTP2_METHOD_REPORT: string; + const HTTP2_METHOD_SEARCH: string; + const HTTP2_METHOD_TRACE: string; + const HTTP2_METHOD_UNBIND: string; + const HTTP2_METHOD_UNCHECKOUT: string; + const HTTP2_METHOD_UNLINK: string; + const HTTP2_METHOD_UNLOCK: string; + const HTTP2_METHOD_UPDATE: string; + const HTTP2_METHOD_UPDATEREDIRECTREF: string; + const HTTP2_METHOD_VERSION_CONTROL: string; + const HTTP_STATUS_CONTINUE: number; + const HTTP_STATUS_SWITCHING_PROTOCOLS: number; + const HTTP_STATUS_PROCESSING: number; + const HTTP_STATUS_OK: number; + const HTTP_STATUS_CREATED: number; + const HTTP_STATUS_ACCEPTED: number; + const HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION: number; + const HTTP_STATUS_NO_CONTENT: number; + const HTTP_STATUS_RESET_CONTENT: number; + const HTTP_STATUS_PARTIAL_CONTENT: number; + const HTTP_STATUS_MULTI_STATUS: number; + const HTTP_STATUS_ALREADY_REPORTED: number; + const HTTP_STATUS_IM_USED: number; + const HTTP_STATUS_MULTIPLE_CHOICES: number; + const HTTP_STATUS_MOVED_PERMANENTLY: number; + const HTTP_STATUS_FOUND: number; + const HTTP_STATUS_SEE_OTHER: number; + const HTTP_STATUS_NOT_MODIFIED: number; + const HTTP_STATUS_USE_PROXY: number; + const HTTP_STATUS_TEMPORARY_REDIRECT: number; + const HTTP_STATUS_PERMANENT_REDIRECT: number; + const HTTP_STATUS_BAD_REQUEST: number; + const HTTP_STATUS_UNAUTHORIZED: number; + const HTTP_STATUS_PAYMENT_REQUIRED: number; + const HTTP_STATUS_FORBIDDEN: number; + const HTTP_STATUS_NOT_FOUND: number; + const HTTP_STATUS_METHOD_NOT_ALLOWED: number; + const HTTP_STATUS_NOT_ACCEPTABLE: number; + const HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED: number; + const HTTP_STATUS_REQUEST_TIMEOUT: number; + const HTTP_STATUS_CONFLICT: number; + const HTTP_STATUS_GONE: number; + const HTTP_STATUS_LENGTH_REQUIRED: number; + const HTTP_STATUS_PRECONDITION_FAILED: number; + const HTTP_STATUS_PAYLOAD_TOO_LARGE: number; + const HTTP_STATUS_URI_TOO_LONG: number; + const HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE: number; + const HTTP_STATUS_RANGE_NOT_SATISFIABLE: number; + const HTTP_STATUS_EXPECTATION_FAILED: number; + const HTTP_STATUS_TEAPOT: number; + const HTTP_STATUS_MISDIRECTED_REQUEST: number; + const HTTP_STATUS_UNPROCESSABLE_ENTITY: number; + const HTTP_STATUS_LOCKED: number; + const HTTP_STATUS_FAILED_DEPENDENCY: number; + const HTTP_STATUS_UNORDERED_COLLECTION: number; + const HTTP_STATUS_UPGRADE_REQUIRED: number; + const HTTP_STATUS_PRECONDITION_REQUIRED: number; + const HTTP_STATUS_TOO_MANY_REQUESTS: number; + const HTTP_STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE: number; + const HTTP_STATUS_UNAVAILABLE_FOR_LEGAL_REASONS: number; + const HTTP_STATUS_INTERNAL_SERVER_ERROR: number; + const HTTP_STATUS_NOT_IMPLEMENTED: number; + const HTTP_STATUS_BAD_GATEWAY: number; + const HTTP_STATUS_SERVICE_UNAVAILABLE: number; + const HTTP_STATUS_GATEWAY_TIMEOUT: number; + const HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED: number; + const HTTP_STATUS_VARIANT_ALSO_NEGOTIATES: number; + const HTTP_STATUS_INSUFFICIENT_STORAGE: number; + const HTTP_STATUS_LOOP_DETECTED: number; + const HTTP_STATUS_BANDWIDTH_LIMIT_EXCEEDED: number; + const HTTP_STATUS_NOT_EXTENDED: number; + const HTTP_STATUS_NETWORK_AUTHENTICATION_REQUIRED: number; + } + /** + * This symbol can be set as a property on the HTTP/2 headers object with + * an array value in order to provide a list of headers considered sensitive. + */ + export const sensitiveHeaders: symbol; + /** + * Returns an object containing the default settings for an `Http2Session`instance. This method returns a new object instance every time it is called + * so instances returned may be safely modified for use. + * @since v8.4.0 + */ + export function getDefaultSettings(): Settings; + /** + * Returns a `Buffer` instance containing serialized representation of the given + * HTTP/2 settings as specified in the [HTTP/2](https://tools.ietf.org/html/rfc7540) specification. This is intended + * for use with the `HTTP2-Settings` header field. + * + * ```js + * const http2 = require('http2'); + * + * const packed = http2.getPackedSettings({ enablePush: false }); + * + * console.log(packed.toString('base64')); + * // Prints: AAIAAAAA + * ``` + * @since v8.4.0 + */ + export function getPackedSettings(settings: Settings): Buffer; + /** + * Returns a `HTTP/2 Settings Object` containing the deserialized settings from + * the given `Buffer` as generated by `http2.getPackedSettings()`. + * @since v8.4.0 + * @param buf The packed settings. + */ + export function getUnpackedSettings(buf: Uint8Array): Settings; + /** + * Returns a `net.Server` instance that creates and manages `Http2Session`instances. + * + * Since there are no browsers known that support [unencrypted HTTP/2](https://http2.github.io/faq/#does-http2-require-encryption), the use of {@link createSecureServer} is necessary when + * communicating + * with browser clients. + * + * ```js + * const http2 = require('http2'); + * + * // Create an unencrypted HTTP/2 server. + * // Since there are no browsers known that support + * // unencrypted HTTP/2, the use of `http2.createSecureServer()` + * // is necessary when communicating with browser clients. + * const server = http2.createServer(); + * + * server.on('stream', (stream, headers) => { + * stream.respond({ + * 'content-type': 'text/html; charset=utf-8', + * ':status': 200 + * }); + * stream.end('

Hello World

'); + * }); + * + * server.listen(80); + * ``` + * @since v8.4.0 + * @param onRequestHandler See `Compatibility API` + */ + export function createServer(onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2Server; + export function createServer(options: ServerOptions, onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2Server; + /** + * Returns a `tls.Server` instance that creates and manages `Http2Session`instances. + * + * ```js + * const http2 = require('http2'); + * const fs = require('fs'); + * + * const options = { + * key: fs.readFileSync('server-key.pem'), + * cert: fs.readFileSync('server-cert.pem') + * }; + * + * // Create a secure HTTP/2 server + * const server = http2.createSecureServer(options); + * + * server.on('stream', (stream, headers) => { + * stream.respond({ + * 'content-type': 'text/html; charset=utf-8', + * ':status': 200 + * }); + * stream.end('

Hello World

'); + * }); + * + * server.listen(80); + * ``` + * @since v8.4.0 + * @param onRequestHandler See `Compatibility API` + */ + export function createSecureServer(onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2SecureServer; + export function createSecureServer(options: SecureServerOptions, onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2SecureServer; + /** + * Returns a `ClientHttp2Session` instance. + * + * ```js + * const http2 = require('http2'); + * const client = http2.connect('https://localhost:1234'); + * + * // Use the client + * + * client.close(); + * ``` + * @since v8.4.0 + * @param authority The remote HTTP/2 server to connect to. This must be in the form of a minimal, valid URL with the `http://` or `https://` prefix, host name, and IP port (if a non-default port + * is used). Userinfo (user ID and password), path, querystring, and fragment details in the URL will be ignored. + * @param listener Will be registered as a one-time listener of the {@link 'connect'} event. + */ + export function connect(authority: string | url.URL, listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): ClientHttp2Session; + export function connect( + authority: string | url.URL, + options?: ClientSessionOptions | SecureClientSessionOptions, + listener?: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void + ): ClientHttp2Session; +} +declare module 'node:http2' { + export * from 'http2'; +} diff --git a/node_modules/@types/node/https.d.ts b/node_modules/@types/node/https.d.ts new file mode 100644 index 0000000..bda367d --- /dev/null +++ b/node_modules/@types/node/https.d.ts @@ -0,0 +1,542 @@ +/** + * HTTPS is the HTTP protocol over TLS/SSL. In Node.js this is implemented as a + * separate module. + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/https.js) + */ +declare module 'https' { + import { Duplex } from 'node:stream'; + import * as tls from 'node:tls'; + import * as http from 'node:http'; + import { URL } from 'node:url'; + type ServerOptions< + Request extends typeof http.IncomingMessage = typeof http.IncomingMessage, + Response extends typeof http.ServerResponse = typeof http.ServerResponse, + > = tls.SecureContextOptions & tls.TlsOptions & http.ServerOptions; + type RequestOptions = http.RequestOptions & + tls.SecureContextOptions & { + checkServerIdentity?: typeof tls.checkServerIdentity | undefined; + rejectUnauthorized?: boolean | undefined; // Defaults to true + servername?: string | undefined; // SNI TLS Extension + }; + interface AgentOptions extends http.AgentOptions, tls.ConnectionOptions { + rejectUnauthorized?: boolean | undefined; + maxCachedSessions?: number | undefined; + } + /** + * An `Agent` object for HTTPS similar to `http.Agent`. See {@link request} for more information. + * @since v0.4.5 + */ + class Agent extends http.Agent { + constructor(options?: AgentOptions); + options: AgentOptions; + } + interface Server< + Request extends typeof http.IncomingMessage = typeof http.IncomingMessage, + Response extends typeof http.ServerResponse = typeof http.ServerResponse, + > extends http.Server {} + /** + * See `http.Server` for more information. + * @since v0.3.4 + */ + class Server< + Request extends typeof http.IncomingMessage = typeof http.IncomingMessage, + Response extends typeof http.ServerResponse = typeof http.ServerResponse, + > extends tls.Server { + constructor(requestListener?: http.RequestListener); + constructor( + options: ServerOptions, + requestListener?: http.RequestListener, + ); + /** + * Closes all connections connected to this server. + * @since v18.2.0 + */ + closeAllConnections(): void; + /** + * Closes all connections connected to this server which are not sending a request or waiting for a response. + * @since v18.2.0 + */ + closeIdleConnections(): void; + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'keylog', listener: (line: Buffer, tlsSocket: tls.TLSSocket) => void): this; + addListener( + event: 'newSession', + listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void, + ): this; + addListener( + event: 'OCSPRequest', + listener: ( + certificate: Buffer, + issuer: Buffer, + callback: (err: Error | null, resp: Buffer) => void, + ) => void, + ): this; + addListener( + event: 'resumeSession', + listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void, + ): this; + addListener(event: 'secureConnection', listener: (tlsSocket: tls.TLSSocket) => void): this; + addListener(event: 'tlsClientError', listener: (err: Error, tlsSocket: tls.TLSSocket) => void): this; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'connection', listener: (socket: Duplex) => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'listening', listener: () => void): this; + addListener(event: 'checkContinue', listener: http.RequestListener): this; + addListener(event: 'checkExpectation', listener: http.RequestListener): this; + addListener(event: 'clientError', listener: (err: Error, socket: Duplex) => void): this; + addListener( + event: 'connect', + listener: (req: InstanceType, socket: Duplex, head: Buffer) => void, + ): this; + addListener(event: 'request', listener: http.RequestListener): this; + addListener( + event: 'upgrade', + listener: (req: InstanceType, socket: Duplex, head: Buffer) => void, + ): this; + emit(event: string, ...args: any[]): boolean; + emit(event: 'keylog', line: Buffer, tlsSocket: tls.TLSSocket): boolean; + emit( + event: 'newSession', + sessionId: Buffer, + sessionData: Buffer, + callback: (err: Error, resp: Buffer) => void, + ): boolean; + emit( + event: 'OCSPRequest', + certificate: Buffer, + issuer: Buffer, + callback: (err: Error | null, resp: Buffer) => void, + ): boolean; + emit(event: 'resumeSession', sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void): boolean; + emit(event: 'secureConnection', tlsSocket: tls.TLSSocket): boolean; + emit(event: 'tlsClientError', err: Error, tlsSocket: tls.TLSSocket): boolean; + emit(event: 'close'): boolean; + emit(event: 'connection', socket: Duplex): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'listening'): boolean; + emit( + event: 'checkContinue', + req: InstanceType, + res: InstanceType & { req: InstanceType }, + ): boolean; + emit( + event: 'checkExpectation', + req: InstanceType, + res: InstanceType & { req: InstanceType }, + ): boolean; + emit(event: 'clientError', err: Error, socket: Duplex): boolean; + emit(event: 'connect', req: InstanceType, socket: Duplex, head: Buffer): boolean; + emit( + event: 'request', + req: InstanceType, + res: InstanceType & { req: InstanceType }, + ): boolean; + emit(event: 'upgrade', req: InstanceType, socket: Duplex, head: Buffer): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'keylog', listener: (line: Buffer, tlsSocket: tls.TLSSocket) => void): this; + on( + event: 'newSession', + listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void, + ): this; + on( + event: 'OCSPRequest', + listener: ( + certificate: Buffer, + issuer: Buffer, + callback: (err: Error | null, resp: Buffer) => void, + ) => void, + ): this; + on( + event: 'resumeSession', + listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void, + ): this; + on(event: 'secureConnection', listener: (tlsSocket: tls.TLSSocket) => void): this; + on(event: 'tlsClientError', listener: (err: Error, tlsSocket: tls.TLSSocket) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'connection', listener: (socket: Duplex) => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'listening', listener: () => void): this; + on(event: 'checkContinue', listener: http.RequestListener): this; + on(event: 'checkExpectation', listener: http.RequestListener): this; + on(event: 'clientError', listener: (err: Error, socket: Duplex) => void): this; + on(event: 'connect', listener: (req: InstanceType, socket: Duplex, head: Buffer) => void): this; + on(event: 'request', listener: http.RequestListener): this; + on(event: 'upgrade', listener: (req: InstanceType, socket: Duplex, head: Buffer) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'keylog', listener: (line: Buffer, tlsSocket: tls.TLSSocket) => void): this; + once( + event: 'newSession', + listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void, + ): this; + once( + event: 'OCSPRequest', + listener: ( + certificate: Buffer, + issuer: Buffer, + callback: (err: Error | null, resp: Buffer) => void, + ) => void, + ): this; + once( + event: 'resumeSession', + listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void, + ): this; + once(event: 'secureConnection', listener: (tlsSocket: tls.TLSSocket) => void): this; + once(event: 'tlsClientError', listener: (err: Error, tlsSocket: tls.TLSSocket) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'connection', listener: (socket: Duplex) => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'listening', listener: () => void): this; + once(event: 'checkContinue', listener: http.RequestListener): this; + once(event: 'checkExpectation', listener: http.RequestListener): this; + once(event: 'clientError', listener: (err: Error, socket: Duplex) => void): this; + once(event: 'connect', listener: (req: InstanceType, socket: Duplex, head: Buffer) => void): this; + once(event: 'request', listener: http.RequestListener): this; + once(event: 'upgrade', listener: (req: InstanceType, socket: Duplex, head: Buffer) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'keylog', listener: (line: Buffer, tlsSocket: tls.TLSSocket) => void): this; + prependListener( + event: 'newSession', + listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void, + ): this; + prependListener( + event: 'OCSPRequest', + listener: ( + certificate: Buffer, + issuer: Buffer, + callback: (err: Error | null, resp: Buffer) => void, + ) => void, + ): this; + prependListener( + event: 'resumeSession', + listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void, + ): this; + prependListener(event: 'secureConnection', listener: (tlsSocket: tls.TLSSocket) => void): this; + prependListener(event: 'tlsClientError', listener: (err: Error, tlsSocket: tls.TLSSocket) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'connection', listener: (socket: Duplex) => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'listening', listener: () => void): this; + prependListener(event: 'checkContinue', listener: http.RequestListener): this; + prependListener(event: 'checkExpectation', listener: http.RequestListener): this; + prependListener(event: 'clientError', listener: (err: Error, socket: Duplex) => void): this; + prependListener( + event: 'connect', + listener: (req: InstanceType, socket: Duplex, head: Buffer) => void, + ): this; + prependListener(event: 'request', listener: http.RequestListener): this; + prependListener( + event: 'upgrade', + listener: (req: InstanceType, socket: Duplex, head: Buffer) => void, + ): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'keylog', listener: (line: Buffer, tlsSocket: tls.TLSSocket) => void): this; + prependOnceListener( + event: 'newSession', + listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void, + ): this; + prependOnceListener( + event: 'OCSPRequest', + listener: ( + certificate: Buffer, + issuer: Buffer, + callback: (err: Error | null, resp: Buffer) => void, + ) => void, + ): this; + prependOnceListener( + event: 'resumeSession', + listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void, + ): this; + prependOnceListener(event: 'secureConnection', listener: (tlsSocket: tls.TLSSocket) => void): this; + prependOnceListener(event: 'tlsClientError', listener: (err: Error, tlsSocket: tls.TLSSocket) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'connection', listener: (socket: Duplex) => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'listening', listener: () => void): this; + prependOnceListener(event: 'checkContinue', listener: http.RequestListener): this; + prependOnceListener(event: 'checkExpectation', listener: http.RequestListener): this; + prependOnceListener(event: 'clientError', listener: (err: Error, socket: Duplex) => void): this; + prependOnceListener( + event: 'connect', + listener: (req: InstanceType, socket: Duplex, head: Buffer) => void, + ): this; + prependOnceListener(event: 'request', listener: http.RequestListener): this; + prependOnceListener( + event: 'upgrade', + listener: (req: InstanceType, socket: Duplex, head: Buffer) => void, + ): this; + } + /** + * ```js + * // curl -k https://localhost:8000/ + * const https = require('https'); + * const fs = require('fs'); + * + * const options = { + * key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), + * cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem') + * }; + * + * https.createServer(options, (req, res) => { + * res.writeHead(200); + * res.end('hello world\n'); + * }).listen(8000); + * ``` + * + * Or + * + * ```js + * const https = require('https'); + * const fs = require('fs'); + * + * const options = { + * pfx: fs.readFileSync('test/fixtures/test_cert.pfx'), + * passphrase: 'sample' + * }; + * + * https.createServer(options, (req, res) => { + * res.writeHead(200); + * res.end('hello world\n'); + * }).listen(8000); + * ``` + * @since v0.3.4 + * @param options Accepts `options` from `createServer`, `createSecureContext` and `createServer`. + * @param requestListener A listener to be added to the `'request'` event. + */ + function createServer< + Request extends typeof http.IncomingMessage = typeof http.IncomingMessage, + Response extends typeof http.ServerResponse = typeof http.ServerResponse, + >(requestListener?: http.RequestListener): Server; + function createServer< + Request extends typeof http.IncomingMessage = typeof http.IncomingMessage, + Response extends typeof http.ServerResponse = typeof http.ServerResponse, + >( + options: ServerOptions, + requestListener?: http.RequestListener, + ): Server; + /** + * Makes a request to a secure web server. + * + * The following additional `options` from `tls.connect()` are also accepted:`ca`, `cert`, `ciphers`, `clientCertEngine`, `crl`, `dhparam`, `ecdhCurve`,`honorCipherOrder`, `key`, `passphrase`, + * `pfx`, `rejectUnauthorized`,`secureOptions`, `secureProtocol`, `servername`, `sessionIdContext`,`highWaterMark`. + * + * `options` can be an object, a string, or a `URL` object. If `options` is a + * string, it is automatically parsed with `new URL()`. If it is a `URL` object, it will be automatically converted to an ordinary `options` object. + * + * `https.request()` returns an instance of the `http.ClientRequest` class. The `ClientRequest` instance is a writable stream. If one needs to + * upload a file with a POST request, then write to the `ClientRequest` object. + * + * ```js + * const https = require('https'); + * + * const options = { + * hostname: 'encrypted.google.com', + * port: 443, + * path: '/', + * method: 'GET' + * }; + * + * const req = https.request(options, (res) => { + * console.log('statusCode:', res.statusCode); + * console.log('headers:', res.headers); + * + * res.on('data', (d) => { + * process.stdout.write(d); + * }); + * }); + * + * req.on('error', (e) => { + * console.error(e); + * }); + * req.end(); + * ``` + * + * Example using options from `tls.connect()`: + * + * ```js + * const options = { + * hostname: 'encrypted.google.com', + * port: 443, + * path: '/', + * method: 'GET', + * key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), + * cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem') + * }; + * options.agent = new https.Agent(options); + * + * const req = https.request(options, (res) => { + * // ... + * }); + * ``` + * + * Alternatively, opt out of connection pooling by not using an `Agent`. + * + * ```js + * const options = { + * hostname: 'encrypted.google.com', + * port: 443, + * path: '/', + * method: 'GET', + * key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), + * cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem'), + * agent: false + * }; + * + * const req = https.request(options, (res) => { + * // ... + * }); + * ``` + * + * Example using a `URL` as `options`: + * + * ```js + * const options = new URL('https://abc:xyz@example.com'); + * + * const req = https.request(options, (res) => { + * // ... + * }); + * ``` + * + * Example pinning on certificate fingerprint, or the public key (similar to`pin-sha256`): + * + * ```js + * const tls = require('tls'); + * const https = require('https'); + * const crypto = require('crypto'); + * + * function sha256(s) { + * return crypto.createHash('sha256').update(s).digest('base64'); + * } + * const options = { + * hostname: 'github.com', + * port: 443, + * path: '/', + * method: 'GET', + * checkServerIdentity: function(host, cert) { + * // Make sure the certificate is issued to the host we are connected to + * const err = tls.checkServerIdentity(host, cert); + * if (err) { + * return err; + * } + * + * // Pin the public key, similar to HPKP pin-sha25 pinning + * const pubkey256 = 'pL1+qb9HTMRZJmuC/bB/ZI9d302BYrrqiVuRyW+DGrU='; + * if (sha256(cert.pubkey) !== pubkey256) { + * const msg = 'Certificate verification error: ' + + * `The public key of '${cert.subject.CN}' ` + + * 'does not match our pinned fingerprint'; + * return new Error(msg); + * } + * + * // Pin the exact certificate, rather than the pub key + * const cert256 = '25:FE:39:32:D9:63:8C:8A:FC:A1:9A:29:87:' + + * 'D8:3E:4C:1D:98:DB:71:E4:1A:48:03:98:EA:22:6A:BD:8B:93:16'; + * if (cert.fingerprint256 !== cert256) { + * const msg = 'Certificate verification error: ' + + * `The certificate of '${cert.subject.CN}' ` + + * 'does not match our pinned fingerprint'; + * return new Error(msg); + * } + * + * // This loop is informational only. + * // Print the certificate and public key fingerprints of all certs in the + * // chain. Its common to pin the public key of the issuer on the public + * // internet, while pinning the public key of the service in sensitive + * // environments. + * do { + * console.log('Subject Common Name:', cert.subject.CN); + * console.log(' Certificate SHA256 fingerprint:', cert.fingerprint256); + * + * hash = crypto.createHash('sha256'); + * console.log(' Public key ping-sha256:', sha256(cert.pubkey)); + * + * lastprint256 = cert.fingerprint256; + * cert = cert.issuerCertificate; + * } while (cert.fingerprint256 !== lastprint256); + * + * }, + * }; + * + * options.agent = new https.Agent(options); + * const req = https.request(options, (res) => { + * console.log('All OK. Server matched our pinned cert or public key'); + * console.log('statusCode:', res.statusCode); + * // Print the HPKP values + * console.log('headers:', res.headers['public-key-pins']); + * + * res.on('data', (d) => {}); + * }); + * + * req.on('error', (e) => { + * console.error(e.message); + * }); + * req.end(); + * ``` + * + * Outputs for example: + * + * ```text + * Subject Common Name: github.com + * Certificate SHA256 fingerprint: 25:FE:39:32:D9:63:8C:8A:FC:A1:9A:29:87:D8:3E:4C:1D:98:DB:71:E4:1A:48:03:98:EA:22:6A:BD:8B:93:16 + * Public key ping-sha256: pL1+qb9HTMRZJmuC/bB/ZI9d302BYrrqiVuRyW+DGrU= + * Subject Common Name: DigiCert SHA2 Extended Validation Server CA + * Certificate SHA256 fingerprint: 40:3E:06:2A:26:53:05:91:13:28:5B:AF:80:A0:D4:AE:42:2C:84:8C:9F:78:FA:D0:1F:C9:4B:C5:B8:7F:EF:1A + * Public key ping-sha256: RRM1dGqnDFsCJXBTHky16vi1obOlCgFFn/yOhI/y+ho= + * Subject Common Name: DigiCert High Assurance EV Root CA + * Certificate SHA256 fingerprint: 74:31:E5:F4:C3:C1:CE:46:90:77:4F:0B:61:E0:54:40:88:3B:A9:A0:1E:D0:0B:A6:AB:D7:80:6E:D3:B1:18:CF + * Public key ping-sha256: WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18= + * All OK. Server matched our pinned cert or public key + * statusCode: 200 + * headers: max-age=0; pin-sha256="WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18="; pin-sha256="RRM1dGqnDFsCJXBTHky16vi1obOlCgFFn/yOhI/y+ho="; + * pin-sha256="k2v657xBsOVe1PQRwOsHsw3bsGT2VzIqz5K+59sNQws="; pin-sha256="K87oWBWM9UZfyddvDfoxL+8lpNyoUB2ptGtn0fv6G2Q="; pin-sha256="IQBnNBEiFuhj+8x6X8XLgh01V9Ic5/V3IRQLNFFc7v4="; + * pin-sha256="iie1VXtL7HzAMF+/PVPR9xzT80kQxdZeJ+zduCB3uj0="; pin-sha256="LvRiGEjRqfzurezaWuj8Wie2gyHMrW5Q06LspMnox7A="; includeSubDomains + * ``` + * @since v0.3.6 + * @param options Accepts all `options` from `request`, with some differences in default values: + */ + function request( + options: RequestOptions | string | URL, + callback?: (res: http.IncomingMessage) => void, + ): http.ClientRequest; + function request( + url: string | URL, + options: RequestOptions, + callback?: (res: http.IncomingMessage) => void, + ): http.ClientRequest; + /** + * Like `http.get()` but for HTTPS. + * + * `options` can be an object, a string, or a `URL` object. If `options` is a + * string, it is automatically parsed with `new URL()`. If it is a `URL` object, it will be automatically converted to an ordinary `options` object. + * + * ```js + * const https = require('https'); + * + * https.get('https://encrypted.google.com/', (res) => { + * console.log('statusCode:', res.statusCode); + * console.log('headers:', res.headers); + * + * res.on('data', (d) => { + * process.stdout.write(d); + * }); + * + * }).on('error', (e) => { + * console.error(e); + * }); + * ``` + * @since v0.3.6 + * @param options Accepts the same `options` as {@link request}, with the `method` always set to `GET`. + */ + function get( + options: RequestOptions | string | URL, + callback?: (res: http.IncomingMessage) => void, + ): http.ClientRequest; + function get( + url: string | URL, + options: RequestOptions, + callback?: (res: http.IncomingMessage) => void, + ): http.ClientRequest; + let globalAgent: Agent; +} +declare module 'node:https' { + export * from 'https'; +} diff --git a/node_modules/@types/node/index.d.ts b/node_modules/@types/node/index.d.ts new file mode 100644 index 0000000..9db5f47 --- /dev/null +++ b/node_modules/@types/node/index.d.ts @@ -0,0 +1,134 @@ +// Type definitions for non-npm package Node.js 18.11 +// Project: https://nodejs.org/ +// Definitions by: Microsoft TypeScript +// DefinitelyTyped +// Alberto Schiabel +// Alvis HT Tang +// Andrew Makarov +// Benjamin Toueg +// Chigozirim C. +// David Junger +// Deividas Bakanas +// Eugene Y. Q. Shen +// Hannes Magnusson +// Huw +// Kelvin Jin +// Klaus Meinhardt +// Lishude +// Mariusz Wiktorczyk +// Mohsen Azimi +// Nicolas Even +// Nikita Galkin +// Parambir Singh +// Sebastian Silbermann +// Simon Schick +// Thomas den Hollander +// Wilco Bakker +// wwwy3y3 +// Samuel Ainsworth +// Kyle Uehlein +// Thanik Bhongbhibhat +// Marcin Kopacz +// Trivikram Kamat +// Junxiao Shi +// Ilia Baryshnikov +// ExE Boss +// Piotr Błażejewicz +// Anna Henningsen +// Victor Perin +// Yongsheng Zhang +// NodeJS Contributors +// Linus Unnebäck +// wafuwafu13 +// Matteo Collina +// Dmitry Semigradsky +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/** + * License for programmatically and manually incorporated + * documentation aka. `JSDoc` from https://github.com/nodejs/node/tree/master/doc + * + * Copyright Node.js contributors. All rights reserved. + * 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. + */ + +// NOTE: These definitions support NodeJS and TypeScript 4.9+. + +// Reference required types from the default lib: +/// +/// +/// +/// + +// Base definitions for all NodeJS modules that are not specific to any version of TypeScript: +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// + +/// diff --git a/node_modules/@types/node/inspector.d.ts b/node_modules/@types/node/inspector.d.ts new file mode 100644 index 0000000..eba0b55 --- /dev/null +++ b/node_modules/@types/node/inspector.d.ts @@ -0,0 +1,2741 @@ +// eslint-disable-next-line dt-header +// Type definitions for inspector + +// These definitions are auto-generated. +// Please see https://github.com/DefinitelyTyped/DefinitelyTyped/pull/19330 +// for more information. + +// tslint:disable:max-line-length + +/** + * The `inspector` module provides an API for interacting with the V8 inspector. + * + * It can be accessed using: + * + * ```js + * const inspector = require('inspector'); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/inspector.js) + */ +declare module 'inspector' { + import EventEmitter = require('node:events'); + interface InspectorNotification { + method: string; + params: T; + } + namespace Schema { + /** + * Description of the protocol domain. + */ + interface Domain { + /** + * Domain name. + */ + name: string; + /** + * Domain version. + */ + version: string; + } + interface GetDomainsReturnType { + /** + * List of supported domains. + */ + domains: Domain[]; + } + } + namespace Runtime { + /** + * Unique script identifier. + */ + type ScriptId = string; + /** + * Unique object identifier. + */ + type RemoteObjectId = string; + /** + * Primitive value which cannot be JSON-stringified. + */ + type UnserializableValue = string; + /** + * Mirror object referencing original JavaScript object. + */ + interface RemoteObject { + /** + * Object type. + */ + type: string; + /** + * Object subtype hint. Specified for object type values only. + */ + subtype?: string | undefined; + /** + * Object class (constructor) name. Specified for object type values only. + */ + className?: string | undefined; + /** + * Remote object value in case of primitive values or JSON values (if it was requested). + */ + value?: any; + /** + * Primitive value which can not be JSON-stringified does not have value, but gets this property. + */ + unserializableValue?: UnserializableValue | undefined; + /** + * String representation of the object. + */ + description?: string | undefined; + /** + * Unique object identifier (for non-primitive values). + */ + objectId?: RemoteObjectId | undefined; + /** + * Preview containing abbreviated property values. Specified for object type values only. + * @experimental + */ + preview?: ObjectPreview | undefined; + /** + * @experimental + */ + customPreview?: CustomPreview | undefined; + } + /** + * @experimental + */ + interface CustomPreview { + header: string; + hasBody: boolean; + formatterObjectId: RemoteObjectId; + bindRemoteObjectFunctionId: RemoteObjectId; + configObjectId?: RemoteObjectId | undefined; + } + /** + * Object containing abbreviated remote object value. + * @experimental + */ + interface ObjectPreview { + /** + * Object type. + */ + type: string; + /** + * Object subtype hint. Specified for object type values only. + */ + subtype?: string | undefined; + /** + * String representation of the object. + */ + description?: string | undefined; + /** + * True iff some of the properties or entries of the original object did not fit. + */ + overflow: boolean; + /** + * List of the properties. + */ + properties: PropertyPreview[]; + /** + * List of the entries. Specified for map and set subtype values only. + */ + entries?: EntryPreview[] | undefined; + } + /** + * @experimental + */ + interface PropertyPreview { + /** + * Property name. + */ + name: string; + /** + * Object type. Accessor means that the property itself is an accessor property. + */ + type: string; + /** + * User-friendly property value string. + */ + value?: string | undefined; + /** + * Nested value preview. + */ + valuePreview?: ObjectPreview | undefined; + /** + * Object subtype hint. Specified for object type values only. + */ + subtype?: string | undefined; + } + /** + * @experimental + */ + interface EntryPreview { + /** + * Preview of the key. Specified for map-like collection entries. + */ + key?: ObjectPreview | undefined; + /** + * Preview of the value. + */ + value: ObjectPreview; + } + /** + * Object property descriptor. + */ + interface PropertyDescriptor { + /** + * Property name or symbol description. + */ + name: string; + /** + * The value associated with the property. + */ + value?: RemoteObject | undefined; + /** + * True if the value associated with the property may be changed (data descriptors only). + */ + writable?: boolean | undefined; + /** + * A function which serves as a getter for the property, or undefined if there is no getter (accessor descriptors only). + */ + get?: RemoteObject | undefined; + /** + * A function which serves as a setter for the property, or undefined if there is no setter (accessor descriptors only). + */ + set?: RemoteObject | undefined; + /** + * True if the type of this property descriptor may be changed and if the property may be deleted from the corresponding object. + */ + configurable: boolean; + /** + * True if this property shows up during enumeration of the properties on the corresponding object. + */ + enumerable: boolean; + /** + * True if the result was thrown during the evaluation. + */ + wasThrown?: boolean | undefined; + /** + * True if the property is owned for the object. + */ + isOwn?: boolean | undefined; + /** + * Property symbol object, if the property is of the symbol type. + */ + symbol?: RemoteObject | undefined; + } + /** + * Object internal property descriptor. This property isn't normally visible in JavaScript code. + */ + interface InternalPropertyDescriptor { + /** + * Conventional property name. + */ + name: string; + /** + * The value associated with the property. + */ + value?: RemoteObject | undefined; + } + /** + * Represents function call argument. Either remote object id objectId, primitive value, unserializable primitive value or neither of (for undefined) them should be specified. + */ + interface CallArgument { + /** + * Primitive value or serializable javascript object. + */ + value?: any; + /** + * Primitive value which can not be JSON-stringified. + */ + unserializableValue?: UnserializableValue | undefined; + /** + * Remote object handle. + */ + objectId?: RemoteObjectId | undefined; + } + /** + * Id of an execution context. + */ + type ExecutionContextId = number; + /** + * Description of an isolated world. + */ + interface ExecutionContextDescription { + /** + * Unique id of the execution context. It can be used to specify in which execution context script evaluation should be performed. + */ + id: ExecutionContextId; + /** + * Execution context origin. + */ + origin: string; + /** + * Human readable name describing given context. + */ + name: string; + /** + * Embedder-specific auxiliary data. + */ + auxData?: {} | undefined; + } + /** + * Detailed information about exception (or error) that was thrown during script compilation or execution. + */ + interface ExceptionDetails { + /** + * Exception id. + */ + exceptionId: number; + /** + * Exception text, which should be used together with exception object when available. + */ + text: string; + /** + * Line number of the exception location (0-based). + */ + lineNumber: number; + /** + * Column number of the exception location (0-based). + */ + columnNumber: number; + /** + * Script ID of the exception location. + */ + scriptId?: ScriptId | undefined; + /** + * URL of the exception location, to be used when the script was not reported. + */ + url?: string | undefined; + /** + * JavaScript stack trace if available. + */ + stackTrace?: StackTrace | undefined; + /** + * Exception object if available. + */ + exception?: RemoteObject | undefined; + /** + * Identifier of the context where exception happened. + */ + executionContextId?: ExecutionContextId | undefined; + } + /** + * Number of milliseconds since epoch. + */ + type Timestamp = number; + /** + * Stack entry for runtime errors and assertions. + */ + interface CallFrame { + /** + * JavaScript function name. + */ + functionName: string; + /** + * JavaScript script id. + */ + scriptId: ScriptId; + /** + * JavaScript script name or url. + */ + url: string; + /** + * JavaScript script line number (0-based). + */ + lineNumber: number; + /** + * JavaScript script column number (0-based). + */ + columnNumber: number; + } + /** + * Call frames for assertions or error messages. + */ + interface StackTrace { + /** + * String label of this stack trace. For async traces this may be a name of the function that initiated the async call. + */ + description?: string | undefined; + /** + * JavaScript function name. + */ + callFrames: CallFrame[]; + /** + * Asynchronous JavaScript stack trace that preceded this stack, if available. + */ + parent?: StackTrace | undefined; + /** + * Asynchronous JavaScript stack trace that preceded this stack, if available. + * @experimental + */ + parentId?: StackTraceId | undefined; + } + /** + * Unique identifier of current debugger. + * @experimental + */ + type UniqueDebuggerId = string; + /** + * If debuggerId is set stack trace comes from another debugger and can be resolved there. This allows to track cross-debugger calls. See Runtime.StackTrace and Debugger.paused for usages. + * @experimental + */ + interface StackTraceId { + id: string; + debuggerId?: UniqueDebuggerId | undefined; + } + interface EvaluateParameterType { + /** + * Expression to evaluate. + */ + expression: string; + /** + * Symbolic group name that can be used to release multiple objects. + */ + objectGroup?: string | undefined; + /** + * Determines whether Command Line API should be available during the evaluation. + */ + includeCommandLineAPI?: boolean | undefined; + /** + * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. + */ + silent?: boolean | undefined; + /** + * Specifies in which execution context to perform evaluation. If the parameter is omitted the evaluation will be performed in the context of the inspected page. + */ + contextId?: ExecutionContextId | undefined; + /** + * Whether the result is expected to be a JSON object that should be sent by value. + */ + returnByValue?: boolean | undefined; + /** + * Whether preview should be generated for the result. + * @experimental + */ + generatePreview?: boolean | undefined; + /** + * Whether execution should be treated as initiated by user in the UI. + */ + userGesture?: boolean | undefined; + /** + * Whether execution should await for resulting value and return once awaited promise is resolved. + */ + awaitPromise?: boolean | undefined; + } + interface AwaitPromiseParameterType { + /** + * Identifier of the promise. + */ + promiseObjectId: RemoteObjectId; + /** + * Whether the result is expected to be a JSON object that should be sent by value. + */ + returnByValue?: boolean | undefined; + /** + * Whether preview should be generated for the result. + */ + generatePreview?: boolean | undefined; + } + interface CallFunctionOnParameterType { + /** + * Declaration of the function to call. + */ + functionDeclaration: string; + /** + * Identifier of the object to call function on. Either objectId or executionContextId should be specified. + */ + objectId?: RemoteObjectId | undefined; + /** + * Call arguments. All call arguments must belong to the same JavaScript world as the target object. + */ + arguments?: CallArgument[] | undefined; + /** + * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. + */ + silent?: boolean | undefined; + /** + * Whether the result is expected to be a JSON object which should be sent by value. + */ + returnByValue?: boolean | undefined; + /** + * Whether preview should be generated for the result. + * @experimental + */ + generatePreview?: boolean | undefined; + /** + * Whether execution should be treated as initiated by user in the UI. + */ + userGesture?: boolean | undefined; + /** + * Whether execution should await for resulting value and return once awaited promise is resolved. + */ + awaitPromise?: boolean | undefined; + /** + * Specifies execution context which global object will be used to call function on. Either executionContextId or objectId should be specified. + */ + executionContextId?: ExecutionContextId | undefined; + /** + * Symbolic group name that can be used to release multiple objects. If objectGroup is not specified and objectId is, objectGroup will be inherited from object. + */ + objectGroup?: string | undefined; + } + interface GetPropertiesParameterType { + /** + * Identifier of the object to return properties for. + */ + objectId: RemoteObjectId; + /** + * If true, returns properties belonging only to the element itself, not to its prototype chain. + */ + ownProperties?: boolean | undefined; + /** + * If true, returns accessor properties (with getter/setter) only; internal properties are not returned either. + * @experimental + */ + accessorPropertiesOnly?: boolean | undefined; + /** + * Whether preview should be generated for the results. + * @experimental + */ + generatePreview?: boolean | undefined; + } + interface ReleaseObjectParameterType { + /** + * Identifier of the object to release. + */ + objectId: RemoteObjectId; + } + interface ReleaseObjectGroupParameterType { + /** + * Symbolic object group name. + */ + objectGroup: string; + } + interface SetCustomObjectFormatterEnabledParameterType { + enabled: boolean; + } + interface CompileScriptParameterType { + /** + * Expression to compile. + */ + expression: string; + /** + * Source url to be set for the script. + */ + sourceURL: string; + /** + * Specifies whether the compiled script should be persisted. + */ + persistScript: boolean; + /** + * Specifies in which execution context to perform script run. If the parameter is omitted the evaluation will be performed in the context of the inspected page. + */ + executionContextId?: ExecutionContextId | undefined; + } + interface RunScriptParameterType { + /** + * Id of the script to run. + */ + scriptId: ScriptId; + /** + * Specifies in which execution context to perform script run. If the parameter is omitted the evaluation will be performed in the context of the inspected page. + */ + executionContextId?: ExecutionContextId | undefined; + /** + * Symbolic group name that can be used to release multiple objects. + */ + objectGroup?: string | undefined; + /** + * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. + */ + silent?: boolean | undefined; + /** + * Determines whether Command Line API should be available during the evaluation. + */ + includeCommandLineAPI?: boolean | undefined; + /** + * Whether the result is expected to be a JSON object which should be sent by value. + */ + returnByValue?: boolean | undefined; + /** + * Whether preview should be generated for the result. + */ + generatePreview?: boolean | undefined; + /** + * Whether execution should await for resulting value and return once awaited promise is resolved. + */ + awaitPromise?: boolean | undefined; + } + interface QueryObjectsParameterType { + /** + * Identifier of the prototype to return objects for. + */ + prototypeObjectId: RemoteObjectId; + } + interface GlobalLexicalScopeNamesParameterType { + /** + * Specifies in which execution context to lookup global scope variables. + */ + executionContextId?: ExecutionContextId | undefined; + } + interface EvaluateReturnType { + /** + * Evaluation result. + */ + result: RemoteObject; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails | undefined; + } + interface AwaitPromiseReturnType { + /** + * Promise result. Will contain rejected value if promise was rejected. + */ + result: RemoteObject; + /** + * Exception details if stack strace is available. + */ + exceptionDetails?: ExceptionDetails | undefined; + } + interface CallFunctionOnReturnType { + /** + * Call result. + */ + result: RemoteObject; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails | undefined; + } + interface GetPropertiesReturnType { + /** + * Object properties. + */ + result: PropertyDescriptor[]; + /** + * Internal object properties (only of the element itself). + */ + internalProperties?: InternalPropertyDescriptor[] | undefined; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails | undefined; + } + interface CompileScriptReturnType { + /** + * Id of the script. + */ + scriptId?: ScriptId | undefined; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails | undefined; + } + interface RunScriptReturnType { + /** + * Run result. + */ + result: RemoteObject; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails | undefined; + } + interface QueryObjectsReturnType { + /** + * Array with objects. + */ + objects: RemoteObject; + } + interface GlobalLexicalScopeNamesReturnType { + names: string[]; + } + interface ExecutionContextCreatedEventDataType { + /** + * A newly created execution context. + */ + context: ExecutionContextDescription; + } + interface ExecutionContextDestroyedEventDataType { + /** + * Id of the destroyed context + */ + executionContextId: ExecutionContextId; + } + interface ExceptionThrownEventDataType { + /** + * Timestamp of the exception. + */ + timestamp: Timestamp; + exceptionDetails: ExceptionDetails; + } + interface ExceptionRevokedEventDataType { + /** + * Reason describing why exception was revoked. + */ + reason: string; + /** + * The id of revoked exception, as reported in exceptionThrown. + */ + exceptionId: number; + } + interface ConsoleAPICalledEventDataType { + /** + * Type of the call. + */ + type: string; + /** + * Call arguments. + */ + args: RemoteObject[]; + /** + * Identifier of the context where the call was made. + */ + executionContextId: ExecutionContextId; + /** + * Call timestamp. + */ + timestamp: Timestamp; + /** + * Stack trace captured when the call was made. + */ + stackTrace?: StackTrace | undefined; + /** + * Console context descriptor for calls on non-default console context (not console.*): 'anonymous#unique-logger-id' for call on unnamed context, 'name#unique-logger-id' for call on named context. + * @experimental + */ + context?: string | undefined; + } + interface InspectRequestedEventDataType { + object: RemoteObject; + hints: {}; + } + } + namespace Debugger { + /** + * Breakpoint identifier. + */ + type BreakpointId = string; + /** + * Call frame identifier. + */ + type CallFrameId = string; + /** + * Location in the source code. + */ + interface Location { + /** + * Script identifier as reported in the Debugger.scriptParsed. + */ + scriptId: Runtime.ScriptId; + /** + * Line number in the script (0-based). + */ + lineNumber: number; + /** + * Column number in the script (0-based). + */ + columnNumber?: number | undefined; + } + /** + * Location in the source code. + * @experimental + */ + interface ScriptPosition { + lineNumber: number; + columnNumber: number; + } + /** + * JavaScript call frame. Array of call frames form the call stack. + */ + interface CallFrame { + /** + * Call frame identifier. This identifier is only valid while the virtual machine is paused. + */ + callFrameId: CallFrameId; + /** + * Name of the JavaScript function called on this call frame. + */ + functionName: string; + /** + * Location in the source code. + */ + functionLocation?: Location | undefined; + /** + * Location in the source code. + */ + location: Location; + /** + * JavaScript script name or url. + */ + url: string; + /** + * Scope chain for this call frame. + */ + scopeChain: Scope[]; + /** + * this object for this call frame. + */ + this: Runtime.RemoteObject; + /** + * The value being returned, if the function is at return point. + */ + returnValue?: Runtime.RemoteObject | undefined; + } + /** + * Scope description. + */ + interface Scope { + /** + * Scope type. + */ + type: string; + /** + * Object representing the scope. For global and with scopes it represents the actual object; for the rest of the scopes, it is artificial transient object enumerating scope variables as its properties. + */ + object: Runtime.RemoteObject; + name?: string | undefined; + /** + * Location in the source code where scope starts + */ + startLocation?: Location | undefined; + /** + * Location in the source code where scope ends + */ + endLocation?: Location | undefined; + } + /** + * Search match for resource. + */ + interface SearchMatch { + /** + * Line number in resource content. + */ + lineNumber: number; + /** + * Line with match content. + */ + lineContent: string; + } + interface BreakLocation { + /** + * Script identifier as reported in the Debugger.scriptParsed. + */ + scriptId: Runtime.ScriptId; + /** + * Line number in the script (0-based). + */ + lineNumber: number; + /** + * Column number in the script (0-based). + */ + columnNumber?: number | undefined; + type?: string | undefined; + } + interface SetBreakpointsActiveParameterType { + /** + * New value for breakpoints active state. + */ + active: boolean; + } + interface SetSkipAllPausesParameterType { + /** + * New value for skip pauses state. + */ + skip: boolean; + } + interface SetBreakpointByUrlParameterType { + /** + * Line number to set breakpoint at. + */ + lineNumber: number; + /** + * URL of the resources to set breakpoint on. + */ + url?: string | undefined; + /** + * Regex pattern for the URLs of the resources to set breakpoints on. Either url or urlRegex must be specified. + */ + urlRegex?: string | undefined; + /** + * Script hash of the resources to set breakpoint on. + */ + scriptHash?: string | undefined; + /** + * Offset in the line to set breakpoint at. + */ + columnNumber?: number | undefined; + /** + * Expression to use as a breakpoint condition. When specified, debugger will only stop on the breakpoint if this expression evaluates to true. + */ + condition?: string | undefined; + } + interface SetBreakpointParameterType { + /** + * Location to set breakpoint in. + */ + location: Location; + /** + * Expression to use as a breakpoint condition. When specified, debugger will only stop on the breakpoint if this expression evaluates to true. + */ + condition?: string | undefined; + } + interface RemoveBreakpointParameterType { + breakpointId: BreakpointId; + } + interface GetPossibleBreakpointsParameterType { + /** + * Start of range to search possible breakpoint locations in. + */ + start: Location; + /** + * End of range to search possible breakpoint locations in (excluding). When not specified, end of scripts is used as end of range. + */ + end?: Location | undefined; + /** + * Only consider locations which are in the same (non-nested) function as start. + */ + restrictToFunction?: boolean | undefined; + } + interface ContinueToLocationParameterType { + /** + * Location to continue to. + */ + location: Location; + targetCallFrames?: string | undefined; + } + interface PauseOnAsyncCallParameterType { + /** + * Debugger will pause when async call with given stack trace is started. + */ + parentStackTraceId: Runtime.StackTraceId; + } + interface StepIntoParameterType { + /** + * Debugger will issue additional Debugger.paused notification if any async task is scheduled before next pause. + * @experimental + */ + breakOnAsyncCall?: boolean | undefined; + } + interface GetStackTraceParameterType { + stackTraceId: Runtime.StackTraceId; + } + interface SearchInContentParameterType { + /** + * Id of the script to search in. + */ + scriptId: Runtime.ScriptId; + /** + * String to search for. + */ + query: string; + /** + * If true, search is case sensitive. + */ + caseSensitive?: boolean | undefined; + /** + * If true, treats string parameter as regex. + */ + isRegex?: boolean | undefined; + } + interface SetScriptSourceParameterType { + /** + * Id of the script to edit. + */ + scriptId: Runtime.ScriptId; + /** + * New content of the script. + */ + scriptSource: string; + /** + * If true the change will not actually be applied. Dry run may be used to get result description without actually modifying the code. + */ + dryRun?: boolean | undefined; + } + interface RestartFrameParameterType { + /** + * Call frame identifier to evaluate on. + */ + callFrameId: CallFrameId; + } + interface GetScriptSourceParameterType { + /** + * Id of the script to get source for. + */ + scriptId: Runtime.ScriptId; + } + interface SetPauseOnExceptionsParameterType { + /** + * Pause on exceptions mode. + */ + state: string; + } + interface EvaluateOnCallFrameParameterType { + /** + * Call frame identifier to evaluate on. + */ + callFrameId: CallFrameId; + /** + * Expression to evaluate. + */ + expression: string; + /** + * String object group name to put result into (allows rapid releasing resulting object handles using releaseObjectGroup). + */ + objectGroup?: string | undefined; + /** + * Specifies whether command line API should be available to the evaluated expression, defaults to false. + */ + includeCommandLineAPI?: boolean | undefined; + /** + * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. + */ + silent?: boolean | undefined; + /** + * Whether the result is expected to be a JSON object that should be sent by value. + */ + returnByValue?: boolean | undefined; + /** + * Whether preview should be generated for the result. + * @experimental + */ + generatePreview?: boolean | undefined; + /** + * Whether to throw an exception if side effect cannot be ruled out during evaluation. + */ + throwOnSideEffect?: boolean | undefined; + } + interface SetVariableValueParameterType { + /** + * 0-based number of scope as was listed in scope chain. Only 'local', 'closure' and 'catch' scope types are allowed. Other scopes could be manipulated manually. + */ + scopeNumber: number; + /** + * Variable name. + */ + variableName: string; + /** + * New variable value. + */ + newValue: Runtime.CallArgument; + /** + * Id of callframe that holds variable. + */ + callFrameId: CallFrameId; + } + interface SetReturnValueParameterType { + /** + * New return value. + */ + newValue: Runtime.CallArgument; + } + interface SetAsyncCallStackDepthParameterType { + /** + * Maximum depth of async call stacks. Setting to 0 will effectively disable collecting async call stacks (default). + */ + maxDepth: number; + } + interface SetBlackboxPatternsParameterType { + /** + * Array of regexps that will be used to check script url for blackbox state. + */ + patterns: string[]; + } + interface SetBlackboxedRangesParameterType { + /** + * Id of the script. + */ + scriptId: Runtime.ScriptId; + positions: ScriptPosition[]; + } + interface EnableReturnType { + /** + * Unique identifier of the debugger. + * @experimental + */ + debuggerId: Runtime.UniqueDebuggerId; + } + interface SetBreakpointByUrlReturnType { + /** + * Id of the created breakpoint for further reference. + */ + breakpointId: BreakpointId; + /** + * List of the locations this breakpoint resolved into upon addition. + */ + locations: Location[]; + } + interface SetBreakpointReturnType { + /** + * Id of the created breakpoint for further reference. + */ + breakpointId: BreakpointId; + /** + * Location this breakpoint resolved into. + */ + actualLocation: Location; + } + interface GetPossibleBreakpointsReturnType { + /** + * List of the possible breakpoint locations. + */ + locations: BreakLocation[]; + } + interface GetStackTraceReturnType { + stackTrace: Runtime.StackTrace; + } + interface SearchInContentReturnType { + /** + * List of search matches. + */ + result: SearchMatch[]; + } + interface SetScriptSourceReturnType { + /** + * New stack trace in case editing has happened while VM was stopped. + */ + callFrames?: CallFrame[] | undefined; + /** + * Whether current call stack was modified after applying the changes. + */ + stackChanged?: boolean | undefined; + /** + * Async stack trace, if any. + */ + asyncStackTrace?: Runtime.StackTrace | undefined; + /** + * Async stack trace, if any. + * @experimental + */ + asyncStackTraceId?: Runtime.StackTraceId | undefined; + /** + * Exception details if any. + */ + exceptionDetails?: Runtime.ExceptionDetails | undefined; + } + interface RestartFrameReturnType { + /** + * New stack trace. + */ + callFrames: CallFrame[]; + /** + * Async stack trace, if any. + */ + asyncStackTrace?: Runtime.StackTrace | undefined; + /** + * Async stack trace, if any. + * @experimental + */ + asyncStackTraceId?: Runtime.StackTraceId | undefined; + } + interface GetScriptSourceReturnType { + /** + * Script source. + */ + scriptSource: string; + } + interface EvaluateOnCallFrameReturnType { + /** + * Object wrapper for the evaluation result. + */ + result: Runtime.RemoteObject; + /** + * Exception details. + */ + exceptionDetails?: Runtime.ExceptionDetails | undefined; + } + interface ScriptParsedEventDataType { + /** + * Identifier of the script parsed. + */ + scriptId: Runtime.ScriptId; + /** + * URL or name of the script parsed (if any). + */ + url: string; + /** + * Line offset of the script within the resource with given URL (for script tags). + */ + startLine: number; + /** + * Column offset of the script within the resource with given URL. + */ + startColumn: number; + /** + * Last line of the script. + */ + endLine: number; + /** + * Length of the last line of the script. + */ + endColumn: number; + /** + * Specifies script creation context. + */ + executionContextId: Runtime.ExecutionContextId; + /** + * Content hash of the script. + */ + hash: string; + /** + * Embedder-specific auxiliary data. + */ + executionContextAuxData?: {} | undefined; + /** + * True, if this script is generated as a result of the live edit operation. + * @experimental + */ + isLiveEdit?: boolean | undefined; + /** + * URL of source map associated with script (if any). + */ + sourceMapURL?: string | undefined; + /** + * True, if this script has sourceURL. + */ + hasSourceURL?: boolean | undefined; + /** + * True, if this script is ES6 module. + */ + isModule?: boolean | undefined; + /** + * This script length. + */ + length?: number | undefined; + /** + * JavaScript top stack frame of where the script parsed event was triggered if available. + * @experimental + */ + stackTrace?: Runtime.StackTrace | undefined; + } + interface ScriptFailedToParseEventDataType { + /** + * Identifier of the script parsed. + */ + scriptId: Runtime.ScriptId; + /** + * URL or name of the script parsed (if any). + */ + url: string; + /** + * Line offset of the script within the resource with given URL (for script tags). + */ + startLine: number; + /** + * Column offset of the script within the resource with given URL. + */ + startColumn: number; + /** + * Last line of the script. + */ + endLine: number; + /** + * Length of the last line of the script. + */ + endColumn: number; + /** + * Specifies script creation context. + */ + executionContextId: Runtime.ExecutionContextId; + /** + * Content hash of the script. + */ + hash: string; + /** + * Embedder-specific auxiliary data. + */ + executionContextAuxData?: {} | undefined; + /** + * URL of source map associated with script (if any). + */ + sourceMapURL?: string | undefined; + /** + * True, if this script has sourceURL. + */ + hasSourceURL?: boolean | undefined; + /** + * True, if this script is ES6 module. + */ + isModule?: boolean | undefined; + /** + * This script length. + */ + length?: number | undefined; + /** + * JavaScript top stack frame of where the script parsed event was triggered if available. + * @experimental + */ + stackTrace?: Runtime.StackTrace | undefined; + } + interface BreakpointResolvedEventDataType { + /** + * Breakpoint unique identifier. + */ + breakpointId: BreakpointId; + /** + * Actual breakpoint location. + */ + location: Location; + } + interface PausedEventDataType { + /** + * Call stack the virtual machine stopped on. + */ + callFrames: CallFrame[]; + /** + * Pause reason. + */ + reason: string; + /** + * Object containing break-specific auxiliary properties. + */ + data?: {} | undefined; + /** + * Hit breakpoints IDs + */ + hitBreakpoints?: string[] | undefined; + /** + * Async stack trace, if any. + */ + asyncStackTrace?: Runtime.StackTrace | undefined; + /** + * Async stack trace, if any. + * @experimental + */ + asyncStackTraceId?: Runtime.StackTraceId | undefined; + /** + * Just scheduled async call will have this stack trace as parent stack during async execution. This field is available only after Debugger.stepInto call with breakOnAsynCall flag. + * @experimental + */ + asyncCallStackTraceId?: Runtime.StackTraceId | undefined; + } + } + namespace Console { + /** + * Console message. + */ + interface ConsoleMessage { + /** + * Message source. + */ + source: string; + /** + * Message severity. + */ + level: string; + /** + * Message text. + */ + text: string; + /** + * URL of the message origin. + */ + url?: string | undefined; + /** + * Line number in the resource that generated this message (1-based). + */ + line?: number | undefined; + /** + * Column number in the resource that generated this message (1-based). + */ + column?: number | undefined; + } + interface MessageAddedEventDataType { + /** + * Console message that has been added. + */ + message: ConsoleMessage; + } + } + namespace Profiler { + /** + * Profile node. Holds callsite information, execution statistics and child nodes. + */ + interface ProfileNode { + /** + * Unique id of the node. + */ + id: number; + /** + * Function location. + */ + callFrame: Runtime.CallFrame; + /** + * Number of samples where this node was on top of the call stack. + */ + hitCount?: number | undefined; + /** + * Child node ids. + */ + children?: number[] | undefined; + /** + * The reason of being not optimized. The function may be deoptimized or marked as don't optimize. + */ + deoptReason?: string | undefined; + /** + * An array of source position ticks. + */ + positionTicks?: PositionTickInfo[] | undefined; + } + /** + * Profile. + */ + interface Profile { + /** + * The list of profile nodes. First item is the root node. + */ + nodes: ProfileNode[]; + /** + * Profiling start timestamp in microseconds. + */ + startTime: number; + /** + * Profiling end timestamp in microseconds. + */ + endTime: number; + /** + * Ids of samples top nodes. + */ + samples?: number[] | undefined; + /** + * Time intervals between adjacent samples in microseconds. The first delta is relative to the profile startTime. + */ + timeDeltas?: number[] | undefined; + } + /** + * Specifies a number of samples attributed to a certain source position. + */ + interface PositionTickInfo { + /** + * Source line number (1-based). + */ + line: number; + /** + * Number of samples attributed to the source line. + */ + ticks: number; + } + /** + * Coverage data for a source range. + */ + interface CoverageRange { + /** + * JavaScript script source offset for the range start. + */ + startOffset: number; + /** + * JavaScript script source offset for the range end. + */ + endOffset: number; + /** + * Collected execution count of the source range. + */ + count: number; + } + /** + * Coverage data for a JavaScript function. + */ + interface FunctionCoverage { + /** + * JavaScript function name. + */ + functionName: string; + /** + * Source ranges inside the function with coverage data. + */ + ranges: CoverageRange[]; + /** + * Whether coverage data for this function has block granularity. + */ + isBlockCoverage: boolean; + } + /** + * Coverage data for a JavaScript script. + */ + interface ScriptCoverage { + /** + * JavaScript script id. + */ + scriptId: Runtime.ScriptId; + /** + * JavaScript script name or url. + */ + url: string; + /** + * Functions contained in the script that has coverage data. + */ + functions: FunctionCoverage[]; + } + /** + * Describes a type collected during runtime. + * @experimental + */ + interface TypeObject { + /** + * Name of a type collected with type profiling. + */ + name: string; + } + /** + * Source offset and types for a parameter or return value. + * @experimental + */ + interface TypeProfileEntry { + /** + * Source offset of the parameter or end of function for return values. + */ + offset: number; + /** + * The types for this parameter or return value. + */ + types: TypeObject[]; + } + /** + * Type profile data collected during runtime for a JavaScript script. + * @experimental + */ + interface ScriptTypeProfile { + /** + * JavaScript script id. + */ + scriptId: Runtime.ScriptId; + /** + * JavaScript script name or url. + */ + url: string; + /** + * Type profile entries for parameters and return values of the functions in the script. + */ + entries: TypeProfileEntry[]; + } + interface SetSamplingIntervalParameterType { + /** + * New sampling interval in microseconds. + */ + interval: number; + } + interface StartPreciseCoverageParameterType { + /** + * Collect accurate call counts beyond simple 'covered' or 'not covered'. + */ + callCount?: boolean | undefined; + /** + * Collect block-based coverage. + */ + detailed?: boolean | undefined; + } + interface StopReturnType { + /** + * Recorded profile. + */ + profile: Profile; + } + interface TakePreciseCoverageReturnType { + /** + * Coverage data for the current isolate. + */ + result: ScriptCoverage[]; + } + interface GetBestEffortCoverageReturnType { + /** + * Coverage data for the current isolate. + */ + result: ScriptCoverage[]; + } + interface TakeTypeProfileReturnType { + /** + * Type profile for all scripts since startTypeProfile() was turned on. + */ + result: ScriptTypeProfile[]; + } + interface ConsoleProfileStartedEventDataType { + id: string; + /** + * Location of console.profile(). + */ + location: Debugger.Location; + /** + * Profile title passed as an argument to console.profile(). + */ + title?: string | undefined; + } + interface ConsoleProfileFinishedEventDataType { + id: string; + /** + * Location of console.profileEnd(). + */ + location: Debugger.Location; + profile: Profile; + /** + * Profile title passed as an argument to console.profile(). + */ + title?: string | undefined; + } + } + namespace HeapProfiler { + /** + * Heap snapshot object id. + */ + type HeapSnapshotObjectId = string; + /** + * Sampling Heap Profile node. Holds callsite information, allocation statistics and child nodes. + */ + interface SamplingHeapProfileNode { + /** + * Function location. + */ + callFrame: Runtime.CallFrame; + /** + * Allocations size in bytes for the node excluding children. + */ + selfSize: number; + /** + * Child nodes. + */ + children: SamplingHeapProfileNode[]; + } + /** + * Profile. + */ + interface SamplingHeapProfile { + head: SamplingHeapProfileNode; + } + interface StartTrackingHeapObjectsParameterType { + trackAllocations?: boolean | undefined; + } + interface StopTrackingHeapObjectsParameterType { + /** + * If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken when the tracking is stopped. + */ + reportProgress?: boolean | undefined; + } + interface TakeHeapSnapshotParameterType { + /** + * If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken. + */ + reportProgress?: boolean | undefined; + } + interface GetObjectByHeapObjectIdParameterType { + objectId: HeapSnapshotObjectId; + /** + * Symbolic group name that can be used to release multiple objects. + */ + objectGroup?: string | undefined; + } + interface AddInspectedHeapObjectParameterType { + /** + * Heap snapshot object id to be accessible by means of $x command line API. + */ + heapObjectId: HeapSnapshotObjectId; + } + interface GetHeapObjectIdParameterType { + /** + * Identifier of the object to get heap object id for. + */ + objectId: Runtime.RemoteObjectId; + } + interface StartSamplingParameterType { + /** + * Average sample interval in bytes. Poisson distribution is used for the intervals. The default value is 32768 bytes. + */ + samplingInterval?: number | undefined; + } + interface GetObjectByHeapObjectIdReturnType { + /** + * Evaluation result. + */ + result: Runtime.RemoteObject; + } + interface GetHeapObjectIdReturnType { + /** + * Id of the heap snapshot object corresponding to the passed remote object id. + */ + heapSnapshotObjectId: HeapSnapshotObjectId; + } + interface StopSamplingReturnType { + /** + * Recorded sampling heap profile. + */ + profile: SamplingHeapProfile; + } + interface GetSamplingProfileReturnType { + /** + * Return the sampling profile being collected. + */ + profile: SamplingHeapProfile; + } + interface AddHeapSnapshotChunkEventDataType { + chunk: string; + } + interface ReportHeapSnapshotProgressEventDataType { + done: number; + total: number; + finished?: boolean | undefined; + } + interface LastSeenObjectIdEventDataType { + lastSeenObjectId: number; + timestamp: number; + } + interface HeapStatsUpdateEventDataType { + /** + * An array of triplets. Each triplet describes a fragment. The first integer is the fragment index, the second integer is a total count of objects for the fragment, the third integer is a total size of the objects for the fragment. + */ + statsUpdate: number[]; + } + } + namespace NodeTracing { + interface TraceConfig { + /** + * Controls how the trace buffer stores data. + */ + recordMode?: string | undefined; + /** + * Included category filters. + */ + includedCategories: string[]; + } + interface StartParameterType { + traceConfig: TraceConfig; + } + interface GetCategoriesReturnType { + /** + * A list of supported tracing categories. + */ + categories: string[]; + } + interface DataCollectedEventDataType { + value: Array<{}>; + } + } + namespace NodeWorker { + type WorkerID = string; + /** + * Unique identifier of attached debugging session. + */ + type SessionID = string; + interface WorkerInfo { + workerId: WorkerID; + type: string; + title: string; + url: string; + } + interface SendMessageToWorkerParameterType { + message: string; + /** + * Identifier of the session. + */ + sessionId: SessionID; + } + interface EnableParameterType { + /** + * Whether to new workers should be paused until the frontend sends `Runtime.runIfWaitingForDebugger` + * message to run them. + */ + waitForDebuggerOnStart: boolean; + } + interface DetachParameterType { + sessionId: SessionID; + } + interface AttachedToWorkerEventDataType { + /** + * Identifier assigned to the session used to send/receive messages. + */ + sessionId: SessionID; + workerInfo: WorkerInfo; + waitingForDebugger: boolean; + } + interface DetachedFromWorkerEventDataType { + /** + * Detached session identifier. + */ + sessionId: SessionID; + } + interface ReceivedMessageFromWorkerEventDataType { + /** + * Identifier of a session which sends a message. + */ + sessionId: SessionID; + message: string; + } + } + namespace NodeRuntime { + interface NotifyWhenWaitingForDisconnectParameterType { + enabled: boolean; + } + } + /** + * The `inspector.Session` is used for dispatching messages to the V8 inspector + * back-end and receiving message responses and notifications. + */ + class Session extends EventEmitter { + /** + * Create a new instance of the inspector.Session class. + * The inspector session needs to be connected through session.connect() before the messages can be dispatched to the inspector backend. + */ + constructor(); + /** + * Connects a session to the inspector back-end. + * @since v8.0.0 + */ + connect(): void; + /** + * Immediately close the session. All pending message callbacks will be called + * with an error. `session.connect()` will need to be called to be able to send + * messages again. Reconnected session will lose all inspector state, such as + * enabled agents or configured breakpoints. + * @since v8.0.0 + */ + disconnect(): void; + /** + * Posts a message to the inspector back-end. `callback` will be notified when + * a response is received. `callback` is a function that accepts two optional + * arguments: error and message-specific result. + * + * ```js + * session.post('Runtime.evaluate', { expression: '2 + 2' }, + * (error, { result }) => console.log(result)); + * // Output: { type: 'number', value: 4, description: '4' } + * ``` + * + * The latest version of the V8 inspector protocol is published on the [Chrome DevTools Protocol Viewer](https://chromedevtools.github.io/devtools-protocol/v8/). + * + * Node.js inspector supports all the Chrome DevTools Protocol domains declared + * by V8\. Chrome DevTools Protocol domain provides an interface for interacting + * with one of the runtime agents used to inspect the application state and listen + * to the run-time events. + * + * ## Example usage + * + * Apart from the debugger, various V8 Profilers are available through the DevTools + * protocol. + * @since v8.0.0 + */ + post(method: string, params?: {}, callback?: (err: Error | null, params?: {}) => void): void; + post(method: string, callback?: (err: Error | null, params?: {}) => void): void; + /** + * Returns supported domains. + */ + post(method: 'Schema.getDomains', callback?: (err: Error | null, params: Schema.GetDomainsReturnType) => void): void; + /** + * Evaluates expression on global object. + */ + post(method: 'Runtime.evaluate', params?: Runtime.EvaluateParameterType, callback?: (err: Error | null, params: Runtime.EvaluateReturnType) => void): void; + post(method: 'Runtime.evaluate', callback?: (err: Error | null, params: Runtime.EvaluateReturnType) => void): void; + /** + * Add handler to promise with given promise object id. + */ + post(method: 'Runtime.awaitPromise', params?: Runtime.AwaitPromiseParameterType, callback?: (err: Error | null, params: Runtime.AwaitPromiseReturnType) => void): void; + post(method: 'Runtime.awaitPromise', callback?: (err: Error | null, params: Runtime.AwaitPromiseReturnType) => void): void; + /** + * Calls function with given declaration on the given object. Object group of the result is inherited from the target object. + */ + post(method: 'Runtime.callFunctionOn', params?: Runtime.CallFunctionOnParameterType, callback?: (err: Error | null, params: Runtime.CallFunctionOnReturnType) => void): void; + post(method: 'Runtime.callFunctionOn', callback?: (err: Error | null, params: Runtime.CallFunctionOnReturnType) => void): void; + /** + * Returns properties of a given object. Object group of the result is inherited from the target object. + */ + post(method: 'Runtime.getProperties', params?: Runtime.GetPropertiesParameterType, callback?: (err: Error | null, params: Runtime.GetPropertiesReturnType) => void): void; + post(method: 'Runtime.getProperties', callback?: (err: Error | null, params: Runtime.GetPropertiesReturnType) => void): void; + /** + * Releases remote object with given id. + */ + post(method: 'Runtime.releaseObject', params?: Runtime.ReleaseObjectParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Runtime.releaseObject', callback?: (err: Error | null) => void): void; + /** + * Releases all remote objects that belong to a given group. + */ + post(method: 'Runtime.releaseObjectGroup', params?: Runtime.ReleaseObjectGroupParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Runtime.releaseObjectGroup', callback?: (err: Error | null) => void): void; + /** + * Tells inspected instance to run if it was waiting for debugger to attach. + */ + post(method: 'Runtime.runIfWaitingForDebugger', callback?: (err: Error | null) => void): void; + /** + * Enables reporting of execution contexts creation by means of executionContextCreated event. When the reporting gets enabled the event will be sent immediately for each existing execution context. + */ + post(method: 'Runtime.enable', callback?: (err: Error | null) => void): void; + /** + * Disables reporting of execution contexts creation. + */ + post(method: 'Runtime.disable', callback?: (err: Error | null) => void): void; + /** + * Discards collected exceptions and console API calls. + */ + post(method: 'Runtime.discardConsoleEntries', callback?: (err: Error | null) => void): void; + /** + * @experimental + */ + post(method: 'Runtime.setCustomObjectFormatterEnabled', params?: Runtime.SetCustomObjectFormatterEnabledParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Runtime.setCustomObjectFormatterEnabled', callback?: (err: Error | null) => void): void; + /** + * Compiles expression. + */ + post(method: 'Runtime.compileScript', params?: Runtime.CompileScriptParameterType, callback?: (err: Error | null, params: Runtime.CompileScriptReturnType) => void): void; + post(method: 'Runtime.compileScript', callback?: (err: Error | null, params: Runtime.CompileScriptReturnType) => void): void; + /** + * Runs script with given id in a given context. + */ + post(method: 'Runtime.runScript', params?: Runtime.RunScriptParameterType, callback?: (err: Error | null, params: Runtime.RunScriptReturnType) => void): void; + post(method: 'Runtime.runScript', callback?: (err: Error | null, params: Runtime.RunScriptReturnType) => void): void; + post(method: 'Runtime.queryObjects', params?: Runtime.QueryObjectsParameterType, callback?: (err: Error | null, params: Runtime.QueryObjectsReturnType) => void): void; + post(method: 'Runtime.queryObjects', callback?: (err: Error | null, params: Runtime.QueryObjectsReturnType) => void): void; + /** + * Returns all let, const and class variables from global scope. + */ + post( + method: 'Runtime.globalLexicalScopeNames', + params?: Runtime.GlobalLexicalScopeNamesParameterType, + callback?: (err: Error | null, params: Runtime.GlobalLexicalScopeNamesReturnType) => void + ): void; + post(method: 'Runtime.globalLexicalScopeNames', callback?: (err: Error | null, params: Runtime.GlobalLexicalScopeNamesReturnType) => void): void; + /** + * Enables debugger for the given page. Clients should not assume that the debugging has been enabled until the result for this command is received. + */ + post(method: 'Debugger.enable', callback?: (err: Error | null, params: Debugger.EnableReturnType) => void): void; + /** + * Disables debugger for given page. + */ + post(method: 'Debugger.disable', callback?: (err: Error | null) => void): void; + /** + * Activates / deactivates all breakpoints on the page. + */ + post(method: 'Debugger.setBreakpointsActive', params?: Debugger.SetBreakpointsActiveParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.setBreakpointsActive', callback?: (err: Error | null) => void): void; + /** + * Makes page not interrupt on any pauses (breakpoint, exception, dom exception etc). + */ + post(method: 'Debugger.setSkipAllPauses', params?: Debugger.SetSkipAllPausesParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.setSkipAllPauses', callback?: (err: Error | null) => void): void; + /** + * Sets JavaScript breakpoint at given location specified either by URL or URL regex. Once this command is issued, all existing parsed scripts will have breakpoints resolved and returned in locations property. Further matching script parsing will result in subsequent breakpointResolved events issued. This logical breakpoint will survive page reloads. + */ + post(method: 'Debugger.setBreakpointByUrl', params?: Debugger.SetBreakpointByUrlParameterType, callback?: (err: Error | null, params: Debugger.SetBreakpointByUrlReturnType) => void): void; + post(method: 'Debugger.setBreakpointByUrl', callback?: (err: Error | null, params: Debugger.SetBreakpointByUrlReturnType) => void): void; + /** + * Sets JavaScript breakpoint at a given location. + */ + post(method: 'Debugger.setBreakpoint', params?: Debugger.SetBreakpointParameterType, callback?: (err: Error | null, params: Debugger.SetBreakpointReturnType) => void): void; + post(method: 'Debugger.setBreakpoint', callback?: (err: Error | null, params: Debugger.SetBreakpointReturnType) => void): void; + /** + * Removes JavaScript breakpoint. + */ + post(method: 'Debugger.removeBreakpoint', params?: Debugger.RemoveBreakpointParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.removeBreakpoint', callback?: (err: Error | null) => void): void; + /** + * Returns possible locations for breakpoint. scriptId in start and end range locations should be the same. + */ + post( + method: 'Debugger.getPossibleBreakpoints', + params?: Debugger.GetPossibleBreakpointsParameterType, + callback?: (err: Error | null, params: Debugger.GetPossibleBreakpointsReturnType) => void + ): void; + post(method: 'Debugger.getPossibleBreakpoints', callback?: (err: Error | null, params: Debugger.GetPossibleBreakpointsReturnType) => void): void; + /** + * Continues execution until specific location is reached. + */ + post(method: 'Debugger.continueToLocation', params?: Debugger.ContinueToLocationParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.continueToLocation', callback?: (err: Error | null) => void): void; + /** + * @experimental + */ + post(method: 'Debugger.pauseOnAsyncCall', params?: Debugger.PauseOnAsyncCallParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.pauseOnAsyncCall', callback?: (err: Error | null) => void): void; + /** + * Steps over the statement. + */ + post(method: 'Debugger.stepOver', callback?: (err: Error | null) => void): void; + /** + * Steps into the function call. + */ + post(method: 'Debugger.stepInto', params?: Debugger.StepIntoParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.stepInto', callback?: (err: Error | null) => void): void; + /** + * Steps out of the function call. + */ + post(method: 'Debugger.stepOut', callback?: (err: Error | null) => void): void; + /** + * Stops on the next JavaScript statement. + */ + post(method: 'Debugger.pause', callback?: (err: Error | null) => void): void; + /** + * This method is deprecated - use Debugger.stepInto with breakOnAsyncCall and Debugger.pauseOnAsyncTask instead. Steps into next scheduled async task if any is scheduled before next pause. Returns success when async task is actually scheduled, returns error if no task were scheduled or another scheduleStepIntoAsync was called. + * @experimental + */ + post(method: 'Debugger.scheduleStepIntoAsync', callback?: (err: Error | null) => void): void; + /** + * Resumes JavaScript execution. + */ + post(method: 'Debugger.resume', callback?: (err: Error | null) => void): void; + /** + * Returns stack trace with given stackTraceId. + * @experimental + */ + post(method: 'Debugger.getStackTrace', params?: Debugger.GetStackTraceParameterType, callback?: (err: Error | null, params: Debugger.GetStackTraceReturnType) => void): void; + post(method: 'Debugger.getStackTrace', callback?: (err: Error | null, params: Debugger.GetStackTraceReturnType) => void): void; + /** + * Searches for given string in script content. + */ + post(method: 'Debugger.searchInContent', params?: Debugger.SearchInContentParameterType, callback?: (err: Error | null, params: Debugger.SearchInContentReturnType) => void): void; + post(method: 'Debugger.searchInContent', callback?: (err: Error | null, params: Debugger.SearchInContentReturnType) => void): void; + /** + * Edits JavaScript source live. + */ + post(method: 'Debugger.setScriptSource', params?: Debugger.SetScriptSourceParameterType, callback?: (err: Error | null, params: Debugger.SetScriptSourceReturnType) => void): void; + post(method: 'Debugger.setScriptSource', callback?: (err: Error | null, params: Debugger.SetScriptSourceReturnType) => void): void; + /** + * Restarts particular call frame from the beginning. + */ + post(method: 'Debugger.restartFrame', params?: Debugger.RestartFrameParameterType, callback?: (err: Error | null, params: Debugger.RestartFrameReturnType) => void): void; + post(method: 'Debugger.restartFrame', callback?: (err: Error | null, params: Debugger.RestartFrameReturnType) => void): void; + /** + * Returns source for the script with given id. + */ + post(method: 'Debugger.getScriptSource', params?: Debugger.GetScriptSourceParameterType, callback?: (err: Error | null, params: Debugger.GetScriptSourceReturnType) => void): void; + post(method: 'Debugger.getScriptSource', callback?: (err: Error | null, params: Debugger.GetScriptSourceReturnType) => void): void; + /** + * Defines pause on exceptions state. Can be set to stop on all exceptions, uncaught exceptions or no exceptions. Initial pause on exceptions state is none. + */ + post(method: 'Debugger.setPauseOnExceptions', params?: Debugger.SetPauseOnExceptionsParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.setPauseOnExceptions', callback?: (err: Error | null) => void): void; + /** + * Evaluates expression on a given call frame. + */ + post(method: 'Debugger.evaluateOnCallFrame', params?: Debugger.EvaluateOnCallFrameParameterType, callback?: (err: Error | null, params: Debugger.EvaluateOnCallFrameReturnType) => void): void; + post(method: 'Debugger.evaluateOnCallFrame', callback?: (err: Error | null, params: Debugger.EvaluateOnCallFrameReturnType) => void): void; + /** + * Changes value of variable in a callframe. Object-based scopes are not supported and must be mutated manually. + */ + post(method: 'Debugger.setVariableValue', params?: Debugger.SetVariableValueParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.setVariableValue', callback?: (err: Error | null) => void): void; + /** + * Changes return value in top frame. Available only at return break position. + * @experimental + */ + post(method: 'Debugger.setReturnValue', params?: Debugger.SetReturnValueParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.setReturnValue', callback?: (err: Error | null) => void): void; + /** + * Enables or disables async call stacks tracking. + */ + post(method: 'Debugger.setAsyncCallStackDepth', params?: Debugger.SetAsyncCallStackDepthParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.setAsyncCallStackDepth', callback?: (err: Error | null) => void): void; + /** + * Replace previous blackbox patterns with passed ones. Forces backend to skip stepping/pausing in scripts with url matching one of the patterns. VM will try to leave blackboxed script by performing 'step in' several times, finally resorting to 'step out' if unsuccessful. + * @experimental + */ + post(method: 'Debugger.setBlackboxPatterns', params?: Debugger.SetBlackboxPatternsParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.setBlackboxPatterns', callback?: (err: Error | null) => void): void; + /** + * Makes backend skip steps in the script in blackboxed ranges. VM will try leave blacklisted scripts by performing 'step in' several times, finally resorting to 'step out' if unsuccessful. Positions array contains positions where blackbox state is changed. First interval isn't blackboxed. Array should be sorted. + * @experimental + */ + post(method: 'Debugger.setBlackboxedRanges', params?: Debugger.SetBlackboxedRangesParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.setBlackboxedRanges', callback?: (err: Error | null) => void): void; + /** + * Enables console domain, sends the messages collected so far to the client by means of the messageAdded notification. + */ + post(method: 'Console.enable', callback?: (err: Error | null) => void): void; + /** + * Disables console domain, prevents further console messages from being reported to the client. + */ + post(method: 'Console.disable', callback?: (err: Error | null) => void): void; + /** + * Does nothing. + */ + post(method: 'Console.clearMessages', callback?: (err: Error | null) => void): void; + post(method: 'Profiler.enable', callback?: (err: Error | null) => void): void; + post(method: 'Profiler.disable', callback?: (err: Error | null) => void): void; + /** + * Changes CPU profiler sampling interval. Must be called before CPU profiles recording started. + */ + post(method: 'Profiler.setSamplingInterval', params?: Profiler.SetSamplingIntervalParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Profiler.setSamplingInterval', callback?: (err: Error | null) => void): void; + post(method: 'Profiler.start', callback?: (err: Error | null) => void): void; + post(method: 'Profiler.stop', callback?: (err: Error | null, params: Profiler.StopReturnType) => void): void; + /** + * Enable precise code coverage. Coverage data for JavaScript executed before enabling precise code coverage may be incomplete. Enabling prevents running optimized code and resets execution counters. + */ + post(method: 'Profiler.startPreciseCoverage', params?: Profiler.StartPreciseCoverageParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Profiler.startPreciseCoverage', callback?: (err: Error | null) => void): void; + /** + * Disable precise code coverage. Disabling releases unnecessary execution count records and allows executing optimized code. + */ + post(method: 'Profiler.stopPreciseCoverage', callback?: (err: Error | null) => void): void; + /** + * Collect coverage data for the current isolate, and resets execution counters. Precise code coverage needs to have started. + */ + post(method: 'Profiler.takePreciseCoverage', callback?: (err: Error | null, params: Profiler.TakePreciseCoverageReturnType) => void): void; + /** + * Collect coverage data for the current isolate. The coverage data may be incomplete due to garbage collection. + */ + post(method: 'Profiler.getBestEffortCoverage', callback?: (err: Error | null, params: Profiler.GetBestEffortCoverageReturnType) => void): void; + /** + * Enable type profile. + * @experimental + */ + post(method: 'Profiler.startTypeProfile', callback?: (err: Error | null) => void): void; + /** + * Disable type profile. Disabling releases type profile data collected so far. + * @experimental + */ + post(method: 'Profiler.stopTypeProfile', callback?: (err: Error | null) => void): void; + /** + * Collect type profile. + * @experimental + */ + post(method: 'Profiler.takeTypeProfile', callback?: (err: Error | null, params: Profiler.TakeTypeProfileReturnType) => void): void; + post(method: 'HeapProfiler.enable', callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.disable', callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.startTrackingHeapObjects', params?: HeapProfiler.StartTrackingHeapObjectsParameterType, callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.startTrackingHeapObjects', callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.stopTrackingHeapObjects', params?: HeapProfiler.StopTrackingHeapObjectsParameterType, callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.stopTrackingHeapObjects', callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.takeHeapSnapshot', params?: HeapProfiler.TakeHeapSnapshotParameterType, callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.takeHeapSnapshot', callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.collectGarbage', callback?: (err: Error | null) => void): void; + post( + method: 'HeapProfiler.getObjectByHeapObjectId', + params?: HeapProfiler.GetObjectByHeapObjectIdParameterType, + callback?: (err: Error | null, params: HeapProfiler.GetObjectByHeapObjectIdReturnType) => void + ): void; + post(method: 'HeapProfiler.getObjectByHeapObjectId', callback?: (err: Error | null, params: HeapProfiler.GetObjectByHeapObjectIdReturnType) => void): void; + /** + * Enables console to refer to the node with given id via $x (see Command Line API for more details $x functions). + */ + post(method: 'HeapProfiler.addInspectedHeapObject', params?: HeapProfiler.AddInspectedHeapObjectParameterType, callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.addInspectedHeapObject', callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.getHeapObjectId', params?: HeapProfiler.GetHeapObjectIdParameterType, callback?: (err: Error | null, params: HeapProfiler.GetHeapObjectIdReturnType) => void): void; + post(method: 'HeapProfiler.getHeapObjectId', callback?: (err: Error | null, params: HeapProfiler.GetHeapObjectIdReturnType) => void): void; + post(method: 'HeapProfiler.startSampling', params?: HeapProfiler.StartSamplingParameterType, callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.startSampling', callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.stopSampling', callback?: (err: Error | null, params: HeapProfiler.StopSamplingReturnType) => void): void; + post(method: 'HeapProfiler.getSamplingProfile', callback?: (err: Error | null, params: HeapProfiler.GetSamplingProfileReturnType) => void): void; + /** + * Gets supported tracing categories. + */ + post(method: 'NodeTracing.getCategories', callback?: (err: Error | null, params: NodeTracing.GetCategoriesReturnType) => void): void; + /** + * Start trace events collection. + */ + post(method: 'NodeTracing.start', params?: NodeTracing.StartParameterType, callback?: (err: Error | null) => void): void; + post(method: 'NodeTracing.start', callback?: (err: Error | null) => void): void; + /** + * Stop trace events collection. Remaining collected events will be sent as a sequence of + * dataCollected events followed by tracingComplete event. + */ + post(method: 'NodeTracing.stop', callback?: (err: Error | null) => void): void; + /** + * Sends protocol message over session with given id. + */ + post(method: 'NodeWorker.sendMessageToWorker', params?: NodeWorker.SendMessageToWorkerParameterType, callback?: (err: Error | null) => void): void; + post(method: 'NodeWorker.sendMessageToWorker', callback?: (err: Error | null) => void): void; + /** + * Instructs the inspector to attach to running workers. Will also attach to new workers + * as they start + */ + post(method: 'NodeWorker.enable', params?: NodeWorker.EnableParameterType, callback?: (err: Error | null) => void): void; + post(method: 'NodeWorker.enable', callback?: (err: Error | null) => void): void; + /** + * Detaches from all running workers and disables attaching to new workers as they are started. + */ + post(method: 'NodeWorker.disable', callback?: (err: Error | null) => void): void; + /** + * Detached from the worker with given sessionId. + */ + post(method: 'NodeWorker.detach', params?: NodeWorker.DetachParameterType, callback?: (err: Error | null) => void): void; + post(method: 'NodeWorker.detach', callback?: (err: Error | null) => void): void; + /** + * Enable the `NodeRuntime.waitingForDisconnect`. + */ + post(method: 'NodeRuntime.notifyWhenWaitingForDisconnect', params?: NodeRuntime.NotifyWhenWaitingForDisconnectParameterType, callback?: (err: Error | null) => void): void; + post(method: 'NodeRuntime.notifyWhenWaitingForDisconnect', callback?: (err: Error | null) => void): void; + // Events + addListener(event: string, listener: (...args: any[]) => void): this; + /** + * Emitted when any notification from the V8 Inspector is received. + */ + addListener(event: 'inspectorNotification', listener: (message: InspectorNotification<{}>) => void): this; + /** + * Issued when new execution context is created. + */ + addListener(event: 'Runtime.executionContextCreated', listener: (message: InspectorNotification) => void): this; + /** + * Issued when execution context is destroyed. + */ + addListener(event: 'Runtime.executionContextDestroyed', listener: (message: InspectorNotification) => void): this; + /** + * Issued when all executionContexts were cleared in browser + */ + addListener(event: 'Runtime.executionContextsCleared', listener: () => void): this; + /** + * Issued when exception was thrown and unhandled. + */ + addListener(event: 'Runtime.exceptionThrown', listener: (message: InspectorNotification) => void): this; + /** + * Issued when unhandled exception was revoked. + */ + addListener(event: 'Runtime.exceptionRevoked', listener: (message: InspectorNotification) => void): this; + /** + * Issued when console API was called. + */ + addListener(event: 'Runtime.consoleAPICalled', listener: (message: InspectorNotification) => void): this; + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + addListener(event: 'Runtime.inspectRequested', listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + addListener(event: 'Debugger.scriptParsed', listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine fails to parse the script. + */ + addListener(event: 'Debugger.scriptFailedToParse', listener: (message: InspectorNotification) => void): this; + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + addListener(event: 'Debugger.breakpointResolved', listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + addListener(event: 'Debugger.paused', listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine resumed execution. + */ + addListener(event: 'Debugger.resumed', listener: () => void): this; + /** + * Issued when new console message is added. + */ + addListener(event: 'Console.messageAdded', listener: (message: InspectorNotification) => void): this; + /** + * Sent when new profile recording is started using console.profile() call. + */ + addListener(event: 'Profiler.consoleProfileStarted', listener: (message: InspectorNotification) => void): this; + addListener(event: 'Profiler.consoleProfileFinished', listener: (message: InspectorNotification) => void): this; + addListener(event: 'HeapProfiler.addHeapSnapshotChunk', listener: (message: InspectorNotification) => void): this; + addListener(event: 'HeapProfiler.resetProfiles', listener: () => void): this; + addListener(event: 'HeapProfiler.reportHeapSnapshotProgress', listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + addListener(event: 'HeapProfiler.lastSeenObjectId', listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + addListener(event: 'HeapProfiler.heapStatsUpdate', listener: (message: InspectorNotification) => void): this; + /** + * Contains an bucket of collected trace events. + */ + addListener(event: 'NodeTracing.dataCollected', listener: (message: InspectorNotification) => void): this; + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + addListener(event: 'NodeTracing.tracingComplete', listener: () => void): this; + /** + * Issued when attached to a worker. + */ + addListener(event: 'NodeWorker.attachedToWorker', listener: (message: InspectorNotification) => void): this; + /** + * Issued when detached from the worker. + */ + addListener(event: 'NodeWorker.detachedFromWorker', listener: (message: InspectorNotification) => void): this; + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + addListener(event: 'NodeWorker.receivedMessageFromWorker', listener: (message: InspectorNotification) => void): this; + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + addListener(event: 'NodeRuntime.waitingForDisconnect', listener: () => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'inspectorNotification', message: InspectorNotification<{}>): boolean; + emit(event: 'Runtime.executionContextCreated', message: InspectorNotification): boolean; + emit(event: 'Runtime.executionContextDestroyed', message: InspectorNotification): boolean; + emit(event: 'Runtime.executionContextsCleared'): boolean; + emit(event: 'Runtime.exceptionThrown', message: InspectorNotification): boolean; + emit(event: 'Runtime.exceptionRevoked', message: InspectorNotification): boolean; + emit(event: 'Runtime.consoleAPICalled', message: InspectorNotification): boolean; + emit(event: 'Runtime.inspectRequested', message: InspectorNotification): boolean; + emit(event: 'Debugger.scriptParsed', message: InspectorNotification): boolean; + emit(event: 'Debugger.scriptFailedToParse', message: InspectorNotification): boolean; + emit(event: 'Debugger.breakpointResolved', message: InspectorNotification): boolean; + emit(event: 'Debugger.paused', message: InspectorNotification): boolean; + emit(event: 'Debugger.resumed'): boolean; + emit(event: 'Console.messageAdded', message: InspectorNotification): boolean; + emit(event: 'Profiler.consoleProfileStarted', message: InspectorNotification): boolean; + emit(event: 'Profiler.consoleProfileFinished', message: InspectorNotification): boolean; + emit(event: 'HeapProfiler.addHeapSnapshotChunk', message: InspectorNotification): boolean; + emit(event: 'HeapProfiler.resetProfiles'): boolean; + emit(event: 'HeapProfiler.reportHeapSnapshotProgress', message: InspectorNotification): boolean; + emit(event: 'HeapProfiler.lastSeenObjectId', message: InspectorNotification): boolean; + emit(event: 'HeapProfiler.heapStatsUpdate', message: InspectorNotification): boolean; + emit(event: 'NodeTracing.dataCollected', message: InspectorNotification): boolean; + emit(event: 'NodeTracing.tracingComplete'): boolean; + emit(event: 'NodeWorker.attachedToWorker', message: InspectorNotification): boolean; + emit(event: 'NodeWorker.detachedFromWorker', message: InspectorNotification): boolean; + emit(event: 'NodeWorker.receivedMessageFromWorker', message: InspectorNotification): boolean; + emit(event: 'NodeRuntime.waitingForDisconnect'): boolean; + on(event: string, listener: (...args: any[]) => void): this; + /** + * Emitted when any notification from the V8 Inspector is received. + */ + on(event: 'inspectorNotification', listener: (message: InspectorNotification<{}>) => void): this; + /** + * Issued when new execution context is created. + */ + on(event: 'Runtime.executionContextCreated', listener: (message: InspectorNotification) => void): this; + /** + * Issued when execution context is destroyed. + */ + on(event: 'Runtime.executionContextDestroyed', listener: (message: InspectorNotification) => void): this; + /** + * Issued when all executionContexts were cleared in browser + */ + on(event: 'Runtime.executionContextsCleared', listener: () => void): this; + /** + * Issued when exception was thrown and unhandled. + */ + on(event: 'Runtime.exceptionThrown', listener: (message: InspectorNotification) => void): this; + /** + * Issued when unhandled exception was revoked. + */ + on(event: 'Runtime.exceptionRevoked', listener: (message: InspectorNotification) => void): this; + /** + * Issued when console API was called. + */ + on(event: 'Runtime.consoleAPICalled', listener: (message: InspectorNotification) => void): this; + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + on(event: 'Runtime.inspectRequested', listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + on(event: 'Debugger.scriptParsed', listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine fails to parse the script. + */ + on(event: 'Debugger.scriptFailedToParse', listener: (message: InspectorNotification) => void): this; + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + on(event: 'Debugger.breakpointResolved', listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + on(event: 'Debugger.paused', listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine resumed execution. + */ + on(event: 'Debugger.resumed', listener: () => void): this; + /** + * Issued when new console message is added. + */ + on(event: 'Console.messageAdded', listener: (message: InspectorNotification) => void): this; + /** + * Sent when new profile recording is started using console.profile() call. + */ + on(event: 'Profiler.consoleProfileStarted', listener: (message: InspectorNotification) => void): this; + on(event: 'Profiler.consoleProfileFinished', listener: (message: InspectorNotification) => void): this; + on(event: 'HeapProfiler.addHeapSnapshotChunk', listener: (message: InspectorNotification) => void): this; + on(event: 'HeapProfiler.resetProfiles', listener: () => void): this; + on(event: 'HeapProfiler.reportHeapSnapshotProgress', listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + on(event: 'HeapProfiler.lastSeenObjectId', listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + on(event: 'HeapProfiler.heapStatsUpdate', listener: (message: InspectorNotification) => void): this; + /** + * Contains an bucket of collected trace events. + */ + on(event: 'NodeTracing.dataCollected', listener: (message: InspectorNotification) => void): this; + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + on(event: 'NodeTracing.tracingComplete', listener: () => void): this; + /** + * Issued when attached to a worker. + */ + on(event: 'NodeWorker.attachedToWorker', listener: (message: InspectorNotification) => void): this; + /** + * Issued when detached from the worker. + */ + on(event: 'NodeWorker.detachedFromWorker', listener: (message: InspectorNotification) => void): this; + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + on(event: 'NodeWorker.receivedMessageFromWorker', listener: (message: InspectorNotification) => void): this; + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + on(event: 'NodeRuntime.waitingForDisconnect', listener: () => void): this; + once(event: string, listener: (...args: any[]) => void): this; + /** + * Emitted when any notification from the V8 Inspector is received. + */ + once(event: 'inspectorNotification', listener: (message: InspectorNotification<{}>) => void): this; + /** + * Issued when new execution context is created. + */ + once(event: 'Runtime.executionContextCreated', listener: (message: InspectorNotification) => void): this; + /** + * Issued when execution context is destroyed. + */ + once(event: 'Runtime.executionContextDestroyed', listener: (message: InspectorNotification) => void): this; + /** + * Issued when all executionContexts were cleared in browser + */ + once(event: 'Runtime.executionContextsCleared', listener: () => void): this; + /** + * Issued when exception was thrown and unhandled. + */ + once(event: 'Runtime.exceptionThrown', listener: (message: InspectorNotification) => void): this; + /** + * Issued when unhandled exception was revoked. + */ + once(event: 'Runtime.exceptionRevoked', listener: (message: InspectorNotification) => void): this; + /** + * Issued when console API was called. + */ + once(event: 'Runtime.consoleAPICalled', listener: (message: InspectorNotification) => void): this; + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + once(event: 'Runtime.inspectRequested', listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + once(event: 'Debugger.scriptParsed', listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine fails to parse the script. + */ + once(event: 'Debugger.scriptFailedToParse', listener: (message: InspectorNotification) => void): this; + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + once(event: 'Debugger.breakpointResolved', listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + once(event: 'Debugger.paused', listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine resumed execution. + */ + once(event: 'Debugger.resumed', listener: () => void): this; + /** + * Issued when new console message is added. + */ + once(event: 'Console.messageAdded', listener: (message: InspectorNotification) => void): this; + /** + * Sent when new profile recording is started using console.profile() call. + */ + once(event: 'Profiler.consoleProfileStarted', listener: (message: InspectorNotification) => void): this; + once(event: 'Profiler.consoleProfileFinished', listener: (message: InspectorNotification) => void): this; + once(event: 'HeapProfiler.addHeapSnapshotChunk', listener: (message: InspectorNotification) => void): this; + once(event: 'HeapProfiler.resetProfiles', listener: () => void): this; + once(event: 'HeapProfiler.reportHeapSnapshotProgress', listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + once(event: 'HeapProfiler.lastSeenObjectId', listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + once(event: 'HeapProfiler.heapStatsUpdate', listener: (message: InspectorNotification) => void): this; + /** + * Contains an bucket of collected trace events. + */ + once(event: 'NodeTracing.dataCollected', listener: (message: InspectorNotification) => void): this; + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + once(event: 'NodeTracing.tracingComplete', listener: () => void): this; + /** + * Issued when attached to a worker. + */ + once(event: 'NodeWorker.attachedToWorker', listener: (message: InspectorNotification) => void): this; + /** + * Issued when detached from the worker. + */ + once(event: 'NodeWorker.detachedFromWorker', listener: (message: InspectorNotification) => void): this; + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + once(event: 'NodeWorker.receivedMessageFromWorker', listener: (message: InspectorNotification) => void): this; + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + once(event: 'NodeRuntime.waitingForDisconnect', listener: () => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + /** + * Emitted when any notification from the V8 Inspector is received. + */ + prependListener(event: 'inspectorNotification', listener: (message: InspectorNotification<{}>) => void): this; + /** + * Issued when new execution context is created. + */ + prependListener(event: 'Runtime.executionContextCreated', listener: (message: InspectorNotification) => void): this; + /** + * Issued when execution context is destroyed. + */ + prependListener(event: 'Runtime.executionContextDestroyed', listener: (message: InspectorNotification) => void): this; + /** + * Issued when all executionContexts were cleared in browser + */ + prependListener(event: 'Runtime.executionContextsCleared', listener: () => void): this; + /** + * Issued when exception was thrown and unhandled. + */ + prependListener(event: 'Runtime.exceptionThrown', listener: (message: InspectorNotification) => void): this; + /** + * Issued when unhandled exception was revoked. + */ + prependListener(event: 'Runtime.exceptionRevoked', listener: (message: InspectorNotification) => void): this; + /** + * Issued when console API was called. + */ + prependListener(event: 'Runtime.consoleAPICalled', listener: (message: InspectorNotification) => void): this; + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + prependListener(event: 'Runtime.inspectRequested', listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + prependListener(event: 'Debugger.scriptParsed', listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine fails to parse the script. + */ + prependListener(event: 'Debugger.scriptFailedToParse', listener: (message: InspectorNotification) => void): this; + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + prependListener(event: 'Debugger.breakpointResolved', listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + prependListener(event: 'Debugger.paused', listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine resumed execution. + */ + prependListener(event: 'Debugger.resumed', listener: () => void): this; + /** + * Issued when new console message is added. + */ + prependListener(event: 'Console.messageAdded', listener: (message: InspectorNotification) => void): this; + /** + * Sent when new profile recording is started using console.profile() call. + */ + prependListener(event: 'Profiler.consoleProfileStarted', listener: (message: InspectorNotification) => void): this; + prependListener(event: 'Profiler.consoleProfileFinished', listener: (message: InspectorNotification) => void): this; + prependListener(event: 'HeapProfiler.addHeapSnapshotChunk', listener: (message: InspectorNotification) => void): this; + prependListener(event: 'HeapProfiler.resetProfiles', listener: () => void): this; + prependListener(event: 'HeapProfiler.reportHeapSnapshotProgress', listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + prependListener(event: 'HeapProfiler.lastSeenObjectId', listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + prependListener(event: 'HeapProfiler.heapStatsUpdate', listener: (message: InspectorNotification) => void): this; + /** + * Contains an bucket of collected trace events. + */ + prependListener(event: 'NodeTracing.dataCollected', listener: (message: InspectorNotification) => void): this; + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + prependListener(event: 'NodeTracing.tracingComplete', listener: () => void): this; + /** + * Issued when attached to a worker. + */ + prependListener(event: 'NodeWorker.attachedToWorker', listener: (message: InspectorNotification) => void): this; + /** + * Issued when detached from the worker. + */ + prependListener(event: 'NodeWorker.detachedFromWorker', listener: (message: InspectorNotification) => void): this; + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + prependListener(event: 'NodeWorker.receivedMessageFromWorker', listener: (message: InspectorNotification) => void): this; + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + prependListener(event: 'NodeRuntime.waitingForDisconnect', listener: () => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + /** + * Emitted when any notification from the V8 Inspector is received. + */ + prependOnceListener(event: 'inspectorNotification', listener: (message: InspectorNotification<{}>) => void): this; + /** + * Issued when new execution context is created. + */ + prependOnceListener(event: 'Runtime.executionContextCreated', listener: (message: InspectorNotification) => void): this; + /** + * Issued when execution context is destroyed. + */ + prependOnceListener(event: 'Runtime.executionContextDestroyed', listener: (message: InspectorNotification) => void): this; + /** + * Issued when all executionContexts were cleared in browser + */ + prependOnceListener(event: 'Runtime.executionContextsCleared', listener: () => void): this; + /** + * Issued when exception was thrown and unhandled. + */ + prependOnceListener(event: 'Runtime.exceptionThrown', listener: (message: InspectorNotification) => void): this; + /** + * Issued when unhandled exception was revoked. + */ + prependOnceListener(event: 'Runtime.exceptionRevoked', listener: (message: InspectorNotification) => void): this; + /** + * Issued when console API was called. + */ + prependOnceListener(event: 'Runtime.consoleAPICalled', listener: (message: InspectorNotification) => void): this; + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + prependOnceListener(event: 'Runtime.inspectRequested', listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + prependOnceListener(event: 'Debugger.scriptParsed', listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine fails to parse the script. + */ + prependOnceListener(event: 'Debugger.scriptFailedToParse', listener: (message: InspectorNotification) => void): this; + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + prependOnceListener(event: 'Debugger.breakpointResolved', listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + prependOnceListener(event: 'Debugger.paused', listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine resumed execution. + */ + prependOnceListener(event: 'Debugger.resumed', listener: () => void): this; + /** + * Issued when new console message is added. + */ + prependOnceListener(event: 'Console.messageAdded', listener: (message: InspectorNotification) => void): this; + /** + * Sent when new profile recording is started using console.profile() call. + */ + prependOnceListener(event: 'Profiler.consoleProfileStarted', listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: 'Profiler.consoleProfileFinished', listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: 'HeapProfiler.addHeapSnapshotChunk', listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: 'HeapProfiler.resetProfiles', listener: () => void): this; + prependOnceListener(event: 'HeapProfiler.reportHeapSnapshotProgress', listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + prependOnceListener(event: 'HeapProfiler.lastSeenObjectId', listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + prependOnceListener(event: 'HeapProfiler.heapStatsUpdate', listener: (message: InspectorNotification) => void): this; + /** + * Contains an bucket of collected trace events. + */ + prependOnceListener(event: 'NodeTracing.dataCollected', listener: (message: InspectorNotification) => void): this; + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + prependOnceListener(event: 'NodeTracing.tracingComplete', listener: () => void): this; + /** + * Issued when attached to a worker. + */ + prependOnceListener(event: 'NodeWorker.attachedToWorker', listener: (message: InspectorNotification) => void): this; + /** + * Issued when detached from the worker. + */ + prependOnceListener(event: 'NodeWorker.detachedFromWorker', listener: (message: InspectorNotification) => void): this; + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + prependOnceListener(event: 'NodeWorker.receivedMessageFromWorker', listener: (message: InspectorNotification) => void): this; + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + prependOnceListener(event: 'NodeRuntime.waitingForDisconnect', listener: () => void): this; + } + /** + * Activate inspector on host and port. Equivalent to`node --inspect=[[host:]port]`, but can be done programmatically after node has + * started. + * + * If wait is `true`, will block until a client has connected to the inspect port + * and flow control has been passed to the debugger client. + * + * See the `security warning` regarding the `host`parameter usage. + * @param [port='what was specified on the CLI'] Port to listen on for inspector connections. Optional. + * @param [host='what was specified on the CLI'] Host to listen on for inspector connections. Optional. + * @param [wait=false] Block until a client has connected. Optional. + */ + function open(port?: number, host?: string, wait?: boolean): void; + /** + * Deactivate the inspector. Blocks until there are no active connections. + */ + function close(): void; + /** + * Return the URL of the active inspector, or `undefined` if there is none. + * + * ```console + * $ node --inspect -p 'inspector.url()' + * Debugger listening on ws://127.0.0.1:9229/166e272e-7a30-4d09-97ce-f1c012b43c34 + * For help, see: https://nodejs.org/en/docs/inspector + * ws://127.0.0.1:9229/166e272e-7a30-4d09-97ce-f1c012b43c34 + * + * $ node --inspect=localhost:3000 -p 'inspector.url()' + * Debugger listening on ws://localhost:3000/51cf8d0e-3c36-4c59-8efd-54519839e56a + * For help, see: https://nodejs.org/en/docs/inspector + * ws://localhost:3000/51cf8d0e-3c36-4c59-8efd-54519839e56a + * + * $ node -p 'inspector.url()' + * undefined + * ``` + */ + function url(): string | undefined; + /** + * Blocks until a client (existing or connected later) has sent`Runtime.runIfWaitingForDebugger` command. + * + * An exception will be thrown if there is no active inspector. + * @since v12.7.0 + */ + function waitForDebugger(): void; +} +/** + * The inspector module provides an API for interacting with the V8 inspector. + */ +declare module 'node:inspector' { + import inspector = require('inspector'); + export = inspector; +} diff --git a/node_modules/@types/node/module.d.ts b/node_modules/@types/node/module.d.ts new file mode 100644 index 0000000..d83aec9 --- /dev/null +++ b/node_modules/@types/node/module.d.ts @@ -0,0 +1,114 @@ +/** + * @since v0.3.7 + */ +declare module 'module' { + import { URL } from 'node:url'; + namespace Module { + /** + * The `module.syncBuiltinESMExports()` method updates all the live bindings for + * builtin `ES Modules` to match the properties of the `CommonJS` exports. It + * does not add or remove exported names from the `ES Modules`. + * + * ```js + * const fs = require('fs'); + * const assert = require('assert'); + * const { syncBuiltinESMExports } = require('module'); + * + * fs.readFile = newAPI; + * + * delete fs.readFileSync; + * + * function newAPI() { + * // ... + * } + * + * fs.newAPI = newAPI; + * + * syncBuiltinESMExports(); + * + * import('fs').then((esmFS) => { + * // It syncs the existing readFile property with the new value + * assert.strictEqual(esmFS.readFile, newAPI); + * // readFileSync has been deleted from the required fs + * assert.strictEqual('readFileSync' in fs, false); + * // syncBuiltinESMExports() does not remove readFileSync from esmFS + * assert.strictEqual('readFileSync' in esmFS, true); + * // syncBuiltinESMExports() does not add names + * assert.strictEqual(esmFS.newAPI, undefined); + * }); + * ``` + * @since v12.12.0 + */ + function syncBuiltinESMExports(): void; + /** + * `path` is the resolved path for the file for which a corresponding source map + * should be fetched. + * @since v13.7.0, v12.17.0 + */ + function findSourceMap(path: string, error?: Error): SourceMap; + interface SourceMapPayload { + file: string; + version: number; + sources: string[]; + sourcesContent: string[]; + names: string[]; + mappings: string; + sourceRoot: string; + } + interface SourceMapping { + generatedLine: number; + generatedColumn: number; + originalSource: string; + originalLine: number; + originalColumn: number; + } + /** + * @since v13.7.0, v12.17.0 + */ + class SourceMap { + /** + * Getter for the payload used to construct the `SourceMap` instance. + */ + readonly payload: SourceMapPayload; + constructor(payload: SourceMapPayload); + /** + * Given a line number and column number in the generated source file, returns + * an object representing the position in the original file. The object returned + * consists of the following keys: + */ + findEntry(line: number, column: number): SourceMapping; + } + } + interface Module extends NodeModule {} + class Module { + static runMain(): void; + static wrap(code: string): string; + static createRequire(path: string | URL): NodeRequire; + static builtinModules: string[]; + static Module: typeof Module; + constructor(id: string, parent?: Module); + } + global { + interface ImportMeta { + url: string; + /** + * @experimental + * This feature is only available with the `--experimental-import-meta-resolve` + * command flag enabled. + * + * Provides a module-relative resolution function scoped to each module, returning + * the URL string. + * + * @param specified The module specifier to resolve relative to `parent`. + * @param parent The absolute parent module URL to resolve from. If none + * is specified, the value of `import.meta.url` is used as the default. + */ + resolve?(specified: string, parent?: string | URL): Promise; + } + } + export = Module; +} +declare module 'node:module' { + import module = require('module'); + export = module; +} diff --git a/node_modules/@types/node/net.d.ts b/node_modules/@types/node/net.d.ts new file mode 100644 index 0000000..b735538 --- /dev/null +++ b/node_modules/@types/node/net.d.ts @@ -0,0 +1,869 @@ +/** + * > Stability: 2 - Stable + * + * The `net` module provides an asynchronous network API for creating stream-based + * TCP or `IPC` servers ({@link createServer}) and clients + * ({@link createConnection}). + * + * It can be accessed using: + * + * ```js + * const net = require('net'); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/net.js) + */ +declare module 'net' { + import * as stream from 'node:stream'; + import { Abortable, EventEmitter } from 'node:events'; + import * as dns from 'node:dns'; + type LookupFunction = (hostname: string, options: dns.LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void) => void; + interface AddressInfo { + address: string; + family: string; + port: number; + } + interface SocketConstructorOpts { + fd?: number | undefined; + allowHalfOpen?: boolean | undefined; + readable?: boolean | undefined; + writable?: boolean | undefined; + signal?: AbortSignal; + } + interface OnReadOpts { + buffer: Uint8Array | (() => Uint8Array); + /** + * This function is called for every chunk of incoming data. + * Two arguments are passed to it: the number of bytes written to buffer and a reference to buffer. + * Return false from this function to implicitly pause() the socket. + */ + callback(bytesWritten: number, buf: Uint8Array): boolean; + } + interface ConnectOpts { + /** + * If specified, incoming data is stored in a single buffer and passed to the supplied callback when data arrives on the socket. + * Note: this will cause the streaming functionality to not provide any data, however events like 'error', 'end', and 'close' will + * still be emitted as normal and methods like pause() and resume() will also behave as expected. + */ + onread?: OnReadOpts | undefined; + } + interface TcpSocketConnectOpts extends ConnectOpts { + port: number; + host?: string | undefined; + localAddress?: string | undefined; + localPort?: number | undefined; + hints?: number | undefined; + family?: number | undefined; + lookup?: LookupFunction | undefined; + noDelay?: boolean | undefined; + keepAlive?: boolean | undefined; + keepAliveInitialDelay?: number | undefined; + } + interface IpcSocketConnectOpts extends ConnectOpts { + path: string; + } + type SocketConnectOpts = TcpSocketConnectOpts | IpcSocketConnectOpts; + type SocketReadyState = 'opening' | 'open' | 'readOnly' | 'writeOnly' | 'closed'; + /** + * This class is an abstraction of a TCP socket or a streaming `IPC` endpoint + * (uses named pipes on Windows, and Unix domain sockets otherwise). It is also + * an `EventEmitter`. + * + * A `net.Socket` can be created by the user and used directly to interact with + * a server. For example, it is returned by {@link createConnection}, + * so the user can use it to talk to the server. + * + * It can also be created by Node.js and passed to the user when a connection + * is received. For example, it is passed to the listeners of a `'connection'` event emitted on a {@link Server}, so the user can use + * it to interact with the client. + * @since v0.3.4 + */ + class Socket extends stream.Duplex { + constructor(options?: SocketConstructorOpts); + /** + * Sends data on the socket. The second parameter specifies the encoding in the + * case of a string. It defaults to UTF8 encoding. + * + * Returns `true` if the entire data was flushed successfully to the kernel + * buffer. Returns `false` if all or part of the data was queued in user memory.`'drain'` will be emitted when the buffer is again free. + * + * The optional `callback` parameter will be executed when the data is finally + * written out, which may not be immediately. + * + * See `Writable` stream `write()` method for more + * information. + * @since v0.1.90 + * @param [encoding='utf8'] Only used when data is `string`. + */ + write(buffer: Uint8Array | string, cb?: (err?: Error) => void): boolean; + write(str: Uint8Array | string, encoding?: BufferEncoding, cb?: (err?: Error) => void): boolean; + /** + * Initiate a connection on a given socket. + * + * Possible signatures: + * + * * `socket.connect(options[, connectListener])` + * * `socket.connect(path[, connectListener])` for `IPC` connections. + * * `socket.connect(port[, host][, connectListener])` for TCP connections. + * * Returns: `net.Socket` The socket itself. + * + * This function is asynchronous. When the connection is established, the `'connect'` event will be emitted. If there is a problem connecting, + * instead of a `'connect'` event, an `'error'` event will be emitted with + * the error passed to the `'error'` listener. + * The last parameter `connectListener`, if supplied, will be added as a listener + * for the `'connect'` event **once**. + * + * This function should only be used for reconnecting a socket after`'close'` has been emitted or otherwise it may lead to undefined + * behavior. + */ + connect(options: SocketConnectOpts, connectionListener?: () => void): this; + connect(port: number, host: string, connectionListener?: () => void): this; + connect(port: number, connectionListener?: () => void): this; + connect(path: string, connectionListener?: () => void): this; + /** + * Set the encoding for the socket as a `Readable Stream`. See `readable.setEncoding()` for more information. + * @since v0.1.90 + * @return The socket itself. + */ + setEncoding(encoding?: BufferEncoding): this; + /** + * Pauses the reading of data. That is, `'data'` events will not be emitted. + * Useful to throttle back an upload. + * @return The socket itself. + */ + pause(): this; + /** + * Close the TCP connection by sending an RST packet and destroy the stream. + * If this TCP socket is in connecting status, it will send an RST packet + * and destroy this TCP socket once it is connected. Otherwise, it will call + * `socket.destroy` with an `ERR_SOCKET_CLOSED` Error. If this is not a TCP socket + * (for example, a pipe), calling this method will immediately throw + * an `ERR_INVALID_HANDLE_TYPE` Error. + * @since v18.3.0 + * @return The socket itself. + */ + resetAndDestroy(): this; + /** + * Resumes reading after a call to `socket.pause()`. + * @return The socket itself. + */ + resume(): this; + /** + * Sets the socket to timeout after `timeout` milliseconds of inactivity on + * the socket. By default `net.Socket` do not have a timeout. + * + * When an idle timeout is triggered the socket will receive a `'timeout'` event but the connection will not be severed. The user must manually call `socket.end()` or `socket.destroy()` to + * end the connection. + * + * ```js + * socket.setTimeout(3000); + * socket.on('timeout', () => { + * console.log('socket timeout'); + * socket.end(); + * }); + * ``` + * + * If `timeout` is 0, then the existing idle timeout is disabled. + * + * The optional `callback` parameter will be added as a one-time listener for the `'timeout'` event. + * @since v0.1.90 + * @return The socket itself. + */ + setTimeout(timeout: number, callback?: () => void): this; + /** + * Enable/disable the use of Nagle's algorithm. + * + * When a TCP connection is created, it will have Nagle's algorithm enabled. + * + * Nagle's algorithm delays data before it is sent via the network. It attempts + * to optimize throughput at the expense of latency. + * + * Passing `true` for `noDelay` or not passing an argument will disable Nagle's + * algorithm for the socket. Passing `false` for `noDelay` will enable Nagle's + * algorithm. + * @since v0.1.90 + * @param [noDelay=true] + * @return The socket itself. + */ + setNoDelay(noDelay?: boolean): this; + /** + * Enable/disable keep-alive functionality, and optionally set the initial + * delay before the first keepalive probe is sent on an idle socket. + * + * Set `initialDelay` (in milliseconds) to set the delay between the last + * data packet received and the first keepalive probe. Setting `0` for`initialDelay` will leave the value unchanged from the default + * (or previous) setting. + * + * Enabling the keep-alive functionality will set the following socket options: + * + * * `SO_KEEPALIVE=1` + * * `TCP_KEEPIDLE=initialDelay` + * * `TCP_KEEPCNT=10` + * * `TCP_KEEPINTVL=1` + * @since v0.1.92 + * @param [enable=false] + * @param [initialDelay=0] + * @return The socket itself. + */ + setKeepAlive(enable?: boolean, initialDelay?: number): this; + /** + * Returns the bound `address`, the address `family` name and `port` of the + * socket as reported by the operating system:`{ port: 12346, family: 'IPv4', address: '127.0.0.1' }` + * @since v0.1.90 + */ + address(): AddressInfo | {}; + /** + * Calling `unref()` on a socket will allow the program to exit if this is the only + * active socket in the event system. If the socket is already `unref`ed calling`unref()` again will have no effect. + * @since v0.9.1 + * @return The socket itself. + */ + unref(): this; + /** + * Opposite of `unref()`, calling `ref()` on a previously `unref`ed socket will _not_ let the program exit if it's the only socket left (the default behavior). + * If the socket is `ref`ed calling `ref` again will have no effect. + * @since v0.9.1 + * @return The socket itself. + */ + ref(): this; + /** + * This property shows the number of characters buffered for writing. The buffer + * may contain strings whose length after encoding is not yet known. So this number + * is only an approximation of the number of bytes in the buffer. + * + * `net.Socket` has the property that `socket.write()` always works. This is to + * help users get up and running quickly. The computer cannot always keep up + * with the amount of data that is written to a socket. The network connection + * simply might be too slow. Node.js will internally queue up the data written to a + * socket and send it out over the wire when it is possible. + * + * The consequence of this internal buffering is that memory may grow. + * Users who experience large or growing `bufferSize` should attempt to + * "throttle" the data flows in their program with `socket.pause()` and `socket.resume()`. + * @since v0.3.8 + * @deprecated Since v14.6.0 - Use `writableLength` instead. + */ + readonly bufferSize: number; + /** + * The amount of received bytes. + * @since v0.5.3 + */ + readonly bytesRead: number; + /** + * The amount of bytes sent. + * @since v0.5.3 + */ + readonly bytesWritten: number; + /** + * If `true`,`socket.connect(options[, connectListener])` was + * called and has not yet finished. It will stay `true` until the socket becomes + * connected, then it is set to `false` and the `'connect'` event is emitted. Note + * that the `socket.connect(options[, connectListener])` callback is a listener for the `'connect'` event. + * @since v6.1.0 + */ + readonly connecting: boolean; + /** + * See `writable.destroyed` for further details. + */ + readonly destroyed: boolean; + /** + * The string representation of the local IP address the remote client is + * connecting on. For example, in a server listening on `'0.0.0.0'`, if a client + * connects on `'192.168.1.1'`, the value of `socket.localAddress` would be`'192.168.1.1'`. + * @since v0.9.6 + */ + readonly localAddress?: string; + /** + * The numeric representation of the local port. For example, `80` or `21`. + * @since v0.9.6 + */ + readonly localPort?: number; + /** + * The string representation of the local IP family. `'IPv4'` or `'IPv6'`. + * @since v18.8.0 + */ + readonly localFamily?: string; + /** + * This property represents the state of the connection as a string. + * @see {https://nodejs.org/api/net.html#socketreadystate} + * @since v0.5.0 + */ + readonly readyState: SocketReadyState; + /** + * The string representation of the remote IP address. For example,`'74.125.127.100'` or `'2001:4860:a005::68'`. Value may be `undefined` if + * the socket is destroyed (for example, if the client disconnected). + * @since v0.5.10 + */ + readonly remoteAddress?: string | undefined; + /** + * The string representation of the remote IP family. `'IPv4'` or `'IPv6'`. + * @since v0.11.14 + */ + readonly remoteFamily?: string | undefined; + /** + * The numeric representation of the remote port. For example, `80` or `21`. + * @since v0.5.10 + */ + readonly remotePort?: number | undefined; + /** + * The socket timeout in milliseconds as set by socket.setTimeout(). It is undefined if a timeout has not been set. + * @since v10.7.0 + */ + readonly timeout?: number | undefined; + /** + * Half-closes the socket. i.e., it sends a FIN packet. It is possible the + * server will still send some data. + * + * See `writable.end()` for further details. + * @since v0.1.90 + * @param [encoding='utf8'] Only used when data is `string`. + * @param callback Optional callback for when the socket is finished. + * @return The socket itself. + */ + end(callback?: () => void): this; + end(buffer: Uint8Array | string, callback?: () => void): this; + end(str: Uint8Array | string, encoding?: BufferEncoding, callback?: () => void): this; + /** + * events.EventEmitter + * 1. close + * 2. connect + * 3. data + * 4. drain + * 5. end + * 6. error + * 7. lookup + * 8. ready + * 9. timeout + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'close', listener: (hadError: boolean) => void): this; + addListener(event: 'connect', listener: () => void): this; + addListener(event: 'data', listener: (data: Buffer) => void): this; + addListener(event: 'drain', listener: () => void): this; + addListener(event: 'end', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'lookup', listener: (err: Error, address: string, family: string | number, host: string) => void): this; + addListener(event: 'ready', listener: () => void): this; + addListener(event: 'timeout', listener: () => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'close', hadError: boolean): boolean; + emit(event: 'connect'): boolean; + emit(event: 'data', data: Buffer): boolean; + emit(event: 'drain'): boolean; + emit(event: 'end'): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'lookup', err: Error, address: string, family: string | number, host: string): boolean; + emit(event: 'ready'): boolean; + emit(event: 'timeout'): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'close', listener: (hadError: boolean) => void): this; + on(event: 'connect', listener: () => void): this; + on(event: 'data', listener: (data: Buffer) => void): this; + on(event: 'drain', listener: () => void): this; + on(event: 'end', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'lookup', listener: (err: Error, address: string, family: string | number, host: string) => void): this; + on(event: 'ready', listener: () => void): this; + on(event: 'timeout', listener: () => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'close', listener: (hadError: boolean) => void): this; + once(event: 'connect', listener: () => void): this; + once(event: 'data', listener: (data: Buffer) => void): this; + once(event: 'drain', listener: () => void): this; + once(event: 'end', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'lookup', listener: (err: Error, address: string, family: string | number, host: string) => void): this; + once(event: 'ready', listener: () => void): this; + once(event: 'timeout', listener: () => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: (hadError: boolean) => void): this; + prependListener(event: 'connect', listener: () => void): this; + prependListener(event: 'data', listener: (data: Buffer) => void): this; + prependListener(event: 'drain', listener: () => void): this; + prependListener(event: 'end', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'lookup', listener: (err: Error, address: string, family: string | number, host: string) => void): this; + prependListener(event: 'ready', listener: () => void): this; + prependListener(event: 'timeout', listener: () => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: (hadError: boolean) => void): this; + prependOnceListener(event: 'connect', listener: () => void): this; + prependOnceListener(event: 'data', listener: (data: Buffer) => void): this; + prependOnceListener(event: 'drain', listener: () => void): this; + prependOnceListener(event: 'end', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'lookup', listener: (err: Error, address: string, family: string | number, host: string) => void): this; + prependOnceListener(event: 'ready', listener: () => void): this; + prependOnceListener(event: 'timeout', listener: () => void): this; + } + interface ListenOptions extends Abortable { + port?: number | undefined; + host?: string | undefined; + backlog?: number | undefined; + path?: string | undefined; + exclusive?: boolean | undefined; + readableAll?: boolean | undefined; + writableAll?: boolean | undefined; + /** + * @default false + */ + ipv6Only?: boolean | undefined; + } + interface ServerOpts { + /** + * Indicates whether half-opened TCP connections are allowed. + * @default false + */ + allowHalfOpen?: boolean | undefined; + /** + * Indicates whether the socket should be paused on incoming connections. + * @default false + */ + pauseOnConnect?: boolean | undefined; + /** + * If set to `true`, it disables the use of Nagle's algorithm immediately after a new incoming connection is received. + * @default false + * @since v16.5.0 + */ + noDelay?: boolean | undefined; + /** + * If set to `true`, it enables keep-alive functionality on the socket immediately after a new incoming connection is received, + * similarly on what is done in `socket.setKeepAlive([enable][, initialDelay])`. + * @default false + * @since v16.5.0 + */ + keepAlive?: boolean | undefined; + /** + * If set to a positive number, it sets the initial delay before the first keepalive probe is sent on an idle socket. + * @default 0 + * @since v16.5.0 + */ + keepAliveInitialDelay?: number | undefined; + } + interface DropArgument { + localAddress?: string; + localPort?: number; + localFamily?: string; + remoteAddress?: string; + remotePort?: number; + remoteFamily?: string; + } + /** + * This class is used to create a TCP or `IPC` server. + * @since v0.1.90 + */ + class Server extends EventEmitter { + constructor(connectionListener?: (socket: Socket) => void); + constructor(options?: ServerOpts, connectionListener?: (socket: Socket) => void); + /** + * Start a server listening for connections. A `net.Server` can be a TCP or + * an `IPC` server depending on what it listens to. + * + * Possible signatures: + * + * * `server.listen(handle[, backlog][, callback])` + * * `server.listen(options[, callback])` + * * `server.listen(path[, backlog][, callback])` for `IPC` servers + * * `server.listen([port[, host[, backlog]]][, callback])` for TCP servers + * + * This function is asynchronous. When the server starts listening, the `'listening'` event will be emitted. The last parameter `callback`will be added as a listener for the `'listening'` + * event. + * + * All `listen()` methods can take a `backlog` parameter to specify the maximum + * length of the queue of pending connections. The actual length will be determined + * by the OS through sysctl settings such as `tcp_max_syn_backlog` and `somaxconn`on Linux. The default value of this parameter is 511 (not 512). + * + * All {@link Socket} are set to `SO_REUSEADDR` (see [`socket(7)`](https://man7.org/linux/man-pages/man7/socket.7.html) for + * details). + * + * The `server.listen()` method can be called again if and only if there was an + * error during the first `server.listen()` call or `server.close()` has been + * called. Otherwise, an `ERR_SERVER_ALREADY_LISTEN` error will be thrown. + * + * One of the most common errors raised when listening is `EADDRINUSE`. + * This happens when another server is already listening on the requested`port`/`path`/`handle`. One way to handle this would be to retry + * after a certain amount of time: + * + * ```js + * server.on('error', (e) => { + * if (e.code === 'EADDRINUSE') { + * console.log('Address in use, retrying...'); + * setTimeout(() => { + * server.close(); + * server.listen(PORT, HOST); + * }, 1000); + * } + * }); + * ``` + */ + listen(port?: number, hostname?: string, backlog?: number, listeningListener?: () => void): this; + listen(port?: number, hostname?: string, listeningListener?: () => void): this; + listen(port?: number, backlog?: number, listeningListener?: () => void): this; + listen(port?: number, listeningListener?: () => void): this; + listen(path: string, backlog?: number, listeningListener?: () => void): this; + listen(path: string, listeningListener?: () => void): this; + listen(options: ListenOptions, listeningListener?: () => void): this; + listen(handle: any, backlog?: number, listeningListener?: () => void): this; + listen(handle: any, listeningListener?: () => void): this; + /** + * Stops the server from accepting new connections and keeps existing + * connections. This function is asynchronous, the server is finally closed + * when all connections are ended and the server emits a `'close'` event. + * The optional `callback` will be called once the `'close'` event occurs. Unlike + * that event, it will be called with an `Error` as its only argument if the server + * was not open when it was closed. + * @since v0.1.90 + * @param callback Called when the server is closed. + */ + close(callback?: (err?: Error) => void): this; + /** + * Returns the bound `address`, the address `family` name, and `port` of the server + * as reported by the operating system if listening on an IP socket + * (useful to find which port was assigned when getting an OS-assigned address):`{ port: 12346, family: 'IPv4', address: '127.0.0.1' }`. + * + * For a server listening on a pipe or Unix domain socket, the name is returned + * as a string. + * + * ```js + * const server = net.createServer((socket) => { + * socket.end('goodbye\n'); + * }).on('error', (err) => { + * // Handle errors here. + * throw err; + * }); + * + * // Grab an arbitrary unused port. + * server.listen(() => { + * console.log('opened server on', server.address()); + * }); + * ``` + * + * `server.address()` returns `null` before the `'listening'` event has been + * emitted or after calling `server.close()`. + * @since v0.1.90 + */ + address(): AddressInfo | string | null; + /** + * Asynchronously get the number of concurrent connections on the server. Works + * when sockets were sent to forks. + * + * Callback should take two arguments `err` and `count`. + * @since v0.9.7 + */ + getConnections(cb: (error: Error | null, count: number) => void): void; + /** + * Opposite of `unref()`, calling `ref()` on a previously `unref`ed server will _not_ let the program exit if it's the only server left (the default behavior). + * If the server is `ref`ed calling `ref()` again will have no effect. + * @since v0.9.1 + */ + ref(): this; + /** + * Calling `unref()` on a server will allow the program to exit if this is the only + * active server in the event system. If the server is already `unref`ed calling`unref()` again will have no effect. + * @since v0.9.1 + */ + unref(): this; + /** + * Set this property to reject connections when the server's connection count gets + * high. + * + * It is not recommended to use this option once a socket has been sent to a child + * with `child_process.fork()`. + * @since v0.2.0 + */ + maxConnections: number; + connections: number; + /** + * Indicates whether or not the server is listening for connections. + * @since v5.7.0 + */ + listening: boolean; + /** + * events.EventEmitter + * 1. close + * 2. connection + * 3. error + * 4. listening + * 5. drop + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'connection', listener: (socket: Socket) => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'listening', listener: () => void): this; + addListener(event: 'drop', listener: (data?: DropArgument) => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'close'): boolean; + emit(event: 'connection', socket: Socket): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'listening'): boolean; + emit(event: 'drop', data?: DropArgument): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'connection', listener: (socket: Socket) => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'listening', listener: () => void): this; + on(event: 'drop', listener: (data?: DropArgument) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'connection', listener: (socket: Socket) => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'listening', listener: () => void): this; + once(event: 'drop', listener: (data?: DropArgument) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'connection', listener: (socket: Socket) => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'listening', listener: () => void): this; + prependListener(event: 'drop', listener: (data?: DropArgument) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'connection', listener: (socket: Socket) => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'listening', listener: () => void): this; + prependOnceListener(event: 'drop', listener: (data?: DropArgument) => void): this; + } + type IPVersion = 'ipv4' | 'ipv6'; + /** + * The `BlockList` object can be used with some network APIs to specify rules for + * disabling inbound or outbound access to specific IP addresses, IP ranges, or + * IP subnets. + * @since v15.0.0, v14.18.0 + */ + class BlockList { + /** + * Adds a rule to block the given IP address. + * @since v15.0.0, v14.18.0 + * @param address An IPv4 or IPv6 address. + * @param [type='ipv4'] Either `'ipv4'` or `'ipv6'`. + */ + addAddress(address: string, type?: IPVersion): void; + addAddress(address: SocketAddress): void; + /** + * Adds a rule to block a range of IP addresses from `start` (inclusive) to`end` (inclusive). + * @since v15.0.0, v14.18.0 + * @param start The starting IPv4 or IPv6 address in the range. + * @param end The ending IPv4 or IPv6 address in the range. + * @param [type='ipv4'] Either `'ipv4'` or `'ipv6'`. + */ + addRange(start: string, end: string, type?: IPVersion): void; + addRange(start: SocketAddress, end: SocketAddress): void; + /** + * Adds a rule to block a range of IP addresses specified as a subnet mask. + * @since v15.0.0, v14.18.0 + * @param net The network IPv4 or IPv6 address. + * @param prefix The number of CIDR prefix bits. For IPv4, this must be a value between `0` and `32`. For IPv6, this must be between `0` and `128`. + * @param [type='ipv4'] Either `'ipv4'` or `'ipv6'`. + */ + addSubnet(net: SocketAddress, prefix: number): void; + addSubnet(net: string, prefix: number, type?: IPVersion): void; + /** + * Returns `true` if the given IP address matches any of the rules added to the`BlockList`. + * + * ```js + * const blockList = new net.BlockList(); + * blockList.addAddress('123.123.123.123'); + * blockList.addRange('10.0.0.1', '10.0.0.10'); + * blockList.addSubnet('8592:757c:efae:4e45::', 64, 'ipv6'); + * + * console.log(blockList.check('123.123.123.123')); // Prints: true + * console.log(blockList.check('10.0.0.3')); // Prints: true + * console.log(blockList.check('222.111.111.222')); // Prints: false + * + * // IPv6 notation for IPv4 addresses works: + * console.log(blockList.check('::ffff:7b7b:7b7b', 'ipv6')); // Prints: true + * console.log(blockList.check('::ffff:123.123.123.123', 'ipv6')); // Prints: true + * ``` + * @since v15.0.0, v14.18.0 + * @param address The IP address to check + * @param [type='ipv4'] Either `'ipv4'` or `'ipv6'`. + */ + check(address: SocketAddress): boolean; + check(address: string, type?: IPVersion): boolean; + } + interface TcpNetConnectOpts extends TcpSocketConnectOpts, SocketConstructorOpts { + timeout?: number | undefined; + } + interface IpcNetConnectOpts extends IpcSocketConnectOpts, SocketConstructorOpts { + timeout?: number | undefined; + } + type NetConnectOpts = TcpNetConnectOpts | IpcNetConnectOpts; + /** + * Creates a new TCP or `IPC` server. + * + * If `allowHalfOpen` is set to `true`, when the other end of the socket + * signals the end of transmission, the server will only send back the end of + * transmission when `socket.end()` is explicitly called. For example, in the + * context of TCP, when a FIN packed is received, a FIN packed is sent + * back only when `socket.end()` is explicitly called. Until then the + * connection is half-closed (non-readable but still writable). See `'end'` event and [RFC 1122](https://tools.ietf.org/html/rfc1122) (section 4.2.2.13) for more information. + * + * If `pauseOnConnect` is set to `true`, then the socket associated with each + * incoming connection will be paused, and no data will be read from its handle. + * This allows connections to be passed between processes without any data being + * read by the original process. To begin reading data from a paused socket, call `socket.resume()`. + * + * The server can be a TCP server or an `IPC` server, depending on what it `listen()` to. + * + * Here is an example of a TCP echo server which listens for connections + * on port 8124: + * + * ```js + * const net = require('net'); + * const server = net.createServer((c) => { + * // 'connection' listener. + * console.log('client connected'); + * c.on('end', () => { + * console.log('client disconnected'); + * }); + * c.write('hello\r\n'); + * c.pipe(c); + * }); + * server.on('error', (err) => { + * throw err; + * }); + * server.listen(8124, () => { + * console.log('server bound'); + * }); + * ``` + * + * Test this by using `telnet`: + * + * ```console + * $ telnet localhost 8124 + * ``` + * + * To listen on the socket `/tmp/echo.sock`: + * + * ```js + * server.listen('/tmp/echo.sock', () => { + * console.log('server bound'); + * }); + * ``` + * + * Use `nc` to connect to a Unix domain socket server: + * + * ```console + * $ nc -U /tmp/echo.sock + * ``` + * @since v0.5.0 + * @param connectionListener Automatically set as a listener for the {@link 'connection'} event. + */ + function createServer(connectionListener?: (socket: Socket) => void): Server; + function createServer(options?: ServerOpts, connectionListener?: (socket: Socket) => void): Server; + /** + * Aliases to {@link createConnection}. + * + * Possible signatures: + * + * * {@link connect} + * * {@link connect} for `IPC` connections. + * * {@link connect} for TCP connections. + */ + function connect(options: NetConnectOpts, connectionListener?: () => void): Socket; + function connect(port: number, host?: string, connectionListener?: () => void): Socket; + function connect(path: string, connectionListener?: () => void): Socket; + /** + * A factory function, which creates a new {@link Socket}, + * immediately initiates connection with `socket.connect()`, + * then returns the `net.Socket` that starts the connection. + * + * When the connection is established, a `'connect'` event will be emitted + * on the returned socket. The last parameter `connectListener`, if supplied, + * will be added as a listener for the `'connect'` event **once**. + * + * Possible signatures: + * + * * {@link createConnection} + * * {@link createConnection} for `IPC` connections. + * * {@link createConnection} for TCP connections. + * + * The {@link connect} function is an alias to this function. + */ + function createConnection(options: NetConnectOpts, connectionListener?: () => void): Socket; + function createConnection(port: number, host?: string, connectionListener?: () => void): Socket; + function createConnection(path: string, connectionListener?: () => void): Socket; + /** + * Returns `6` if `input` is an IPv6 address. Returns `4` if `input` is an IPv4 + * address in [dot-decimal notation](https://en.wikipedia.org/wiki/Dot-decimal_notation) with no leading zeroes. Otherwise, returns`0`. + * + * ```js + * net.isIP('::1'); // returns 6 + * net.isIP('127.0.0.1'); // returns 4 + * net.isIP('127.000.000.001'); // returns 0 + * net.isIP('127.0.0.1/24'); // returns 0 + * net.isIP('fhqwhgads'); // returns 0 + * ``` + * @since v0.3.0 + */ + function isIP(input: string): number; + /** + * Returns `true` if `input` is an IPv4 address in [dot-decimal notation](https://en.wikipedia.org/wiki/Dot-decimal_notation) with no + * leading zeroes. Otherwise, returns `false`. + * + * ```js + * net.isIPv4('127.0.0.1'); // returns true + * net.isIPv4('127.000.000.001'); // returns false + * net.isIPv4('127.0.0.1/24'); // returns false + * net.isIPv4('fhqwhgads'); // returns false + * ``` + * @since v0.3.0 + */ + function isIPv4(input: string): boolean; + /** + * Returns `true` if `input` is an IPv6 address. Otherwise, returns `false`. + * + * ```js + * net.isIPv6('::1'); // returns true + * net.isIPv6('fhqwhgads'); // returns false + * ``` + * @since v0.3.0 + */ + function isIPv6(input: string): boolean; + interface SocketAddressInitOptions { + /** + * The network address as either an IPv4 or IPv6 string. + * @default 127.0.0.1 + */ + address?: string | undefined; + /** + * @default `'ipv4'` + */ + family?: IPVersion | undefined; + /** + * An IPv6 flow-label used only if `family` is `'ipv6'`. + * @default 0 + */ + flowlabel?: number | undefined; + /** + * An IP port. + * @default 0 + */ + port?: number | undefined; + } + /** + * @since v15.14.0, v14.18.0 + */ + class SocketAddress { + constructor(options: SocketAddressInitOptions); + /** + * @since v15.14.0, v14.18.0 + */ + readonly address: string; + /** + * Either \`'ipv4'\` or \`'ipv6'\`. + * @since v15.14.0, v14.18.0 + */ + readonly family: IPVersion; + /** + * @since v15.14.0, v14.18.0 + */ + readonly port: number; + /** + * @since v15.14.0, v14.18.0 + */ + readonly flowlabel: number; + } +} +declare module 'node:net' { + export * from 'net'; +} diff --git a/node_modules/@types/node/os.d.ts b/node_modules/@types/node/os.d.ts new file mode 100644 index 0000000..3c55599 --- /dev/null +++ b/node_modules/@types/node/os.d.ts @@ -0,0 +1,466 @@ +/** + * The `os` module provides operating system-related utility methods and + * properties. It can be accessed using: + * + * ```js + * const os = require('os'); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/os.js) + */ +declare module 'os' { + interface CpuInfo { + model: string; + speed: number; + times: { + user: number; + nice: number; + sys: number; + idle: number; + irq: number; + }; + } + interface NetworkInterfaceBase { + address: string; + netmask: string; + mac: string; + internal: boolean; + cidr: string | null; + } + interface NetworkInterfaceInfoIPv4 extends NetworkInterfaceBase { + family: 'IPv4'; + scopeid?: undefined; + } + interface NetworkInterfaceInfoIPv6 extends NetworkInterfaceBase { + family: 'IPv6'; + scopeid: number; + } + interface UserInfo { + username: T; + uid: number; + gid: number; + shell: T; + homedir: T; + } + type NetworkInterfaceInfo = NetworkInterfaceInfoIPv4 | NetworkInterfaceInfoIPv6; + /** + * Returns the host name of the operating system as a string. + * @since v0.3.3 + */ + function hostname(): string; + /** + * Returns an array containing the 1, 5, and 15 minute load averages. + * + * The load average is a measure of system activity calculated by the operating + * system and expressed as a fractional number. + * + * The load average is a Unix-specific concept. On Windows, the return value is + * always `[0, 0, 0]`. + * @since v0.3.3 + */ + function loadavg(): number[]; + /** + * Returns the system uptime in number of seconds. + * @since v0.3.3 + */ + function uptime(): number; + /** + * Returns the amount of free system memory in bytes as an integer. + * @since v0.3.3 + */ + function freemem(): number; + /** + * Returns the total amount of system memory in bytes as an integer. + * @since v0.3.3 + */ + function totalmem(): number; + /** + * Returns an array of objects containing information about each logical CPU core. + * + * The properties included on each object include: + * + * ```js + * [ + * { + * model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', + * speed: 2926, + * times: { + * user: 252020, + * nice: 0, + * sys: 30340, + * idle: 1070356870, + * irq: 0 + * } + * }, + * { + * model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', + * speed: 2926, + * times: { + * user: 306960, + * nice: 0, + * sys: 26980, + * idle: 1071569080, + * irq: 0 + * } + * }, + * { + * model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', + * speed: 2926, + * times: { + * user: 248450, + * nice: 0, + * sys: 21750, + * idle: 1070919370, + * irq: 0 + * } + * }, + * { + * model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', + * speed: 2926, + * times: { + * user: 256880, + * nice: 0, + * sys: 19430, + * idle: 1070905480, + * irq: 20 + * } + * }, + * ] + * ``` + * + * `nice` values are POSIX-only. On Windows, the `nice` values of all processors + * are always 0. + * @since v0.3.3 + */ + function cpus(): CpuInfo[]; + /** + * Returns the operating system name as returned by [`uname(3)`](https://linux.die.net/man/3/uname). For example, it + * returns `'Linux'` on Linux, `'Darwin'` on macOS, and `'Windows_NT'` on Windows. + * + * See [https://en.wikipedia.org/wiki/Uname#Examples](https://en.wikipedia.org/wiki/Uname#Examples) for additional information + * about the output of running [`uname(3)`](https://linux.die.net/man/3/uname) on various operating systems. + * @since v0.3.3 + */ + function type(): string; + /** + * Returns the operating system as a string. + * + * On POSIX systems, the operating system release is determined by calling [`uname(3)`](https://linux.die.net/man/3/uname). On Windows, `GetVersionExW()` is used. See + * [https://en.wikipedia.org/wiki/Uname#Examples](https://en.wikipedia.org/wiki/Uname#Examples) for more information. + * @since v0.3.3 + */ + function release(): string; + /** + * 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 that each describe an assigned network address. + * + * The properties available on the assigned network address object include: + * + * ```js + * { + * lo: [ + * { + * address: '127.0.0.1', + * netmask: '255.0.0.0', + * family: 'IPv4', + * mac: '00:00:00:00:00:00', + * internal: true, + * cidr: '127.0.0.1/8' + * }, + * { + * address: '::1', + * netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', + * family: 'IPv6', + * mac: '00:00:00:00:00:00', + * scopeid: 0, + * internal: true, + * cidr: '::1/128' + * } + * ], + * eth0: [ + * { + * address: '192.168.1.108', + * netmask: '255.255.255.0', + * family: 'IPv4', + * mac: '01:02:03:0a:0b:0c', + * internal: false, + * cidr: '192.168.1.108/24' + * }, + * { + * address: 'fe80::a00:27ff:fe4e:66a1', + * netmask: 'ffff:ffff:ffff:ffff::', + * family: 'IPv6', + * mac: '01:02:03:0a:0b:0c', + * scopeid: 1, + * internal: false, + * cidr: 'fe80::a00:27ff:fe4e:66a1/64' + * } + * ] + * } + * ``` + * @since v0.6.0 + */ + function networkInterfaces(): NodeJS.Dict; + /** + * Returns the string path of the current user's home directory. + * + * On POSIX, it uses the `$HOME` environment variable if defined. Otherwise it + * uses the [effective UID](https://en.wikipedia.org/wiki/User_identifier#Effective_user_ID) to look up the user's home directory. + * + * On Windows, it uses the `USERPROFILE` environment variable if defined. + * Otherwise it uses the path to the profile directory of the current user. + * @since v2.3.0 + */ + function homedir(): string; + /** + * Returns information about the currently effective user. On POSIX platforms, + * this is typically a subset of the password file. The returned object includes + * the `username`, `uid`, `gid`, `shell`, and `homedir`. On Windows, the `uid` and`gid` fields are `-1`, and `shell` is `null`. + * + * The value of `homedir` returned by `os.userInfo()` is provided by the operating + * system. This differs from the result of `os.homedir()`, which queries + * environment variables for the home directory before falling back to the + * operating system response. + * + * Throws a `SystemError` if a user has no `username` or `homedir`. + * @since v6.0.0 + */ + function userInfo(options: { encoding: 'buffer' }): UserInfo; + function userInfo(options?: { encoding: BufferEncoding }): UserInfo; + type SignalConstants = { + [key in NodeJS.Signals]: number; + }; + namespace constants { + const UV_UDP_REUSEADDR: number; + namespace signals {} + const signals: SignalConstants; + namespace errno { + const E2BIG: number; + const EACCES: number; + const EADDRINUSE: number; + const EADDRNOTAVAIL: number; + const EAFNOSUPPORT: number; + const EAGAIN: number; + const EALREADY: number; + const EBADF: number; + const EBADMSG: number; + const EBUSY: number; + const ECANCELED: number; + const ECHILD: number; + const ECONNABORTED: number; + const ECONNREFUSED: number; + const ECONNRESET: number; + const EDEADLK: number; + const EDESTADDRREQ: number; + const EDOM: number; + const EDQUOT: number; + const EEXIST: number; + const EFAULT: number; + const EFBIG: number; + const EHOSTUNREACH: number; + const EIDRM: number; + const EILSEQ: number; + const EINPROGRESS: number; + const EINTR: number; + const EINVAL: number; + const EIO: number; + const EISCONN: number; + const EISDIR: number; + const ELOOP: number; + const EMFILE: number; + const EMLINK: number; + const EMSGSIZE: number; + const EMULTIHOP: number; + const ENAMETOOLONG: number; + const ENETDOWN: number; + const ENETRESET: number; + const ENETUNREACH: number; + const ENFILE: number; + const ENOBUFS: number; + const ENODATA: number; + const ENODEV: number; + const ENOENT: number; + const ENOEXEC: number; + const ENOLCK: number; + const ENOLINK: number; + const ENOMEM: number; + const ENOMSG: number; + const ENOPROTOOPT: number; + const ENOSPC: number; + const ENOSR: number; + const ENOSTR: number; + const ENOSYS: number; + const ENOTCONN: number; + const ENOTDIR: number; + const ENOTEMPTY: number; + const ENOTSOCK: number; + const ENOTSUP: number; + const ENOTTY: number; + const ENXIO: number; + const EOPNOTSUPP: number; + const EOVERFLOW: number; + const EPERM: number; + const EPIPE: number; + const EPROTO: number; + const EPROTONOSUPPORT: number; + const EPROTOTYPE: number; + const ERANGE: number; + const EROFS: number; + const ESPIPE: number; + const ESRCH: number; + const ESTALE: number; + const ETIME: number; + const ETIMEDOUT: number; + const ETXTBSY: number; + const EWOULDBLOCK: number; + const EXDEV: number; + const WSAEINTR: number; + const WSAEBADF: number; + const WSAEACCES: number; + const WSAEFAULT: number; + const WSAEINVAL: number; + const WSAEMFILE: number; + const WSAEWOULDBLOCK: number; + const WSAEINPROGRESS: number; + const WSAEALREADY: number; + const WSAENOTSOCK: number; + const WSAEDESTADDRREQ: number; + const WSAEMSGSIZE: number; + const WSAEPROTOTYPE: number; + const WSAENOPROTOOPT: number; + const WSAEPROTONOSUPPORT: number; + const WSAESOCKTNOSUPPORT: number; + const WSAEOPNOTSUPP: number; + const WSAEPFNOSUPPORT: number; + const WSAEAFNOSUPPORT: number; + const WSAEADDRINUSE: number; + const WSAEADDRNOTAVAIL: number; + const WSAENETDOWN: number; + const WSAENETUNREACH: number; + const WSAENETRESET: number; + const WSAECONNABORTED: number; + const WSAECONNRESET: number; + const WSAENOBUFS: number; + const WSAEISCONN: number; + const WSAENOTCONN: number; + const WSAESHUTDOWN: number; + const WSAETOOMANYREFS: number; + const WSAETIMEDOUT: number; + const WSAECONNREFUSED: number; + const WSAELOOP: number; + const WSAENAMETOOLONG: number; + const WSAEHOSTDOWN: number; + const WSAEHOSTUNREACH: number; + const WSAENOTEMPTY: number; + const WSAEPROCLIM: number; + const WSAEUSERS: number; + const WSAEDQUOT: number; + const WSAESTALE: number; + const WSAEREMOTE: number; + const WSASYSNOTREADY: number; + const WSAVERNOTSUPPORTED: number; + const WSANOTINITIALISED: number; + const WSAEDISCON: number; + const WSAENOMORE: number; + const WSAECANCELLED: number; + const WSAEINVALIDPROCTABLE: number; + const WSAEINVALIDPROVIDER: number; + const WSAEPROVIDERFAILEDINIT: number; + const WSASYSCALLFAILURE: number; + const WSASERVICE_NOT_FOUND: number; + const WSATYPE_NOT_FOUND: number; + const WSA_E_NO_MORE: number; + const WSA_E_CANCELLED: number; + const WSAEREFUSED: number; + } + namespace priority { + const PRIORITY_LOW: number; + const PRIORITY_BELOW_NORMAL: number; + const PRIORITY_NORMAL: number; + const PRIORITY_ABOVE_NORMAL: number; + const PRIORITY_HIGH: number; + const PRIORITY_HIGHEST: number; + } + } + const devNull: string; + const EOL: string; + /** + * Returns the operating system CPU architecture for which the Node.js binary was + * compiled. Possible values are `'arm'`, `'arm64'`, `'ia32'`, `'mips'`,`'mipsel'`, `'ppc'`, `'ppc64'`, `'s390'`, `'s390x'`, and `'x64'`. + * + * The return value is equivalent to `process.arch`. + * @since v0.5.0 + */ + function arch(): string; + /** + * Returns a string identifying the kernel version. + * + * On POSIX systems, the operating system release is determined by calling [`uname(3)`](https://linux.die.net/man/3/uname). On Windows, `RtlGetVersion()` is used, and if it is not + * available, `GetVersionExW()` will be used. See [https://en.wikipedia.org/wiki/Uname#Examples](https://en.wikipedia.org/wiki/Uname#Examples) for more information. + * @since v13.11.0, v12.17.0 + */ + function version(): string; + /** + * Returns a string identifying the operating system platform for which + * the Node.js binary was compiled. The value is set at compile time. + * Possible values are `'aix'`, `'darwin'`, `'freebsd'`,`'linux'`,`'openbsd'`, `'sunos'`, and `'win32'`. + * + * The return value is equivalent to `process.platform`. + * + * The value `'android'` may also be returned if Node.js is built on the Android + * operating system. [Android support is experimental](https://github.com/nodejs/node/blob/HEAD/BUILDING.md#androidandroid-based-devices-eg-firefox-os). + * @since v0.5.0 + */ + function platform(): NodeJS.Platform; + /** + * Returns the machine type as a string, such as arm, aarch64, mips, mips64, ppc64, ppc64le, s390, s390x, i386, i686, x86_64. + * + * On POSIX systems, the machine type is determined by calling [`uname(3)`](https://linux.die.net/man/3/uname). + * On Windows, `RtlGetVersion()` is used, and if it is not available, `GetVersionExW()` will be used. + * See [https://en.wikipedia.org/wiki/Uname#Examples](https://en.wikipedia.org/wiki/Uname#Examples) for more information. + * @since v18.9.0 + */ + function machine(): string; + /** + * Returns the operating system's default directory for temporary files as a + * string. + * @since v0.9.9 + */ + function tmpdir(): string; + /** + * Returns a string identifying the endianness of the CPU for which the Node.js + * binary was compiled. + * + * Possible values are `'BE'` for big endian and `'LE'` for little endian. + * @since v0.9.4 + */ + function endianness(): 'BE' | 'LE'; + /** + * Returns the scheduling priority for the process specified by `pid`. If `pid` is + * not provided or is `0`, the priority of the current process is returned. + * @since v10.10.0 + * @param [pid=0] The process ID to retrieve scheduling priority for. + */ + function getPriority(pid?: number): number; + /** + * Attempts to set the scheduling priority for the process specified by `pid`. If`pid` is not provided or is `0`, the process ID of the current process is used. + * + * The `priority` input must be an integer between `-20` (high priority) and `19`(low priority). Due to differences between Unix priority levels and Windows + * priority classes, `priority` is mapped to one of six priority constants in`os.constants.priority`. When retrieving a process priority level, this range + * mapping may cause the return value to be slightly different on Windows. To avoid + * confusion, set `priority` to one of the priority constants. + * + * On Windows, setting priority to `PRIORITY_HIGHEST` requires elevated user + * privileges. Otherwise the set priority will be silently reduced to`PRIORITY_HIGH`. + * @since v10.10.0 + * @param [pid=0] The process ID to set scheduling priority for. + * @param priority The scheduling priority to assign to the process. + */ + function setPriority(priority: number): void; + function setPriority(pid: number, priority: number): void; +} +declare module 'node:os' { + export * from 'os'; +} diff --git a/node_modules/@types/node/package.json b/node_modules/@types/node/package.json new file mode 100644 index 0000000..1570db1 --- /dev/null +++ b/node_modules/@types/node/package.json @@ -0,0 +1,237 @@ +{ + "name": "@types/node", + "version": "18.11.18", + "description": "TypeScript definitions for Node.js", + "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node", + "license": "MIT", + "contributors": [ + { + "name": "Microsoft TypeScript", + "url": "https://github.com/Microsoft", + "githubUsername": "Microsoft" + }, + { + "name": "DefinitelyTyped", + "url": "https://github.com/DefinitelyTyped", + "githubUsername": "DefinitelyTyped" + }, + { + "name": "Alberto Schiabel", + "url": "https://github.com/jkomyno", + "githubUsername": "jkomyno" + }, + { + "name": "Alvis HT Tang", + "url": "https://github.com/alvis", + "githubUsername": "alvis" + }, + { + "name": "Andrew Makarov", + "url": "https://github.com/r3nya", + "githubUsername": "r3nya" + }, + { + "name": "Benjamin Toueg", + "url": "https://github.com/btoueg", + "githubUsername": "btoueg" + }, + { + "name": "Chigozirim C.", + "url": "https://github.com/smac89", + "githubUsername": "smac89" + }, + { + "name": "David Junger", + "url": "https://github.com/touffy", + "githubUsername": "touffy" + }, + { + "name": "Deividas Bakanas", + "url": "https://github.com/DeividasBakanas", + "githubUsername": "DeividasBakanas" + }, + { + "name": "Eugene Y. Q. Shen", + "url": "https://github.com/eyqs", + "githubUsername": "eyqs" + }, + { + "name": "Hannes Magnusson", + "url": "https://github.com/Hannes-Magnusson-CK", + "githubUsername": "Hannes-Magnusson-CK" + }, + { + "name": "Huw", + "url": "https://github.com/hoo29", + "githubUsername": "hoo29" + }, + { + "name": "Kelvin Jin", + "url": "https://github.com/kjin", + "githubUsername": "kjin" + }, + { + "name": "Klaus Meinhardt", + "url": "https://github.com/ajafff", + "githubUsername": "ajafff" + }, + { + "name": "Lishude", + "url": "https://github.com/islishude", + "githubUsername": "islishude" + }, + { + "name": "Mariusz Wiktorczyk", + "url": "https://github.com/mwiktorczyk", + "githubUsername": "mwiktorczyk" + }, + { + "name": "Mohsen Azimi", + "url": "https://github.com/mohsen1", + "githubUsername": "mohsen1" + }, + { + "name": "Nicolas Even", + "url": "https://github.com/n-e", + "githubUsername": "n-e" + }, + { + "name": "Nikita Galkin", + "url": "https://github.com/galkin", + "githubUsername": "galkin" + }, + { + "name": "Parambir Singh", + "url": "https://github.com/parambirs", + "githubUsername": "parambirs" + }, + { + "name": "Sebastian Silbermann", + "url": "https://github.com/eps1lon", + "githubUsername": "eps1lon" + }, + { + "name": "Simon Schick", + "url": "https://github.com/SimonSchick", + "githubUsername": "SimonSchick" + }, + { + "name": "Thomas den Hollander", + "url": "https://github.com/ThomasdenH", + "githubUsername": "ThomasdenH" + }, + { + "name": "Wilco Bakker", + "url": "https://github.com/WilcoBakker", + "githubUsername": "WilcoBakker" + }, + { + "name": "wwwy3y3", + "url": "https://github.com/wwwy3y3", + "githubUsername": "wwwy3y3" + }, + { + "name": "Samuel Ainsworth", + "url": "https://github.com/samuela", + "githubUsername": "samuela" + }, + { + "name": "Kyle Uehlein", + "url": "https://github.com/kuehlein", + "githubUsername": "kuehlein" + }, + { + "name": "Thanik Bhongbhibhat", + "url": "https://github.com/bhongy", + "githubUsername": "bhongy" + }, + { + "name": "Marcin Kopacz", + "url": "https://github.com/chyzwar", + "githubUsername": "chyzwar" + }, + { + "name": "Trivikram Kamat", + "url": "https://github.com/trivikr", + "githubUsername": "trivikr" + }, + { + "name": "Junxiao Shi", + "url": "https://github.com/yoursunny", + "githubUsername": "yoursunny" + }, + { + "name": "Ilia Baryshnikov", + "url": "https://github.com/qwelias", + "githubUsername": "qwelias" + }, + { + "name": "ExE Boss", + "url": "https://github.com/ExE-Boss", + "githubUsername": "ExE-Boss" + }, + { + "name": "Piotr Błażejewicz", + "url": "https://github.com/peterblazejewicz", + "githubUsername": "peterblazejewicz" + }, + { + "name": "Anna Henningsen", + "url": "https://github.com/addaleax", + "githubUsername": "addaleax" + }, + { + "name": "Victor Perin", + "url": "https://github.com/victorperin", + "githubUsername": "victorperin" + }, + { + "name": "Yongsheng Zhang", + "url": "https://github.com/ZYSzys", + "githubUsername": "ZYSzys" + }, + { + "name": "NodeJS Contributors", + "url": "https://github.com/NodeJS", + "githubUsername": "NodeJS" + }, + { + "name": "Linus Unnebäck", + "url": "https://github.com/LinusU", + "githubUsername": "LinusU" + }, + { + "name": "wafuwafu13", + "url": "https://github.com/wafuwafu13", + "githubUsername": "wafuwafu13" + }, + { + "name": "Matteo Collina", + "url": "https://github.com/mcollina", + "githubUsername": "mcollina" + }, + { + "name": "Dmitry Semigradsky", + "url": "https://github.com/Semigradsky", + "githubUsername": "Semigradsky" + } + ], + "main": "", + "types": "index.d.ts", + "typesVersions": { + "<=4.8": { + "*": [ + "ts4.8/*" + ] + } + }, + "repository": { + "type": "git", + "url": "https://github.com/DefinitelyTyped/DefinitelyTyped.git", + "directory": "types/node" + }, + "scripts": {}, + "dependencies": {}, + "typesPublisherContentHash": "540ec74ad976942ed4b12e09fd57842adfd77a63a4ea099f15f0602ad707835c", + "typeScriptVersion": "4.2" +} \ No newline at end of file diff --git a/node_modules/@types/node/path.d.ts b/node_modules/@types/node/path.d.ts new file mode 100644 index 0000000..1d33f79 --- /dev/null +++ b/node_modules/@types/node/path.d.ts @@ -0,0 +1,191 @@ +declare module 'path/posix' { + import path = require('path'); + export = path; +} +declare module 'path/win32' { + import path = require('path'); + export = path; +} +/** + * The `path` module provides utilities for working with file and directory paths. + * It can be accessed using: + * + * ```js + * const path = require('path'); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/path.js) + */ +declare module 'path' { + namespace path { + /** + * A parsed path object generated by path.parse() or consumed by path.format(). + */ + interface ParsedPath { + /** + * The root of the path such as '/' or 'c:\' + */ + root: string; + /** + * The full directory path such as '/home/user/dir' or 'c:\path\dir' + */ + dir: string; + /** + * The file name including extension (if any) such as 'index.html' + */ + base: string; + /** + * The file extension (if any) such as '.html' + */ + ext: string; + /** + * The file name without extension (if any) such as 'index' + */ + name: string; + } + interface FormatInputPathObject { + /** + * The root of the path such as '/' or 'c:\' + */ + root?: string | undefined; + /** + * The full directory path such as '/home/user/dir' or 'c:\path\dir' + */ + dir?: string | undefined; + /** + * The file name including extension (if any) such as 'index.html' + */ + base?: string | undefined; + /** + * The file extension (if any) such as '.html' + */ + ext?: string | undefined; + /** + * The file name without extension (if any) such as 'index' + */ + name?: string | undefined; + } + interface PlatformPath { + /** + * Normalize a string path, reducing '..' and '.' parts. + * When multiple slashes are found, they're replaced by a single one; when the path contains a trailing slash, it is preserved. On Windows backslashes are used. + * + * @param path string path to normalize. + * @throws {TypeError} if `path` is not a string. + */ + normalize(path: string): string; + /** + * Join all arguments together and normalize the resulting path. + * + * @param paths paths to join. + * @throws {TypeError} if any of the path segments is not a string. + */ + join(...paths: string[]): string; + /** + * The right-most parameter is considered {to}. Other parameters are considered an array of {from}. + * + * Starting from leftmost {from} parameter, resolves {to} to an absolute path. + * + * If {to} isn't already absolute, {from} arguments are prepended in right to left order, + * until an absolute path is found. If after using all {from} paths still no absolute path is found, + * the current working directory is used as well. The resulting path is normalized, + * and trailing slashes are removed unless the path gets resolved to the root directory. + * + * @param paths A sequence of paths or path segments. + * @throws {TypeError} if any of the arguments is not a string. + */ + resolve(...paths: string[]): string; + /** + * Determines whether {path} is an absolute path. An absolute path will always resolve to the same location, regardless of the working directory. + * + * If the given {path} is a zero-length string, `false` will be returned. + * + * @param path path to test. + * @throws {TypeError} if `path` is not a string. + */ + isAbsolute(path: string): boolean; + /** + * Solve the relative path from {from} to {to} based on the current working directory. + * At times we have two absolute paths, and we need to derive the relative path from one to the other. This is actually the reverse transform of path.resolve. + * + * @throws {TypeError} if either `from` or `to` is not a string. + */ + relative(from: string, to: string): string; + /** + * Return the directory name of a path. Similar to the Unix dirname command. + * + * @param path the path to evaluate. + * @throws {TypeError} if `path` is not a string. + */ + dirname(path: string): string; + /** + * Return the last portion of a path. Similar to the Unix basename command. + * Often used to extract the file name from a fully qualified path. + * + * @param path the path to evaluate. + * @param suffix optionally, an extension to remove from the result. + * @throws {TypeError} if `path` is not a string or if `ext` is given and is not a string. + */ + basename(path: string, suffix?: string): string; + /** + * Return the extension of the path, from the last '.' to end of string in the last portion of the path. + * If there is no '.' in the last portion of the path or the first character of it is '.', then it returns an empty string. + * + * @param path the path to evaluate. + * @throws {TypeError} if `path` is not a string. + */ + extname(path: string): string; + /** + * The platform-specific file separator. '\\' or '/'. + */ + readonly sep: '\\' | '/'; + /** + * The platform-specific file delimiter. ';' or ':'. + */ + readonly delimiter: ';' | ':'; + /** + * Returns an object from a path string - the opposite of format(). + * + * @param path path to evaluate. + * @throws {TypeError} if `path` is not a string. + */ + parse(path: string): ParsedPath; + /** + * Returns a path string from an object - the opposite of parse(). + * + * @param pathObject path to evaluate. + */ + format(pathObject: FormatInputPathObject): string; + /** + * On Windows systems only, returns an equivalent namespace-prefixed path for the given path. + * If path is not a string, path will be returned without modifications. + * This method is meaningful only on Windows system. + * On POSIX systems, the method is non-operational and always returns path without modifications. + */ + toNamespacedPath(path: string): string; + /** + * Posix specific pathing. + * Same as parent object on posix. + */ + readonly posix: PlatformPath; + /** + * Windows specific pathing. + * Same as parent object on windows + */ + readonly win32: PlatformPath; + } + } + const path: path.PlatformPath; + export = path; +} +declare module 'node:path' { + import path = require('path'); + export = path; +} +declare module 'node:path/posix' { + import path = require('path/posix'); + export = path; +} +declare module 'node:path/win32' { + import path = require('path/win32'); + export = path; +} diff --git a/node_modules/@types/node/perf_hooks.d.ts b/node_modules/@types/node/perf_hooks.d.ts new file mode 100644 index 0000000..5c0b228 --- /dev/null +++ b/node_modules/@types/node/perf_hooks.d.ts @@ -0,0 +1,625 @@ +/** + * This module provides an implementation of a subset of the W3C [Web Performance APIs](https://w3c.github.io/perf-timing-primer/) as well as additional APIs for + * Node.js-specific performance measurements. + * + * Node.js supports the following [Web Performance APIs](https://w3c.github.io/perf-timing-primer/): + * + * * [High Resolution Time](https://www.w3.org/TR/hr-time-2) + * * [Performance Timeline](https://w3c.github.io/performance-timeline/) + * * [User Timing](https://www.w3.org/TR/user-timing/) + * + * ```js + * const { PerformanceObserver, performance } = require('perf_hooks'); + * + * const obs = new PerformanceObserver((items) => { + * console.log(items.getEntries()[0].duration); + * performance.clearMarks(); + * }); + * obs.observe({ type: 'measure' }); + * performance.measure('Start to Now'); + * + * performance.mark('A'); + * doSomeLongRunningProcess(() => { + * performance.measure('A to Now', 'A'); + * + * performance.mark('B'); + * performance.measure('A to B', 'A', 'B'); + * }); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/perf_hooks.js) + */ +declare module 'perf_hooks' { + import { AsyncResource } from 'node:async_hooks'; + type EntryType = 'node' | 'mark' | 'measure' | 'gc' | 'function' | 'http2' | 'http'; + interface NodeGCPerformanceDetail { + /** + * When `performanceEntry.entryType` is equal to 'gc', `the performance.kind` property identifies + * the type of garbage collection operation that occurred. + * See perf_hooks.constants for valid values. + */ + readonly kind?: number | undefined; + /** + * When `performanceEntry.entryType` is equal to 'gc', the `performance.flags` + * property contains additional information about garbage collection operation. + * See perf_hooks.constants for valid values. + */ + readonly flags?: number | undefined; + } + /** + * @since v8.5.0 + */ + class PerformanceEntry { + protected constructor(); + /** + * The total number of milliseconds elapsed for this entry. This value will not + * be meaningful for all Performance Entry types. + * @since v8.5.0 + */ + readonly duration: number; + /** + * The name of the performance entry. + * @since v8.5.0 + */ + readonly name: string; + /** + * The high resolution millisecond timestamp marking the starting time of the + * Performance Entry. + * @since v8.5.0 + */ + readonly startTime: number; + /** + * The type of the performance entry. It may be one of: + * + * * `'node'` (Node.js only) + * * `'mark'` (available on the Web) + * * `'measure'` (available on the Web) + * * `'gc'` (Node.js only) + * * `'function'` (Node.js only) + * * `'http2'` (Node.js only) + * * `'http'` (Node.js only) + * @since v8.5.0 + */ + readonly entryType: EntryType; + /** + * Additional detail specific to the `entryType`. + * @since v16.0.0 + */ + readonly detail?: NodeGCPerformanceDetail | unknown | undefined; // TODO: Narrow this based on entry type. + toJSON(): any; + } + class PerformanceMark extends PerformanceEntry { + readonly duration: 0; + readonly entryType: 'mark'; + } + class PerformanceMeasure extends PerformanceEntry { + readonly entryType: 'measure'; + } + /** + * _This property is an extension by Node.js. It is not available in Web browsers._ + * + * Provides timing details for Node.js itself. The constructor of this class + * is not exposed to users. + * @since v8.5.0 + */ + class PerformanceNodeTiming extends PerformanceEntry { + /** + * The high resolution millisecond timestamp at which the Node.js process + * completed bootstrapping. If bootstrapping has not yet finished, the property + * has the value of -1. + * @since v8.5.0 + */ + readonly bootstrapComplete: number; + /** + * The high resolution millisecond timestamp at which the Node.js environment was + * initialized. + * @since v8.5.0 + */ + readonly environment: number; + /** + * The high resolution millisecond timestamp of the amount of time the event loop + * has been idle within the event loop's event provider (e.g. `epoll_wait`). This + * does not take CPU usage into consideration. If the event loop has not yet + * started (e.g., in the first tick of the main script), the property has the + * value of 0. + * @since v14.10.0, v12.19.0 + */ + readonly idleTime: number; + /** + * The high resolution millisecond timestamp at which the Node.js event loop + * exited. If the event loop has not yet exited, the property has the value of -1\. + * It can only have a value of not -1 in a handler of the `'exit'` event. + * @since v8.5.0 + */ + readonly loopExit: number; + /** + * The high resolution millisecond timestamp at which the Node.js event loop + * started. If the event loop has not yet started (e.g., in the first tick of the + * main script), the property has the value of -1. + * @since v8.5.0 + */ + readonly loopStart: number; + /** + * The high resolution millisecond timestamp at which the V8 platform was + * initialized. + * @since v8.5.0 + */ + readonly v8Start: number; + } + interface EventLoopUtilization { + idle: number; + active: number; + utilization: number; + } + /** + * @param util1 The result of a previous call to eventLoopUtilization() + * @param util2 The result of a previous call to eventLoopUtilization() prior to util1 + */ + type EventLoopUtilityFunction = (util1?: EventLoopUtilization, util2?: EventLoopUtilization) => EventLoopUtilization; + interface MarkOptions { + /** + * Additional optional detail to include with the mark. + */ + detail?: unknown | undefined; + /** + * An optional timestamp to be used as the mark time. + * @default `performance.now()`. + */ + startTime?: number | undefined; + } + interface MeasureOptions { + /** + * Additional optional detail to include with the mark. + */ + detail?: unknown | undefined; + /** + * Duration between start and end times. + */ + duration?: number | undefined; + /** + * Timestamp to be used as the end time, or a string identifying a previously recorded mark. + */ + end?: number | string | undefined; + /** + * Timestamp to be used as the start time, or a string identifying a previously recorded mark. + */ + start?: number | string | undefined; + } + interface TimerifyOptions { + /** + * A histogram object created using + * `perf_hooks.createHistogram()` that will record runtime durations in + * nanoseconds. + */ + histogram?: RecordableHistogram | undefined; + } + interface Performance { + /** + * If name is not provided, removes all PerformanceMark objects from the Performance Timeline. + * If name is provided, removes only the named mark. + * @param name + */ + clearMarks(name?: string): void; + /** + * If name is not provided, removes all PerformanceMeasure objects from the Performance Timeline. + * If name is provided, removes only the named measure. + * @param name + * @since v16.7.0 + */ + clearMeasures(name?: string): void; + /** + * Returns a list of `PerformanceEntry` objects in chronological order with respect to `performanceEntry.startTime`. + * If you are only interested in performance entries of certain types or that have certain names, see + * `performance.getEntriesByType()` and `performance.getEntriesByName()`. + * @since v16.7.0 + */ + getEntries(): PerformanceEntry[]; + /** + * Returns a list of `PerformanceEntry` objects in chronological order with respect to `performanceEntry.startTime` + * whose `performanceEntry.name` is equal to `name`, and optionally, whose `performanceEntry.entryType` is equal to `type`. + * @param name + * @param type + * @since v16.7.0 + */ + getEntriesByName(name: string, type?: EntryType): PerformanceEntry[]; + /** + * Returns a list of `PerformanceEntry` objects in chronological order with respect to `performanceEntry.startTime` + * whose `performanceEntry.entryType` is equal to `type`. + * @param type + * @since v16.7.0 + */ + getEntriesByType(type: EntryType): PerformanceEntry[]; + /** + * Creates a new PerformanceMark entry in the Performance Timeline. + * A PerformanceMark is a subclass of PerformanceEntry whose performanceEntry.entryType is always 'mark', + * and whose performanceEntry.duration is always 0. + * Performance marks are used to mark specific significant moments in the Performance Timeline. + * @param name + * @return The PerformanceMark entry that was created + */ + mark(name?: string, options?: MarkOptions): PerformanceMark; + /** + * Creates a new PerformanceMeasure entry in the Performance Timeline. + * A PerformanceMeasure is a subclass of PerformanceEntry whose performanceEntry.entryType is always 'measure', + * and whose performanceEntry.duration measures the number of milliseconds elapsed since startMark and endMark. + * + * The startMark argument may identify any existing PerformanceMark in the the Performance Timeline, or may identify + * any of the timestamp properties provided by the PerformanceNodeTiming class. If the named startMark does not exist, + * then startMark is set to timeOrigin by default. + * + * The endMark argument must identify any existing PerformanceMark in the the Performance Timeline or any of the timestamp + * properties provided by the PerformanceNodeTiming class. If the named endMark does not exist, an error will be thrown. + * @param name + * @param startMark + * @param endMark + * @return The PerformanceMeasure entry that was created + */ + measure(name: string, startMark?: string, endMark?: string): PerformanceMeasure; + measure(name: string, options: MeasureOptions): PerformanceMeasure; + /** + * An instance of the PerformanceNodeTiming class that provides performance metrics for specific Node.js operational milestones. + */ + readonly nodeTiming: PerformanceNodeTiming; + /** + * @return the current high resolution millisecond timestamp + */ + now(): number; + /** + * The timeOrigin specifies the high resolution millisecond timestamp from which all performance metric durations are measured. + */ + readonly timeOrigin: number; + /** + * Wraps a function within a new function that measures the running time of the wrapped function. + * A PerformanceObserver must be subscribed to the 'function' event type in order for the timing details to be accessed. + * @param fn + */ + timerify any>(fn: T, options?: TimerifyOptions): T; + /** + * eventLoopUtilization is similar to CPU utilization except that it is calculated using high precision wall-clock time. + * It represents the percentage of time the event loop has spent outside the event loop's event provider (e.g. epoll_wait). + * No other CPU idle time is taken into consideration. + */ + eventLoopUtilization: EventLoopUtilityFunction; + } + interface PerformanceObserverEntryList { + /** + * Returns a list of `PerformanceEntry` objects in chronological order + * with respect to `performanceEntry.startTime`. + * + * ```js + * const { + * performance, + * PerformanceObserver + * } = require('perf_hooks'); + * + * const obs = new PerformanceObserver((perfObserverList, observer) => { + * console.log(perfObserverList.getEntries()); + * + * * [ + * * PerformanceEntry { + * * name: 'test', + * * entryType: 'mark', + * * startTime: 81.465639, + * * duration: 0 + * * }, + * * PerformanceEntry { + * * name: 'meow', + * * entryType: 'mark', + * * startTime: 81.860064, + * * duration: 0 + * * } + * * ] + * + * + * performance.clearMarks(); + * performance.clearMeasures(); + * observer.disconnect(); + * }); + * obs.observe({ type: 'mark' }); + * + * performance.mark('test'); + * performance.mark('meow'); + * ``` + * @since v8.5.0 + */ + getEntries(): PerformanceEntry[]; + /** + * Returns a list of `PerformanceEntry` objects in chronological order + * with respect to `performanceEntry.startTime` whose `performanceEntry.name` is + * equal to `name`, and optionally, whose `performanceEntry.entryType` is equal to`type`. + * + * ```js + * const { + * performance, + * PerformanceObserver + * } = require('perf_hooks'); + * + * const obs = new PerformanceObserver((perfObserverList, observer) => { + * console.log(perfObserverList.getEntriesByName('meow')); + * + * * [ + * * PerformanceEntry { + * * name: 'meow', + * * entryType: 'mark', + * * startTime: 98.545991, + * * duration: 0 + * * } + * * ] + * + * console.log(perfObserverList.getEntriesByName('nope')); // [] + * + * console.log(perfObserverList.getEntriesByName('test', 'mark')); + * + * * [ + * * PerformanceEntry { + * * name: 'test', + * * entryType: 'mark', + * * startTime: 63.518931, + * * duration: 0 + * * } + * * ] + * + * console.log(perfObserverList.getEntriesByName('test', 'measure')); // [] + * + * performance.clearMarks(); + * performance.clearMeasures(); + * observer.disconnect(); + * }); + * obs.observe({ entryTypes: ['mark', 'measure'] }); + * + * performance.mark('test'); + * performance.mark('meow'); + * ``` + * @since v8.5.0 + */ + getEntriesByName(name: string, type?: EntryType): PerformanceEntry[]; + /** + * Returns a list of `PerformanceEntry` objects in chronological order + * with respect to `performanceEntry.startTime` whose `performanceEntry.entryType`is equal to `type`. + * + * ```js + * const { + * performance, + * PerformanceObserver + * } = require('perf_hooks'); + * + * const obs = new PerformanceObserver((perfObserverList, observer) => { + * console.log(perfObserverList.getEntriesByType('mark')); + * + * * [ + * * PerformanceEntry { + * * name: 'test', + * * entryType: 'mark', + * * startTime: 55.897834, + * * duration: 0 + * * }, + * * PerformanceEntry { + * * name: 'meow', + * * entryType: 'mark', + * * startTime: 56.350146, + * * duration: 0 + * * } + * * ] + * + * performance.clearMarks(); + * performance.clearMeasures(); + * observer.disconnect(); + * }); + * obs.observe({ type: 'mark' }); + * + * performance.mark('test'); + * performance.mark('meow'); + * ``` + * @since v8.5.0 + */ + getEntriesByType(type: EntryType): PerformanceEntry[]; + } + type PerformanceObserverCallback = (list: PerformanceObserverEntryList, observer: PerformanceObserver) => void; + class PerformanceObserver extends AsyncResource { + constructor(callback: PerformanceObserverCallback); + /** + * Disconnects the `PerformanceObserver` instance from all notifications. + * @since v8.5.0 + */ + disconnect(): void; + /** + * Subscribes the `PerformanceObserver` instance to notifications of new `PerformanceEntry` instances identified either by `options.entryTypes`or `options.type`: + * + * ```js + * const { + * performance, + * PerformanceObserver + * } = require('perf_hooks'); + * + * const obs = new PerformanceObserver((list, observer) => { + * // Called once asynchronously. `list` contains three items. + * }); + * obs.observe({ type: 'mark' }); + * + * for (let n = 0; n < 3; n++) + * performance.mark(`test${n}`); + * ``` + * @since v8.5.0 + */ + observe( + options: + | { + entryTypes: ReadonlyArray; + buffered?: boolean | undefined; + } + | { + type: EntryType; + buffered?: boolean | undefined; + } + ): void; + } + namespace constants { + const NODE_PERFORMANCE_GC_MAJOR: number; + const NODE_PERFORMANCE_GC_MINOR: number; + const NODE_PERFORMANCE_GC_INCREMENTAL: number; + const NODE_PERFORMANCE_GC_WEAKCB: number; + const NODE_PERFORMANCE_GC_FLAGS_NO: number; + const NODE_PERFORMANCE_GC_FLAGS_CONSTRUCT_RETAINED: number; + const NODE_PERFORMANCE_GC_FLAGS_FORCED: number; + const NODE_PERFORMANCE_GC_FLAGS_SYNCHRONOUS_PHANTOM_PROCESSING: number; + const NODE_PERFORMANCE_GC_FLAGS_ALL_AVAILABLE_GARBAGE: number; + const NODE_PERFORMANCE_GC_FLAGS_ALL_EXTERNAL_MEMORY: number; + const NODE_PERFORMANCE_GC_FLAGS_SCHEDULE_IDLE: number; + } + const performance: Performance; + interface EventLoopMonitorOptions { + /** + * The sampling rate in milliseconds. + * Must be greater than zero. + * @default 10 + */ + resolution?: number | undefined; + } + interface Histogram { + /** + * Returns a `Map` object detailing the accumulated percentile distribution. + * @since v11.10.0 + */ + readonly percentiles: Map; + /** + * The number of times the event loop delay exceeded the maximum 1 hour event + * loop delay threshold. + * @since v11.10.0 + */ + readonly exceeds: number; + /** + * The minimum recorded event loop delay. + * @since v11.10.0 + */ + readonly min: number; + /** + * The maximum recorded event loop delay. + * @since v11.10.0 + */ + readonly max: number; + /** + * The mean of the recorded event loop delays. + * @since v11.10.0 + */ + readonly mean: number; + /** + * The standard deviation of the recorded event loop delays. + * @since v11.10.0 + */ + readonly stddev: number; + /** + * Resets the collected histogram data. + * @since v11.10.0 + */ + reset(): void; + /** + * Returns the value at the given percentile. + * @since v11.10.0 + * @param percentile A percentile value in the range (0, 100]. + */ + percentile(percentile: number): number; + } + interface IntervalHistogram extends Histogram { + /** + * Enables the update interval timer. Returns `true` if the timer was + * started, `false` if it was already started. + * @since v11.10.0 + */ + enable(): boolean; + /** + * Disables the update interval timer. Returns `true` if the timer was + * stopped, `false` if it was already stopped. + * @since v11.10.0 + */ + disable(): boolean; + } + interface RecordableHistogram extends Histogram { + /** + * @since v15.9.0, v14.18.0 + * @param val The amount to record in the histogram. + */ + record(val: number | bigint): void; + /** + * Calculates the amount of time (in nanoseconds) that has passed since the + * previous call to `recordDelta()` and records that amount in the histogram. + * + * ## Examples + * @since v15.9.0, v14.18.0 + */ + recordDelta(): void; + /** + * Adds the values from other to this histogram. + * @since v17.4.0, v16.14.0 + * @param other Recordable Histogram to combine with + */ + add(other: RecordableHistogram): void; + } + /** + * _This property is an extension by Node.js. It is not available in Web browsers._ + * + * Creates an `IntervalHistogram` object that samples and reports the event loop + * delay over time. The delays will be reported in nanoseconds. + * + * Using a timer to detect approximate event loop delay works because the + * execution of timers is tied specifically to the lifecycle of the libuv + * event loop. That is, a delay in the loop will cause a delay in the execution + * of the timer, and those delays are specifically what this API is intended to + * detect. + * + * ```js + * const { monitorEventLoopDelay } = require('perf_hooks'); + * const h = monitorEventLoopDelay({ resolution: 20 }); + * h.enable(); + * // Do something. + * h.disable(); + * console.log(h.min); + * console.log(h.max); + * console.log(h.mean); + * console.log(h.stddev); + * console.log(h.percentiles); + * console.log(h.percentile(50)); + * console.log(h.percentile(99)); + * ``` + * @since v11.10.0 + */ + function monitorEventLoopDelay(options?: EventLoopMonitorOptions): IntervalHistogram; + interface CreateHistogramOptions { + /** + * The minimum recordable value. Must be an integer value greater than 0. + * @default 1 + */ + min?: number | bigint | undefined; + /** + * The maximum recordable value. Must be an integer value greater than min. + * @default Number.MAX_SAFE_INTEGER + */ + max?: number | bigint | undefined; + /** + * The number of accuracy digits. Must be a number between 1 and 5. + * @default 3 + */ + figures?: number | undefined; + } + /** + * Returns a `RecordableHistogram`. + * @since v15.9.0, v14.18.0 + */ + function createHistogram(options?: CreateHistogramOptions): RecordableHistogram; + + import { performance as _performance } from 'perf_hooks'; + global { + /** + * `performance` is a global reference for `require('perf_hooks').performance` + * https://nodejs.org/api/globals.html#performance + * @since v16.0.0 + */ + var performance: typeof globalThis extends { + onmessage: any; + performance: infer T; + } + ? T + : typeof _performance; + } +} +declare module 'node:perf_hooks' { + export * from 'perf_hooks'; +} diff --git a/node_modules/@types/node/process.d.ts b/node_modules/@types/node/process.d.ts new file mode 100644 index 0000000..12148f9 --- /dev/null +++ b/node_modules/@types/node/process.d.ts @@ -0,0 +1,1482 @@ +declare module 'process' { + import * as tty from 'node:tty'; + import { Worker } from 'node:worker_threads'; + global { + var process: NodeJS.Process; + namespace NodeJS { + // this namespace merge is here because these are specifically used + // as the type for process.stdin, process.stdout, and process.stderr. + // they can't live in tty.d.ts because we need to disambiguate the imported name. + interface ReadStream extends tty.ReadStream {} + interface WriteStream extends tty.WriteStream {} + interface MemoryUsageFn { + /** + * The `process.memoryUsage()` method iterate over each page to gather informations about memory + * usage which can be slow depending on the program memory allocations. + */ + (): MemoryUsage; + /** + * method returns an integer representing the Resident Set Size (RSS) in bytes. + */ + rss(): number; + } + interface MemoryUsage { + rss: number; + heapTotal: number; + heapUsed: number; + external: number; + arrayBuffers: number; + } + interface CpuUsage { + user: number; + system: number; + } + interface ProcessRelease { + name: string; + sourceUrl?: string | undefined; + headersUrl?: string | undefined; + libUrl?: string | undefined; + lts?: string | undefined; + } + interface ProcessVersions extends Dict { + http_parser: string; + node: string; + v8: string; + ares: string; + uv: string; + zlib: string; + modules: string; + openssl: string; + } + type Platform = 'aix' | 'android' | 'darwin' | 'freebsd' | 'haiku' | 'linux' | 'openbsd' | 'sunos' | 'win32' | 'cygwin' | 'netbsd'; + type Architecture = 'arm' | 'arm64' | 'ia32' | 'mips' | 'mipsel' | 'ppc' | 'ppc64' | 's390' | 's390x' | 'x64'; + type Signals = + | 'SIGABRT' + | 'SIGALRM' + | 'SIGBUS' + | 'SIGCHLD' + | 'SIGCONT' + | 'SIGFPE' + | 'SIGHUP' + | 'SIGILL' + | 'SIGINT' + | 'SIGIO' + | 'SIGIOT' + | 'SIGKILL' + | 'SIGPIPE' + | 'SIGPOLL' + | 'SIGPROF' + | 'SIGPWR' + | 'SIGQUIT' + | 'SIGSEGV' + | 'SIGSTKFLT' + | 'SIGSTOP' + | 'SIGSYS' + | 'SIGTERM' + | 'SIGTRAP' + | 'SIGTSTP' + | 'SIGTTIN' + | 'SIGTTOU' + | 'SIGUNUSED' + | 'SIGURG' + | 'SIGUSR1' + | 'SIGUSR2' + | 'SIGVTALRM' + | 'SIGWINCH' + | 'SIGXCPU' + | 'SIGXFSZ' + | 'SIGBREAK' + | 'SIGLOST' + | 'SIGINFO'; + type UncaughtExceptionOrigin = 'uncaughtException' | 'unhandledRejection'; + type MultipleResolveType = 'resolve' | 'reject'; + type BeforeExitListener = (code: number) => void; + type DisconnectListener = () => void; + type ExitListener = (code: number) => void; + type RejectionHandledListener = (promise: Promise) => void; + type UncaughtExceptionListener = (error: Error, origin: UncaughtExceptionOrigin) => void; + /** + * Most of the time the unhandledRejection will be an Error, but this should not be relied upon + * as *anything* can be thrown/rejected, it is therefore unsafe to assume that the value is an Error. + */ + type UnhandledRejectionListener = (reason: unknown, promise: Promise) => void; + type WarningListener = (warning: Error) => void; + type MessageListener = (message: unknown, sendHandle: unknown) => void; + type SignalsListener = (signal: Signals) => void; + type MultipleResolveListener = (type: MultipleResolveType, promise: Promise, value: unknown) => void; + type WorkerListener = (worker: Worker) => void; + interface Socket extends ReadWriteStream { + isTTY?: true | undefined; + } + // Alias for compatibility + interface ProcessEnv extends Dict { + /** + * Can be used to change the default timezone at runtime + */ + TZ?: string; + } + interface HRTime { + (time?: [number, number]): [number, number]; + bigint(): bigint; + } + interface ProcessReport { + /** + * Directory where the report is written. + * working directory of the Node.js process. + * @default '' indicating that reports are written to the current + */ + directory: string; + /** + * Filename where the report is written. + * The default value is the empty string. + * @default '' the output filename will be comprised of a timestamp, + * PID, and sequence number. + */ + filename: string; + /** + * Returns a JSON-formatted diagnostic report for the running process. + * The report's JavaScript stack trace is taken from err, if present. + */ + getReport(err?: Error): string; + /** + * If true, a diagnostic report is generated on fatal errors, + * such as out of memory errors or failed C++ assertions. + * @default false + */ + reportOnFatalError: boolean; + /** + * If true, a diagnostic report is generated when the process + * receives the signal specified by process.report.signal. + * @default false + */ + reportOnSignal: boolean; + /** + * If true, a diagnostic report is generated on uncaught exception. + * @default false + */ + reportOnUncaughtException: boolean; + /** + * The signal used to trigger the creation of a diagnostic report. + * @default 'SIGUSR2' + */ + signal: Signals; + /** + * Writes a diagnostic report to a file. If filename is not provided, the default filename + * includes the date, time, PID, and a sequence number. + * The report's JavaScript stack trace is taken from err, if present. + * + * @param fileName Name of the file where the report is written. + * This should be a relative path, that will be appended to the directory specified in + * `process.report.directory`, or the current working directory of the Node.js process, + * if unspecified. + * @param error A custom error used for reporting the JavaScript stack. + * @return Filename of the generated report. + */ + writeReport(fileName?: string): string; + writeReport(error?: Error): string; + writeReport(fileName?: string, err?: Error): string; + } + interface ResourceUsage { + fsRead: number; + fsWrite: number; + involuntaryContextSwitches: number; + ipcReceived: number; + ipcSent: number; + majorPageFault: number; + maxRSS: number; + minorPageFault: number; + sharedMemorySize: number; + signalsCount: number; + swappedOut: number; + systemCPUTime: number; + unsharedDataSize: number; + unsharedStackSize: number; + userCPUTime: number; + voluntaryContextSwitches: number; + } + interface EmitWarningOptions { + /** + * When `warning` is a `string`, `type` is the name to use for the _type_ of warning being emitted. + * + * @default 'Warning' + */ + type?: string | undefined; + /** + * A unique identifier for the warning instance being emitted. + */ + code?: string | undefined; + /** + * When `warning` is a `string`, `ctor` is an optional function used to limit the generated stack trace. + * + * @default process.emitWarning + */ + ctor?: Function | undefined; + /** + * Additional text to include with the error. + */ + detail?: string | undefined; + } + interface ProcessConfig { + readonly target_defaults: { + readonly cflags: any[]; + readonly default_configuration: string; + readonly defines: string[]; + readonly include_dirs: string[]; + readonly libraries: string[]; + }; + readonly variables: { + readonly clang: number; + readonly host_arch: string; + readonly node_install_npm: boolean; + readonly node_install_waf: boolean; + readonly node_prefix: string; + readonly node_shared_openssl: boolean; + readonly node_shared_v8: boolean; + readonly node_shared_zlib: boolean; + readonly node_use_dtrace: boolean; + readonly node_use_etw: boolean; + readonly node_use_openssl: boolean; + readonly target_arch: string; + readonly v8_no_strict_aliasing: number; + readonly v8_use_snapshot: boolean; + readonly visibility: string; + }; + } + interface Process extends EventEmitter { + /** + * The `process.stdout` property returns a stream connected to`stdout` (fd `1`). It is a `net.Socket` (which is a `Duplex` stream) unless fd `1` refers to a file, in which case it is + * a `Writable` stream. + * + * For example, to copy `process.stdin` to `process.stdout`: + * + * ```js + * import { stdin, stdout } from 'process'; + * + * stdin.pipe(stdout); + * ``` + * + * `process.stdout` differs from other Node.js streams in important ways. See `note on process I/O` for more information. + */ + stdout: WriteStream & { + fd: 1; + }; + /** + * The `process.stderr` property returns a stream connected to`stderr` (fd `2`). It is a `net.Socket` (which is a `Duplex` stream) unless fd `2` refers to a file, in which case it is + * a `Writable` stream. + * + * `process.stderr` differs from other Node.js streams in important ways. See `note on process I/O` for more information. + */ + stderr: WriteStream & { + fd: 2; + }; + /** + * The `process.stdin` property returns a stream connected to`stdin` (fd `0`). It is a `net.Socket` (which is a `Duplex` stream) unless fd `0` refers to a file, in which case it is + * a `Readable` stream. + * + * For details of how to read from `stdin` see `readable.read()`. + * + * As a `Duplex` stream, `process.stdin` can also be used in "old" mode that + * is compatible with scripts written for Node.js prior to v0.10\. + * For more information see `Stream compatibility`. + * + * In "old" streams mode the `stdin` stream is paused by default, so one + * must call `process.stdin.resume()` to read from it. Note also that calling`process.stdin.resume()` itself would switch stream to "old" mode. + */ + stdin: ReadStream & { + fd: 0; + }; + openStdin(): Socket; + /** + * The `process.argv` property returns an array containing the command-line + * arguments passed when the Node.js process was launched. The first element will + * be {@link execPath}. See `process.argv0` if access to the original value + * of `argv[0]` is needed. The second element will be the path to the JavaScript + * file being executed. The remaining elements will be any additional command-line + * arguments. + * + * For example, assuming the following script for `process-args.js`: + * + * ```js + * import { argv } from 'process'; + * + * // print process.argv + * argv.forEach((val, index) => { + * console.log(`${index}: ${val}`); + * }); + * ``` + * + * Launching the Node.js process as: + * + * ```console + * $ node process-args.js one two=three four + * ``` + * + * Would generate the output: + * + * ```text + * 0: /usr/local/bin/node + * 1: /Users/mjr/work/node/process-args.js + * 2: one + * 3: two=three + * 4: four + * ``` + * @since v0.1.27 + */ + argv: string[]; + /** + * The `process.argv0` property stores a read-only copy of the original value of`argv[0]` passed when Node.js starts. + * + * ```console + * $ bash -c 'exec -a customArgv0 ./node' + * > process.argv[0] + * '/Volumes/code/external/node/out/Release/node' + * > process.argv0 + * 'customArgv0' + * ``` + * @since v6.4.0 + */ + argv0: string; + /** + * The `process.execArgv` property returns the set of Node.js-specific command-line + * options passed when the Node.js process was launched. These options do not + * appear in the array returned by the {@link argv} property, and do not + * include the Node.js executable, the name of the script, or any options following + * the script name. These options are useful in order to spawn child processes with + * the same execution environment as the parent. + * + * ```console + * $ node --harmony script.js --version + * ``` + * + * Results in `process.execArgv`: + * + * ```js + * ['--harmony'] + * ``` + * + * And `process.argv`: + * + * ```js + * ['/usr/local/bin/node', 'script.js', '--version'] + * ``` + * + * Refer to `Worker constructor` for the detailed behavior of worker + * threads with this property. + * @since v0.7.7 + */ + execArgv: string[]; + /** + * The `process.execPath` property returns the absolute pathname of the executable + * that started the Node.js process. Symbolic links, if any, are resolved. + * + * ```js + * '/usr/local/bin/node' + * ``` + * @since v0.1.100 + */ + execPath: string; + /** + * The `process.abort()` method causes the Node.js process to exit immediately and + * generate a core file. + * + * This feature is not available in `Worker` threads. + * @since v0.7.0 + */ + abort(): never; + /** + * The `process.chdir()` method changes the current working directory of the + * Node.js process or throws an exception if doing so fails (for instance, if + * the specified `directory` does not exist). + * + * ```js + * import { chdir, cwd } from 'process'; + * + * console.log(`Starting directory: ${cwd()}`); + * try { + * chdir('/tmp'); + * console.log(`New directory: ${cwd()}`); + * } catch (err) { + * console.error(`chdir: ${err}`); + * } + * ``` + * + * This feature is not available in `Worker` threads. + * @since v0.1.17 + */ + chdir(directory: string): void; + /** + * The `process.cwd()` method returns the current working directory of the Node.js + * process. + * + * ```js + * import { cwd } from 'process'; + * + * console.log(`Current directory: ${cwd()}`); + * ``` + * @since v0.1.8 + */ + cwd(): string; + /** + * The port used by the Node.js debugger when enabled. + * + * ```js + * import process from 'process'; + * + * process.debugPort = 5858; + * ``` + * @since v0.7.2 + */ + debugPort: number; + /** + * The `process.emitWarning()` method can be used to emit custom or application + * specific process warnings. These can be listened for by adding a handler to the `'warning'` event. + * + * ```js + * import { emitWarning } from 'process'; + * + * // Emit a warning with a code and additional detail. + * emitWarning('Something happened!', { + * code: 'MY_WARNING', + * detail: 'This is some additional information' + * }); + * // Emits: + * // (node:56338) [MY_WARNING] Warning: Something happened! + * // This is some additional information + * ``` + * + * In this example, an `Error` object is generated internally by`process.emitWarning()` and passed through to the `'warning'` handler. + * + * ```js + * import process from 'process'; + * + * process.on('warning', (warning) => { + * console.warn(warning.name); // 'Warning' + * console.warn(warning.message); // 'Something happened!' + * console.warn(warning.code); // 'MY_WARNING' + * console.warn(warning.stack); // Stack trace + * console.warn(warning.detail); // 'This is some additional information' + * }); + * ``` + * + * If `warning` is passed as an `Error` object, the `options` argument is ignored. + * @since v8.0.0 + * @param warning The warning to emit. + */ + emitWarning(warning: string | Error, ctor?: Function): void; + emitWarning(warning: string | Error, type?: string, ctor?: Function): void; + emitWarning(warning: string | Error, type?: string, code?: string, ctor?: Function): void; + emitWarning(warning: string | Error, options?: EmitWarningOptions): void; + /** + * The `process.env` property returns an object containing the user environment. + * See [`environ(7)`](http://man7.org/linux/man-pages/man7/environ.7.html). + * + * An example of this object looks like: + * + * ```js + * { + * TERM: 'xterm-256color', + * SHELL: '/usr/local/bin/bash', + * USER: 'maciej', + * PATH: '~/.bin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin', + * PWD: '/Users/maciej', + * EDITOR: 'vim', + * SHLVL: '1', + * HOME: '/Users/maciej', + * LOGNAME: 'maciej', + * _: '/usr/local/bin/node' + * } + * ``` + * + * It is possible to modify this object, but such modifications will not be + * reflected outside the Node.js process, or (unless explicitly requested) + * to other `Worker` threads. + * In other words, the following example would not work: + * + * ```console + * $ node -e 'process.env.foo = "bar"' && echo $foo + * ``` + * + * While the following will: + * + * ```js + * import { env } from 'process'; + * + * env.foo = 'bar'; + * console.log(env.foo); + * ``` + * + * Assigning a property on `process.env` will implicitly convert the value + * to a string. **This behavior is deprecated.** Future versions of Node.js may + * throw an error when the value is not a string, number, or boolean. + * + * ```js + * import { env } from 'process'; + * + * env.test = null; + * console.log(env.test); + * // => 'null' + * env.test = undefined; + * console.log(env.test); + * // => 'undefined' + * ``` + * + * Use `delete` to delete a property from `process.env`. + * + * ```js + * import { env } from 'process'; + * + * env.TEST = 1; + * delete env.TEST; + * console.log(env.TEST); + * // => undefined + * ``` + * + * On Windows operating systems, environment variables are case-insensitive. + * + * ```js + * import { env } from 'process'; + * + * env.TEST = 1; + * console.log(env.test); + * // => 1 + * ``` + * + * Unless explicitly specified when creating a `Worker` instance, + * each `Worker` thread has its own copy of `process.env`, based on its + * parent thread’s `process.env`, or whatever was specified as the `env` option + * to the `Worker` constructor. Changes to `process.env` will not be visible + * across `Worker` threads, and only the main thread can make changes that + * are visible to the operating system or to native add-ons. + * @since v0.1.27 + */ + env: ProcessEnv; + /** + * The `process.exit()` method instructs Node.js to terminate the process + * synchronously with an exit status of `code`. If `code` is omitted, exit uses + * either the 'success' code `0` or the value of `process.exitCode` if it has been + * set. Node.js will not terminate until all the `'exit'` event listeners are + * called. + * + * To exit with a 'failure' code: + * + * ```js + * import { exit } from 'process'; + * + * exit(1); + * ``` + * + * The shell that executed Node.js should see the exit code as `1`. + * + * Calling `process.exit()` will force the process to exit as quickly as possible + * even if there are still asynchronous operations pending that have not yet + * completed fully, including I/O operations to `process.stdout` and`process.stderr`. + * + * In most situations, it is not actually necessary to call `process.exit()`explicitly. The Node.js process will exit on its own _if there is no additional_ + * _work pending_ in the event loop. The `process.exitCode` property can be set to + * tell the process which exit code to use when the process exits gracefully. + * + * For instance, the following example illustrates a _misuse_ of the`process.exit()` method that could lead to data printed to stdout being + * truncated and lost: + * + * ```js + * import { exit } from 'process'; + * + * // This is an example of what *not* to do: + * if (someConditionNotMet()) { + * printUsageToStdout(); + * exit(1); + * } + * ``` + * + * The reason this is problematic is because writes to `process.stdout` in Node.js + * are sometimes _asynchronous_ and may occur over multiple ticks of the Node.js + * event loop. Calling `process.exit()`, however, forces the process to exit _before_ those additional writes to `stdout` can be performed. + * + * Rather than calling `process.exit()` directly, the code _should_ set the`process.exitCode` and allow the process to exit naturally by avoiding + * scheduling any additional work for the event loop: + * + * ```js + * import process from 'process'; + * + * // How to properly set the exit code while letting + * // the process exit gracefully. + * if (someConditionNotMet()) { + * printUsageToStdout(); + * process.exitCode = 1; + * } + * ``` + * + * If it is necessary to terminate the Node.js process due to an error condition, + * throwing an _uncaught_ error and allowing the process to terminate accordingly + * is safer than calling `process.exit()`. + * + * In `Worker` threads, this function stops the current thread rather + * than the current process. + * @since v0.1.13 + * @param [code=0] The exit code. + */ + exit(code?: number): never; + /** + * A number which will be the process exit code, when the process either + * exits gracefully, or is exited via {@link exit} without specifying + * a code. + * + * Specifying a code to {@link exit} will override any + * previous setting of `process.exitCode`. + * @since v0.11.8 + */ + exitCode?: number | undefined; + /** + * The `process.getgid()` method returns the numerical group identity of the + * process. (See [`getgid(2)`](http://man7.org/linux/man-pages/man2/getgid.2.html).) + * + * ```js + * import process from 'process'; + * + * if (process.getgid) { + * console.log(`Current gid: ${process.getgid()}`); + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * @since v0.1.31 + */ + getgid?: () => number; + /** + * The `process.setgid()` method sets the group identity of the process. (See [`setgid(2)`](http://man7.org/linux/man-pages/man2/setgid.2.html).) The `id` can be passed as either a + * numeric ID or a group name + * string. If a group name is specified, this method blocks while resolving the + * associated numeric ID. + * + * ```js + * import process from 'process'; + * + * if (process.getgid && process.setgid) { + * console.log(`Current gid: ${process.getgid()}`); + * try { + * process.setgid(501); + * console.log(`New gid: ${process.getgid()}`); + * } catch (err) { + * console.log(`Failed to set gid: ${err}`); + * } + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * This feature is not available in `Worker` threads. + * @since v0.1.31 + * @param id The group name or ID + */ + setgid?: (id: number | string) => void; + /** + * The `process.getuid()` method returns the numeric user identity of the process. + * (See [`getuid(2)`](http://man7.org/linux/man-pages/man2/getuid.2.html).) + * + * ```js + * import process from 'process'; + * + * if (process.getuid) { + * console.log(`Current uid: ${process.getuid()}`); + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * @since v0.1.28 + */ + getuid?: () => number; + /** + * The `process.setuid(id)` method sets the user identity of the process. (See [`setuid(2)`](http://man7.org/linux/man-pages/man2/setuid.2.html).) The `id` can be passed as either a + * numeric ID or a username string. + * If a username is specified, the method blocks while resolving the associated + * numeric ID. + * + * ```js + * import process from 'process'; + * + * if (process.getuid && process.setuid) { + * console.log(`Current uid: ${process.getuid()}`); + * try { + * process.setuid(501); + * console.log(`New uid: ${process.getuid()}`); + * } catch (err) { + * console.log(`Failed to set uid: ${err}`); + * } + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * This feature is not available in `Worker` threads. + * @since v0.1.28 + */ + setuid?: (id: number | string) => void; + /** + * The `process.geteuid()` method returns the numerical effective user identity of + * the process. (See [`geteuid(2)`](http://man7.org/linux/man-pages/man2/geteuid.2.html).) + * + * ```js + * import process from 'process'; + * + * if (process.geteuid) { + * console.log(`Current uid: ${process.geteuid()}`); + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * @since v2.0.0 + */ + geteuid?: () => number; + /** + * The `process.seteuid()` method sets the effective user identity of the process. + * (See [`seteuid(2)`](http://man7.org/linux/man-pages/man2/seteuid.2.html).) The `id` can be passed as either a numeric ID or a username + * string. If a username is specified, the method blocks while resolving the + * associated numeric ID. + * + * ```js + * import process from 'process'; + * + * if (process.geteuid && process.seteuid) { + * console.log(`Current uid: ${process.geteuid()}`); + * try { + * process.seteuid(501); + * console.log(`New uid: ${process.geteuid()}`); + * } catch (err) { + * console.log(`Failed to set uid: ${err}`); + * } + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * This feature is not available in `Worker` threads. + * @since v2.0.0 + * @param id A user name or ID + */ + seteuid?: (id: number | string) => void; + /** + * The `process.getegid()` method returns the numerical effective group identity + * of the Node.js process. (See [`getegid(2)`](http://man7.org/linux/man-pages/man2/getegid.2.html).) + * + * ```js + * import process from 'process'; + * + * if (process.getegid) { + * console.log(`Current gid: ${process.getegid()}`); + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * @since v2.0.0 + */ + getegid?: () => number; + /** + * The `process.setegid()` method sets the effective group identity of the process. + * (See [`setegid(2)`](http://man7.org/linux/man-pages/man2/setegid.2.html).) The `id` can be passed as either a numeric ID or a group + * name string. If a group name is specified, this method blocks while resolving + * the associated a numeric ID. + * + * ```js + * import process from 'process'; + * + * if (process.getegid && process.setegid) { + * console.log(`Current gid: ${process.getegid()}`); + * try { + * process.setegid(501); + * console.log(`New gid: ${process.getegid()}`); + * } catch (err) { + * console.log(`Failed to set gid: ${err}`); + * } + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * This feature is not available in `Worker` threads. + * @since v2.0.0 + * @param id A group name or ID + */ + setegid?: (id: number | string) => void; + /** + * The `process.getgroups()` method returns an array with the supplementary group + * IDs. POSIX leaves it unspecified if the effective group ID is included but + * Node.js ensures it always is. + * + * ```js + * import process from 'process'; + * + * if (process.getgroups) { + * console.log(process.getgroups()); // [ 16, 21, 297 ] + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * @since v0.9.4 + */ + getgroups?: () => number[]; + /** + * The `process.setgroups()` method sets the supplementary group IDs for the + * Node.js process. This is a privileged operation that requires the Node.js + * process to have `root` or the `CAP_SETGID` capability. + * + * The `groups` array can contain numeric group IDs, group names, or both. + * + * ```js + * import process from 'process'; + * + * if (process.getgroups && process.setgroups) { + * try { + * process.setgroups([501]); + * console.log(process.getgroups()); // new groups + * } catch (err) { + * console.log(`Failed to set groups: ${err}`); + * } + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * This feature is not available in `Worker` threads. + * @since v0.9.4 + */ + setgroups?: (groups: ReadonlyArray) => void; + /** + * The `process.setUncaughtExceptionCaptureCallback()` function sets a function + * that will be invoked when an uncaught exception occurs, which will receive the + * exception value itself as its first argument. + * + * If such a function is set, the `'uncaughtException'` event will + * not be emitted. If `--abort-on-uncaught-exception` was passed from the + * command line or set through `v8.setFlagsFromString()`, the process will + * not abort. Actions configured to take place on exceptions such as report + * generations will be affected too + * + * To unset the capture function,`process.setUncaughtExceptionCaptureCallback(null)` may be used. Calling this + * method with a non-`null` argument while another capture function is set will + * throw an error. + * + * Using this function is mutually exclusive with using the deprecated `domain` built-in module. + * @since v9.3.0 + */ + setUncaughtExceptionCaptureCallback(cb: ((err: Error) => void) | null): void; + /** + * Indicates whether a callback has been set using {@link setUncaughtExceptionCaptureCallback}. + * @since v9.3.0 + */ + hasUncaughtExceptionCaptureCallback(): boolean; + /** + * The `process.version` property contains the Node.js version string. + * + * ```js + * import { version } from 'process'; + * + * console.log(`Version: ${version}`); + * // Version: v14.8.0 + * ``` + * + * To get the version string without the prepended _v_, use`process.versions.node`. + * @since v0.1.3 + */ + readonly version: string; + /** + * The `process.versions` property returns an object listing the version strings of + * Node.js and its dependencies. `process.versions.modules` indicates the current + * ABI version, which is increased whenever a C++ API changes. Node.js will refuse + * to load modules that were compiled against a different module ABI version. + * + * ```js + * import { versions } from 'process'; + * + * console.log(versions); + * ``` + * + * Will generate an object similar to: + * + * ```console + * { node: '11.13.0', + * v8: '7.0.276.38-node.18', + * uv: '1.27.0', + * zlib: '1.2.11', + * brotli: '1.0.7', + * ares: '1.15.0', + * modules: '67', + * nghttp2: '1.34.0', + * napi: '4', + * llhttp: '1.1.1', + * openssl: '1.1.1b', + * cldr: '34.0', + * icu: '63.1', + * tz: '2018e', + * unicode: '11.0' } + * ``` + * @since v0.2.0 + */ + readonly versions: ProcessVersions; + /** + * The `process.config` property returns an `Object` containing the JavaScript + * representation of the configure options used to compile the current Node.js + * executable. This is the same as the `config.gypi` file that was produced when + * running the `./configure` script. + * + * An example of the possible output looks like: + * + * ```js + * { + * target_defaults: + * { cflags: [], + * default_configuration: 'Release', + * defines: [], + * include_dirs: [], + * libraries: [] }, + * variables: + * { + * host_arch: 'x64', + * napi_build_version: 5, + * node_install_npm: 'true', + * node_prefix: '', + * node_shared_cares: 'false', + * node_shared_http_parser: 'false', + * node_shared_libuv: 'false', + * node_shared_zlib: 'false', + * node_use_dtrace: 'false', + * node_use_openssl: 'true', + * node_shared_openssl: 'false', + * strict_aliasing: 'true', + * target_arch: 'x64', + * v8_use_snapshot: 1 + * } + * } + * ``` + * + * The `process.config` property is **not** read-only and there are existing + * modules in the ecosystem that are known to extend, modify, or entirely replace + * the value of `process.config`. + * + * Modifying the `process.config` property, or any child-property of the`process.config` object has been deprecated. The `process.config` will be made + * read-only in a future release. + * @since v0.7.7 + */ + readonly config: ProcessConfig; + /** + * The `process.kill()` method sends the `signal` to the process identified by`pid`. + * + * Signal names are strings such as `'SIGINT'` or `'SIGHUP'`. See `Signal Events` and [`kill(2)`](http://man7.org/linux/man-pages/man2/kill.2.html) for more information. + * + * This method will throw an error if the target `pid` does not exist. As a special + * case, a signal of `0` can be used to test for the existence of a process. + * Windows platforms will throw an error if the `pid` is used to kill a process + * group. + * + * Even though the name of this function is `process.kill()`, it is really just a + * signal sender, like the `kill` system call. The signal sent may do something + * other than kill the target process. + * + * ```js + * import process, { kill } from 'process'; + * + * process.on('SIGHUP', () => { + * console.log('Got SIGHUP signal.'); + * }); + * + * setTimeout(() => { + * console.log('Exiting.'); + * process.exit(0); + * }, 100); + * + * kill(process.pid, 'SIGHUP'); + * ``` + * + * When `SIGUSR1` is received by a Node.js process, Node.js will start the + * debugger. See `Signal Events`. + * @since v0.0.6 + * @param pid A process ID + * @param [signal='SIGTERM'] The signal to send, either as a string or number. + */ + kill(pid: number, signal?: string | number): true; + /** + * The `process.pid` property returns the PID of the process. + * + * ```js + * import { pid } from 'process'; + * + * console.log(`This process is pid ${pid}`); + * ``` + * @since v0.1.15 + */ + readonly pid: number; + /** + * The `process.ppid` property returns the PID of the parent of the + * current process. + * + * ```js + * import { ppid } from 'process'; + * + * console.log(`The parent process is pid ${ppid}`); + * ``` + * @since v9.2.0, v8.10.0, v6.13.0 + */ + readonly ppid: number; + /** + * The `process.title` property returns the current process title (i.e. returns + * the current value of `ps`). Assigning a new value to `process.title` modifies + * the current value of `ps`. + * + * When a new value is assigned, different platforms will impose different maximum + * length restrictions on the title. Usually such restrictions are quite limited. + * For instance, on Linux and macOS, `process.title` is limited to the size of the + * binary name plus the length of the command-line arguments because setting the`process.title` overwrites the `argv` memory of the process. Node.js v0.8 + * allowed for longer process title strings by also overwriting the `environ`memory but that was potentially insecure and confusing in some (rather obscure) + * cases. + * + * Assigning a value to `process.title` might not result in an accurate label + * within process manager applications such as macOS Activity Monitor or Windows + * Services Manager. + * @since v0.1.104 + */ + title: string; + /** + * The operating system CPU architecture for which the Node.js binary was compiled. + * Possible values are: `'arm'`, `'arm64'`, `'ia32'`, `'mips'`,`'mipsel'`, `'ppc'`,`'ppc64'`, `'s390'`, `'s390x'`, and `'x64'`. + * + * ```js + * import { arch } from 'process'; + * + * console.log(`This processor architecture is ${arch}`); + * ``` + * @since v0.5.0 + */ + readonly arch: Architecture; + /** + * The `process.platform` property returns a string identifying the operating + * system platform for which the Node.js binary was compiled. + * + * Currently possible values are: + * + * * `'aix'` + * * `'darwin'` + * * `'freebsd'` + * * `'linux'` + * * `'openbsd'` + * * `'sunos'` + * * `'win32'` + * + * ```js + * import { platform } from 'process'; + * + * console.log(`This platform is ${platform}`); + * ``` + * + * The value `'android'` may also be returned if the Node.js is built on the + * Android operating system. However, Android support in Node.js [is experimental](https://github.com/nodejs/node/blob/HEAD/BUILDING.md#androidandroid-based-devices-eg-firefox-os). + * @since v0.1.16 + */ + readonly platform: Platform; + /** + * The `process.mainModule` property provides an alternative way of retrieving `require.main`. The difference is that if the main module changes at + * runtime, `require.main` may still refer to the original main module in + * modules that were required before the change occurred. Generally, it's + * safe to assume that the two refer to the same module. + * + * As with `require.main`, `process.mainModule` will be `undefined` if there + * is no entry script. + * @since v0.1.17 + * @deprecated Since v14.0.0 - Use `main` instead. + */ + mainModule?: Module | undefined; + memoryUsage: MemoryUsageFn; + /** + * The `process.cpuUsage()` method returns the user and system CPU time usage of + * the current process, in an object with properties `user` and `system`, whose + * values are microsecond values (millionth of a second). These values measure time + * spent in user and system code respectively, and may end up being greater than + * actual elapsed time if multiple CPU cores are performing work for this process. + * + * The result of a previous call to `process.cpuUsage()` can be passed as the + * argument to the function, to get a diff reading. + * + * ```js + * import { cpuUsage } from 'process'; + * + * const startUsage = cpuUsage(); + * // { user: 38579, system: 6986 } + * + * // spin the CPU for 500 milliseconds + * const now = Date.now(); + * while (Date.now() - now < 500); + * + * console.log(cpuUsage(startUsage)); + * // { user: 514883, system: 11226 } + * ``` + * @since v6.1.0 + * @param previousValue A previous return value from calling `process.cpuUsage()` + */ + cpuUsage(previousValue?: CpuUsage): CpuUsage; + /** + * `process.nextTick()` adds `callback` to the "next tick queue". This queue is + * fully drained after the current operation on the JavaScript stack runs to + * completion and before the event loop is allowed to continue. It's possible to + * create an infinite loop if one were to recursively call `process.nextTick()`. + * See the [Event Loop](https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/#process-nexttick) guide for more background. + * + * ```js + * import { nextTick } from 'process'; + * + * console.log('start'); + * nextTick(() => { + * console.log('nextTick callback'); + * }); + * console.log('scheduled'); + * // Output: + * // start + * // scheduled + * // nextTick callback + * ``` + * + * This is important when developing APIs in order to give users the opportunity + * to assign event handlers _after_ an object has been constructed but before any + * I/O has occurred: + * + * ```js + * import { nextTick } from 'process'; + * + * function MyThing(options) { + * this.setupOptions(options); + * + * nextTick(() => { + * this.startDoingStuff(); + * }); + * } + * + * const thing = new MyThing(); + * thing.getReadyForStuff(); + * + * // thing.startDoingStuff() gets called now, not before. + * ``` + * + * It is very important for APIs to be either 100% synchronous or 100% + * asynchronous. Consider this example: + * + * ```js + * // WARNING! DO NOT USE! BAD UNSAFE HAZARD! + * function maybeSync(arg, cb) { + * if (arg) { + * cb(); + * return; + * } + * + * fs.stat('file', cb); + * } + * ``` + * + * This API is hazardous because in the following case: + * + * ```js + * const maybeTrue = Math.random() > 0.5; + * + * maybeSync(maybeTrue, () => { + * foo(); + * }); + * + * bar(); + * ``` + * + * It is not clear whether `foo()` or `bar()` will be called first. + * + * The following approach is much better: + * + * ```js + * import { nextTick } from 'process'; + * + * function definitelyAsync(arg, cb) { + * if (arg) { + * nextTick(cb); + * return; + * } + * + * fs.stat('file', cb); + * } + * ``` + * @since v0.1.26 + * @param args Additional arguments to pass when invoking the `callback` + */ + nextTick(callback: Function, ...args: any[]): void; + /** + * The `process.release` property returns an `Object` containing metadata related + * to the current release, including URLs for the source tarball and headers-only + * tarball. + * + * `process.release` contains the following properties: + * + * ```js + * { + * name: 'node', + * lts: 'Erbium', + * sourceUrl: 'https://nodejs.org/download/release/v12.18.1/node-v12.18.1.tar.gz', + * headersUrl: 'https://nodejs.org/download/release/v12.18.1/node-v12.18.1-headers.tar.gz', + * libUrl: 'https://nodejs.org/download/release/v12.18.1/win-x64/node.lib' + * } + * ``` + * + * In custom builds from non-release versions of the source tree, only the`name` property may be present. The additional properties should not be + * relied upon to exist. + * @since v3.0.0 + */ + readonly release: ProcessRelease; + features: { + inspector: boolean; + debug: boolean; + uv: boolean; + ipv6: boolean; + tls_alpn: boolean; + tls_sni: boolean; + tls_ocsp: boolean; + tls: boolean; + }; + /** + * `process.umask()` returns the Node.js process's file mode creation mask. Child + * processes inherit the mask from the parent process. + * @since v0.1.19 + * @deprecated Calling `process.umask()` with no argument causes the process-wide umask to be written twice. This introduces a race condition between threads, and is a potential * + * security vulnerability. There is no safe, cross-platform alternative API. + */ + umask(): number; + /** + * Can only be set if not in worker thread. + */ + umask(mask: string | number): number; + /** + * The `process.uptime()` method returns the number of seconds the current Node.js + * process has been running. + * + * The return value includes fractions of a second. Use `Math.floor()` to get whole + * seconds. + * @since v0.5.0 + */ + uptime(): number; + hrtime: HRTime; + /** + * If Node.js is spawned with an IPC channel, the `process.send()` method can be + * used to send messages to the parent process. Messages will be received as a `'message'` event on the parent's `ChildProcess` object. + * + * If Node.js was not spawned with an IPC channel, `process.send` will be`undefined`. + * + * The message goes through serialization and parsing. The resulting message might + * not be the same as what is originally sent. + * @since v0.5.9 + * @param options used to parameterize the sending of certain types of handles.`options` supports the following properties: + */ + send?( + message: any, + sendHandle?: any, + options?: { + swallowErrors?: boolean | undefined; + }, + callback?: (error: Error | null) => void + ): boolean; + /** + * If the Node.js process is spawned with an IPC channel (see the `Child Process` and `Cluster` documentation), the `process.disconnect()` method will close the + * IPC channel to the parent process, allowing the child process to exit gracefully + * once there are no other connections keeping it alive. + * + * The effect of calling `process.disconnect()` is the same as calling `ChildProcess.disconnect()` from the parent process. + * + * If the Node.js process was not spawned with an IPC channel,`process.disconnect()` will be `undefined`. + * @since v0.7.2 + */ + disconnect(): void; + /** + * If the Node.js process is spawned with an IPC channel (see the `Child Process` and `Cluster` documentation), the `process.connected` property will return`true` so long as the IPC + * channel is connected and will return `false` after`process.disconnect()` is called. + * + * Once `process.connected` is `false`, it is no longer possible to send messages + * over the IPC channel using `process.send()`. + * @since v0.7.2 + */ + connected: boolean; + /** + * The `process.allowedNodeEnvironmentFlags` property is a special, + * read-only `Set` of flags allowable within the `NODE_OPTIONS` environment variable. + * + * `process.allowedNodeEnvironmentFlags` extends `Set`, but overrides`Set.prototype.has` to recognize several different possible flag + * representations. `process.allowedNodeEnvironmentFlags.has()` will + * return `true` in the following cases: + * + * * Flags may omit leading single (`-`) or double (`--`) dashes; e.g.,`inspect-brk` for `--inspect-brk`, or `r` for `-r`. + * * Flags passed through to V8 (as listed in `--v8-options`) may replace + * one or more _non-leading_ dashes for an underscore, or vice-versa; + * e.g., `--perf_basic_prof`, `--perf-basic-prof`, `--perf_basic-prof`, + * etc. + * * Flags may contain one or more equals (`=`) characters; all + * characters after and including the first equals will be ignored; + * e.g., `--stack-trace-limit=100`. + * * Flags _must_ be allowable within `NODE_OPTIONS`. + * + * When iterating over `process.allowedNodeEnvironmentFlags`, flags will + * appear only _once_; each will begin with one or more dashes. Flags + * passed through to V8 will contain underscores instead of non-leading + * dashes: + * + * ```js + * import { allowedNodeEnvironmentFlags } from 'process'; + * + * allowedNodeEnvironmentFlags.forEach((flag) => { + * // -r + * // --inspect-brk + * // --abort_on_uncaught_exception + * // ... + * }); + * ``` + * + * The methods `add()`, `clear()`, and `delete()` of`process.allowedNodeEnvironmentFlags` do nothing, and will fail + * silently. + * + * If Node.js was compiled _without_ `NODE_OPTIONS` support (shown in {@link config}), `process.allowedNodeEnvironmentFlags` will + * contain what _would have_ been allowable. + * @since v10.10.0 + */ + allowedNodeEnvironmentFlags: ReadonlySet; + /** + * `process.report` is an object whose methods are used to generate diagnostic + * reports for the current process. Additional documentation is available in the `report documentation`. + * @since v11.8.0 + */ + report?: ProcessReport | undefined; + /** + * ```js + * import { resourceUsage } from 'process'; + * + * console.log(resourceUsage()); + * /* + * Will output: + * { + * userCPUTime: 82872, + * systemCPUTime: 4143, + * maxRSS: 33164, + * sharedMemorySize: 0, + * unsharedDataSize: 0, + * unsharedStackSize: 0, + * minorPageFault: 2469, + * majorPageFault: 0, + * swappedOut: 0, + * fsRead: 0, + * fsWrite: 8, + * ipcSent: 0, + * ipcReceived: 0, + * signalsCount: 0, + * voluntaryContextSwitches: 79, + * involuntaryContextSwitches: 1 + * } + * + * ``` + * @since v12.6.0 + * @return the resource usage for the current process. All of these values come from the `uv_getrusage` call which returns a [`uv_rusage_t` struct][uv_rusage_t]. + */ + resourceUsage(): ResourceUsage; + /** + * The `process.traceDeprecation` property indicates whether the`--trace-deprecation` flag is set on the current Node.js process. See the + * documentation for the `'warning' event` and the `emitWarning() method` for more information about this + * flag's behavior. + * @since v0.8.0 + */ + traceDeprecation: boolean; + /* EventEmitter */ + addListener(event: 'beforeExit', listener: BeforeExitListener): this; + addListener(event: 'disconnect', listener: DisconnectListener): this; + addListener(event: 'exit', listener: ExitListener): this; + addListener(event: 'rejectionHandled', listener: RejectionHandledListener): this; + addListener(event: 'uncaughtException', listener: UncaughtExceptionListener): this; + addListener(event: 'uncaughtExceptionMonitor', listener: UncaughtExceptionListener): this; + addListener(event: 'unhandledRejection', listener: UnhandledRejectionListener): this; + addListener(event: 'warning', listener: WarningListener): this; + addListener(event: 'message', listener: MessageListener): this; + addListener(event: Signals, listener: SignalsListener): this; + addListener(event: 'multipleResolves', listener: MultipleResolveListener): this; + addListener(event: 'worker', listener: WorkerListener): this; + emit(event: 'beforeExit', code: number): boolean; + emit(event: 'disconnect'): boolean; + emit(event: 'exit', code: number): boolean; + emit(event: 'rejectionHandled', promise: Promise): boolean; + emit(event: 'uncaughtException', error: Error): boolean; + emit(event: 'uncaughtExceptionMonitor', error: Error): boolean; + emit(event: 'unhandledRejection', reason: unknown, promise: Promise): boolean; + emit(event: 'warning', warning: Error): boolean; + emit(event: 'message', message: unknown, sendHandle: unknown): this; + emit(event: Signals, signal?: Signals): boolean; + emit(event: 'multipleResolves', type: MultipleResolveType, promise: Promise, value: unknown): this; + emit(event: 'worker', listener: WorkerListener): this; + on(event: 'beforeExit', listener: BeforeExitListener): this; + on(event: 'disconnect', listener: DisconnectListener): this; + on(event: 'exit', listener: ExitListener): this; + on(event: 'rejectionHandled', listener: RejectionHandledListener): this; + on(event: 'uncaughtException', listener: UncaughtExceptionListener): this; + on(event: 'uncaughtExceptionMonitor', listener: UncaughtExceptionListener): this; + on(event: 'unhandledRejection', listener: UnhandledRejectionListener): this; + on(event: 'warning', listener: WarningListener): this; + on(event: 'message', listener: MessageListener): this; + on(event: Signals, listener: SignalsListener): this; + on(event: 'multipleResolves', listener: MultipleResolveListener): this; + on(event: 'worker', listener: WorkerListener): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'beforeExit', listener: BeforeExitListener): this; + once(event: 'disconnect', listener: DisconnectListener): this; + once(event: 'exit', listener: ExitListener): this; + once(event: 'rejectionHandled', listener: RejectionHandledListener): this; + once(event: 'uncaughtException', listener: UncaughtExceptionListener): this; + once(event: 'uncaughtExceptionMonitor', listener: UncaughtExceptionListener): this; + once(event: 'unhandledRejection', listener: UnhandledRejectionListener): this; + once(event: 'warning', listener: WarningListener): this; + once(event: 'message', listener: MessageListener): this; + once(event: Signals, listener: SignalsListener): this; + once(event: 'multipleResolves', listener: MultipleResolveListener): this; + once(event: 'worker', listener: WorkerListener): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'beforeExit', listener: BeforeExitListener): this; + prependListener(event: 'disconnect', listener: DisconnectListener): this; + prependListener(event: 'exit', listener: ExitListener): this; + prependListener(event: 'rejectionHandled', listener: RejectionHandledListener): this; + prependListener(event: 'uncaughtException', listener: UncaughtExceptionListener): this; + prependListener(event: 'uncaughtExceptionMonitor', listener: UncaughtExceptionListener): this; + prependListener(event: 'unhandledRejection', listener: UnhandledRejectionListener): this; + prependListener(event: 'warning', listener: WarningListener): this; + prependListener(event: 'message', listener: MessageListener): this; + prependListener(event: Signals, listener: SignalsListener): this; + prependListener(event: 'multipleResolves', listener: MultipleResolveListener): this; + prependListener(event: 'worker', listener: WorkerListener): this; + prependOnceListener(event: 'beforeExit', listener: BeforeExitListener): this; + prependOnceListener(event: 'disconnect', listener: DisconnectListener): this; + prependOnceListener(event: 'exit', listener: ExitListener): this; + prependOnceListener(event: 'rejectionHandled', listener: RejectionHandledListener): this; + prependOnceListener(event: 'uncaughtException', listener: UncaughtExceptionListener): this; + prependOnceListener(event: 'uncaughtExceptionMonitor', listener: UncaughtExceptionListener): this; + prependOnceListener(event: 'unhandledRejection', listener: UnhandledRejectionListener): this; + prependOnceListener(event: 'warning', listener: WarningListener): this; + prependOnceListener(event: 'message', listener: MessageListener): this; + prependOnceListener(event: Signals, listener: SignalsListener): this; + prependOnceListener(event: 'multipleResolves', listener: MultipleResolveListener): this; + prependOnceListener(event: 'worker', listener: WorkerListener): this; + listeners(event: 'beforeExit'): BeforeExitListener[]; + listeners(event: 'disconnect'): DisconnectListener[]; + listeners(event: 'exit'): ExitListener[]; + listeners(event: 'rejectionHandled'): RejectionHandledListener[]; + listeners(event: 'uncaughtException'): UncaughtExceptionListener[]; + listeners(event: 'uncaughtExceptionMonitor'): UncaughtExceptionListener[]; + listeners(event: 'unhandledRejection'): UnhandledRejectionListener[]; + listeners(event: 'warning'): WarningListener[]; + listeners(event: 'message'): MessageListener[]; + listeners(event: Signals): SignalsListener[]; + listeners(event: 'multipleResolves'): MultipleResolveListener[]; + listeners(event: 'worker'): WorkerListener[]; + } + } + } + export = process; +} +declare module 'node:process' { + import process = require('process'); + export = process; +} diff --git a/node_modules/@types/node/punycode.d.ts b/node_modules/@types/node/punycode.d.ts new file mode 100644 index 0000000..87ebbb9 --- /dev/null +++ b/node_modules/@types/node/punycode.d.ts @@ -0,0 +1,117 @@ +/** + * **The version of the punycode module bundled in Node.js is being deprecated.**In a future major version of Node.js this module will be removed. Users + * currently depending on the `punycode` module should switch to using the + * userland-provided [Punycode.js](https://github.com/bestiejs/punycode.js) module instead. For punycode-based URL + * encoding, see `url.domainToASCII` or, more generally, the `WHATWG URL API`. + * + * The `punycode` module is a bundled version of the [Punycode.js](https://github.com/bestiejs/punycode.js) module. It + * can be accessed using: + * + * ```js + * const punycode = require('punycode'); + * ``` + * + * [Punycode](https://tools.ietf.org/html/rfc3492) is a character encoding scheme defined by RFC 3492 that is + * primarily intended for use in Internationalized Domain Names. Because host + * names in URLs are limited to ASCII characters only, Domain Names that contain + * non-ASCII characters must be converted into ASCII using the Punycode scheme. + * For instance, the Japanese character that translates into the English word,`'example'` is `'例'`. The Internationalized Domain Name, `'例.com'` (equivalent + * to `'example.com'`) is represented by Punycode as the ASCII string`'xn--fsq.com'`. + * + * The `punycode` module provides a simple implementation of the Punycode standard. + * + * The `punycode` module is a third-party dependency used by Node.js and + * made available to developers as a convenience. Fixes or other modifications to + * the module must be directed to the [Punycode.js](https://github.com/bestiejs/punycode.js) project. + * @deprecated Since v7.0.0 - Deprecated + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/punycode.js) + */ +declare module 'punycode' { + /** + * The `punycode.decode()` method converts a [Punycode](https://tools.ietf.org/html/rfc3492) string of ASCII-only + * characters to the equivalent string of Unicode codepoints. + * + * ```js + * punycode.decode('maana-pta'); // 'mañana' + * punycode.decode('--dqo34k'); // '☃-⌘' + * ``` + * @since v0.5.1 + */ + function decode(string: string): string; + /** + * The `punycode.encode()` method converts a string of Unicode codepoints to a [Punycode](https://tools.ietf.org/html/rfc3492) string of ASCII-only characters. + * + * ```js + * punycode.encode('mañana'); // 'maana-pta' + * punycode.encode('☃-⌘'); // '--dqo34k' + * ``` + * @since v0.5.1 + */ + function encode(string: string): string; + /** + * The `punycode.toUnicode()` method converts a string representing a domain name + * containing [Punycode](https://tools.ietf.org/html/rfc3492) encoded characters into Unicode. Only the [Punycode](https://tools.ietf.org/html/rfc3492) encoded parts of the domain name are be + * converted. + * + * ```js + * // decode domain names + * punycode.toUnicode('xn--maana-pta.com'); // 'mañana.com' + * punycode.toUnicode('xn----dqo34k.com'); // '☃-⌘.com' + * punycode.toUnicode('example.com'); // 'example.com' + * ``` + * @since v0.6.1 + */ + function toUnicode(domain: string): string; + /** + * The `punycode.toASCII()` method converts a Unicode string representing an + * Internationalized Domain Name to [Punycode](https://tools.ietf.org/html/rfc3492). Only the non-ASCII parts of the + * domain name will be converted. Calling `punycode.toASCII()` on a string that + * already only contains ASCII characters will have no effect. + * + * ```js + * // encode domain names + * punycode.toASCII('mañana.com'); // 'xn--maana-pta.com' + * punycode.toASCII('☃-⌘.com'); // 'xn----dqo34k.com' + * punycode.toASCII('example.com'); // 'example.com' + * ``` + * @since v0.6.1 + */ + function toASCII(domain: string): string; + /** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ + const ucs2: ucs2; + interface ucs2 { + /** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ + decode(string: string): number[]; + /** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ + encode(codePoints: ReadonlyArray): string; + } + /** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ + const version: string; +} +declare module 'node:punycode' { + export * from 'punycode'; +} diff --git a/node_modules/@types/node/querystring.d.ts b/node_modules/@types/node/querystring.d.ts new file mode 100644 index 0000000..e118547 --- /dev/null +++ b/node_modules/@types/node/querystring.d.ts @@ -0,0 +1,131 @@ +/** + * The `querystring` module provides utilities for parsing and formatting URL + * query strings. It can be accessed using: + * + * ```js + * const querystring = require('querystring'); + * ``` + * + * `querystring` is more performant than `URLSearchParams` but is not a + * standardized API. Use `URLSearchParams` when performance is not critical + * or when compatibility with browser code is desirable. + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/querystring.js) + */ +declare module 'querystring' { + interface StringifyOptions { + encodeURIComponent?: ((str: string) => string) | undefined; + } + interface ParseOptions { + maxKeys?: number | undefined; + decodeURIComponent?: ((str: string) => string) | undefined; + } + interface ParsedUrlQuery extends NodeJS.Dict {} + interface ParsedUrlQueryInput extends NodeJS.Dict | ReadonlyArray | ReadonlyArray | null> {} + /** + * The `querystring.stringify()` method produces a URL query string from a + * given `obj` by iterating through the object's "own properties". + * + * It serializes the following types of values passed in `obj`:[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) | + * [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) | + * [bigint](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) | + * [boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) | + * [string\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) | + * [number\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) | + * [bigint\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) | + * [boolean\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) The numeric values must be finite. Any other input values will be coerced to + * empty strings. + * + * ```js + * querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' }); + * // Returns 'foo=bar&baz=qux&baz=quux&corge=' + * + * querystring.stringify({ foo: 'bar', baz: 'qux' }, ';', ':'); + * // Returns 'foo:bar;baz:qux' + * ``` + * + * By default, characters requiring percent-encoding within the query string will + * be encoded as UTF-8\. If an alternative encoding is required, then an alternative`encodeURIComponent` option will need to be specified: + * + * ```js + * // Assuming gbkEncodeURIComponent function already exists, + * + * querystring.stringify({ w: '中文', foo: 'bar' }, null, null, + * { encodeURIComponent: gbkEncodeURIComponent }); + * ``` + * @since v0.1.25 + * @param obj The object to serialize into a URL query string + * @param [sep='&'] The substring used to delimit key and value pairs in the query string. + * @param [eq='='] . The substring used to delimit keys and values in the query string. + */ + function stringify(obj?: ParsedUrlQueryInput, sep?: string, eq?: string, options?: StringifyOptions): string; + /** + * The `querystring.parse()` method parses a URL query string (`str`) into a + * collection of key and value pairs. + * + * For example, the query string `'foo=bar&abc=xyz&abc=123'` is parsed into: + * + * ```js + * { + * foo: 'bar', + * abc: ['xyz', '123'] + * } + * ``` + * + * The object returned by the `querystring.parse()` method _does not_prototypically inherit from the JavaScript `Object`. This means that typical`Object` methods such as `obj.toString()`, + * `obj.hasOwnProperty()`, and others + * are not defined and _will not work_. + * + * By default, percent-encoded characters within the query string will be assumed + * to use UTF-8 encoding. If an alternative character encoding is used, then an + * alternative `decodeURIComponent` option will need to be specified: + * + * ```js + * // Assuming gbkDecodeURIComponent function already exists... + * + * querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null, + * { decodeURIComponent: gbkDecodeURIComponent }); + * ``` + * @since v0.1.25 + * @param str The URL query string to parse + * @param [sep='&'] The substring used to delimit key and value pairs in the query string. + * @param [eq='='] . The substring used to delimit keys and values in the query string. + */ + function parse(str: string, sep?: string, eq?: string, options?: ParseOptions): ParsedUrlQuery; + /** + * The querystring.encode() function is an alias for querystring.stringify(). + */ + const encode: typeof stringify; + /** + * The querystring.decode() function is an alias for querystring.parse(). + */ + const decode: typeof parse; + /** + * The `querystring.escape()` method performs URL percent-encoding on the given`str` in a manner that is optimized for the specific requirements of URL + * query strings. + * + * The `querystring.escape()` method is used by `querystring.stringify()` and is + * generally not expected to be used directly. It is exported primarily to allow + * application code to provide a replacement percent-encoding implementation if + * necessary by assigning `querystring.escape` to an alternative function. + * @since v0.1.25 + */ + function escape(str: string): string; + /** + * The `querystring.unescape()` method performs decoding of URL percent-encoded + * characters on the given `str`. + * + * The `querystring.unescape()` method is used by `querystring.parse()` and is + * generally not expected to be used directly. It is exported primarily to allow + * application code to provide a replacement decoding implementation if + * necessary by assigning `querystring.unescape` to an alternative function. + * + * By default, the `querystring.unescape()` method will attempt to use the + * JavaScript built-in `decodeURIComponent()` method to decode. If that fails, + * a safer equivalent that does not throw on malformed URLs will be used. + * @since v0.1.25 + */ + function unescape(str: string): string; +} +declare module 'node:querystring' { + export * from 'querystring'; +} diff --git a/node_modules/@types/node/readline.d.ts b/node_modules/@types/node/readline.d.ts new file mode 100644 index 0000000..6ab64ac --- /dev/null +++ b/node_modules/@types/node/readline.d.ts @@ -0,0 +1,653 @@ +/** + * The `readline` module provides an interface for reading data from a `Readable` stream (such as `process.stdin`) one line at a time. + * + * To use the promise-based APIs: + * + * ```js + * import * as readline from 'node:readline/promises'; + * ``` + * + * To use the callback and sync APIs: + * + * ```js + * import * as readline from 'node:readline'; + * ``` + * + * The following simple example illustrates the basic use of the `readline` module. + * + * ```js + * import * as readline from 'node:readline/promises'; + * import { stdin as input, stdout as output } from 'node:process'; + * + * const rl = readline.createInterface({ input, output }); + * + * const answer = await rl.question('What do you think of Node.js? '); + * + * console.log(`Thank you for your valuable feedback: ${answer}`); + * + * rl.close(); + * ``` + * + * Once this code is invoked, the Node.js application will not terminate until the`readline.Interface` is closed because the interface waits for data to be + * received on the `input` stream. + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/readline.js) + */ +declare module 'readline' { + import { Abortable, EventEmitter } from 'node:events'; + import * as promises from 'node:readline/promises'; + + export { promises }; + export interface Key { + sequence?: string | undefined; + name?: string | undefined; + ctrl?: boolean | undefined; + meta?: boolean | undefined; + shift?: boolean | undefined; + } + /** + * Instances of the `readline.Interface` class are constructed using the`readline.createInterface()` method. Every instance is associated with a + * single `input` `Readable` stream and a single `output` `Writable` stream. + * The `output` stream is used to print prompts for user input that arrives on, + * and is read from, the `input` stream. + * @since v0.1.104 + */ + export class Interface extends EventEmitter { + readonly terminal: boolean; + /** + * The current input data being processed by node. + * + * This can be used when collecting input from a TTY stream to retrieve the + * current value that has been processed thus far, prior to the `line` event + * being emitted. Once the `line` event has been emitted, this property will + * be an empty string. + * + * Be aware that modifying the value during the instance runtime may have + * unintended consequences if `rl.cursor` is not also controlled. + * + * **If not using a TTY stream for input, use the `'line'` event.** + * + * One possible use case would be as follows: + * + * ```js + * const values = ['lorem ipsum', 'dolor sit amet']; + * const rl = readline.createInterface(process.stdin); + * const showResults = debounce(() => { + * console.log( + * '\n', + * values.filter((val) => val.startsWith(rl.line)).join(' ') + * ); + * }, 300); + * process.stdin.on('keypress', (c, k) => { + * showResults(); + * }); + * ``` + * @since v0.1.98 + */ + readonly line: string; + /** + * The cursor position relative to `rl.line`. + * + * This will track where the current cursor lands in the input string, when + * reading input from a TTY stream. The position of cursor determines the + * portion of the input string that will be modified as input is processed, + * as well as the column where the terminal caret will be rendered. + * @since v0.1.98 + */ + readonly cursor: number; + /** + * NOTE: According to the documentation: + * + * > Instances of the `readline.Interface` class are constructed using the + * > `readline.createInterface()` method. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/readline.html#readline_class_interface + */ + protected constructor(input: NodeJS.ReadableStream, output?: NodeJS.WritableStream, completer?: Completer | AsyncCompleter, terminal?: boolean); + /** + * NOTE: According to the documentation: + * + * > Instances of the `readline.Interface` class are constructed using the + * > `readline.createInterface()` method. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/readline.html#readline_class_interface + */ + protected constructor(options: ReadLineOptions); + /** + * The `rl.getPrompt()` method returns the current prompt used by `rl.prompt()`. + * @since v15.3.0 + * @return the current prompt string + */ + getPrompt(): string; + /** + * The `rl.setPrompt()` method sets the prompt that will be written to `output`whenever `rl.prompt()` is called. + * @since v0.1.98 + */ + setPrompt(prompt: string): void; + /** + * The `rl.prompt()` method writes the `readline.Interface` instances configured`prompt` to a new line in `output` in order to provide a user with a new + * location at which to provide input. + * + * When called, `rl.prompt()` will resume the `input` stream if it has been + * paused. + * + * If the `readline.Interface` was created with `output` set to `null` or`undefined` the prompt is not written. + * @since v0.1.98 + * @param preserveCursor If `true`, prevents the cursor placement from being reset to `0`. + */ + prompt(preserveCursor?: boolean): void; + /** + * The `rl.question()` method displays the `query` by writing it to the `output`, + * waits for user input to be provided on `input`, then invokes the `callback`function passing the provided input as the first argument. + * + * When called, `rl.question()` will resume the `input` stream if it has been + * paused. + * + * If the `readline.Interface` was created with `output` set to `null` or`undefined` the `query` is not written. + * + * The `callback` function passed to `rl.question()` does not follow the typical + * pattern of accepting an `Error` object or `null` as the first argument. + * The `callback` is called with the provided answer as the only argument. + * + * Example usage: + * + * ```js + * rl.question('What is your favorite food? ', (answer) => { + * console.log(`Oh, so your favorite food is ${answer}`); + * }); + * ``` + * + * Using an `AbortController` to cancel a question. + * + * ```js + * const ac = new AbortController(); + * const signal = ac.signal; + * + * rl.question('What is your favorite food? ', { signal }, (answer) => { + * console.log(`Oh, so your favorite food is ${answer}`); + * }); + * + * signal.addEventListener('abort', () => { + * console.log('The food question timed out'); + * }, { once: true }); + * + * setTimeout(() => ac.abort(), 10000); + * ``` + * + * If this method is invoked as it's util.promisify()ed version, it returns a + * Promise that fulfills with the answer. If the question is canceled using + * an `AbortController` it will reject with an `AbortError`. + * + * ```js + * const util = require('util'); + * const question = util.promisify(rl.question).bind(rl); + * + * async function questionExample() { + * try { + * const answer = await question('What is you favorite food? '); + * console.log(`Oh, so your favorite food is ${answer}`); + * } catch (err) { + * console.error('Question rejected', err); + * } + * } + * questionExample(); + * ``` + * @since v0.3.3 + * @param query A statement or query to write to `output`, prepended to the prompt. + * @param callback A callback function that is invoked with the user's input in response to the `query`. + */ + question(query: string, callback: (answer: string) => void): void; + question(query: string, options: Abortable, callback: (answer: string) => void): void; + /** + * The `rl.pause()` method pauses the `input` stream, allowing it to be resumed + * later if necessary. + * + * Calling `rl.pause()` does not immediately pause other events (including`'line'`) from being emitted by the `readline.Interface` instance. + * @since v0.3.4 + */ + pause(): this; + /** + * The `rl.resume()` method resumes the `input` stream if it has been paused. + * @since v0.3.4 + */ + resume(): this; + /** + * The `rl.close()` method closes the `readline.Interface` instance and + * relinquishes control over the `input` and `output` streams. When called, + * the `'close'` event will be emitted. + * + * Calling `rl.close()` does not immediately stop other events (including `'line'`) + * from being emitted by the `readline.Interface` instance. + * @since v0.1.98 + */ + close(): void; + /** + * The `rl.write()` method will write either `data` or a key sequence identified + * by `key` to the `output`. The `key` argument is supported only if `output` is + * a `TTY` text terminal. See `TTY keybindings` for a list of key + * combinations. + * + * If `key` is specified, `data` is ignored. + * + * When called, `rl.write()` will resume the `input` stream if it has been + * paused. + * + * If the `readline.Interface` was created with `output` set to `null` or`undefined` the `data` and `key` are not written. + * + * ```js + * rl.write('Delete this!'); + * // Simulate Ctrl+U to delete the line written previously + * rl.write(null, { ctrl: true, name: 'u' }); + * ``` + * + * The `rl.write()` method will write the data to the `readline` `Interface`'s`input`_as if it were provided by the user_. + * @since v0.1.98 + */ + write(data: string | Buffer, key?: Key): void; + write(data: undefined | null | string | Buffer, key: Key): void; + /** + * Returns the real position of the cursor in relation to the input + * prompt + string. Long input (wrapping) strings, as well as multiple + * line prompts are included in the calculations. + * @since v13.5.0, v12.16.0 + */ + getCursorPos(): CursorPos; + /** + * events.EventEmitter + * 1. close + * 2. line + * 3. pause + * 4. resume + * 5. SIGCONT + * 6. SIGINT + * 7. SIGTSTP + * 8. history + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'line', listener: (input: string) => void): this; + addListener(event: 'pause', listener: () => void): this; + addListener(event: 'resume', listener: () => void): this; + addListener(event: 'SIGCONT', listener: () => void): this; + addListener(event: 'SIGINT', listener: () => void): this; + addListener(event: 'SIGTSTP', listener: () => void): this; + addListener(event: 'history', listener: (history: string[]) => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'close'): boolean; + emit(event: 'line', input: string): boolean; + emit(event: 'pause'): boolean; + emit(event: 'resume'): boolean; + emit(event: 'SIGCONT'): boolean; + emit(event: 'SIGINT'): boolean; + emit(event: 'SIGTSTP'): boolean; + emit(event: 'history', history: string[]): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'line', listener: (input: string) => void): this; + on(event: 'pause', listener: () => void): this; + on(event: 'resume', listener: () => void): this; + on(event: 'SIGCONT', listener: () => void): this; + on(event: 'SIGINT', listener: () => void): this; + on(event: 'SIGTSTP', listener: () => void): this; + on(event: 'history', listener: (history: string[]) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'line', listener: (input: string) => void): this; + once(event: 'pause', listener: () => void): this; + once(event: 'resume', listener: () => void): this; + once(event: 'SIGCONT', listener: () => void): this; + once(event: 'SIGINT', listener: () => void): this; + once(event: 'SIGTSTP', listener: () => void): this; + once(event: 'history', listener: (history: string[]) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'line', listener: (input: string) => void): this; + prependListener(event: 'pause', listener: () => void): this; + prependListener(event: 'resume', listener: () => void): this; + prependListener(event: 'SIGCONT', listener: () => void): this; + prependListener(event: 'SIGINT', listener: () => void): this; + prependListener(event: 'SIGTSTP', listener: () => void): this; + prependListener(event: 'history', listener: (history: string[]) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'line', listener: (input: string) => void): this; + prependOnceListener(event: 'pause', listener: () => void): this; + prependOnceListener(event: 'resume', listener: () => void): this; + prependOnceListener(event: 'SIGCONT', listener: () => void): this; + prependOnceListener(event: 'SIGINT', listener: () => void): this; + prependOnceListener(event: 'SIGTSTP', listener: () => void): this; + prependOnceListener(event: 'history', listener: (history: string[]) => void): this; + [Symbol.asyncIterator](): AsyncIterableIterator; + } + export type ReadLine = Interface; // type forwarded for backwards compatibility + export type Completer = (line: string) => CompleterResult; + export type AsyncCompleter = (line: string, callback: (err?: null | Error, result?: CompleterResult) => void) => void; + export type CompleterResult = [string[], string]; + export interface ReadLineOptions { + input: NodeJS.ReadableStream; + output?: NodeJS.WritableStream | undefined; + completer?: Completer | AsyncCompleter | undefined; + terminal?: boolean | undefined; + /** + * Initial list of history lines. This option makes sense + * only if `terminal` is set to `true` by the user or by an internal `output` + * check, otherwise the history caching mechanism is not initialized at all. + * @default [] + */ + history?: string[] | undefined; + historySize?: number | undefined; + prompt?: string | undefined; + crlfDelay?: number | undefined; + /** + * If `true`, when a new input line added + * to the history list duplicates an older one, this removes the older line + * from the list. + * @default false + */ + removeHistoryDuplicates?: boolean | undefined; + escapeCodeTimeout?: number | undefined; + tabSize?: number | undefined; + } + /** + * The `readline.createInterface()` method creates a new `readline.Interface`instance. + * + * ```js + * const readline = require('readline'); + * const rl = readline.createInterface({ + * input: process.stdin, + * output: process.stdout + * }); + * ``` + * + * Once the `readline.Interface` instance is created, the most common case is to + * listen for the `'line'` event: + * + * ```js + * rl.on('line', (line) => { + * console.log(`Received: ${line}`); + * }); + * ``` + * + * If `terminal` is `true` for this instance then the `output` stream will get + * the best compatibility if it defines an `output.columns` property and emits + * a `'resize'` event on the `output` if or when the columns ever change + * (`process.stdout` does this automatically when it is a TTY). + * + * When creating a `readline.Interface` using `stdin` as input, the program + * will not terminate until it receives `EOF` (Ctrl+D on + * Linux/macOS, Ctrl+Z followed by Return on + * Windows). + * If you want your application to exit without waiting for user input, you can `unref()` the standard input stream: + * + * ```js + * process.stdin.unref(); + * ``` + * @since v0.1.98 + */ + export function createInterface(input: NodeJS.ReadableStream, output?: NodeJS.WritableStream, completer?: Completer | AsyncCompleter, terminal?: boolean): Interface; + export function createInterface(options: ReadLineOptions): Interface; + /** + * The `readline.emitKeypressEvents()` method causes the given `Readable` stream to begin emitting `'keypress'` events corresponding to received input. + * + * Optionally, `interface` specifies a `readline.Interface` instance for which + * autocompletion is disabled when copy-pasted input is detected. + * + * If the `stream` is a `TTY`, then it must be in raw mode. + * + * This is automatically called by any readline instance on its `input` if the`input` is a terminal. Closing the `readline` instance does not stop + * the `input` from emitting `'keypress'` events. + * + * ```js + * readline.emitKeypressEvents(process.stdin); + * if (process.stdin.isTTY) + * process.stdin.setRawMode(true); + * ``` + * + * ## Example: Tiny CLI + * + * The following example illustrates the use of `readline.Interface` class to + * implement a small command-line interface: + * + * ```js + * const readline = require('readline'); + * const rl = readline.createInterface({ + * input: process.stdin, + * output: process.stdout, + * prompt: 'OHAI> ' + * }); + * + * rl.prompt(); + * + * rl.on('line', (line) => { + * switch (line.trim()) { + * case 'hello': + * console.log('world!'); + * break; + * default: + * console.log(`Say what? I might have heard '${line.trim()}'`); + * break; + * } + * rl.prompt(); + * }).on('close', () => { + * console.log('Have a great day!'); + * process.exit(0); + * }); + * ``` + * + * ## Example: Read file stream line-by-Line + * + * A common use case for `readline` is to consume an input file one line at a + * time. The easiest way to do so is leveraging the `fs.ReadStream` API as + * well as a `for await...of` loop: + * + * ```js + * const fs = require('fs'); + * const readline = require('readline'); + * + * async function processLineByLine() { + * const fileStream = fs.createReadStream('input.txt'); + * + * const rl = readline.createInterface({ + * input: fileStream, + * crlfDelay: Infinity + * }); + * // Note: we use the crlfDelay option to recognize all instances of CR LF + * // ('\r\n') in input.txt as a single line break. + * + * for await (const line of rl) { + * // Each line in input.txt will be successively available here as `line`. + * console.log(`Line from file: ${line}`); + * } + * } + * + * processLineByLine(); + * ``` + * + * Alternatively, one could use the `'line'` event: + * + * ```js + * const fs = require('fs'); + * const readline = require('readline'); + * + * const rl = readline.createInterface({ + * input: fs.createReadStream('sample.txt'), + * crlfDelay: Infinity + * }); + * + * rl.on('line', (line) => { + * console.log(`Line from file: ${line}`); + * }); + * ``` + * + * Currently, `for await...of` loop can be a bit slower. If `async` / `await`flow and speed are both essential, a mixed approach can be applied: + * + * ```js + * const { once } = require('events'); + * const { createReadStream } = require('fs'); + * const { createInterface } = require('readline'); + * + * (async function processLineByLine() { + * try { + * const rl = createInterface({ + * input: createReadStream('big-file.txt'), + * crlfDelay: Infinity + * }); + * + * rl.on('line', (line) => { + * // Process the line. + * }); + * + * await once(rl, 'close'); + * + * console.log('File processed.'); + * } catch (err) { + * console.error(err); + * } + * })(); + * ``` + * @since v0.7.7 + */ + export function emitKeypressEvents(stream: NodeJS.ReadableStream, readlineInterface?: Interface): void; + export type Direction = -1 | 0 | 1; + export interface CursorPos { + rows: number; + cols: number; + } + /** + * The `readline.clearLine()` method clears current line of given `TTY` stream + * in a specified direction identified by `dir`. + * @since v0.7.7 + * @param callback Invoked once the operation completes. + * @return `false` if `stream` wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + export function clearLine(stream: NodeJS.WritableStream, dir: Direction, callback?: () => void): boolean; + /** + * The `readline.clearScreenDown()` method clears the given `TTY` stream from + * the current position of the cursor down. + * @since v0.7.7 + * @param callback Invoked once the operation completes. + * @return `false` if `stream` wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + export function clearScreenDown(stream: NodeJS.WritableStream, callback?: () => void): boolean; + /** + * The `readline.cursorTo()` method moves cursor to the specified position in a + * given `TTY` `stream`. + * @since v0.7.7 + * @param callback Invoked once the operation completes. + * @return `false` if `stream` wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + export function cursorTo(stream: NodeJS.WritableStream, x: number, y?: number, callback?: () => void): boolean; + /** + * The `readline.moveCursor()` method moves the cursor _relative_ to its current + * position in a given `TTY` `stream`. + * + * ## Example: Tiny CLI + * + * The following example illustrates the use of `readline.Interface` class to + * implement a small command-line interface: + * + * ```js + * const readline = require('readline'); + * const rl = readline.createInterface({ + * input: process.stdin, + * output: process.stdout, + * prompt: 'OHAI> ' + * }); + * + * rl.prompt(); + * + * rl.on('line', (line) => { + * switch (line.trim()) { + * case 'hello': + * console.log('world!'); + * break; + * default: + * console.log(`Say what? I might have heard '${line.trim()}'`); + * break; + * } + * rl.prompt(); + * }).on('close', () => { + * console.log('Have a great day!'); + * process.exit(0); + * }); + * ``` + * + * ## Example: Read file stream line-by-Line + * + * A common use case for `readline` is to consume an input file one line at a + * time. The easiest way to do so is leveraging the `fs.ReadStream` API as + * well as a `for await...of` loop: + * + * ```js + * const fs = require('fs'); + * const readline = require('readline'); + * + * async function processLineByLine() { + * const fileStream = fs.createReadStream('input.txt'); + * + * const rl = readline.createInterface({ + * input: fileStream, + * crlfDelay: Infinity + * }); + * // Note: we use the crlfDelay option to recognize all instances of CR LF + * // ('\r\n') in input.txt as a single line break. + * + * for await (const line of rl) { + * // Each line in input.txt will be successively available here as `line`. + * console.log(`Line from file: ${line}`); + * } + * } + * + * processLineByLine(); + * ``` + * + * Alternatively, one could use the `'line'` event: + * + * ```js + * const fs = require('fs'); + * const readline = require('readline'); + * + * const rl = readline.createInterface({ + * input: fs.createReadStream('sample.txt'), + * crlfDelay: Infinity + * }); + * + * rl.on('line', (line) => { + * console.log(`Line from file: ${line}`); + * }); + * ``` + * + * Currently, `for await...of` loop can be a bit slower. If `async` / `await`flow and speed are both essential, a mixed approach can be applied: + * + * ```js + * const { once } = require('events'); + * const { createReadStream } = require('fs'); + * const { createInterface } = require('readline'); + * + * (async function processLineByLine() { + * try { + * const rl = createInterface({ + * input: createReadStream('big-file.txt'), + * crlfDelay: Infinity + * }); + * + * rl.on('line', (line) => { + * // Process the line. + * }); + * + * await once(rl, 'close'); + * + * console.log('File processed.'); + * } catch (err) { + * console.error(err); + * } + * })(); + * ``` + * @since v0.7.7 + * @param callback Invoked once the operation completes. + * @return `false` if `stream` wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + export function moveCursor(stream: NodeJS.WritableStream, dx: number, dy: number, callback?: () => void): boolean; +} +declare module 'node:readline' { + export * from 'readline'; +} diff --git a/node_modules/@types/node/readline/promises.d.ts b/node_modules/@types/node/readline/promises.d.ts new file mode 100644 index 0000000..8f9f06f --- /dev/null +++ b/node_modules/@types/node/readline/promises.d.ts @@ -0,0 +1,143 @@ +/** + * The `readline/promise` module provides an API for reading lines of input from a Readable stream one line at a time. + * + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/readline/promises.js) + * @since v17.0.0 + */ +declare module 'readline/promises' { + import { Interface as _Interface, ReadLineOptions, Completer, AsyncCompleter, Direction } from 'node:readline'; + import { Abortable } from 'node:events'; + + class Interface extends _Interface { + /** + * The rl.question() method displays the query by writing it to the output, waits for user input to be provided on input, + * then invokes the callback function passing the provided input as the first argument. + * + * When called, rl.question() will resume the input stream if it has been paused. + * + * If the readlinePromises.Interface was created with output set to null or undefined the query is not written. + * + * If the question is called after rl.close(), it returns a rejected promise. + * + * Example usage: + * + * ```js + * const answer = await rl.question('What is your favorite food? '); + * console.log(`Oh, so your favorite food is ${answer}`); + * ``` + * + * Using an AbortSignal to cancel a question. + * + * ```js + * const signal = AbortSignal.timeout(10_000); + * + * signal.addEventListener('abort', () => { + * console.log('The food question timed out'); + * }, { once: true }); + * + * const answer = await rl.question('What is your favorite food? ', { signal }); + * console.log(`Oh, so your favorite food is ${answer}`); + * ``` + * + * @since v17.0.0 + * @param query A statement or query to write to output, prepended to the prompt. + */ + question(query: string): Promise; + question(query: string, options: Abortable): Promise; + } + + class Readline { + /** + * @param stream A TTY stream. + */ + constructor(stream: NodeJS.WritableStream, options?: { autoCommit?: boolean }); + /** + * The `rl.clearLine()` method adds to the internal list of pending action an action that clears current line of the associated `stream` in a specified direction identified by `dir`. + * Call `rl.commit()` to see the effect of this method, unless `autoCommit: true` was passed to the constructor. + */ + clearLine(dir: Direction): this; + /** + * The `rl.clearScreenDown()` method adds to the internal list of pending action an action that clears the associated `stream` from the current position of the cursor down. + * Call `rl.commit()` to see the effect of this method, unless `autoCommit: true` was passed to the constructor. + */ + clearScreenDown(): this; + /** + * The `rl.commit()` method sends all the pending actions to the associated `stream` and clears the internal list of pending actions. + */ + commit(): Promise; + /** + * The `rl.cursorTo()` method adds to the internal list of pending action an action that moves cursor to the specified position in the associated `stream`. + * Call `rl.commit()` to see the effect of this method, unless `autoCommit: true` was passed to the constructor. + */ + cursorTo(x: number, y?: number): this; + /** + * The `rl.moveCursor()` method adds to the internal list of pending action an action that moves the cursor relative to its current position in the associated `stream`. + * Call `rl.commit()` to see the effect of this method, unless autoCommit: true was passed to the constructor. + */ + moveCursor(dx: number, dy: number): this; + /** + * The `rl.rollback()` method clears the internal list of pending actions without sending it to the associated `stream`. + */ + rollback(): this; + } + + /** + * The `readlinePromises.createInterface()` method creates a new `readlinePromises.Interface` instance. + * + * ```js + * const readlinePromises = require('node:readline/promises'); + * const rl = readlinePromises.createInterface({ + * input: process.stdin, + * output: process.stdout + * }); + * ``` + * + * Once the `readlinePromises.Interface` instance is created, the most common case is to listen for the `'line'` event: + * + * ```js + * rl.on('line', (line) => { + * console.log(`Received: ${line}`); + * }); + * ``` + * + * If `terminal` is `true` for this instance then the `output` stream will get the best compatibility if it defines an `output.columns` property, + * and emits a `'resize'` event on the `output`, if or when the columns ever change (`process.stdout` does this automatically when it is a TTY). + * + * ## Use of the `completer` function + * + * The `completer` function takes the current line entered by the user as an argument, and returns an `Array` with 2 entries: + * + * - An Array with matching entries for the completion. + * - The substring that was used for the matching. + * + * For instance: `[[substr1, substr2, ...], originalsubstring]`. + * + * ```js + * function completer(line) { + * const completions = '.help .error .exit .quit .q'.split(' '); + * const hits = completions.filter((c) => c.startsWith(line)); + * // Show all completions if none found + * return [hits.length ? hits : completions, line]; + * } + * ``` + * + * The `completer` function can also returns a `Promise`, or be asynchronous: + * + * ```js + * async function completer(linePartial) { + * await someAsyncWork(); + * return [['123'], linePartial]; + * } + * ``` + */ + function createInterface( + input: NodeJS.ReadableStream, + output?: NodeJS.WritableStream, + completer?: Completer | AsyncCompleter, + terminal?: boolean, + ): Interface; + function createInterface(options: ReadLineOptions): Interface; +} +declare module 'node:readline/promises' { + export * from 'readline/promises'; +} diff --git a/node_modules/@types/node/repl.d.ts b/node_modules/@types/node/repl.d.ts new file mode 100644 index 0000000..be42ccc --- /dev/null +++ b/node_modules/@types/node/repl.d.ts @@ -0,0 +1,424 @@ +/** + * The `repl` module provides a Read-Eval-Print-Loop (REPL) implementation that + * is available both as a standalone program or includible in other applications. + * It can be accessed using: + * + * ```js + * const repl = require('repl'); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/repl.js) + */ +declare module 'repl' { + import { Interface, Completer, AsyncCompleter } from 'node:readline'; + import { Context } from 'node:vm'; + import { InspectOptions } from 'node:util'; + interface ReplOptions { + /** + * The input prompt to display. + * @default "> " + */ + prompt?: string | undefined; + /** + * The `Readable` stream from which REPL input will be read. + * @default process.stdin + */ + input?: NodeJS.ReadableStream | undefined; + /** + * The `Writable` stream to which REPL output will be written. + * @default process.stdout + */ + output?: NodeJS.WritableStream | undefined; + /** + * If `true`, specifies that the output should be treated as a TTY terminal, and have + * ANSI/VT100 escape codes written to it. + * Default: checking the value of the `isTTY` property on the output stream upon + * instantiation. + */ + terminal?: boolean | undefined; + /** + * The function to be used when evaluating each given line of input. + * Default: an async wrapper for the JavaScript `eval()` function. An `eval` function can + * error with `repl.Recoverable` to indicate the input was incomplete and prompt for + * additional lines. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_default_evaluation + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_custom_evaluation_functions + */ + eval?: REPLEval | undefined; + /** + * Defines if the repl prints output previews or not. + * @default `true` Always `false` in case `terminal` is falsy. + */ + preview?: boolean | undefined; + /** + * If `true`, specifies that the default `writer` function should include ANSI color + * styling to REPL output. If a custom `writer` function is provided then this has no + * effect. + * Default: the REPL instance's `terminal` value. + */ + useColors?: boolean | undefined; + /** + * If `true`, specifies that the default evaluation function will use the JavaScript + * `global` as the context as opposed to creating a new separate context for the REPL + * instance. The node CLI REPL sets this value to `true`. + * Default: `false`. + */ + useGlobal?: boolean | undefined; + /** + * If `true`, specifies that the default writer will not output the return value of a + * command if it evaluates to `undefined`. + * Default: `false`. + */ + ignoreUndefined?: boolean | undefined; + /** + * The function to invoke to format the output of each command before writing to `output`. + * Default: a wrapper for `util.inspect`. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_customizing_repl_output + */ + writer?: REPLWriter | undefined; + /** + * An optional function used for custom Tab auto completion. + * + * @see https://nodejs.org/dist/latest-v11.x/docs/api/readline.html#readline_use_of_the_completer_function + */ + completer?: Completer | AsyncCompleter | undefined; + /** + * A flag that specifies whether the default evaluator executes all JavaScript commands in + * strict mode or default (sloppy) mode. + * Accepted values are: + * - `repl.REPL_MODE_SLOPPY` - evaluates expressions in sloppy mode. + * - `repl.REPL_MODE_STRICT` - evaluates expressions in strict mode. This is equivalent to + * prefacing every repl statement with `'use strict'`. + */ + replMode?: typeof REPL_MODE_SLOPPY | typeof REPL_MODE_STRICT | undefined; + /** + * Stop evaluating the current piece of code when `SIGINT` is received, i.e. `Ctrl+C` is + * pressed. This cannot be used together with a custom `eval` function. + * Default: `false`. + */ + breakEvalOnSigint?: boolean | undefined; + } + type REPLEval = (this: REPLServer, evalCmd: string, context: Context, file: string, cb: (err: Error | null, result: any) => void) => void; + type REPLWriter = (this: REPLServer, obj: any) => string; + /** + * This is the default "writer" value, if none is passed in the REPL options, + * and it can be overridden by custom print functions. + */ + const writer: REPLWriter & { + options: InspectOptions; + }; + type REPLCommandAction = (this: REPLServer, text: string) => void; + interface REPLCommand { + /** + * Help text to be displayed when `.help` is entered. + */ + help?: string | undefined; + /** + * The function to execute, optionally accepting a single string argument. + */ + action: REPLCommandAction; + } + /** + * Instances of `repl.REPLServer` are created using the {@link start} method + * or directly using the JavaScript `new` keyword. + * + * ```js + * const repl = require('repl'); + * + * const options = { useColors: true }; + * + * const firstInstance = repl.start(options); + * const secondInstance = new repl.REPLServer(options); + * ``` + * @since v0.1.91 + */ + class REPLServer extends Interface { + /** + * The `vm.Context` provided to the `eval` function to be used for JavaScript + * evaluation. + */ + readonly context: Context; + /** + * @deprecated since v14.3.0 - Use `input` instead. + */ + readonly inputStream: NodeJS.ReadableStream; + /** + * @deprecated since v14.3.0 - Use `output` instead. + */ + readonly outputStream: NodeJS.WritableStream; + /** + * The `Readable` stream from which REPL input will be read. + */ + readonly input: NodeJS.ReadableStream; + /** + * The `Writable` stream to which REPL output will be written. + */ + readonly output: NodeJS.WritableStream; + /** + * The commands registered via `replServer.defineCommand()`. + */ + readonly commands: NodeJS.ReadOnlyDict; + /** + * A value indicating whether the REPL is currently in "editor mode". + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_commands_and_special_keys + */ + readonly editorMode: boolean; + /** + * A value indicating whether the `_` variable has been assigned. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable + */ + readonly underscoreAssigned: boolean; + /** + * The last evaluation result from the REPL (assigned to the `_` variable inside of the REPL). + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable + */ + readonly last: any; + /** + * A value indicating whether the `_error` variable has been assigned. + * + * @since v9.8.0 + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable + */ + readonly underscoreErrAssigned: boolean; + /** + * The last error raised inside the REPL (assigned to the `_error` variable inside of the REPL). + * + * @since v9.8.0 + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable + */ + readonly lastError: any; + /** + * Specified in the REPL options, this is the function to be used when evaluating each + * given line of input. If not specified in the REPL options, this is an async wrapper + * for the JavaScript `eval()` function. + */ + readonly eval: REPLEval; + /** + * Specified in the REPL options, this is a value indicating whether the default + * `writer` function should include ANSI color styling to REPL output. + */ + readonly useColors: boolean; + /** + * Specified in the REPL options, this is a value indicating whether the default `eval` + * function will use the JavaScript `global` as the context as opposed to creating a new + * separate context for the REPL instance. + */ + readonly useGlobal: boolean; + /** + * Specified in the REPL options, this is a value indicating whether the default `writer` + * function should output the result of a command if it evaluates to `undefined`. + */ + readonly ignoreUndefined: boolean; + /** + * Specified in the REPL options, this is the function to invoke to format the output of + * each command before writing to `outputStream`. If not specified in the REPL options, + * this will be a wrapper for `util.inspect`. + */ + readonly writer: REPLWriter; + /** + * Specified in the REPL options, this is the function to use for custom Tab auto-completion. + */ + readonly completer: Completer | AsyncCompleter; + /** + * Specified in the REPL options, this is a flag that specifies whether the default `eval` + * function should execute all JavaScript commands in strict mode or default (sloppy) mode. + * Possible values are: + * - `repl.REPL_MODE_SLOPPY` - evaluates expressions in sloppy mode. + * - `repl.REPL_MODE_STRICT` - evaluates expressions in strict mode. This is equivalent to + * prefacing every repl statement with `'use strict'`. + */ + readonly replMode: typeof REPL_MODE_SLOPPY | typeof REPL_MODE_STRICT; + /** + * NOTE: According to the documentation: + * + * > Instances of `repl.REPLServer` are created using the `repl.start()` method and + * > _should not_ be created directly using the JavaScript `new` keyword. + * + * `REPLServer` cannot be subclassed due to implementation specifics in NodeJS. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_class_replserver + */ + private constructor(); + /** + * The `replServer.defineCommand()` method is used to add new `.`\-prefixed commands + * to the REPL instance. Such commands are invoked by typing a `.` followed by the`keyword`. The `cmd` is either a `Function` or an `Object` with the following + * properties: + * + * The following example shows two new commands added to the REPL instance: + * + * ```js + * const repl = require('repl'); + * + * const replServer = repl.start({ prompt: '> ' }); + * replServer.defineCommand('sayhello', { + * help: 'Say hello', + * action(name) { + * this.clearBufferedCommand(); + * console.log(`Hello, ${name}!`); + * this.displayPrompt(); + * } + * }); + * replServer.defineCommand('saybye', function saybye() { + * console.log('Goodbye!'); + * this.close(); + * }); + * ``` + * + * The new commands can then be used from within the REPL instance: + * + * ```console + * > .sayhello Node.js User + * Hello, Node.js User! + * > .saybye + * Goodbye! + * ``` + * @since v0.3.0 + * @param keyword The command keyword (_without_ a leading `.` character). + * @param cmd The function to invoke when the command is processed. + */ + defineCommand(keyword: string, cmd: REPLCommandAction | REPLCommand): void; + /** + * The `replServer.displayPrompt()` method readies the REPL instance for input + * from the user, printing the configured `prompt` to a new line in the `output`and resuming the `input` to accept new input. + * + * When multi-line input is being entered, an ellipsis is printed rather than the + * 'prompt'. + * + * When `preserveCursor` is `true`, the cursor placement will not be reset to `0`. + * + * The `replServer.displayPrompt` method is primarily intended to be called from + * within the action function for commands registered using the`replServer.defineCommand()` method. + * @since v0.1.91 + */ + displayPrompt(preserveCursor?: boolean): void; + /** + * The `replServer.clearBufferedCommand()` method clears any command that has been + * buffered but not yet executed. This method is primarily intended to be + * called from within the action function for commands registered using the`replServer.defineCommand()` method. + * @since v9.0.0 + */ + clearBufferedCommand(): void; + /** + * Initializes a history log file for the REPL instance. When executing the + * Node.js binary and using the command-line REPL, a history file is initialized + * by default. However, this is not the case when creating a REPL + * programmatically. Use this method to initialize a history log file when working + * with REPL instances programmatically. + * @since v11.10.0 + * @param historyPath the path to the history file + * @param callback called when history writes are ready or upon error + */ + setupHistory(path: string, callback: (err: Error | null, repl: this) => void): void; + /** + * events.EventEmitter + * 1. close - inherited from `readline.Interface` + * 2. line - inherited from `readline.Interface` + * 3. pause - inherited from `readline.Interface` + * 4. resume - inherited from `readline.Interface` + * 5. SIGCONT - inherited from `readline.Interface` + * 6. SIGINT - inherited from `readline.Interface` + * 7. SIGTSTP - inherited from `readline.Interface` + * 8. exit + * 9. reset + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'line', listener: (input: string) => void): this; + addListener(event: 'pause', listener: () => void): this; + addListener(event: 'resume', listener: () => void): this; + addListener(event: 'SIGCONT', listener: () => void): this; + addListener(event: 'SIGINT', listener: () => void): this; + addListener(event: 'SIGTSTP', listener: () => void): this; + addListener(event: 'exit', listener: () => void): this; + addListener(event: 'reset', listener: (context: Context) => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'close'): boolean; + emit(event: 'line', input: string): boolean; + emit(event: 'pause'): boolean; + emit(event: 'resume'): boolean; + emit(event: 'SIGCONT'): boolean; + emit(event: 'SIGINT'): boolean; + emit(event: 'SIGTSTP'): boolean; + emit(event: 'exit'): boolean; + emit(event: 'reset', context: Context): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'line', listener: (input: string) => void): this; + on(event: 'pause', listener: () => void): this; + on(event: 'resume', listener: () => void): this; + on(event: 'SIGCONT', listener: () => void): this; + on(event: 'SIGINT', listener: () => void): this; + on(event: 'SIGTSTP', listener: () => void): this; + on(event: 'exit', listener: () => void): this; + on(event: 'reset', listener: (context: Context) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'line', listener: (input: string) => void): this; + once(event: 'pause', listener: () => void): this; + once(event: 'resume', listener: () => void): this; + once(event: 'SIGCONT', listener: () => void): this; + once(event: 'SIGINT', listener: () => void): this; + once(event: 'SIGTSTP', listener: () => void): this; + once(event: 'exit', listener: () => void): this; + once(event: 'reset', listener: (context: Context) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'line', listener: (input: string) => void): this; + prependListener(event: 'pause', listener: () => void): this; + prependListener(event: 'resume', listener: () => void): this; + prependListener(event: 'SIGCONT', listener: () => void): this; + prependListener(event: 'SIGINT', listener: () => void): this; + prependListener(event: 'SIGTSTP', listener: () => void): this; + prependListener(event: 'exit', listener: () => void): this; + prependListener(event: 'reset', listener: (context: Context) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'line', listener: (input: string) => void): this; + prependOnceListener(event: 'pause', listener: () => void): this; + prependOnceListener(event: 'resume', listener: () => void): this; + prependOnceListener(event: 'SIGCONT', listener: () => void): this; + prependOnceListener(event: 'SIGINT', listener: () => void): this; + prependOnceListener(event: 'SIGTSTP', listener: () => void): this; + prependOnceListener(event: 'exit', listener: () => void): this; + prependOnceListener(event: 'reset', listener: (context: Context) => void): this; + } + /** + * A flag passed in the REPL options. Evaluates expressions in sloppy mode. + */ + const REPL_MODE_SLOPPY: unique symbol; + /** + * A flag passed in the REPL options. Evaluates expressions in strict mode. + * This is equivalent to prefacing every repl statement with `'use strict'`. + */ + const REPL_MODE_STRICT: unique symbol; + /** + * The `repl.start()` method creates and starts a {@link REPLServer} instance. + * + * If `options` is a string, then it specifies the input prompt: + * + * ```js + * const repl = require('repl'); + * + * // a Unix style prompt + * repl.start('$ '); + * ``` + * @since v0.1.91 + */ + function start(options?: string | ReplOptions): REPLServer; + /** + * Indicates a recoverable error that a `REPLServer` can use to support multi-line input. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_recoverable_errors + */ + class Recoverable extends SyntaxError { + err: Error; + constructor(err: Error); + } +} +declare module 'node:repl' { + export * from 'repl'; +} diff --git a/node_modules/@types/node/stream.d.ts b/node_modules/@types/node/stream.d.ts new file mode 100644 index 0000000..711fd9c --- /dev/null +++ b/node_modules/@types/node/stream.d.ts @@ -0,0 +1,1340 @@ +/** + * A stream is an abstract interface for working with streaming data in Node.js. + * The `stream` module provides an API for implementing the stream interface. + * + * There are many stream objects provided by Node.js. For instance, a `request to an HTTP server` and `process.stdout` are both stream instances. + * + * Streams can be readable, writable, or both. All streams are instances of `EventEmitter`. + * + * To access the `stream` module: + * + * ```js + * const stream = require('stream'); + * ``` + * + * The `stream` module is useful for creating new types of stream instances. It is + * usually not necessary to use the `stream` module to consume streams. + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/stream.js) + */ +declare module 'stream' { + import { EventEmitter, Abortable } from 'node:events'; + import { Blob as NodeBlob } from "node:buffer"; + import * as streamPromises from 'node:stream/promises'; + import * as streamConsumers from 'node:stream/consumers'; + import * as streamWeb from 'node:stream/web'; + class internal extends EventEmitter { + pipe( + destination: T, + options?: { + end?: boolean | undefined; + } + ): T; + } + namespace internal { + class Stream extends internal { + constructor(opts?: ReadableOptions); + } + interface StreamOptions extends Abortable { + emitClose?: boolean | undefined; + highWaterMark?: number | undefined; + objectMode?: boolean | undefined; + construct?(this: T, callback: (error?: Error | null) => void): void; + destroy?(this: T, error: Error | null, callback: (error: Error | null) => void): void; + autoDestroy?: boolean | undefined; + } + interface ReadableOptions extends StreamOptions { + encoding?: BufferEncoding | undefined; + read?(this: Readable, size: number): void; + } + /** + * @since v0.9.4 + */ + class Readable extends Stream implements NodeJS.ReadableStream { + /** + * A utility method for creating Readable Streams out of iterators. + */ + static from(iterable: Iterable | AsyncIterable, options?: ReadableOptions): Readable; + /** + * A utility method for creating a `Readable` from a web `ReadableStream`. + * @since v17.0.0 + * @experimental + */ + static fromWeb(readableStream: streamWeb.ReadableStream, options?: Pick): Readable; + /** + * Returns whether the stream has been read from or cancelled. + * @since v16.8.0 + */ + static isDisturbed(stream: Readable | NodeJS.ReadableStream): boolean; + /** + * A utility method for creating a web `ReadableStream` from a `Readable`. + * @since v17.0.0 + * @experimental + */ + static toWeb(streamReadable: Readable): streamWeb.ReadableStream; + /** + * Returns whether the stream was destroyed or errored before emitting `'end'`. + * @since v16.8.0 + * @experimental + */ + readonly readableAborted: boolean; + /** + * Is `true` if it is safe to call `readable.read()`, which means + * the stream has not been destroyed or emitted `'error'` or `'end'`. + * @since v11.4.0 + */ + readable: boolean; + /** + * Returns whether `'data'` has been emitted. + * @since v16.7.0, v14.18.0 + * @experimental + */ + readonly readableDidRead: boolean; + /** + * Getter for the property `encoding` of a given `Readable` stream. The `encoding`property can be set using the `readable.setEncoding()` method. + * @since v12.7.0 + */ + readonly readableEncoding: BufferEncoding | null; + /** + * Becomes `true` when `'end'` event is emitted. + * @since v12.9.0 + */ + readonly readableEnded: boolean; + /** + * This property reflects the current state of a `Readable` stream as described + * in the `Three states` section. + * @since v9.4.0 + */ + readonly readableFlowing: boolean | null; + /** + * Returns the value of `highWaterMark` passed when creating this `Readable`. + * @since v9.3.0 + */ + readonly readableHighWaterMark: number; + /** + * This property contains the number of bytes (or objects) in the queue + * ready to be read. The value provides introspection data regarding + * the status of the `highWaterMark`. + * @since v9.4.0 + */ + readonly readableLength: number; + /** + * Getter for the property `objectMode` of a given `Readable` stream. + * @since v12.3.0 + */ + readonly readableObjectMode: boolean; + /** + * Is `true` after `readable.destroy()` has been called. + * @since v8.0.0 + */ + destroyed: boolean; + /** + * Is true after 'close' has been emitted. + * @since v18.0.0 + */ + readonly closed: boolean; + /** + * Returns error if the stream has been destroyed with an error. + * @since v18.0.0 + */ + readonly errored: Error | null; + constructor(opts?: ReadableOptions); + _construct?(callback: (error?: Error | null) => void): void; + _read(size: number): void; + /** + * The `readable.read()` method reads data out of the internal buffer and + * returns it. If no data is available to be read, `null` is returned. By default, + * the data is returned as a `Buffer` object unless an encoding has been + * specified using the `readable.setEncoding()` method or the stream is operating + * in object mode. + * + * The optional `size` argument specifies a specific number of bytes to read. If`size` bytes are not available to be read, `null` will be returned _unless_the stream has ended, in which + * case all of the data remaining in the internal + * buffer will be returned. + * + * If the `size` argument is not specified, all of the data contained in the + * internal buffer will be returned. + * + * The `size` argument must be less than or equal to 1 GiB. + * + * The `readable.read()` method should only be called on `Readable` streams + * operating in paused mode. In flowing mode, `readable.read()` is called + * automatically until the internal buffer is fully drained. + * + * ```js + * const readable = getReadableStreamSomehow(); + * + * // 'readable' may be triggered multiple times as data is buffered in + * readable.on('readable', () => { + * let chunk; + * console.log('Stream is readable (new data received in buffer)'); + * // Use a loop to make sure we read all currently available data + * while (null !== (chunk = readable.read())) { + * console.log(`Read ${chunk.length} bytes of data...`); + * } + * }); + * + * // 'end' will be triggered once when there is no more data available + * readable.on('end', () => { + * console.log('Reached end of stream.'); + * }); + * ``` + * + * Each call to `readable.read()` returns a chunk of data, or `null`. The chunks + * are not concatenated. A `while` loop is necessary to consume all data + * currently in the buffer. When reading a large file `.read()` may return `null`, + * having consumed all buffered content so far, but there is still more data to + * come not yet buffered. In this case a new `'readable'` event will be emitted + * when there is more data in the buffer. Finally the `'end'` event will be + * emitted when there is no more data to come. + * + * Therefore to read a file's whole contents from a `readable`, it is necessary + * to collect chunks across multiple `'readable'` events: + * + * ```js + * const chunks = []; + * + * readable.on('readable', () => { + * let chunk; + * while (null !== (chunk = readable.read())) { + * chunks.push(chunk); + * } + * }); + * + * readable.on('end', () => { + * const content = chunks.join(''); + * }); + * ``` + * + * A `Readable` stream in object mode will always return a single item from + * a call to `readable.read(size)`, regardless of the value of the`size` argument. + * + * If the `readable.read()` method returns a chunk of data, a `'data'` event will + * also be emitted. + * + * Calling {@link read} after the `'end'` event has + * been emitted will return `null`. No runtime error will be raised. + * @since v0.9.4 + * @param size Optional argument to specify how much data to read. + */ + read(size?: number): any; + /** + * The `readable.setEncoding()` method sets the character encoding for + * data read from the `Readable` stream. + * + * By default, no encoding is assigned and stream data will be returned as`Buffer` objects. Setting an encoding causes the stream data + * to be returned as strings of the specified encoding rather than as `Buffer`objects. For instance, calling `readable.setEncoding('utf8')` will cause the + * output data to be interpreted as UTF-8 data, and passed as strings. Calling`readable.setEncoding('hex')` will cause the data to be encoded in hexadecimal + * string format. + * + * The `Readable` stream will properly handle multi-byte characters delivered + * through the stream that would otherwise become improperly decoded if simply + * pulled from the stream as `Buffer` objects. + * + * ```js + * const readable = getReadableStreamSomehow(); + * readable.setEncoding('utf8'); + * readable.on('data', (chunk) => { + * assert.equal(typeof chunk, 'string'); + * console.log('Got %d characters of string data:', chunk.length); + * }); + * ``` + * @since v0.9.4 + * @param encoding The encoding to use. + */ + setEncoding(encoding: BufferEncoding): this; + /** + * The `readable.pause()` method will cause a stream in flowing mode to stop + * emitting `'data'` events, switching out of flowing mode. Any data that + * becomes available will remain in the internal buffer. + * + * ```js + * const readable = getReadableStreamSomehow(); + * readable.on('data', (chunk) => { + * console.log(`Received ${chunk.length} bytes of data.`); + * readable.pause(); + * console.log('There will be no additional data for 1 second.'); + * setTimeout(() => { + * console.log('Now data will start flowing again.'); + * readable.resume(); + * }, 1000); + * }); + * ``` + * + * The `readable.pause()` method has no effect if there is a `'readable'`event listener. + * @since v0.9.4 + */ + pause(): this; + /** + * The `readable.resume()` method causes an explicitly paused `Readable` stream to + * resume emitting `'data'` events, switching the stream into flowing mode. + * + * The `readable.resume()` method can be used to fully consume the data from a + * stream without actually processing any of that data: + * + * ```js + * getReadableStreamSomehow() + * .resume() + * .on('end', () => { + * console.log('Reached the end, but did not read anything.'); + * }); + * ``` + * + * The `readable.resume()` method has no effect if there is a `'readable'`event listener. + * @since v0.9.4 + */ + resume(): this; + /** + * The `readable.isPaused()` method returns the current operating state of the`Readable`. This is used primarily by the mechanism that underlies the`readable.pipe()` method. In most + * typical cases, there will be no reason to + * use this method directly. + * + * ```js + * const readable = new stream.Readable(); + * + * readable.isPaused(); // === false + * readable.pause(); + * readable.isPaused(); // === true + * readable.resume(); + * readable.isPaused(); // === false + * ``` + * @since v0.11.14 + */ + isPaused(): boolean; + /** + * The `readable.unpipe()` method detaches a `Writable` stream previously attached + * using the {@link pipe} method. + * + * If the `destination` is not specified, then _all_ pipes are detached. + * + * If the `destination` is specified, but no pipe is set up for it, then + * the method does nothing. + * + * ```js + * const fs = require('fs'); + * const readable = getReadableStreamSomehow(); + * const writable = fs.createWriteStream('file.txt'); + * // All the data from readable goes into 'file.txt', + * // but only for the first second. + * readable.pipe(writable); + * setTimeout(() => { + * console.log('Stop writing to file.txt.'); + * readable.unpipe(writable); + * console.log('Manually close the file stream.'); + * writable.end(); + * }, 1000); + * ``` + * @since v0.9.4 + * @param destination Optional specific stream to unpipe + */ + unpipe(destination?: NodeJS.WritableStream): this; + /** + * Passing `chunk` as `null` signals the end of the stream (EOF) and behaves the + * same as `readable.push(null)`, after which no more data can be written. The EOF + * signal is put at the end of the buffer and any buffered data will still be + * flushed. + * + * The `readable.unshift()` method pushes a chunk of data back into the internal + * buffer. This is useful in certain situations where a stream is being consumed by + * code that needs to "un-consume" some amount of data that it has optimistically + * pulled out of the source, so that the data can be passed on to some other party. + * + * The `stream.unshift(chunk)` method cannot be called after the `'end'` event + * has been emitted or a runtime error will be thrown. + * + * Developers using `stream.unshift()` often should consider switching to + * use of a `Transform` stream instead. See the `API for stream implementers` section for more information. + * + * ```js + * // Pull off a header delimited by \n\n. + * // Use unshift() if we get too much. + * // Call the callback with (error, header, stream). + * const { StringDecoder } = require('string_decoder'); + * function parseHeader(stream, callback) { + * stream.on('error', callback); + * stream.on('readable', onReadable); + * const decoder = new StringDecoder('utf8'); + * let header = ''; + * function onReadable() { + * let chunk; + * while (null !== (chunk = stream.read())) { + * const str = decoder.write(chunk); + * if (str.includes('\n\n')) { + * // Found the header boundary. + * const split = str.split(/\n\n/); + * header += split.shift(); + * const remaining = split.join('\n\n'); + * const buf = Buffer.from(remaining, 'utf8'); + * stream.removeListener('error', callback); + * // Remove the 'readable' listener before unshifting. + * stream.removeListener('readable', onReadable); + * if (buf.length) + * stream.unshift(buf); + * // Now the body of the message can be read from the stream. + * callback(null, header, stream); + * return; + * } + * // Still reading the header. + * header += str; + * } + * } + * } + * ``` + * + * Unlike {@link push}, `stream.unshift(chunk)` will not + * end the reading process by resetting the internal reading state of the stream. + * This can cause unexpected results if `readable.unshift()` is called during a + * read (i.e. from within a {@link _read} implementation on a + * custom stream). Following the call to `readable.unshift()` with an immediate {@link push} will reset the reading state appropriately, + * however it is best to simply avoid calling `readable.unshift()` while in the + * process of performing a read. + * @since v0.9.11 + * @param chunk Chunk of data to unshift onto the read queue. For streams not operating in object mode, `chunk` must be a string, `Buffer`, `Uint8Array` or `null`. For object mode + * streams, `chunk` may be any JavaScript value. + * @param encoding Encoding of string chunks. Must be a valid `Buffer` encoding, such as `'utf8'` or `'ascii'`. + */ + unshift(chunk: any, encoding?: BufferEncoding): void; + /** + * Prior to Node.js 0.10, streams did not implement the entire `stream` module API + * as it is currently defined. (See `Compatibility` for more information.) + * + * When using an older Node.js library that emits `'data'` events and has a {@link pause} method that is advisory only, the`readable.wrap()` method can be used to create a `Readable` + * stream that uses + * the old stream as its data source. + * + * It will rarely be necessary to use `readable.wrap()` but the method has been + * provided as a convenience for interacting with older Node.js applications and + * libraries. + * + * ```js + * const { OldReader } = require('./old-api-module.js'); + * const { Readable } = require('stream'); + * const oreader = new OldReader(); + * const myReader = new Readable().wrap(oreader); + * + * myReader.on('readable', () => { + * myReader.read(); // etc. + * }); + * ``` + * @since v0.9.4 + * @param stream An "old style" readable stream + */ + wrap(stream: NodeJS.ReadableStream): this; + push(chunk: any, encoding?: BufferEncoding): boolean; + _destroy(error: Error | null, callback: (error?: Error | null) => void): void; + /** + * Destroy the stream. Optionally emit an `'error'` event, and emit a `'close'`event (unless `emitClose` is set to `false`). After this call, the readable + * stream will release any internal resources and subsequent calls to `push()`will be ignored. + * + * Once `destroy()` has been called any further calls will be a no-op and no + * further errors except from `_destroy()` may be emitted as `'error'`. + * + * Implementors should not override this method, but instead implement `readable._destroy()`. + * @since v8.0.0 + * @param error Error which will be passed as payload in `'error'` event + */ + destroy(error?: Error): this; + /** + * Event emitter + * The defined events on documents including: + * 1. close + * 2. data + * 3. end + * 4. error + * 5. pause + * 6. readable + * 7. resume + */ + addListener(event: 'close', listener: () => void): this; + addListener(event: 'data', listener: (chunk: any) => void): this; + addListener(event: 'end', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'pause', listener: () => void): this; + addListener(event: 'readable', listener: () => void): this; + addListener(event: 'resume', listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'close'): boolean; + emit(event: 'data', chunk: any): boolean; + emit(event: 'end'): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'pause'): boolean; + emit(event: 'readable'): boolean; + emit(event: 'resume'): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'close', listener: () => void): this; + on(event: 'data', listener: (chunk: any) => void): this; + on(event: 'end', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'pause', listener: () => void): this; + on(event: 'readable', listener: () => void): this; + on(event: 'resume', listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'data', listener: (chunk: any) => void): this; + once(event: 'end', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'pause', listener: () => void): this; + once(event: 'readable', listener: () => void): this; + once(event: 'resume', listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'data', listener: (chunk: any) => void): this; + prependListener(event: 'end', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'pause', listener: () => void): this; + prependListener(event: 'readable', listener: () => void): this; + prependListener(event: 'resume', listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'data', listener: (chunk: any) => void): this; + prependOnceListener(event: 'end', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'pause', listener: () => void): this; + prependOnceListener(event: 'readable', listener: () => void): this; + prependOnceListener(event: 'resume', listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + removeListener(event: 'close', listener: () => void): this; + removeListener(event: 'data', listener: (chunk: any) => void): this; + removeListener(event: 'end', listener: () => void): this; + removeListener(event: 'error', listener: (err: Error) => void): this; + removeListener(event: 'pause', listener: () => void): this; + removeListener(event: 'readable', listener: () => void): this; + removeListener(event: 'resume', listener: () => void): this; + removeListener(event: string | symbol, listener: (...args: any[]) => void): this; + [Symbol.asyncIterator](): AsyncIterableIterator; + } + interface WritableOptions extends StreamOptions { + decodeStrings?: boolean | undefined; + defaultEncoding?: BufferEncoding | undefined; + write?(this: Writable, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + writev?( + this: Writable, + chunks: Array<{ + chunk: any; + encoding: BufferEncoding; + }>, + callback: (error?: Error | null) => void + ): void; + final?(this: Writable, callback: (error?: Error | null) => void): void; + } + /** + * @since v0.9.4 + */ + class Writable extends Stream implements NodeJS.WritableStream { + /** + * A utility method for creating a `Writable` from a web `WritableStream`. + * @since v17.0.0 + * @experimental + */ + static fromWeb(writableStream: streamWeb.WritableStream, options?: Pick): Writable; + /** + * A utility method for creating a web `WritableStream` from a `Writable`. + * @since v17.0.0 + * @experimental + */ + static toWeb(streamWritable: Writable): streamWeb.WritableStream; + /** + * Is `true` if it is safe to call `writable.write()`, which means + * the stream has not been destroyed, errored or ended. + * @since v11.4.0 + */ + readonly writable: boolean; + /** + * Is `true` after `writable.end()` has been called. This property + * does not indicate whether the data has been flushed, for this use `writable.writableFinished` instead. + * @since v12.9.0 + */ + readonly writableEnded: boolean; + /** + * Is set to `true` immediately before the `'finish'` event is emitted. + * @since v12.6.0 + */ + readonly writableFinished: boolean; + /** + * Return the value of `highWaterMark` passed when creating this `Writable`. + * @since v9.3.0 + */ + readonly writableHighWaterMark: number; + /** + * This property contains the number of bytes (or objects) in the queue + * ready to be written. The value provides introspection data regarding + * the status of the `highWaterMark`. + * @since v9.4.0 + */ + readonly writableLength: number; + /** + * Getter for the property `objectMode` of a given `Writable` stream. + * @since v12.3.0 + */ + readonly writableObjectMode: boolean; + /** + * Number of times `writable.uncork()` needs to be + * called in order to fully uncork the stream. + * @since v13.2.0, v12.16.0 + */ + readonly writableCorked: number; + /** + * Is `true` after `writable.destroy()` has been called. + * @since v8.0.0 + */ + destroyed: boolean; + /** + * Is true after 'close' has been emitted. + * @since v18.0.0 + */ + readonly closed: boolean; + /** + * Returns error if the stream has been destroyed with an error. + * @since v18.0.0 + */ + readonly errored: Error | null; + /** + * Is `true` if the stream's buffer has been full and stream will emit 'drain'. + * @since v15.2.0, v14.17.0 + */ + readonly writableNeedDrain: boolean; + constructor(opts?: WritableOptions); + _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + _writev?( + chunks: Array<{ + chunk: any; + encoding: BufferEncoding; + }>, + callback: (error?: Error | null) => void + ): void; + _construct?(callback: (error?: Error | null) => void): void; + _destroy(error: Error | null, callback: (error?: Error | null) => void): void; + _final(callback: (error?: Error | null) => void): void; + /** + * The `writable.write()` method writes some data to the stream, and calls the + * supplied `callback` once the data has been fully handled. If an error + * occurs, the `callback` will be called with the error as its + * first argument. The `callback` is called asynchronously and before `'error'` is + * emitted. + * + * The return value is `true` if the internal buffer is less than the`highWaterMark` configured when the stream was created after admitting `chunk`. + * If `false` is returned, further attempts to write data to the stream should + * stop until the `'drain'` event is emitted. + * + * While a stream is not draining, calls to `write()` will buffer `chunk`, and + * return false. Once all currently buffered chunks are drained (accepted for + * delivery by the operating system), the `'drain'` event will be emitted. + * Once `write()` returns false, do not write more chunks + * until the `'drain'` event is emitted. While calling `write()` on a stream that + * is not draining is allowed, Node.js will buffer all written chunks until + * maximum memory usage occurs, at which point it will abort unconditionally. + * Even before it aborts, high memory usage will cause poor garbage collector + * performance and high RSS (which is not typically released back to the system, + * even after the memory is no longer required). Since TCP sockets may never + * drain if the remote peer does not read the data, writing a socket that is + * not draining may lead to a remotely exploitable vulnerability. + * + * Writing data while the stream is not draining is particularly + * problematic for a `Transform`, because the `Transform` streams are paused + * by default until they are piped or a `'data'` or `'readable'` event handler + * is added. + * + * If the data to be written can be generated or fetched on demand, it is + * recommended to encapsulate the logic into a `Readable` and use {@link pipe}. However, if calling `write()` is preferred, it is + * possible to respect backpressure and avoid memory issues using the `'drain'` event: + * + * ```js + * function write(data, cb) { + * if (!stream.write(data)) { + * stream.once('drain', cb); + * } else { + * process.nextTick(cb); + * } + * } + * + * // Wait for cb to be called before doing any other write. + * write('hello', () => { + * console.log('Write completed, do more writes now.'); + * }); + * ``` + * + * A `Writable` stream in object mode will always ignore the `encoding` argument. + * @since v0.9.4 + * @param chunk Optional data to write. For streams not operating in object mode, `chunk` must be a string, `Buffer` or `Uint8Array`. For object mode streams, `chunk` may be any + * JavaScript value other than `null`. + * @param [encoding='utf8'] The encoding, if `chunk` is a string. + * @param callback Callback for when this chunk of data is flushed. + * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + write(chunk: any, callback?: (error: Error | null | undefined) => void): boolean; + write(chunk: any, encoding: BufferEncoding, callback?: (error: Error | null | undefined) => void): boolean; + /** + * The `writable.setDefaultEncoding()` method sets the default `encoding` for a `Writable` stream. + * @since v0.11.15 + * @param encoding The new default encoding + */ + setDefaultEncoding(encoding: BufferEncoding): this; + /** + * Calling the `writable.end()` method signals that no more data will be written + * to the `Writable`. The optional `chunk` and `encoding` arguments allow one + * final additional chunk of data to be written immediately before closing the + * stream. + * + * Calling the {@link write} method after calling {@link end} will raise an error. + * + * ```js + * // Write 'hello, ' and then end with 'world!'. + * const fs = require('fs'); + * const file = fs.createWriteStream('example.txt'); + * file.write('hello, '); + * file.end('world!'); + * // Writing more now is not allowed! + * ``` + * @since v0.9.4 + * @param chunk Optional data to write. For streams not operating in object mode, `chunk` must be a string, `Buffer` or `Uint8Array`. For object mode streams, `chunk` may be any + * JavaScript value other than `null`. + * @param encoding The encoding if `chunk` is a string + * @param callback Callback for when the stream is finished. + */ + end(cb?: () => void): this; + end(chunk: any, cb?: () => void): this; + end(chunk: any, encoding: BufferEncoding, cb?: () => void): this; + /** + * The `writable.cork()` method forces all written data to be buffered in memory. + * The buffered data will be flushed when either the {@link uncork} or {@link end} methods are called. + * + * The primary intent of `writable.cork()` is to accommodate a situation in which + * several small chunks are written to the stream in rapid succession. Instead of + * immediately forwarding them to the underlying destination, `writable.cork()`buffers all the chunks until `writable.uncork()` is called, which will pass them + * all to `writable._writev()`, if present. This prevents a head-of-line blocking + * situation where data is being buffered while waiting for the first small chunk + * to be processed. However, use of `writable.cork()` without implementing`writable._writev()` may have an adverse effect on throughput. + * + * See also: `writable.uncork()`, `writable._writev()`. + * @since v0.11.2 + */ + cork(): void; + /** + * The `writable.uncork()` method flushes all data buffered since {@link cork} was called. + * + * When using `writable.cork()` and `writable.uncork()` to manage the buffering + * of writes to a stream, defer calls to `writable.uncork()` using`process.nextTick()`. Doing so allows batching of all`writable.write()` calls that occur within a given Node.js event + * loop phase. + * + * ```js + * stream.cork(); + * stream.write('some '); + * stream.write('data '); + * process.nextTick(() => stream.uncork()); + * ``` + * + * If the `writable.cork()` method is called multiple times on a stream, the + * same number of calls to `writable.uncork()` must be called to flush the buffered + * data. + * + * ```js + * stream.cork(); + * stream.write('some '); + * stream.cork(); + * stream.write('data '); + * process.nextTick(() => { + * stream.uncork(); + * // The data will not be flushed until uncork() is called a second time. + * stream.uncork(); + * }); + * ``` + * + * See also: `writable.cork()`. + * @since v0.11.2 + */ + uncork(): void; + /** + * Destroy the stream. Optionally emit an `'error'` event, and emit a `'close'`event (unless `emitClose` is set to `false`). After this call, the writable + * stream has ended and subsequent calls to `write()` or `end()` will result in + * an `ERR_STREAM_DESTROYED` error. + * This is a destructive and immediate way to destroy a stream. Previous calls to`write()` may not have drained, and may trigger an `ERR_STREAM_DESTROYED` error. + * Use `end()` instead of destroy if data should flush before close, or wait for + * the `'drain'` event before destroying the stream. + * + * Once `destroy()` has been called any further calls will be a no-op and no + * further errors except from `_destroy()` may be emitted as `'error'`. + * + * Implementors should not override this method, + * but instead implement `writable._destroy()`. + * @since v8.0.0 + * @param error Optional, an error to emit with `'error'` event. + */ + destroy(error?: Error): this; + /** + * Event emitter + * The defined events on documents including: + * 1. close + * 2. drain + * 3. error + * 4. finish + * 5. pipe + * 6. unpipe + */ + addListener(event: 'close', listener: () => void): this; + addListener(event: 'drain', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'finish', listener: () => void): this; + addListener(event: 'pipe', listener: (src: Readable) => void): this; + addListener(event: 'unpipe', listener: (src: Readable) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'close'): boolean; + emit(event: 'drain'): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'finish'): boolean; + emit(event: 'pipe', src: Readable): boolean; + emit(event: 'unpipe', src: Readable): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'close', listener: () => void): this; + on(event: 'drain', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'finish', listener: () => void): this; + on(event: 'pipe', listener: (src: Readable) => void): this; + on(event: 'unpipe', listener: (src: Readable) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'drain', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'finish', listener: () => void): this; + once(event: 'pipe', listener: (src: Readable) => void): this; + once(event: 'unpipe', listener: (src: Readable) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'drain', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'finish', listener: () => void): this; + prependListener(event: 'pipe', listener: (src: Readable) => void): this; + prependListener(event: 'unpipe', listener: (src: Readable) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'drain', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'finish', listener: () => void): this; + prependOnceListener(event: 'pipe', listener: (src: Readable) => void): this; + prependOnceListener(event: 'unpipe', listener: (src: Readable) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + removeListener(event: 'close', listener: () => void): this; + removeListener(event: 'drain', listener: () => void): this; + removeListener(event: 'error', listener: (err: Error) => void): this; + removeListener(event: 'finish', listener: () => void): this; + removeListener(event: 'pipe', listener: (src: Readable) => void): this; + removeListener(event: 'unpipe', listener: (src: Readable) => void): this; + removeListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + interface DuplexOptions extends ReadableOptions, WritableOptions { + allowHalfOpen?: boolean | undefined; + readableObjectMode?: boolean | undefined; + writableObjectMode?: boolean | undefined; + readableHighWaterMark?: number | undefined; + writableHighWaterMark?: number | undefined; + writableCorked?: number | undefined; + construct?(this: Duplex, callback: (error?: Error | null) => void): void; + read?(this: Duplex, size: number): void; + write?(this: Duplex, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + writev?( + this: Duplex, + chunks: Array<{ + chunk: any; + encoding: BufferEncoding; + }>, + callback: (error?: Error | null) => void + ): void; + final?(this: Duplex, callback: (error?: Error | null) => void): void; + destroy?(this: Duplex, error: Error | null, callback: (error: Error | null) => void): void; + } + /** + * Duplex streams are streams that implement both the `Readable` and `Writable` interfaces. + * + * Examples of `Duplex` streams include: + * + * * `TCP sockets` + * * `zlib streams` + * * `crypto streams` + * @since v0.9.4 + */ + class Duplex extends Readable implements Writable { + readonly writable: boolean; + readonly writableEnded: boolean; + readonly writableFinished: boolean; + readonly writableHighWaterMark: number; + readonly writableLength: number; + readonly writableObjectMode: boolean; + readonly writableCorked: number; + readonly writableNeedDrain: boolean; + readonly closed: boolean; + readonly errored: Error | null; + /** + * If `false` then the stream will automatically end the writable side when the + * readable side ends. Set initially by the `allowHalfOpen` constructor option, + * which defaults to `false`. + * + * This can be changed manually to change the half-open behavior of an existing`Duplex` stream instance, but must be changed before the `'end'` event is + * emitted. + * @since v0.9.4 + */ + allowHalfOpen: boolean; + constructor(opts?: DuplexOptions); + /** + * A utility method for creating duplex streams. + * + * - `Stream` converts writable stream into writable `Duplex` and readable stream + * to `Duplex`. + * - `Blob` converts into readable `Duplex`. + * - `string` converts into readable `Duplex`. + * - `ArrayBuffer` converts into readable `Duplex`. + * - `AsyncIterable` converts into a readable `Duplex`. Cannot yield `null`. + * - `AsyncGeneratorFunction` converts into a readable/writable transform + * `Duplex`. Must take a source `AsyncIterable` as first parameter. Cannot yield + * `null`. + * - `AsyncFunction` converts into a writable `Duplex`. Must return + * either `null` or `undefined` + * - `Object ({ writable, readable })` converts `readable` and + * `writable` into `Stream` and then combines them into `Duplex` where the + * `Duplex` will write to the `writable` and read from the `readable`. + * - `Promise` converts into readable `Duplex`. Value `null` is ignored. + * + * @since v16.8.0 + */ + static from(src: Stream | NodeBlob | ArrayBuffer | string | Iterable | AsyncIterable | AsyncGeneratorFunction | Promise | Object): Duplex; + _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + _writev?( + chunks: Array<{ + chunk: any; + encoding: BufferEncoding; + }>, + callback: (error?: Error | null) => void + ): void; + _destroy(error: Error | null, callback: (error: Error | null) => void): void; + _final(callback: (error?: Error | null) => void): void; + write(chunk: any, encoding?: BufferEncoding, cb?: (error: Error | null | undefined) => void): boolean; + write(chunk: any, cb?: (error: Error | null | undefined) => void): boolean; + setDefaultEncoding(encoding: BufferEncoding): this; + end(cb?: () => void): this; + end(chunk: any, cb?: () => void): this; + end(chunk: any, encoding?: BufferEncoding, cb?: () => void): this; + cork(): void; + uncork(): void; + } + type TransformCallback = (error?: Error | null, data?: any) => void; + interface TransformOptions extends DuplexOptions { + construct?(this: Transform, callback: (error?: Error | null) => void): void; + read?(this: Transform, size: number): void; + write?(this: Transform, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + writev?( + this: Transform, + chunks: Array<{ + chunk: any; + encoding: BufferEncoding; + }>, + callback: (error?: Error | null) => void + ): void; + final?(this: Transform, callback: (error?: Error | null) => void): void; + destroy?(this: Transform, error: Error | null, callback: (error: Error | null) => void): void; + transform?(this: Transform, chunk: any, encoding: BufferEncoding, callback: TransformCallback): void; + flush?(this: Transform, callback: TransformCallback): void; + } + /** + * Transform streams are `Duplex` streams where the output is in some way + * related to the input. Like all `Duplex` streams, `Transform` streams + * implement both the `Readable` and `Writable` interfaces. + * + * Examples of `Transform` streams include: + * + * * `zlib streams` + * * `crypto streams` + * @since v0.9.4 + */ + class Transform extends Duplex { + constructor(opts?: TransformOptions); + _transform(chunk: any, encoding: BufferEncoding, callback: TransformCallback): void; + _flush(callback: TransformCallback): void; + } + /** + * The `stream.PassThrough` class is a trivial implementation of a `Transform` stream that simply passes the input bytes across to the output. Its purpose is + * primarily for examples and testing, but there are some use cases where`stream.PassThrough` is useful as a building block for novel sorts of streams. + */ + class PassThrough extends Transform {} + /** + * Attaches an AbortSignal to a readable or writeable stream. This lets code + * control stream destruction using an `AbortController`. + * + * Calling `abort` on the `AbortController` corresponding to the passed`AbortSignal` will behave the same way as calling `.destroy(new AbortError())`on the stream. + * + * ```js + * const fs = require('fs'); + * + * const controller = new AbortController(); + * const read = addAbortSignal( + * controller.signal, + * fs.createReadStream(('object.json')) + * ); + * // Later, abort the operation closing the stream + * controller.abort(); + * ``` + * + * Or using an `AbortSignal` with a readable stream as an async iterable: + * + * ```js + * const controller = new AbortController(); + * setTimeout(() => controller.abort(), 10_000); // set a timeout + * const stream = addAbortSignal( + * controller.signal, + * fs.createReadStream(('object.json')) + * ); + * (async () => { + * try { + * for await (const chunk of stream) { + * await process(chunk); + * } + * } catch (e) { + * if (e.name === 'AbortError') { + * // The operation was cancelled + * } else { + * throw e; + * } + * } + * })(); + * ``` + * @since v15.4.0 + * @param signal A signal representing possible cancellation + * @param stream a stream to attach a signal to + */ + function addAbortSignal(signal: AbortSignal, stream: T): T; + interface FinishedOptions extends Abortable { + error?: boolean | undefined; + readable?: boolean | undefined; + writable?: boolean | undefined; + } + /** + * A function to get notified when a stream is no longer readable, writable + * or has experienced an error or a premature close event. + * + * ```js + * const { finished } = require('stream'); + * + * const rs = fs.createReadStream('archive.tar'); + * + * finished(rs, (err) => { + * if (err) { + * console.error('Stream failed.', err); + * } else { + * console.log('Stream is done reading.'); + * } + * }); + * + * rs.resume(); // Drain the stream. + * ``` + * + * Especially useful in error handling scenarios where a stream is destroyed + * prematurely (like an aborted HTTP request), and will not emit `'end'`or `'finish'`. + * + * The `finished` API provides promise version: + * + * ```js + * const { finished } = require('stream/promises'); + * + * const rs = fs.createReadStream('archive.tar'); + * + * async function run() { + * await finished(rs); + * console.log('Stream is done reading.'); + * } + * + * run().catch(console.error); + * rs.resume(); // Drain the stream. + * ``` + * + * `stream.finished()` leaves dangling event listeners (in particular`'error'`, `'end'`, `'finish'` and `'close'`) after `callback` has been + * invoked. The reason for this is so that unexpected `'error'` events (due to + * incorrect stream implementations) do not cause unexpected crashes. + * If this is unwanted behavior then the returned cleanup function needs to be + * invoked in the callback: + * + * ```js + * const cleanup = finished(rs, (err) => { + * cleanup(); + * // ... + * }); + * ``` + * @since v10.0.0 + * @param stream A readable and/or writable stream. + * @param callback A callback function that takes an optional error argument. + * @return A cleanup function which removes all registered listeners. + */ + function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options: FinishedOptions, callback: (err?: NodeJS.ErrnoException | null) => void): () => void; + function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, callback: (err?: NodeJS.ErrnoException | null) => void): () => void; + namespace finished { + function __promisify__(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options?: FinishedOptions): Promise; + } + type PipelineSourceFunction = () => Iterable | AsyncIterable; + type PipelineSource = Iterable | AsyncIterable | NodeJS.ReadableStream | PipelineSourceFunction; + type PipelineTransform, U> = + | NodeJS.ReadWriteStream + | ((source: S extends (...args: any[]) => Iterable | AsyncIterable ? AsyncIterable : S) => AsyncIterable); + type PipelineTransformSource = PipelineSource | PipelineTransform; + type PipelineDestinationIterableFunction = (source: AsyncIterable) => AsyncIterable; + type PipelineDestinationPromiseFunction = (source: AsyncIterable) => Promise

; + type PipelineDestination, P> = S extends PipelineTransformSource + ? NodeJS.WritableStream | PipelineDestinationIterableFunction | PipelineDestinationPromiseFunction + : never; + type PipelineCallback> = S extends PipelineDestinationPromiseFunction + ? (err: NodeJS.ErrnoException | null, value: P) => void + : (err: NodeJS.ErrnoException | null) => void; + type PipelinePromise> = S extends PipelineDestinationPromiseFunction ? Promise

: Promise; + interface PipelineOptions { + signal: AbortSignal; + } + /** + * A module method to pipe between streams and generators forwarding errors and + * properly cleaning up and provide a callback when the pipeline is complete. + * + * ```js + * const { pipeline } = require('stream'); + * const fs = require('fs'); + * const zlib = require('zlib'); + * + * // Use the pipeline API to easily pipe a series of streams + * // together and get notified when the pipeline is fully done. + * + * // A pipeline to gzip a potentially huge tar file efficiently: + * + * pipeline( + * fs.createReadStream('archive.tar'), + * zlib.createGzip(), + * fs.createWriteStream('archive.tar.gz'), + * (err) => { + * if (err) { + * console.error('Pipeline failed.', err); + * } else { + * console.log('Pipeline succeeded.'); + * } + * } + * ); + * ``` + * + * The `pipeline` API provides a promise version, which can also + * receive an options argument as the last parameter with a`signal` `AbortSignal` property. When the signal is aborted,`destroy` will be called on the underlying pipeline, with + * an`AbortError`. + * + * ```js + * const { pipeline } = require('stream/promises'); + * + * async function run() { + * await pipeline( + * fs.createReadStream('archive.tar'), + * zlib.createGzip(), + * fs.createWriteStream('archive.tar.gz') + * ); + * console.log('Pipeline succeeded.'); + * } + * + * run().catch(console.error); + * ``` + * + * To use an `AbortSignal`, pass it inside an options object, + * as the last argument: + * + * ```js + * const { pipeline } = require('stream/promises'); + * + * async function run() { + * const ac = new AbortController(); + * const signal = ac.signal; + * + * setTimeout(() => ac.abort(), 1); + * await pipeline( + * fs.createReadStream('archive.tar'), + * zlib.createGzip(), + * fs.createWriteStream('archive.tar.gz'), + * { signal }, + * ); + * } + * + * run().catch(console.error); // AbortError + * ``` + * + * The `pipeline` API also supports async generators: + * + * ```js + * const { pipeline } = require('stream/promises'); + * const fs = require('fs'); + * + * async function run() { + * await pipeline( + * fs.createReadStream('lowercase.txt'), + * async function* (source, { signal }) { + * source.setEncoding('utf8'); // Work with strings rather than `Buffer`s. + * for await (const chunk of source) { + * yield await processChunk(chunk, { signal }); + * } + * }, + * fs.createWriteStream('uppercase.txt') + * ); + * console.log('Pipeline succeeded.'); + * } + * + * run().catch(console.error); + * ``` + * + * Remember to handle the `signal` argument passed into the async generator. + * Especially in the case where the async generator is the source for the + * pipeline (i.e. first argument) or the pipeline will never complete. + * + * ```js + * const { pipeline } = require('stream/promises'); + * const fs = require('fs'); + * + * async function run() { + * await pipeline( + * async function* ({ signal }) { + * await someLongRunningfn({ signal }); + * yield 'asd'; + * }, + * fs.createWriteStream('uppercase.txt') + * ); + * console.log('Pipeline succeeded.'); + * } + * + * run().catch(console.error); + * ``` + * + * `stream.pipeline()` will call `stream.destroy(err)` on all streams except: + * + * * `Readable` streams which have emitted `'end'` or `'close'`. + * * `Writable` streams which have emitted `'finish'` or `'close'`. + * + * `stream.pipeline()` leaves dangling event listeners on the streams + * after the `callback` has been invoked. In the case of reuse of streams after + * failure, this can cause event listener leaks and swallowed errors. If the last + * stream is readable, dangling event listeners will be removed so that the last + * stream can be consumed later. + * + * `stream.pipeline()` closes all the streams when an error is raised. + * The `IncomingRequest` usage with `pipeline` could lead to an unexpected behavior + * once it would destroy the socket without sending the expected response. + * See the example below: + * + * ```js + * const fs = require('fs'); + * const http = require('http'); + * const { pipeline } = require('stream'); + * + * const server = http.createServer((req, res) => { + * const fileStream = fs.createReadStream('./fileNotExist.txt'); + * pipeline(fileStream, res, (err) => { + * if (err) { + * console.log(err); // No such file + * // this message can't be sent once `pipeline` already destroyed the socket + * return res.end('error!!!'); + * } + * }); + * }); + * ``` + * @since v10.0.0 + * @param callback Called when the pipeline is fully done. + */ + function pipeline, B extends PipelineDestination>( + source: A, + destination: B, + callback?: PipelineCallback + ): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream; + function pipeline, T1 extends PipelineTransform, B extends PipelineDestination>( + source: A, + transform1: T1, + destination: B, + callback?: PipelineCallback + ): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream; + function pipeline, T1 extends PipelineTransform, T2 extends PipelineTransform, B extends PipelineDestination>( + source: A, + transform1: T1, + transform2: T2, + destination: B, + callback?: PipelineCallback + ): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream; + function pipeline< + A extends PipelineSource, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + B extends PipelineDestination + >(source: A, transform1: T1, transform2: T2, transform3: T3, destination: B, callback?: PipelineCallback): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream; + function pipeline< + A extends PipelineSource, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + T4 extends PipelineTransform, + B extends PipelineDestination + >(source: A, transform1: T1, transform2: T2, transform3: T3, transform4: T4, destination: B, callback?: PipelineCallback): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream; + function pipeline( + streams: ReadonlyArray, + callback?: (err: NodeJS.ErrnoException | null) => void + ): NodeJS.WritableStream; + function pipeline( + stream1: NodeJS.ReadableStream, + stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream, + ...streams: Array void)> + ): NodeJS.WritableStream; + namespace pipeline { + function __promisify__, B extends PipelineDestination>(source: A, destination: B, options?: PipelineOptions): PipelinePromise; + function __promisify__, T1 extends PipelineTransform, B extends PipelineDestination>( + source: A, + transform1: T1, + destination: B, + options?: PipelineOptions + ): PipelinePromise; + function __promisify__, T1 extends PipelineTransform, T2 extends PipelineTransform, B extends PipelineDestination>( + source: A, + transform1: T1, + transform2: T2, + destination: B, + options?: PipelineOptions + ): PipelinePromise; + function __promisify__< + A extends PipelineSource, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + B extends PipelineDestination + >(source: A, transform1: T1, transform2: T2, transform3: T3, destination: B, options?: PipelineOptions): PipelinePromise; + function __promisify__< + A extends PipelineSource, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + T4 extends PipelineTransform, + B extends PipelineDestination + >(source: A, transform1: T1, transform2: T2, transform3: T3, transform4: T4, destination: B, options?: PipelineOptions): PipelinePromise; + function __promisify__(streams: ReadonlyArray, options?: PipelineOptions): Promise; + function __promisify__( + stream1: NodeJS.ReadableStream, + stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream, + ...streams: Array + ): Promise; + } + interface Pipe { + close(): void; + hasRef(): boolean; + ref(): void; + unref(): void; + } + + /** + * Returns whether the stream has encountered an error. + * @since v17.3.0 + */ + function isErrored(stream: Readable | Writable | NodeJS.ReadableStream | NodeJS.WritableStream): boolean; + + /** + * Returns whether the stream is readable. + * @since v17.4.0 + */ + function isReadable(stream: Readable | NodeJS.ReadableStream): boolean; + + const promises: typeof streamPromises; + const consumers: typeof streamConsumers; + } + export = internal; +} +declare module 'node:stream' { + import stream = require('stream'); + export = stream; +} diff --git a/node_modules/@types/node/stream/consumers.d.ts b/node_modules/@types/node/stream/consumers.d.ts new file mode 100644 index 0000000..1ebf12e --- /dev/null +++ b/node_modules/@types/node/stream/consumers.d.ts @@ -0,0 +1,12 @@ +declare module 'stream/consumers' { + import { Blob as NodeBlob } from "node:buffer"; + import { Readable } from 'node:stream'; + function buffer(stream: NodeJS.ReadableStream | Readable | AsyncIterator): Promise; + function text(stream: NodeJS.ReadableStream | Readable | AsyncIterator): Promise; + function arrayBuffer(stream: NodeJS.ReadableStream | Readable | AsyncIterator): Promise; + function blob(stream: NodeJS.ReadableStream | Readable | AsyncIterator): Promise; + function json(stream: NodeJS.ReadableStream | Readable | AsyncIterator): Promise; +} +declare module 'node:stream/consumers' { + export * from 'stream/consumers'; +} diff --git a/node_modules/@types/node/stream/promises.d.ts b/node_modules/@types/node/stream/promises.d.ts new file mode 100644 index 0000000..b427073 --- /dev/null +++ b/node_modules/@types/node/stream/promises.d.ts @@ -0,0 +1,42 @@ +declare module 'stream/promises' { + import { FinishedOptions, PipelineSource, PipelineTransform, PipelineDestination, PipelinePromise, PipelineOptions } from 'node:stream'; + function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options?: FinishedOptions): Promise; + function pipeline, B extends PipelineDestination>(source: A, destination: B, options?: PipelineOptions): PipelinePromise; + function pipeline, T1 extends PipelineTransform, B extends PipelineDestination>( + source: A, + transform1: T1, + destination: B, + options?: PipelineOptions + ): PipelinePromise; + function pipeline, T1 extends PipelineTransform, T2 extends PipelineTransform, B extends PipelineDestination>( + source: A, + transform1: T1, + transform2: T2, + destination: B, + options?: PipelineOptions + ): PipelinePromise; + function pipeline< + A extends PipelineSource, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + B extends PipelineDestination + >(source: A, transform1: T1, transform2: T2, transform3: T3, destination: B, options?: PipelineOptions): PipelinePromise; + function pipeline< + A extends PipelineSource, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + T4 extends PipelineTransform, + B extends PipelineDestination + >(source: A, transform1: T1, transform2: T2, transform3: T3, transform4: T4, destination: B, options?: PipelineOptions): PipelinePromise; + function pipeline(streams: ReadonlyArray, options?: PipelineOptions): Promise; + function pipeline( + stream1: NodeJS.ReadableStream, + stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream, + ...streams: Array + ): Promise; +} +declare module 'node:stream/promises' { + export * from 'stream/promises'; +} diff --git a/node_modules/@types/node/stream/web.d.ts b/node_modules/@types/node/stream/web.d.ts new file mode 100644 index 0000000..f9ef057 --- /dev/null +++ b/node_modules/@types/node/stream/web.d.ts @@ -0,0 +1,330 @@ +declare module 'stream/web' { + // stub module, pending copy&paste from .d.ts or manual impl + // copy from lib.dom.d.ts + interface ReadableWritablePair { + readable: ReadableStream; + /** + * Provides a convenient, chainable way of piping this readable stream + * through a transform stream (or any other { writable, readable } + * pair). It simply pipes the stream into the writable side of the + * supplied pair, and returns the readable side for further use. + * + * Piping a stream will lock it for the duration of the pipe, preventing + * any other consumer from acquiring a reader. + */ + writable: WritableStream; + } + interface StreamPipeOptions { + preventAbort?: boolean; + preventCancel?: boolean; + /** + * Pipes this readable stream to a given writable stream destination. + * The way in which the piping process behaves under various error + * conditions can be customized with a number of passed options. It + * returns a promise that fulfills when the piping process completes + * successfully, or rejects if any errors were encountered. + * + * Piping a stream will lock it for the duration of the pipe, preventing + * any other consumer from acquiring a reader. + * + * Errors and closures of the source and destination streams propagate + * as follows: + * + * An error in this source readable stream will abort destination, + * unless preventAbort is truthy. The returned promise will be rejected + * with the source's error, or with any error that occurs during + * aborting the destination. + * + * An error in destination will cancel this source readable stream, + * unless preventCancel is truthy. The returned promise will be rejected + * with the destination's error, or with any error that occurs during + * canceling the source. + * + * When this source readable stream closes, destination will be closed, + * unless preventClose is truthy. The returned promise will be fulfilled + * once this process completes, unless an error is encountered while + * closing the destination, in which case it will be rejected with that + * error. + * + * If destination starts out closed or closing, this source readable + * stream will be canceled, unless preventCancel is true. The returned + * promise will be rejected with an error indicating piping to a closed + * stream failed, or with any error that occurs during canceling the + * source. + * + * The signal option can be set to an AbortSignal to allow aborting an + * ongoing pipe operation via the corresponding AbortController. In this + * case, this source readable stream will be canceled, and destination + * aborted, unless the respective options preventCancel or preventAbort + * are set. + */ + preventClose?: boolean; + signal?: AbortSignal; + } + interface ReadableStreamGenericReader { + readonly closed: Promise; + cancel(reason?: any): Promise; + } + interface ReadableStreamDefaultReadValueResult { + done: false; + value: T; + } + interface ReadableStreamDefaultReadDoneResult { + done: true; + value?: undefined; + } + type ReadableStreamController = ReadableStreamDefaultController; + type ReadableStreamDefaultReadResult = ReadableStreamDefaultReadValueResult | ReadableStreamDefaultReadDoneResult; + interface ReadableByteStreamControllerCallback { + (controller: ReadableByteStreamController): void | PromiseLike; + } + interface UnderlyingSinkAbortCallback { + (reason?: any): void | PromiseLike; + } + interface UnderlyingSinkCloseCallback { + (): void | PromiseLike; + } + interface UnderlyingSinkStartCallback { + (controller: WritableStreamDefaultController): any; + } + interface UnderlyingSinkWriteCallback { + (chunk: W, controller: WritableStreamDefaultController): void | PromiseLike; + } + interface UnderlyingSourceCancelCallback { + (reason?: any): void | PromiseLike; + } + interface UnderlyingSourcePullCallback { + (controller: ReadableStreamController): void | PromiseLike; + } + interface UnderlyingSourceStartCallback { + (controller: ReadableStreamController): any; + } + interface TransformerFlushCallback { + (controller: TransformStreamDefaultController): void | PromiseLike; + } + interface TransformerStartCallback { + (controller: TransformStreamDefaultController): any; + } + interface TransformerTransformCallback { + (chunk: I, controller: TransformStreamDefaultController): void | PromiseLike; + } + interface UnderlyingByteSource { + autoAllocateChunkSize?: number; + cancel?: ReadableStreamErrorCallback; + pull?: ReadableByteStreamControllerCallback; + start?: ReadableByteStreamControllerCallback; + type: 'bytes'; + } + interface UnderlyingSource { + cancel?: UnderlyingSourceCancelCallback; + pull?: UnderlyingSourcePullCallback; + start?: UnderlyingSourceStartCallback; + type?: undefined; + } + interface UnderlyingSink { + abort?: UnderlyingSinkAbortCallback; + close?: UnderlyingSinkCloseCallback; + start?: UnderlyingSinkStartCallback; + type?: undefined; + write?: UnderlyingSinkWriteCallback; + } + interface ReadableStreamErrorCallback { + (reason: any): void | PromiseLike; + } + /** This Streams API interface represents a readable stream of byte data. */ + interface ReadableStream { + readonly locked: boolean; + cancel(reason?: any): Promise; + getReader(): ReadableStreamDefaultReader; + pipeThrough(transform: ReadableWritablePair, options?: StreamPipeOptions): ReadableStream; + pipeTo(destination: WritableStream, options?: StreamPipeOptions): Promise; + tee(): [ReadableStream, ReadableStream]; + values(options?: { preventCancel?: boolean }): AsyncIterableIterator; + [Symbol.asyncIterator](): AsyncIterableIterator; + } + const ReadableStream: { + prototype: ReadableStream; + new (underlyingSource: UnderlyingByteSource, strategy?: QueuingStrategy): ReadableStream; + new (underlyingSource?: UnderlyingSource, strategy?: QueuingStrategy): ReadableStream; + }; + interface ReadableStreamDefaultReader extends ReadableStreamGenericReader { + read(): Promise>; + releaseLock(): void; + } + const ReadableStreamDefaultReader: { + prototype: ReadableStreamDefaultReader; + new (stream: ReadableStream): ReadableStreamDefaultReader; + }; + const ReadableStreamBYOBReader: any; + const ReadableStreamBYOBRequest: any; + interface ReadableByteStreamController { + readonly byobRequest: undefined; + readonly desiredSize: number | null; + close(): void; + enqueue(chunk: ArrayBufferView): void; + error(error?: any): void; + } + const ReadableByteStreamController: { + prototype: ReadableByteStreamController; + new (): ReadableByteStreamController; + }; + interface ReadableStreamDefaultController { + readonly desiredSize: number | null; + close(): void; + enqueue(chunk?: R): void; + error(e?: any): void; + } + const ReadableStreamDefaultController: { + prototype: ReadableStreamDefaultController; + new (): ReadableStreamDefaultController; + }; + interface Transformer { + flush?: TransformerFlushCallback; + readableType?: undefined; + start?: TransformerStartCallback; + transform?: TransformerTransformCallback; + writableType?: undefined; + } + interface TransformStream { + readonly readable: ReadableStream; + readonly writable: WritableStream; + } + const TransformStream: { + prototype: TransformStream; + new (transformer?: Transformer, writableStrategy?: QueuingStrategy, readableStrategy?: QueuingStrategy): TransformStream; + }; + interface TransformStreamDefaultController { + readonly desiredSize: number | null; + enqueue(chunk?: O): void; + error(reason?: any): void; + terminate(): void; + } + const TransformStreamDefaultController: { + prototype: TransformStreamDefaultController; + new (): TransformStreamDefaultController; + }; + /** + * This Streams API interface provides a standard abstraction for writing + * streaming data to a destination, known as a sink. This object comes with + * built-in back pressure and queuing. + */ + interface WritableStream { + readonly locked: boolean; + abort(reason?: any): Promise; + close(): Promise; + getWriter(): WritableStreamDefaultWriter; + } + const WritableStream: { + prototype: WritableStream; + new (underlyingSink?: UnderlyingSink, strategy?: QueuingStrategy): WritableStream; + }; + /** + * This Streams API interface is the object returned by + * WritableStream.getWriter() and once created locks the < writer to the + * WritableStream ensuring that no other streams can write to the underlying + * sink. + */ + interface WritableStreamDefaultWriter { + readonly closed: Promise; + readonly desiredSize: number | null; + readonly ready: Promise; + abort(reason?: any): Promise; + close(): Promise; + releaseLock(): void; + write(chunk?: W): Promise; + } + const WritableStreamDefaultWriter: { + prototype: WritableStreamDefaultWriter; + new (stream: WritableStream): WritableStreamDefaultWriter; + }; + /** + * This Streams API interface represents a controller allowing control of a + * WritableStream's state. When constructing a WritableStream, the + * underlying sink is given a corresponding WritableStreamDefaultController + * instance to manipulate. + */ + interface WritableStreamDefaultController { + error(e?: any): void; + } + const WritableStreamDefaultController: { + prototype: WritableStreamDefaultController; + new (): WritableStreamDefaultController; + }; + interface QueuingStrategy { + highWaterMark?: number; + size?: QueuingStrategySize; + } + interface QueuingStrategySize { + (chunk?: T): number; + } + interface QueuingStrategyInit { + /** + * Creates a new ByteLengthQueuingStrategy with the provided high water + * mark. + * + * Note that the provided high water mark will not be validated ahead of + * time. Instead, if it is negative, NaN, or not a number, the resulting + * ByteLengthQueuingStrategy will cause the corresponding stream + * constructor to throw. + */ + highWaterMark: number; + } + /** + * This Streams API interface provides a built-in byte length queuing + * strategy that can be used when constructing streams. + */ + interface ByteLengthQueuingStrategy extends QueuingStrategy { + readonly highWaterMark: number; + readonly size: QueuingStrategySize; + } + const ByteLengthQueuingStrategy: { + prototype: ByteLengthQueuingStrategy; + new (init: QueuingStrategyInit): ByteLengthQueuingStrategy; + }; + /** + * This Streams API interface provides a built-in byte length queuing + * strategy that can be used when constructing streams. + */ + interface CountQueuingStrategy extends QueuingStrategy { + readonly highWaterMark: number; + readonly size: QueuingStrategySize; + } + const CountQueuingStrategy: { + prototype: CountQueuingStrategy; + new (init: QueuingStrategyInit): CountQueuingStrategy; + }; + interface TextEncoderStream { + /** Returns "utf-8". */ + readonly encoding: 'utf-8'; + readonly readable: ReadableStream; + readonly writable: WritableStream; + readonly [Symbol.toStringTag]: string; + } + const TextEncoderStream: { + prototype: TextEncoderStream; + new (): TextEncoderStream; + }; + interface TextDecoderOptions { + fatal?: boolean; + ignoreBOM?: boolean; + } + type BufferSource = ArrayBufferView | ArrayBuffer; + interface TextDecoderStream { + /** Returns encoding's name, lower cased. */ + readonly encoding: string; + /** Returns `true` if error mode is "fatal", and `false` otherwise. */ + readonly fatal: boolean; + /** Returns `true` if ignore BOM flag is set, and `false` otherwise. */ + readonly ignoreBOM: boolean; + readonly readable: ReadableStream; + readonly writable: WritableStream; + readonly [Symbol.toStringTag]: string; + } + const TextDecoderStream: { + prototype: TextDecoderStream; + new (label?: string, options?: TextDecoderOptions): TextDecoderStream; + }; +} +declare module 'node:stream/web' { + export * from 'stream/web'; +} diff --git a/node_modules/@types/node/string_decoder.d.ts b/node_modules/@types/node/string_decoder.d.ts new file mode 100644 index 0000000..a585804 --- /dev/null +++ b/node_modules/@types/node/string_decoder.d.ts @@ -0,0 +1,67 @@ +/** + * The `string_decoder` module provides an API for decoding `Buffer` objects into + * strings in a manner that preserves encoded multi-byte UTF-8 and UTF-16 + * characters. It can be accessed using: + * + * ```js + * const { StringDecoder } = require('string_decoder'); + * ``` + * + * The following example shows the basic use of the `StringDecoder` class. + * + * ```js + * const { StringDecoder } = require('string_decoder'); + * const decoder = new StringDecoder('utf8'); + * + * const cent = Buffer.from([0xC2, 0xA2]); + * console.log(decoder.write(cent)); + * + * const euro = Buffer.from([0xE2, 0x82, 0xAC]); + * console.log(decoder.write(euro)); + * ``` + * + * When a `Buffer` instance is written to the `StringDecoder` instance, an + * internal buffer is used to ensure that the decoded string does not contain + * any incomplete multibyte characters. These are held in the buffer until the + * next call to `stringDecoder.write()` or until `stringDecoder.end()` is called. + * + * In the following example, the three UTF-8 encoded bytes of the European Euro + * symbol (`€`) are written over three separate operations: + * + * ```js + * const { StringDecoder } = require('string_decoder'); + * const decoder = new StringDecoder('utf8'); + * + * decoder.write(Buffer.from([0xE2])); + * decoder.write(Buffer.from([0x82])); + * console.log(decoder.end(Buffer.from([0xAC]))); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/string_decoder.js) + */ +declare module 'string_decoder' { + class StringDecoder { + constructor(encoding?: BufferEncoding); + /** + * Returns a decoded string, ensuring that any incomplete multibyte characters at + * the end of the `Buffer`, or `TypedArray`, or `DataView` are omitted from the + * returned string and stored in an internal buffer for the next call to`stringDecoder.write()` or `stringDecoder.end()`. + * @since v0.1.99 + * @param buffer A `Buffer`, or `TypedArray`, or `DataView` containing the bytes to decode. + */ + write(buffer: Buffer): string; + /** + * Returns any remaining input stored in the internal buffer as a string. Bytes + * representing incomplete UTF-8 and UTF-16 characters will be replaced with + * substitution characters appropriate for the character encoding. + * + * If the `buffer` argument is provided, one final call to `stringDecoder.write()`is performed before returning the remaining input. + * After `end()` is called, the `stringDecoder` object can be reused for new input. + * @since v0.9.3 + * @param buffer A `Buffer`, or `TypedArray`, or `DataView` containing the bytes to decode. + */ + end(buffer?: Buffer): string; + } +} +declare module 'node:string_decoder' { + export * from 'string_decoder'; +} diff --git a/node_modules/@types/node/test.d.ts b/node_modules/@types/node/test.d.ts new file mode 100644 index 0000000..8e20710 --- /dev/null +++ b/node_modules/@types/node/test.d.ts @@ -0,0 +1,446 @@ +/** + * The `node:test` module provides a standalone testing module. + * @see [source](https://github.com/nodejs/node/blob/v18.x/lib/test.js) + */ +declare module 'node:test' { + /** + * Programmatically start the test runner. + * @since v18.9.0 + * @param options Configuration options for running tests. + * @returns A {@link TapStream} that emits events about the test execution. + */ + function run(options?: RunOptions): TapStream; + + /** + * The `test()` function is the value imported from the test module. Each invocation of this + * function results in the creation of a test point in the TAP output. + * + * The {@link TestContext} object passed to the fn argument can be used to perform actions + * related to the current test. Examples include skipping the test, adding additional TAP + * diagnostic information, or creating subtests. + * + * `test()` returns a {@link Promise} that resolves once the test completes. The return value + * can usually be discarded for top level tests. However, the return value from subtests should + * be used to prevent the parent test from finishing first and cancelling the subtest as shown + * in the following example. + * + * ```js + * test('top level test', async (t) => { + * // The setTimeout() in the following subtest would cause it to outlive its + * // parent test if 'await' is removed on the next line. Once the parent test + * // completes, it will cancel any outstanding subtests. + * await t.test('longer running subtest', async (t) => { + * return new Promise((resolve, reject) => { + * setTimeout(resolve, 1000); + * }); + * }); + * }); + * ``` + * @since v18.0.0 + * @param name The name of the test, which is displayed when reporting test results. + * Default: The `name` property of fn, or `''` if `fn` does not have a name. + * @param options Configuration options for the test + * @param fn The function under test. The first argument to this function is a + * {@link TestContext} object. If the test uses callbacks, the callback function is + * passed as the second argument. Default: A no-op function. + * @returns A {@link Promise} resolved with `undefined` once the test completes. + */ + function test(name?: string, fn?: TestFn): Promise; + function test(name?: string, options?: TestOptions, fn?: TestFn): Promise; + function test(options?: TestOptions, fn?: TestFn): Promise; + function test(fn?: TestFn): Promise; + + /** + * @since v18.6.0 + * @param name The name of the suite, which is displayed when reporting suite results. + * Default: The `name` property of fn, or `''` if `fn` does not have a name. + * @param options Configuration options for the suite + * @param fn The function under suite. Default: A no-op function. + */ + function describe(name?: string, options?: TestOptions, fn?: SuiteFn): void; + function describe(name?: string, fn?: SuiteFn): void; + function describe(options?: TestOptions, fn?: SuiteFn): void; + function describe(fn?: SuiteFn): void; + namespace describe { + // Shorthand for skipping a suite, same as `describe([name], { skip: true }[, fn])`. + function skip(name?: string, options?: TestOptions, fn?: SuiteFn): void; + function skip(name?: string, fn?: SuiteFn): void; + function skip(options?: TestOptions, fn?: SuiteFn): void; + function skip(fn?: SuiteFn): void; + + // Shorthand for marking a suite as `TODO`, same as `describe([name], { todo: true }[, fn])`. + function todo(name?: string, options?: TestOptions, fn?: SuiteFn): void; + function todo(name?: string, fn?: SuiteFn): void; + function todo(options?: TestOptions, fn?: SuiteFn): void; + function todo(fn?: SuiteFn): void; + } + + /** + * @since v18.6.0 + * @param name The name of the test, which is displayed when reporting test results. + * Default: The `name` property of fn, or `''` if `fn` does not have a name. + * @param options Configuration options for the test + * @param fn The function under test. If the test uses callbacks, the callback function is + * passed as the second argument. Default: A no-op function. + */ + function it(name?: string, options?: TestOptions, fn?: ItFn): void; + function it(name?: string, fn?: ItFn): void; + function it(options?: TestOptions, fn?: ItFn): void; + function it(fn?: ItFn): void; + namespace it { + // Shorthand for skipping a test, same as `it([name], { skip: true }[, fn])`. + function skip(name?: string, options?: TestOptions, fn?: ItFn): void; + function skip(name?: string, fn?: ItFn): void; + function skip(options?: TestOptions, fn?: ItFn): void; + function skip(fn?: ItFn): void; + + // Shorthand for marking a test as `TODO`, same as `it([name], { todo: true }[, fn])`. + function todo(name?: string, options?: TestOptions, fn?: ItFn): void; + function todo(name?: string, fn?: ItFn): void; + function todo(options?: TestOptions, fn?: ItFn): void; + function todo(fn?: ItFn): void; + } + + /** + * The type of a function under test. The first argument to this function is a + * {@link TestContext} object. If the test uses callbacks, the callback function is passed as + * the second argument. + */ + type TestFn = (t: TestContext, done: (result?: any) => void) => any; + + /** + * The type of a function under Suite. + * If the test uses callbacks, the callback function is passed as an argument + */ + type SuiteFn = (done: (result?: any) => void) => void; + + /** + * The type of a function under test. + * If the test uses callbacks, the callback function is passed as an argument + */ + type ItFn = (done: (result?: any) => void) => any; + + interface RunOptions { + /** + * If a number is provided, then that many files would run in parallel. + * If truthy, it would run (number of cpu cores - 1) files in parallel. + * If falsy, it would only run one file at a time. + * If unspecified, subtests inherit this value from their parent. + * @default true + */ + concurrency?: number | boolean | undefined; + + /** + * An array containing the list of files to run. + * If unspecified, the test runner execution model will be used. + */ + files?: readonly string[] | undefined; + + /** + * Allows aborting an in-progress test execution. + * @default undefined + */ + signal?: AbortSignal | undefined; + + /** + * A number of milliseconds the test will fail after. + * If unspecified, subtests inherit this value from their parent. + * @default Infinity + */ + timeout?: number | undefined; + + /** + * Sets inspector port of test child process. + * If a nullish value is provided, each process gets its own port, + * incremented from the primary's `process.debugPort`. + */ + inspectPort?: number | (() => number) | undefined; + } + + /** + * A successful call of the `run()` method will return a new `TapStream` object, + * streaming a [TAP](https://testanything.org/) output. + * `TapStream` will emit events in the order of the tests' definitions. + * @since v18.9.0 + */ + interface TapStream extends NodeJS.ReadableStream { + addListener(event: 'test:diagnostic', listener: (message: string) => void): this; + addListener(event: 'test:fail', listener: (data: TestFail) => void): this; + addListener(event: 'test:pass', listener: (data: TestPass) => void): this; + addListener(event: string, listener: (...args: any[]) => void): this; + emit(event: 'test:diagnostic', message: string): boolean; + emit(event: 'test:fail', data: TestFail): boolean; + emit(event: 'test:pass', data: TestPass): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'test:diagnostic', listener: (message: string) => void): this; + on(event: 'test:fail', listener: (data: TestFail) => void): this; + on(event: 'test:pass', listener: (data: TestPass) => void): this; + on(event: string, listener: (...args: any[]) => void): this; + once(event: 'test:diagnostic', listener: (message: string) => void): this; + once(event: 'test:fail', listener: (data: TestFail) => void): this; + once(event: 'test:pass', listener: (data: TestPass) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'test:diagnostic', listener: (message: string) => void): this; + prependListener(event: 'test:fail', listener: (data: TestFail) => void): this; + prependListener(event: 'test:pass', listener: (data: TestPass) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'test:diagnostic', listener: (message: string) => void): this; + prependOnceListener(event: 'test:fail', listener: (data: TestFail) => void): this; + prependOnceListener(event: 'test:pass', listener: (data: TestPass) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + } + + interface TestFail { + /** + * The test duration. + */ + duration: number; + + /** + * The failure casing test to fail. + */ + error: Error; + + /** + * The test name. + */ + name: string; + + /** + * The ordinal number of the test. + */ + testNumber: number; + + /** + * Present if `context.todo` is called. + */ + todo?: string; + + /** + * Present if `context.skip` is called. + */ + skip?: string; + } + + interface TestPass { + /** + * The test duration. + */ + duration: number; + + /** + * The test name. + */ + name: string; + + /** + * The ordinal number of the test. + */ + testNumber: number; + + /** + * Present if `context.todo` is called. + */ + todo?: string; + + /** + * Present if `context.skip` is called. + */ + skip?: string; + } + + /** + * An instance of `TestContext` is passed to each test function in order to interact with the + * test runner. However, the `TestContext` constructor is not exposed as part of the API. + * @since v18.0.0 + */ + interface TestContext { + /** + * This function is used to create a hook running before each subtest of the current test. + * @param fn The hook function. If the hook uses callbacks, the callback function is passed as + * the second argument. Default: A no-op function. + * @param options Configuration options for the hook. + * @since v18.8.0 + */ + beforeEach: typeof beforeEach; + + /** + * This function is used to create a hook running after each subtest of the current test. + * @param fn The hook function. If the hook uses callbacks, the callback function is passed as + * the second argument. Default: A no-op function. + * @param options Configuration options for the hook. + * @since v18.8.0 + */ + afterEach: typeof afterEach; + + /** + * This function is used to write TAP diagnostics to the output. Any diagnostic information is + * included at the end of the test's results. This function does not return a value. + * @param message Message to be displayed as a TAP diagnostic. + * @since v18.0.0 + */ + diagnostic(message: string): void; + + /** + * The name of the test. + * @since v18.8.0 + */ + readonly name: string; + + /** + * If `shouldRunOnlyTests` is truthy, the test context will only run tests that have the `only` + * option set. Otherwise, all tests are run. If Node.js was not started with the `--test-only` + * command-line option, this function is a no-op. + * @param shouldRunOnlyTests Whether or not to run `only` tests. + * @since v18.0.0 + */ + runOnly(shouldRunOnlyTests: boolean): void; + + /** + * Can be used to abort test subtasks when the test has been aborted. + * @since v18.7.0 + */ + readonly signal: AbortSignal; + + /** + * This function causes the test's output to indicate the test as skipped. If `message` is + * provided, it is included in the TAP output. Calling `skip()` does not terminate execution of + * the test function. This function does not return a value. + * @param message Optional skip message to be displayed in TAP output. + * @since v18.0.0 + */ + skip(message?: string): void; + + /** + * This function adds a `TODO` directive to the test's output. If `message` is provided, it is + * included in the TAP output. Calling `todo()` does not terminate execution of the test + * function. This function does not return a value. + * @param message Optional `TODO` message to be displayed in TAP output. + * @since v18.0.0 + */ + todo(message?: string): void; + + /** + * This function is used to create subtests under the current test. This function behaves in + * the same fashion as the top level {@link test} function. + * @since v18.0.0 + * @param name The name of the test, which is displayed when reporting test results. + * Default: The `name` property of fn, or `''` if `fn` does not have a name. + * @param options Configuration options for the test + * @param fn The function under test. This first argument to this function is a + * {@link TestContext} object. If the test uses callbacks, the callback function is + * passed as the second argument. Default: A no-op function. + * @returns A {@link Promise} resolved with `undefined` once the test completes. + */ + test: typeof test; + } + + interface TestOptions { + /** + * If a number is provided, then that many tests would run in parallel. + * If truthy, it would run (number of cpu cores - 1) tests in parallel. + * For subtests, it will be `Infinity` tests in parallel. + * If falsy, it would only run one test at a time. + * If unspecified, subtests inherit this value from their parent. + * @default false + */ + concurrency?: number | boolean | undefined; + + /** + * If truthy, and the test context is configured to run `only` tests, then this test will be + * run. Otherwise, the test is skipped. + * @default false + */ + only?: boolean | undefined; + + /** + * Allows aborting an in-progress test. + * @since v18.8.0 + */ + signal?: AbortSignal | undefined; + + /** + * If truthy, the test is skipped. If a string is provided, that string is displayed in the + * test results as the reason for skipping the test. + * @default false + */ + skip?: boolean | string | undefined; + + /** + * A number of milliseconds the test will fail after. If unspecified, subtests inherit this + * value from their parent. + * @default Infinity + * @since v18.7.0 + */ + timeout?: number | undefined; + + /** + * If truthy, the test marked as `TODO`. If a string is provided, that string is displayed in + * the test results as the reason why the test is `TODO`. + * @default false + */ + todo?: boolean | string | undefined; + } + + /** + * This function is used to create a hook running before running a suite. + * @param fn The hook function. If the hook uses callbacks, the callback function is passed as + * the second argument. Default: A no-op function. + * @param options Configuration options for the hook. + * @since v18.8.0 + */ + function before(fn?: HookFn, options?: HookOptions): void; + + /** + * This function is used to create a hook running after running a suite. + * @param fn The hook function. If the hook uses callbacks, the callback function is passed as + * the second argument. Default: A no-op function. + * @param options Configuration options for the hook. + * @since v18.8.0 + */ + function after(fn?: HookFn, options?: HookOptions): void; + + /** + * This function is used to create a hook running before each subtest of the current suite. + * @param fn The hook function. If the hook uses callbacks, the callback function is passed as + * the second argument. Default: A no-op function. + * @param options Configuration options for the hook. + * @since v18.8.0 + */ + function beforeEach(fn?: HookFn, options?: HookOptions): void; + + /** + * This function is used to create a hook running after each subtest of the current test. + * @param fn The hook function. If the hook uses callbacks, the callback function is passed as + * the second argument. Default: A no-op function. + * @param options Configuration options for the hook. + * @since v18.8.0 + */ + function afterEach(fn?: HookFn, options?: HookOptions): void; + + /** + * The hook function. If the hook uses callbacks, the callback function is passed as the + * second argument. + */ + type HookFn = (done: (result?: any) => void) => any; + + /** + * Configuration options for hooks. + * @since v18.8.0 + */ + interface HookOptions { + /** + * Allows aborting an in-progress hook. + */ + signal?: AbortSignal | undefined; + + /** + * A number of milliseconds the hook will fail after. If unspecified, subtests inherit this + * value from their parent. + * @default Infinity + */ + timeout?: number | undefined; + } + + export { test as default, run, test, describe, it, before, after, beforeEach, afterEach }; +} diff --git a/node_modules/@types/node/timers.d.ts b/node_modules/@types/node/timers.d.ts new file mode 100644 index 0000000..b26f3ce --- /dev/null +++ b/node_modules/@types/node/timers.d.ts @@ -0,0 +1,94 @@ +/** + * The `timer` module exposes a global API for scheduling functions to + * be called at some future period of time. Because the timer functions are + * globals, there is no need to call `require('timers')` to use the API. + * + * The timer functions within Node.js implement a similar API as the timers API + * provided by Web Browsers but use a different internal implementation that is + * built around the Node.js [Event Loop](https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/#setimmediate-vs-settimeout). + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/timers.js) + */ +declare module 'timers' { + import { Abortable } from 'node:events'; + import { setTimeout as setTimeoutPromise, setImmediate as setImmediatePromise, setInterval as setIntervalPromise } from 'node:timers/promises'; + interface TimerOptions extends Abortable { + /** + * Set to `false` to indicate that the scheduled `Timeout` + * should not require the Node.js event loop to remain active. + * @default true + */ + ref?: boolean | undefined; + } + let setTimeout: typeof global.setTimeout; + let clearTimeout: typeof global.clearTimeout; + let setInterval: typeof global.setInterval; + let clearInterval: typeof global.clearInterval; + let setImmediate: typeof global.setImmediate; + let clearImmediate: typeof global.clearImmediate; + global { + namespace NodeJS { + // compatibility with older typings + interface Timer extends RefCounted { + hasRef(): boolean; + refresh(): this; + [Symbol.toPrimitive](): number; + } + interface Immediate extends RefCounted { + /** + * If true, the `Immediate` object will keep the Node.js event loop active. + * @since v11.0.0 + */ + hasRef(): boolean; + _onImmediate: Function; // to distinguish it from the Timeout class + } + interface Timeout extends Timer { + /** + * If true, the `Timeout` object will keep the Node.js event loop active. + * @since v11.0.0 + */ + hasRef(): boolean; + /** + * Sets the timer's start time to the current time, and reschedules the timer to + * call its callback at the previously specified duration adjusted to the current + * time. This is useful for refreshing a timer without allocating a new + * JavaScript object. + * + * Using this on a timer that has already called its callback will reactivate the + * timer. + * @since v10.2.0 + * @return a reference to `timeout` + */ + refresh(): this; + [Symbol.toPrimitive](): number; + } + } + function setTimeout(callback: (...args: TArgs) => void, ms?: number, ...args: TArgs): NodeJS.Timeout; + // util.promisify no rest args compability + // tslint:disable-next-line void-return + function setTimeout(callback: (args: void) => void, ms?: number): NodeJS.Timeout; + namespace setTimeout { + const __promisify__: typeof setTimeoutPromise; + } + function clearTimeout(timeoutId: NodeJS.Timeout | string | number | undefined): void; + function setInterval(callback: (...args: TArgs) => void, ms?: number, ...args: TArgs): NodeJS.Timer; + // util.promisify no rest args compability + // tslint:disable-next-line void-return + function setInterval(callback: (args: void) => void, ms?: number): NodeJS.Timer; + namespace setInterval { + const __promisify__: typeof setIntervalPromise; + } + function clearInterval(intervalId: NodeJS.Timeout | string | number | undefined): void; + function setImmediate(callback: (...args: TArgs) => void, ...args: TArgs): NodeJS.Immediate; + // util.promisify no rest args compability + // tslint:disable-next-line void-return + function setImmediate(callback: (args: void) => void): NodeJS.Immediate; + namespace setImmediate { + const __promisify__: typeof setImmediatePromise; + } + function clearImmediate(immediateId: NodeJS.Immediate | undefined): void; + function queueMicrotask(callback: () => void): void; + } +} +declare module 'node:timers' { + export * from 'timers'; +} diff --git a/node_modules/@types/node/timers/promises.d.ts b/node_modules/@types/node/timers/promises.d.ts new file mode 100644 index 0000000..c145068 --- /dev/null +++ b/node_modules/@types/node/timers/promises.d.ts @@ -0,0 +1,93 @@ +/** + * The `timers/promises` API provides an alternative set of timer functions + * that return `Promise` objects. The API is accessible via`require('timers/promises')`. + * + * ```js + * import { + * setTimeout, + * setImmediate, + * setInterval, + * } from 'timers/promises'; + * ``` + * @since v15.0.0 + */ +declare module 'timers/promises' { + import { TimerOptions } from 'node:timers'; + /** + * ```js + * import { + * setTimeout, + * } from 'timers/promises'; + * + * const res = await setTimeout(100, 'result'); + * + * console.log(res); // Prints 'result' + * ``` + * @since v15.0.0 + * @param [delay=1] The number of milliseconds to wait before fulfilling the promise. + * @param value A value with which the promise is fulfilled. + */ + function setTimeout(delay?: number, value?: T, options?: TimerOptions): Promise; + /** + * ```js + * import { + * setImmediate, + * } from 'timers/promises'; + * + * const res = await setImmediate('result'); + * + * console.log(res); // Prints 'result' + * ``` + * @since v15.0.0 + * @param value A value with which the promise is fulfilled. + */ + function setImmediate(value?: T, options?: TimerOptions): Promise; + /** + * Returns an async iterator that generates values in an interval of `delay` ms. + * + * ```js + * import { + * setInterval, + * } from 'timers/promises'; + * + * const interval = 100; + * for await (const startTime of setInterval(interval, Date.now())) { + * const now = Date.now(); + * console.log(now); + * if ((now - startTime) > 1000) + * break; + * } + * console.log(Date.now()); + * ``` + * @since v15.9.0 + */ + function setInterval(delay?: number, value?: T, options?: TimerOptions): AsyncIterable; + + interface Scheduler { + /** + * ```js + * import { scheduler } from 'node:timers/promises'; + * + * await scheduler.wait(1000); // Wait one second before continuing + * ``` + * An experimental API defined by the Scheduling APIs draft specification being developed as a standard Web Platform API. + * Calling timersPromises.scheduler.wait(delay, options) is roughly equivalent to calling timersPromises.setTimeout(delay, undefined, options) except that the ref option is not supported. + * @since v16.14.0 + * @experimental + * @param [delay=1] The number of milliseconds to wait before fulfilling the promise. + */ + wait: (delay?: number, options?: TimerOptions) => Promise; + /** + * An experimental API defined by the Scheduling APIs draft specification being developed as a standard Web Platform API. + * Calling timersPromises.scheduler.yield() is equivalent to calling timersPromises.setImmediate() with no arguments. + * @since v16.14.0 + * @experimental + */ + yield: () => Promise; + } + + const scheduler: Scheduler; +} +declare module 'node:timers/promises' { + export * from 'timers/promises'; +} diff --git a/node_modules/@types/node/tls.d.ts b/node_modules/@types/node/tls.d.ts new file mode 100644 index 0000000..2cbc716 --- /dev/null +++ b/node_modules/@types/node/tls.d.ts @@ -0,0 +1,1028 @@ +/** + * The `tls` module provides an implementation of the Transport Layer Security + * (TLS) and Secure Socket Layer (SSL) protocols that is built on top of OpenSSL. + * The module can be accessed using: + * + * ```js + * const tls = require('tls'); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/tls.js) + */ +declare module 'tls' { + import { X509Certificate } from 'node:crypto'; + import * as net from 'node:net'; + import * as stream from 'stream'; + const CLIENT_RENEG_LIMIT: number; + const CLIENT_RENEG_WINDOW: number; + interface Certificate { + /** + * Country code. + */ + C: string; + /** + * Street. + */ + ST: string; + /** + * Locality. + */ + L: string; + /** + * Organization. + */ + O: string; + /** + * Organizational unit. + */ + OU: string; + /** + * Common name. + */ + CN: string; + } + interface PeerCertificate { + subject: Certificate; + issuer: Certificate; + subjectaltname: string; + infoAccess: NodeJS.Dict; + modulus: string; + exponent: string; + valid_from: string; + valid_to: string; + fingerprint: string; + fingerprint256: string; + ext_key_usage: string[]; + serialNumber: string; + raw: Buffer; + } + interface DetailedPeerCertificate extends PeerCertificate { + issuerCertificate: DetailedPeerCertificate; + } + interface CipherNameAndProtocol { + /** + * The cipher name. + */ + name: string; + /** + * SSL/TLS protocol version. + */ + version: string; + /** + * IETF name for the cipher suite. + */ + standardName: string; + } + interface EphemeralKeyInfo { + /** + * The supported types are 'DH' and 'ECDH'. + */ + type: string; + /** + * The name property is available only when type is 'ECDH'. + */ + name?: string | undefined; + /** + * The size of parameter of an ephemeral key exchange. + */ + size: number; + } + interface KeyObject { + /** + * Private keys in PEM format. + */ + pem: string | Buffer; + /** + * Optional passphrase. + */ + passphrase?: string | undefined; + } + interface PxfObject { + /** + * PFX or PKCS12 encoded private key and certificate chain. + */ + buf: string | Buffer; + /** + * Optional passphrase. + */ + passphrase?: string | undefined; + } + interface TLSSocketOptions extends SecureContextOptions, CommonConnectionOptions { + /** + * If true the TLS socket will be instantiated in server-mode. + * Defaults to false. + */ + isServer?: boolean | undefined; + /** + * An optional net.Server instance. + */ + server?: net.Server | undefined; + /** + * An optional Buffer instance containing a TLS session. + */ + session?: Buffer | undefined; + /** + * If true, specifies that the OCSP status request extension will be + * added to the client hello and an 'OCSPResponse' event will be + * emitted on the socket before establishing a secure communication + */ + requestOCSP?: boolean | undefined; + } + /** + * Performs transparent encryption of written data and all required TLS + * negotiation. + * + * Instances of `tls.TLSSocket` implement the duplex `Stream` interface. + * + * Methods that return TLS connection metadata (e.g.{@link TLSSocket.getPeerCertificate} will only return data while the + * connection is open. + * @since v0.11.4 + */ + class TLSSocket extends net.Socket { + /** + * Construct a new tls.TLSSocket object from an existing TCP socket. + */ + constructor(socket: net.Socket, options?: TLSSocketOptions); + /** + * This property is `true` if the peer certificate was signed by one of the CAs + * specified when creating the `tls.TLSSocket` instance, otherwise `false`. + * @since v0.11.4 + */ + authorized: boolean; + /** + * Returns the reason why the peer's certificate was not been verified. This + * property is set only when `tlsSocket.authorized === false`. + * @since v0.11.4 + */ + authorizationError: Error; + /** + * Always returns `true`. This may be used to distinguish TLS sockets from regular`net.Socket` instances. + * @since v0.11.4 + */ + encrypted: true; + /** + * String containing the selected ALPN protocol. + * Before a handshake has completed, this value is always null. + * When a handshake is completed but not ALPN protocol was selected, tlsSocket.alpnProtocol equals false. + */ + alpnProtocol: string | false | null; + /** + * Returns an object representing the local certificate. The returned object has + * some properties corresponding to the fields of the certificate. + * + * See {@link TLSSocket.getPeerCertificate} for an example of the certificate + * structure. + * + * If there is no local certificate, an empty object will be returned. If the + * socket has been destroyed, `null` will be returned. + * @since v11.2.0 + */ + getCertificate(): PeerCertificate | object | null; + /** + * Returns an object containing information on the negotiated cipher suite. + * + * For example: + * + * ```json + * { + * "name": "AES128-SHA256", + * "standardName": "TLS_RSA_WITH_AES_128_CBC_SHA256", + * "version": "TLSv1.2" + * } + * ``` + * + * See [SSL\_CIPHER\_get\_name](https://www.openssl.org/docs/man1.1.1/man3/SSL_CIPHER_get_name.html) for more information. + * @since v0.11.4 + */ + getCipher(): CipherNameAndProtocol; + /** + * Returns an object representing the type, name, and size of parameter of + * an ephemeral key exchange in `perfect forward secrecy` on a client + * connection. It returns an empty object when the key exchange is not + * ephemeral. As this is only supported on a client socket; `null` is returned + * if called on a server socket. The supported types are `'DH'` and `'ECDH'`. The`name` property is available only when type is `'ECDH'`. + * + * For example: `{ type: 'ECDH', name: 'prime256v1', size: 256 }`. + * @since v5.0.0 + */ + getEphemeralKeyInfo(): EphemeralKeyInfo | object | null; + /** + * As the `Finished` messages are message digests of the complete handshake + * (with a total of 192 bits for TLS 1.0 and more for SSL 3.0), they can + * be used for external authentication procedures when the authentication + * provided by SSL/TLS is not desired or is not enough. + * + * Corresponds to the `SSL_get_finished` routine in OpenSSL and may be used + * to implement the `tls-unique` channel binding from [RFC 5929](https://tools.ietf.org/html/rfc5929). + * @since v9.9.0 + * @return The latest `Finished` message that has been sent to the socket as part of a SSL/TLS handshake, or `undefined` if no `Finished` message has been sent yet. + */ + getFinished(): Buffer | undefined; + /** + * Returns an object representing the peer's certificate. If the peer does not + * provide a certificate, an empty object will be returned. If the socket has been + * destroyed, `null` will be returned. + * + * If the full certificate chain was requested, each certificate will include an`issuerCertificate` property containing an object representing its issuer's + * certificate. + * @since v0.11.4 + * @param detailed Include the full certificate chain if `true`, otherwise include just the peer's certificate. + * @return A certificate object. + */ + getPeerCertificate(detailed: true): DetailedPeerCertificate; + getPeerCertificate(detailed?: false): PeerCertificate; + getPeerCertificate(detailed?: boolean): PeerCertificate | DetailedPeerCertificate; + /** + * As the `Finished` messages are message digests of the complete handshake + * (with a total of 192 bits for TLS 1.0 and more for SSL 3.0), they can + * be used for external authentication procedures when the authentication + * provided by SSL/TLS is not desired or is not enough. + * + * Corresponds to the `SSL_get_peer_finished` routine in OpenSSL and may be used + * to implement the `tls-unique` channel binding from [RFC 5929](https://tools.ietf.org/html/rfc5929). + * @since v9.9.0 + * @return The latest `Finished` message that is expected or has actually been received from the socket as part of a SSL/TLS handshake, or `undefined` if there is no `Finished` message so + * far. + */ + getPeerFinished(): Buffer | undefined; + /** + * Returns a string containing the negotiated SSL/TLS protocol version of the + * current connection. The value `'unknown'` will be returned for connected + * sockets that have not completed the handshaking process. The value `null` will + * be returned for server sockets or disconnected client sockets. + * + * Protocol versions are: + * + * * `'SSLv3'` + * * `'TLSv1'` + * * `'TLSv1.1'` + * * `'TLSv1.2'` + * * `'TLSv1.3'` + * + * See the OpenSSL [`SSL_get_version`](https://www.openssl.org/docs/man1.1.1/man3/SSL_get_version.html) documentation for more information. + * @since v5.7.0 + */ + getProtocol(): string | null; + /** + * Returns the TLS session data or `undefined` if no session was + * negotiated. On the client, the data can be provided to the `session` option of {@link connect} to resume the connection. On the server, it may be useful + * for debugging. + * + * See `Session Resumption` for more information. + * + * Note: `getSession()` works only for TLSv1.2 and below. For TLSv1.3, applications + * must use the `'session'` event (it also works for TLSv1.2 and below). + * @since v0.11.4 + */ + getSession(): Buffer | undefined; + /** + * See [SSL\_get\_shared\_sigalgs](https://www.openssl.org/docs/man1.1.1/man3/SSL_get_shared_sigalgs.html) for more information. + * @since v12.11.0 + * @return List of signature algorithms shared between the server and the client in the order of decreasing preference. + */ + getSharedSigalgs(): string[]; + /** + * For a client, returns the TLS session ticket if one is available, or`undefined`. For a server, always returns `undefined`. + * + * It may be useful for debugging. + * + * See `Session Resumption` for more information. + * @since v0.11.4 + */ + getTLSTicket(): Buffer | undefined; + /** + * See `Session Resumption` for more information. + * @since v0.5.6 + * @return `true` if the session was reused, `false` otherwise. + */ + isSessionReused(): boolean; + /** + * The `tlsSocket.renegotiate()` method initiates a TLS renegotiation process. + * Upon completion, the `callback` function will be passed a single argument + * that is either an `Error` (if the request failed) or `null`. + * + * This method can be used to request a peer's certificate after the secure + * connection has been established. + * + * When running as the server, the socket will be destroyed with an error after`handshakeTimeout` timeout. + * + * For TLSv1.3, renegotiation cannot be initiated, it is not supported by the + * protocol. + * @since v0.11.8 + * @param callback If `renegotiate()` returned `true`, callback is attached once to the `'secure'` event. If `renegotiate()` returned `false`, `callback` will be called in the next tick with + * an error, unless the `tlsSocket` has been destroyed, in which case `callback` will not be called at all. + * @return `true` if renegotiation was initiated, `false` otherwise. + */ + renegotiate( + options: { + rejectUnauthorized?: boolean | undefined; + requestCert?: boolean | undefined; + }, + callback: (err: Error | null) => void + ): undefined | boolean; + /** + * The `tlsSocket.setMaxSendFragment()` method sets the maximum TLS fragment size. + * Returns `true` if setting the limit succeeded; `false` otherwise. + * + * Smaller fragment sizes decrease the buffering latency on the client: larger + * fragments are buffered by the TLS layer until the entire fragment is received + * and its integrity is verified; large fragments can span multiple roundtrips + * and their processing can be delayed due to packet loss or reordering. However, + * smaller fragments add extra TLS framing bytes and CPU overhead, which may + * decrease overall server throughput. + * @since v0.11.11 + * @param [size=16384] The maximum TLS fragment size. The maximum value is `16384`. + */ + setMaxSendFragment(size: number): boolean; + /** + * Disables TLS renegotiation for this `TLSSocket` instance. Once called, attempts + * to renegotiate will trigger an `'error'` event on the `TLSSocket`. + * @since v8.4.0 + */ + disableRenegotiation(): void; + /** + * When enabled, TLS packet trace information is written to `stderr`. This can be + * used to debug TLS connection problems. + * + * The format of the output is identical to the output of`openssl s_client -trace` or `openssl s_server -trace`. While it is produced by + * OpenSSL's `SSL_trace()` function, the format is undocumented, can change + * without notice, and should not be relied on. + * @since v12.2.0 + */ + enableTrace(): void; + /** + * Returns the peer certificate as an `X509Certificate` object. + * + * If there is no peer certificate, or the socket has been destroyed,`undefined` will be returned. + * @since v15.9.0 + */ + getPeerX509Certificate(): X509Certificate | undefined; + /** + * Returns the local certificate as an `X509Certificate` object. + * + * If there is no local certificate, or the socket has been destroyed,`undefined` will be returned. + * @since v15.9.0 + */ + getX509Certificate(): X509Certificate | undefined; + /** + * Keying material is used for validations to prevent different kind of attacks in + * network protocols, for example in the specifications of IEEE 802.1X. + * + * Example + * + * ```js + * const keyingMaterial = tlsSocket.exportKeyingMaterial( + * 128, + * 'client finished'); + * + * /* + * Example return value of keyingMaterial: + * + * + * ``` + * + * See the OpenSSL [`SSL_export_keying_material`](https://www.openssl.org/docs/man1.1.1/man3/SSL_export_keying_material.html) documentation for more + * information. + * @since v13.10.0, v12.17.0 + * @param length number of bytes to retrieve from keying material + * @param label an application specific label, typically this will be a value from the [IANA Exporter Label + * Registry](https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#exporter-labels). + * @param context Optionally provide a context. + * @return requested bytes of the keying material + */ + exportKeyingMaterial(length: number, label: string, context: Buffer): Buffer; + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'OCSPResponse', listener: (response: Buffer) => void): this; + addListener(event: 'secureConnect', listener: () => void): this; + addListener(event: 'session', listener: (session: Buffer) => void): this; + addListener(event: 'keylog', listener: (line: Buffer) => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'OCSPResponse', response: Buffer): boolean; + emit(event: 'secureConnect'): boolean; + emit(event: 'session', session: Buffer): boolean; + emit(event: 'keylog', line: Buffer): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'OCSPResponse', listener: (response: Buffer) => void): this; + on(event: 'secureConnect', listener: () => void): this; + on(event: 'session', listener: (session: Buffer) => void): this; + on(event: 'keylog', listener: (line: Buffer) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'OCSPResponse', listener: (response: Buffer) => void): this; + once(event: 'secureConnect', listener: () => void): this; + once(event: 'session', listener: (session: Buffer) => void): this; + once(event: 'keylog', listener: (line: Buffer) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'OCSPResponse', listener: (response: Buffer) => void): this; + prependListener(event: 'secureConnect', listener: () => void): this; + prependListener(event: 'session', listener: (session: Buffer) => void): this; + prependListener(event: 'keylog', listener: (line: Buffer) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'OCSPResponse', listener: (response: Buffer) => void): this; + prependOnceListener(event: 'secureConnect', listener: () => void): this; + prependOnceListener(event: 'session', listener: (session: Buffer) => void): this; + prependOnceListener(event: 'keylog', listener: (line: Buffer) => void): this; + } + interface CommonConnectionOptions { + /** + * An optional TLS context object from tls.createSecureContext() + */ + secureContext?: SecureContext | undefined; + /** + * When enabled, TLS packet trace information is written to `stderr`. This can be + * used to debug TLS connection problems. + * @default false + */ + enableTrace?: boolean | undefined; + /** + * If true the server will request a certificate from clients that + * connect and attempt to verify that certificate. Defaults to + * false. + */ + requestCert?: boolean | undefined; + /** + * An array of strings or a Buffer naming possible ALPN protocols. + * (Protocols should be ordered by their priority.) + */ + ALPNProtocols?: string[] | Uint8Array[] | Uint8Array | undefined; + /** + * SNICallback(servername, cb) A function that will be + * called if the client supports SNI TLS extension. Two arguments + * will be passed when called: servername and cb. SNICallback should + * invoke cb(null, ctx), where ctx is a SecureContext instance. + * (tls.createSecureContext(...) can be used to get a proper + * SecureContext.) If SNICallback wasn't provided the default callback + * with high-level API will be used (see below). + */ + SNICallback?: ((servername: string, cb: (err: Error | null, ctx?: SecureContext) => void) => void) | undefined; + /** + * If true the server will reject any connection which is not + * authorized with the list of supplied CAs. This option only has an + * effect if requestCert is true. + * @default true + */ + rejectUnauthorized?: boolean | undefined; + } + interface TlsOptions extends SecureContextOptions, CommonConnectionOptions, net.ServerOpts { + /** + * Abort the connection if the SSL/TLS handshake does not finish in the + * specified number of milliseconds. A 'tlsClientError' is emitted on + * the tls.Server object whenever a handshake times out. Default: + * 120000 (120 seconds). + */ + handshakeTimeout?: number | undefined; + /** + * The number of seconds after which a TLS session created by the + * server will no longer be resumable. See Session Resumption for more + * information. Default: 300. + */ + sessionTimeout?: number | undefined; + /** + * 48-bytes of cryptographically strong pseudo-random data. + */ + ticketKeys?: Buffer | undefined; + /** + * + * @param socket + * @param identity identity parameter sent from the client. + * @return pre-shared key that must either be + * a buffer or `null` to stop the negotiation process. Returned PSK must be + * compatible with the selected cipher's digest. + * + * When negotiating TLS-PSK (pre-shared keys), this function is called + * with the identity provided by the client. + * If the return value is `null` the negotiation process will stop and an + * "unknown_psk_identity" alert message will be sent to the other party. + * If the server wishes to hide the fact that the PSK identity was not known, + * the callback must provide some random data as `psk` to make the connection + * fail with "decrypt_error" before negotiation is finished. + * PSK ciphers are disabled by default, and using TLS-PSK thus + * requires explicitly specifying a cipher suite with the `ciphers` option. + * More information can be found in the RFC 4279. + */ + pskCallback?(socket: TLSSocket, identity: string): DataView | NodeJS.TypedArray | null; + /** + * hint to send to a client to help + * with selecting the identity during TLS-PSK negotiation. Will be ignored + * in TLS 1.3. Upon failing to set pskIdentityHint `tlsClientError` will be + * emitted with `ERR_TLS_PSK_SET_IDENTIY_HINT_FAILED` code. + */ + pskIdentityHint?: string | undefined; + } + interface PSKCallbackNegotation { + psk: DataView | NodeJS.TypedArray; + identity: string; + } + interface ConnectionOptions extends SecureContextOptions, CommonConnectionOptions { + host?: string | undefined; + port?: number | undefined; + path?: string | undefined; // Creates unix socket connection to path. If this option is specified, `host` and `port` are ignored. + socket?: stream.Duplex | undefined; // Establish secure connection on a given socket rather than creating a new socket + checkServerIdentity?: typeof checkServerIdentity | undefined; + servername?: string | undefined; // SNI TLS Extension + session?: Buffer | undefined; + minDHSize?: number | undefined; + lookup?: net.LookupFunction | undefined; + timeout?: number | undefined; + /** + * When negotiating TLS-PSK (pre-shared keys), this function is called + * with optional identity `hint` provided by the server or `null` + * in case of TLS 1.3 where `hint` was removed. + * It will be necessary to provide a custom `tls.checkServerIdentity()` + * for the connection as the default one will try to check hostname/IP + * of the server against the certificate but that's not applicable for PSK + * because there won't be a certificate present. + * More information can be found in the RFC 4279. + * + * @param hint message sent from the server to help client + * decide which identity to use during negotiation. + * Always `null` if TLS 1.3 is used. + * @returns Return `null` to stop the negotiation process. `psk` must be + * compatible with the selected cipher's digest. + * `identity` must use UTF-8 encoding. + */ + pskCallback?(hint: string | null): PSKCallbackNegotation | null; + } + /** + * Accepts encrypted connections using TLS or SSL. + * @since v0.3.2 + */ + class Server extends net.Server { + constructor(secureConnectionListener?: (socket: TLSSocket) => void); + constructor(options: TlsOptions, secureConnectionListener?: (socket: TLSSocket) => void); + /** + * The `server.addContext()` method adds a secure context that will be used if + * the client request's SNI name matches the supplied `hostname` (or wildcard). + * + * When there are multiple matching contexts, the most recently added one is + * used. + * @since v0.5.3 + * @param hostname A SNI host name or wildcard (e.g. `'*'`) + * @param context An object containing any of the possible properties from the {@link createSecureContext} `options` arguments (e.g. `key`, `cert`, `ca`, etc). + */ + addContext(hostname: string, context: SecureContextOptions): void; + /** + * Returns the session ticket keys. + * + * See `Session Resumption` for more information. + * @since v3.0.0 + * @return A 48-byte buffer containing the session ticket keys. + */ + getTicketKeys(): Buffer; + /** + * The `server.setSecureContext()` method replaces the secure context of an + * existing server. Existing connections to the server are not interrupted. + * @since v11.0.0 + * @param options An object containing any of the possible properties from the {@link createSecureContext} `options` arguments (e.g. `key`, `cert`, `ca`, etc). + */ + setSecureContext(options: SecureContextOptions): void; + /** + * Sets the session ticket keys. + * + * Changes to the ticket keys are effective only for future server connections. + * Existing or currently pending server connections will use the previous keys. + * + * See `Session Resumption` for more information. + * @since v3.0.0 + * @param keys A 48-byte buffer containing the session ticket keys. + */ + setTicketKeys(keys: Buffer): void; + /** + * events.EventEmitter + * 1. tlsClientError + * 2. newSession + * 3. OCSPRequest + * 4. resumeSession + * 5. secureConnection + * 6. keylog + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'tlsClientError', listener: (err: Error, tlsSocket: TLSSocket) => void): this; + addListener(event: 'newSession', listener: (sessionId: Buffer, sessionData: Buffer, callback: () => void) => void): this; + addListener(event: 'OCSPRequest', listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this; + addListener(event: 'resumeSession', listener: (sessionId: Buffer, callback: (err: Error | null, sessionData: Buffer | null) => void) => void): this; + addListener(event: 'secureConnection', listener: (tlsSocket: TLSSocket) => void): this; + addListener(event: 'keylog', listener: (line: Buffer, tlsSocket: TLSSocket) => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'tlsClientError', err: Error, tlsSocket: TLSSocket): boolean; + emit(event: 'newSession', sessionId: Buffer, sessionData: Buffer, callback: () => void): boolean; + emit(event: 'OCSPRequest', certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void): boolean; + emit(event: 'resumeSession', sessionId: Buffer, callback: (err: Error | null, sessionData: Buffer | null) => void): boolean; + emit(event: 'secureConnection', tlsSocket: TLSSocket): boolean; + emit(event: 'keylog', line: Buffer, tlsSocket: TLSSocket): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'tlsClientError', listener: (err: Error, tlsSocket: TLSSocket) => void): this; + on(event: 'newSession', listener: (sessionId: Buffer, sessionData: Buffer, callback: () => void) => void): this; + on(event: 'OCSPRequest', listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this; + on(event: 'resumeSession', listener: (sessionId: Buffer, callback: (err: Error | null, sessionData: Buffer | null) => void) => void): this; + on(event: 'secureConnection', listener: (tlsSocket: TLSSocket) => void): this; + on(event: 'keylog', listener: (line: Buffer, tlsSocket: TLSSocket) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'tlsClientError', listener: (err: Error, tlsSocket: TLSSocket) => void): this; + once(event: 'newSession', listener: (sessionId: Buffer, sessionData: Buffer, callback: () => void) => void): this; + once(event: 'OCSPRequest', listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this; + once(event: 'resumeSession', listener: (sessionId: Buffer, callback: (err: Error | null, sessionData: Buffer | null) => void) => void): this; + once(event: 'secureConnection', listener: (tlsSocket: TLSSocket) => void): this; + once(event: 'keylog', listener: (line: Buffer, tlsSocket: TLSSocket) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'tlsClientError', listener: (err: Error, tlsSocket: TLSSocket) => void): this; + prependListener(event: 'newSession', listener: (sessionId: Buffer, sessionData: Buffer, callback: () => void) => void): this; + prependListener(event: 'OCSPRequest', listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this; + prependListener(event: 'resumeSession', listener: (sessionId: Buffer, callback: (err: Error | null, sessionData: Buffer | null) => void) => void): this; + prependListener(event: 'secureConnection', listener: (tlsSocket: TLSSocket) => void): this; + prependListener(event: 'keylog', listener: (line: Buffer, tlsSocket: TLSSocket) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'tlsClientError', listener: (err: Error, tlsSocket: TLSSocket) => void): this; + prependOnceListener(event: 'newSession', listener: (sessionId: Buffer, sessionData: Buffer, callback: () => void) => void): this; + prependOnceListener(event: 'OCSPRequest', listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this; + prependOnceListener(event: 'resumeSession', listener: (sessionId: Buffer, callback: (err: Error | null, sessionData: Buffer | null) => void) => void): this; + prependOnceListener(event: 'secureConnection', listener: (tlsSocket: TLSSocket) => void): this; + prependOnceListener(event: 'keylog', listener: (line: Buffer, tlsSocket: TLSSocket) => void): this; + } + /** + * @deprecated since v0.11.3 Use `tls.TLSSocket` instead. + */ + interface SecurePair { + encrypted: TLSSocket; + cleartext: TLSSocket; + } + type SecureVersion = 'TLSv1.3' | 'TLSv1.2' | 'TLSv1.1' | 'TLSv1'; + interface SecureContextOptions { + /** + * Optionally override the trusted CA certificates. Default is to trust + * the well-known CAs curated by Mozilla. Mozilla's CAs are completely + * replaced when CAs are explicitly specified using this option. + */ + ca?: string | Buffer | Array | undefined; + /** + * Cert chains in PEM format. One cert chain should be provided per + * private key. Each cert chain should consist of the PEM formatted + * certificate for a provided private key, followed by the PEM + * formatted intermediate certificates (if any), in order, and not + * including the root CA (the root CA must be pre-known to the peer, + * see ca). When providing multiple cert chains, they do not have to + * be in the same order as their private keys in key. If the + * intermediate certificates are not provided, the peer will not be + * able to validate the certificate, and the handshake will fail. + */ + cert?: string | Buffer | Array | undefined; + /** + * Colon-separated list of supported signature algorithms. The list + * can contain digest algorithms (SHA256, MD5 etc.), public key + * algorithms (RSA-PSS, ECDSA etc.), combination of both (e.g + * 'RSA+SHA384') or TLS v1.3 scheme names (e.g. rsa_pss_pss_sha512). + */ + sigalgs?: string | undefined; + /** + * Cipher suite specification, replacing the default. For more + * information, see modifying the default cipher suite. Permitted + * ciphers can be obtained via tls.getCiphers(). Cipher names must be + * uppercased in order for OpenSSL to accept them. + */ + ciphers?: string | undefined; + /** + * Name of an OpenSSL engine which can provide the client certificate. + */ + clientCertEngine?: string | undefined; + /** + * PEM formatted CRLs (Certificate Revocation Lists). + */ + crl?: string | Buffer | Array | undefined; + /** + * Diffie Hellman parameters, required for Perfect Forward Secrecy. Use + * openssl dhparam to create the parameters. The key length must be + * greater than or equal to 1024 bits or else an error will be thrown. + * Although 1024 bits is permissible, use 2048 bits or larger for + * stronger security. If omitted or invalid, the parameters are + * silently discarded and DHE ciphers will not be available. + */ + dhparam?: string | Buffer | undefined; + /** + * A string describing a named curve or a colon separated list of curve + * NIDs or names, for example P-521:P-384:P-256, to use for ECDH key + * agreement. Set to auto to select the curve automatically. Use + * crypto.getCurves() to obtain a list of available curve names. On + * recent releases, openssl ecparam -list_curves will also display the + * name and description of each available elliptic curve. Default: + * tls.DEFAULT_ECDH_CURVE. + */ + ecdhCurve?: string | undefined; + /** + * Attempt to use the server's cipher suite preferences instead of the + * client's. When true, causes SSL_OP_CIPHER_SERVER_PREFERENCE to be + * set in secureOptions + */ + honorCipherOrder?: boolean | undefined; + /** + * Private keys in PEM format. PEM allows the option of private keys + * being encrypted. Encrypted keys will be decrypted with + * options.passphrase. Multiple keys using different algorithms can be + * provided either as an array of unencrypted key strings or buffers, + * or an array of objects in the form {pem: [, + * passphrase: ]}. The object form can only occur in an array. + * object.passphrase is optional. Encrypted keys will be decrypted with + * object.passphrase if provided, or options.passphrase if it is not. + */ + key?: string | Buffer | Array | undefined; + /** + * Name of an OpenSSL engine to get private key from. Should be used + * together with privateKeyIdentifier. + */ + privateKeyEngine?: string | undefined; + /** + * Identifier of a private key managed by an OpenSSL engine. Should be + * used together with privateKeyEngine. Should not be set together with + * key, because both options define a private key in different ways. + */ + privateKeyIdentifier?: string | undefined; + /** + * Optionally set the maximum TLS version to allow. One + * of `'TLSv1.3'`, `'TLSv1.2'`, `'TLSv1.1'`, or `'TLSv1'`. Cannot be specified along with the + * `secureProtocol` option, use one or the other. + * **Default:** `'TLSv1.3'`, unless changed using CLI options. Using + * `--tls-max-v1.2` sets the default to `'TLSv1.2'`. Using `--tls-max-v1.3` sets the default to + * `'TLSv1.3'`. If multiple of the options are provided, the highest maximum is used. + */ + maxVersion?: SecureVersion | undefined; + /** + * Optionally set the minimum TLS version to allow. One + * of `'TLSv1.3'`, `'TLSv1.2'`, `'TLSv1.1'`, or `'TLSv1'`. Cannot be specified along with the + * `secureProtocol` option, use one or the other. It is not recommended to use + * less than TLSv1.2, but it may be required for interoperability. + * **Default:** `'TLSv1.2'`, unless changed using CLI options. Using + * `--tls-v1.0` sets the default to `'TLSv1'`. Using `--tls-v1.1` sets the default to + * `'TLSv1.1'`. Using `--tls-min-v1.3` sets the default to + * 'TLSv1.3'. If multiple of the options are provided, the lowest minimum is used. + */ + minVersion?: SecureVersion | undefined; + /** + * Shared passphrase used for a single private key and/or a PFX. + */ + passphrase?: string | undefined; + /** + * PFX or PKCS12 encoded private key and certificate chain. pfx is an + * alternative to providing key and cert individually. PFX is usually + * encrypted, if it is, passphrase will be used to decrypt it. Multiple + * PFX can be provided either as an array of unencrypted PFX buffers, + * or an array of objects in the form {buf: [, + * passphrase: ]}. The object form can only occur in an array. + * object.passphrase is optional. Encrypted PFX will be decrypted with + * object.passphrase if provided, or options.passphrase if it is not. + */ + pfx?: string | Buffer | Array | undefined; + /** + * Optionally affect the OpenSSL protocol behavior, which is not + * usually necessary. This should be used carefully if at all! Value is + * a numeric bitmask of the SSL_OP_* options from OpenSSL Options + */ + secureOptions?: number | undefined; // Value is a numeric bitmask of the `SSL_OP_*` options + /** + * Legacy mechanism to select the TLS protocol version to use, it does + * not support independent control of the minimum and maximum version, + * and does not support limiting the protocol to TLSv1.3. Use + * minVersion and maxVersion instead. The possible values are listed as + * SSL_METHODS, use the function names as strings. For example, use + * 'TLSv1_1_method' to force TLS version 1.1, or 'TLS_method' to allow + * any TLS protocol version up to TLSv1.3. It is not recommended to use + * TLS versions less than 1.2, but it may be required for + * interoperability. Default: none, see minVersion. + */ + secureProtocol?: string | undefined; + /** + * Opaque identifier used by servers to ensure session state is not + * shared between applications. Unused by clients. + */ + sessionIdContext?: string | undefined; + /** + * 48-bytes of cryptographically strong pseudo-random data. + * See Session Resumption for more information. + */ + ticketKeys?: Buffer | undefined; + /** + * The number of seconds after which a TLS session created by the + * server will no longer be resumable. See Session Resumption for more + * information. Default: 300. + */ + sessionTimeout?: number | undefined; + } + interface SecureContext { + context: any; + } + /** + * Verifies the certificate `cert` is issued to `hostname`. + * + * Returns [Error](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) object, populating it with `reason`, `host`, and `cert` on + * failure. On success, returns [undefined](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Undefined_type). + * + * This function is intended to be used in combination with the`checkServerIdentity` option that can be passed to {@link connect} and as + * such operates on a `certificate object`. For other purposes, consider using `x509.checkHost()` instead. + * + * This function can be overwritten by providing an alternative function as the`options.checkServerIdentity` option that is passed to `tls.connect()`. The + * overwriting function can call `tls.checkServerIdentity()` of course, to augment + * the checks done with additional verification. + * + * This function is only called if the certificate passed all other checks, such as + * being issued by trusted CA (`options.ca`). + * + * Earlier versions of Node.js incorrectly accepted certificates for a given`hostname` if a matching `uniformResourceIdentifier` subject alternative name + * was present (see [CVE-2021-44531](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44531)). Applications that wish to accept`uniformResourceIdentifier` subject alternative names can use + * a custom`options.checkServerIdentity` function that implements the desired behavior. + * @since v0.8.4 + * @param hostname The host name or IP address to verify the certificate against. + * @param cert A `certificate object` representing the peer's certificate. + */ + function checkServerIdentity(hostname: string, cert: PeerCertificate): Error | undefined; + /** + * Creates a new {@link Server}. The `secureConnectionListener`, if provided, is + * automatically set as a listener for the `'secureConnection'` event. + * + * The `ticketKeys` options is automatically shared between `cluster` module + * workers. + * + * The following illustrates a simple echo server: + * + * ```js + * const tls = require('tls'); + * const fs = require('fs'); + * + * const options = { + * key: fs.readFileSync('server-key.pem'), + * cert: fs.readFileSync('server-cert.pem'), + * + * // This is necessary only if using client certificate authentication. + * requestCert: true, + * + * // This is necessary only if the client uses a self-signed certificate. + * ca: [ fs.readFileSync('client-cert.pem') ] + * }; + * + * const server = tls.createServer(options, (socket) => { + * console.log('server connected', + * socket.authorized ? 'authorized' : 'unauthorized'); + * socket.write('welcome!\n'); + * socket.setEncoding('utf8'); + * socket.pipe(socket); + * }); + * server.listen(8000, () => { + * console.log('server bound'); + * }); + * ``` + * + * The server can be tested by connecting to it using the example client from {@link connect}. + * @since v0.3.2 + */ + function createServer(secureConnectionListener?: (socket: TLSSocket) => void): Server; + function createServer(options: TlsOptions, secureConnectionListener?: (socket: TLSSocket) => void): Server; + /** + * The `callback` function, if specified, will be added as a listener for the `'secureConnect'` event. + * + * `tls.connect()` returns a {@link TLSSocket} object. + * + * Unlike the `https` API, `tls.connect()` does not enable the + * SNI (Server Name Indication) extension by default, which may cause some + * servers to return an incorrect certificate or reject the connection + * altogether. To enable SNI, set the `servername` option in addition + * to `host`. + * + * The following illustrates a client for the echo server example from {@link createServer}: + * + * ```js + * // Assumes an echo server that is listening on port 8000. + * const tls = require('tls'); + * const fs = require('fs'); + * + * const options = { + * // Necessary only if the server requires client certificate authentication. + * key: fs.readFileSync('client-key.pem'), + * cert: fs.readFileSync('client-cert.pem'), + * + * // Necessary only if the server uses a self-signed certificate. + * ca: [ fs.readFileSync('server-cert.pem') ], + * + * // Necessary only if the server's cert isn't for "localhost". + * checkServerIdentity: () => { return null; }, + * }; + * + * const socket = tls.connect(8000, options, () => { + * console.log('client connected', + * socket.authorized ? 'authorized' : 'unauthorized'); + * process.stdin.pipe(socket); + * process.stdin.resume(); + * }); + * socket.setEncoding('utf8'); + * socket.on('data', (data) => { + * console.log(data); + * }); + * socket.on('end', () => { + * console.log('server ends connection'); + * }); + * ``` + * @since v0.11.3 + */ + function connect(options: ConnectionOptions, secureConnectListener?: () => void): TLSSocket; + function connect(port: number, host?: string, options?: ConnectionOptions, secureConnectListener?: () => void): TLSSocket; + function connect(port: number, options?: ConnectionOptions, secureConnectListener?: () => void): TLSSocket; + /** + * Creates a new secure pair object with two streams, one of which reads and writes + * the encrypted data and the other of which reads and writes the cleartext data. + * Generally, the encrypted stream is piped to/from an incoming encrypted data + * stream and the cleartext one is used as a replacement for the initial encrypted + * stream. + * + * `tls.createSecurePair()` returns a `tls.SecurePair` object with `cleartext` and`encrypted` stream properties. + * + * Using `cleartext` has the same API as {@link TLSSocket}. + * + * The `tls.createSecurePair()` method is now deprecated in favor of`tls.TLSSocket()`. For example, the code: + * + * ```js + * pair = tls.createSecurePair(// ... ); + * pair.encrypted.pipe(socket); + * socket.pipe(pair.encrypted); + * ``` + * + * can be replaced by: + * + * ```js + * secureSocket = tls.TLSSocket(socket, options); + * ``` + * + * where `secureSocket` has the same API as `pair.cleartext`. + * @since v0.3.2 + * @deprecated Since v0.11.3 - Use {@link TLSSocket} instead. + * @param context A secure context object as returned by `tls.createSecureContext()` + * @param isServer `true` to specify that this TLS connection should be opened as a server. + * @param requestCert `true` to specify whether a server should request a certificate from a connecting client. Only applies when `isServer` is `true`. + * @param rejectUnauthorized If not `false` a server automatically reject clients with invalid certificates. Only applies when `isServer` is `true`. + */ + function createSecurePair(context?: SecureContext, isServer?: boolean, requestCert?: boolean, rejectUnauthorized?: boolean): SecurePair; + /** + * {@link createServer} sets the default value of the `honorCipherOrder` option + * to `true`, other APIs that create secure contexts leave it unset. + * + * {@link createServer} uses a 128 bit truncated SHA1 hash value generated + * from `process.argv` as the default value of the `sessionIdContext` option, other + * APIs that create secure contexts have no default value. + * + * The `tls.createSecureContext()` method creates a `SecureContext` object. It is + * usable as an argument to several `tls` APIs, such as {@link createServer} and `server.addContext()`, but has no public methods. + * + * A key is _required_ for ciphers that use certificates. Either `key` or`pfx` can be used to provide it. + * + * If the `ca` option is not given, then Node.js will default to using [Mozilla's publicly trusted list of + * CAs](https://hg.mozilla.org/mozilla-central/raw-file/tip/security/nss/lib/ckfw/builtins/certdata.txt). + * @since v0.11.13 + */ + function createSecureContext(options?: SecureContextOptions): SecureContext; + /** + * Returns an array with the names of the supported TLS ciphers. The names are + * lower-case for historical reasons, but must be uppercased to be used in + * the `ciphers` option of {@link createSecureContext}. + * + * Not all supported ciphers are enabled by default. See `Modifying the default TLS cipher suite`. + * + * Cipher names that start with `'tls_'` are for TLSv1.3, all the others are for + * TLSv1.2 and below. + * + * ```js + * console.log(tls.getCiphers()); // ['aes128-gcm-sha256', 'aes128-sha', ...] + * ``` + * @since v0.10.2 + */ + function getCiphers(): string[]; + /** + * The default curve name to use for ECDH key agreement in a tls server. + * The default value is 'auto'. See tls.createSecureContext() for further + * information. + */ + let DEFAULT_ECDH_CURVE: string; + /** + * The default value of the maxVersion option of + * tls.createSecureContext(). It can be assigned any of the supported TLS + * protocol versions, 'TLSv1.3', 'TLSv1.2', 'TLSv1.1', or 'TLSv1'. Default: + * 'TLSv1.3', unless changed using CLI options. Using --tls-max-v1.2 sets + * the default to 'TLSv1.2'. Using --tls-max-v1.3 sets the default to + * 'TLSv1.3'. If multiple of the options are provided, the highest maximum + * is used. + */ + let DEFAULT_MAX_VERSION: SecureVersion; + /** + * The default value of the minVersion option of tls.createSecureContext(). + * It can be assigned any of the supported TLS protocol versions, + * 'TLSv1.3', 'TLSv1.2', 'TLSv1.1', or 'TLSv1'. Default: 'TLSv1.2', unless + * changed using CLI options. Using --tls-min-v1.0 sets the default to + * 'TLSv1'. Using --tls-min-v1.1 sets the default to 'TLSv1.1'. Using + * --tls-min-v1.3 sets the default to 'TLSv1.3'. If multiple of the options + * are provided, the lowest minimum is used. + */ + let DEFAULT_MIN_VERSION: SecureVersion; + /** + * An immutable array of strings representing the root certificates (in PEM + * format) used for verifying peer certificates. This is the default value + * of the ca option to tls.createSecureContext(). + */ + const rootCertificates: ReadonlyArray; +} +declare module 'node:tls' { + export * from 'tls'; +} diff --git a/node_modules/@types/node/trace_events.d.ts b/node_modules/@types/node/trace_events.d.ts new file mode 100644 index 0000000..d47aa93 --- /dev/null +++ b/node_modules/@types/node/trace_events.d.ts @@ -0,0 +1,171 @@ +/** + * The `trace_events` module provides a mechanism to centralize tracing information + * generated by V8, Node.js core, and userspace code. + * + * Tracing can be enabled with the `--trace-event-categories` command-line flag + * or by using the `trace_events` module. The `--trace-event-categories` flag + * accepts a list of comma-separated category names. + * + * The available categories are: + * + * * `node`: An empty placeholder. + * * `node.async_hooks`: Enables capture of detailed `async_hooks` trace data. + * The `async_hooks` events have a unique `asyncId` and a special `triggerId` `triggerAsyncId` property. + * * `node.bootstrap`: Enables capture of Node.js bootstrap milestones. + * * `node.console`: Enables capture of `console.time()` and `console.count()`output. + * * `node.dns.native`: Enables capture of trace data for DNS queries. + * * `node.environment`: Enables capture of Node.js Environment milestones. + * * `node.fs.sync`: Enables capture of trace data for file system sync methods. + * * `node.perf`: Enables capture of `Performance API` measurements. + * * `node.perf.usertiming`: Enables capture of only Performance API User Timing + * measures and marks. + * * `node.perf.timerify`: Enables capture of only Performance API timerify + * measurements. + * * `node.promises.rejections`: Enables capture of trace data tracking the number + * of unhandled Promise rejections and handled-after-rejections. + * * `node.vm.script`: Enables capture of trace data for the `vm` module's`runInNewContext()`, `runInContext()`, and `runInThisContext()` methods. + * * `v8`: The `V8` events are GC, compiling, and execution related. + * + * By default the `node`, `node.async_hooks`, and `v8` categories are enabled. + * + * ```bash + * node --trace-event-categories v8,node,node.async_hooks server.js + * ``` + * + * Prior versions of Node.js required the use of the `--trace-events-enabled`flag to enable trace events. This requirement has been removed. However, the`--trace-events-enabled` flag _may_ still be + * used and will enable the`node`, `node.async_hooks`, and `v8` trace event categories by default. + * + * ```bash + * node --trace-events-enabled + * + * # is equivalent to + * + * node --trace-event-categories v8,node,node.async_hooks + * ``` + * + * Alternatively, trace events may be enabled using the `trace_events` module: + * + * ```js + * const trace_events = require('trace_events'); + * const tracing = trace_events.createTracing({ categories: ['node.perf'] }); + * tracing.enable(); // Enable trace event capture for the 'node.perf' category + * + * // do work + * + * tracing.disable(); // Disable trace event capture for the 'node.perf' category + * ``` + * + * Running Node.js with tracing enabled will produce log files that can be opened + * in the [`chrome://tracing`](https://www.chromium.org/developers/how-tos/trace-event-profiling-tool) tab of Chrome. + * + * The logging file is by default called `node_trace.${rotation}.log`, where`${rotation}` is an incrementing log-rotation id. The filepath pattern can + * be specified with `--trace-event-file-pattern` that accepts a template + * string that supports `${rotation}` and `${pid}`: + * + * ```bash + * node --trace-event-categories v8 --trace-event-file-pattern '${pid}-${rotation}.log' server.js + * ``` + * + * To guarantee that the log file is properly generated after signal events like`SIGINT`, `SIGTERM`, or `SIGBREAK`, make sure to have the appropriate handlers + * in your code, such as: + * + * ```js + * process.on('SIGINT', function onSigint() { + * console.info('Received SIGINT.'); + * process.exit(130); // Or applicable exit code depending on OS and signal + * }); + * ``` + * + * The tracing system uses the same time source + * as the one used by `process.hrtime()`. + * However the trace-event timestamps are expressed in microseconds, + * unlike `process.hrtime()` which returns nanoseconds. + * + * The features from this module are not available in `Worker` threads. + * @experimental + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/trace_events.js) + */ +declare module 'trace_events' { + /** + * The `Tracing` object is used to enable or disable tracing for sets of + * categories. Instances are created using the + * `trace_events.createTracing()` method. + * + * When created, the `Tracing` object is disabled. Calling the + * `tracing.enable()` method adds the categories to the set of enabled trace + * event categories. Calling `tracing.disable()` will remove the categories + * from the set of enabled trace event categories. + */ + interface Tracing { + /** + * A comma-separated list of the trace event categories covered by this + * `Tracing` object. + */ + readonly categories: string; + /** + * Disables this `Tracing` object. + * + * Only trace event categories _not_ covered by other enabled `Tracing` + * objects and _not_ specified by the `--trace-event-categories` flag + * will be disabled. + */ + disable(): void; + /** + * Enables this `Tracing` object for the set of categories covered by + * the `Tracing` object. + */ + enable(): void; + /** + * `true` only if the `Tracing` object has been enabled. + */ + readonly enabled: boolean; + } + interface CreateTracingOptions { + /** + * An array of trace category names. Values included in the array are + * coerced to a string when possible. An error will be thrown if the + * value cannot be coerced. + */ + categories: string[]; + } + /** + * Creates and returns a `Tracing` object for the given set of `categories`. + * + * ```js + * const trace_events = require('trace_events'); + * const categories = ['node.perf', 'node.async_hooks']; + * const tracing = trace_events.createTracing({ categories }); + * tracing.enable(); + * // do stuff + * tracing.disable(); + * ``` + * @since v10.0.0 + * @return . + */ + function createTracing(options: CreateTracingOptions): Tracing; + /** + * Returns a comma-separated list of all currently-enabled trace event + * categories. The current set of enabled trace event categories is determined + * by the _union_ of all currently-enabled `Tracing` objects and any categories + * enabled using the `--trace-event-categories` flag. + * + * Given the file `test.js` below, the command`node --trace-event-categories node.perf test.js` will print`'node.async_hooks,node.perf'` to the console. + * + * ```js + * const trace_events = require('trace_events'); + * const t1 = trace_events.createTracing({ categories: ['node.async_hooks'] }); + * const t2 = trace_events.createTracing({ categories: ['node.perf'] }); + * const t3 = trace_events.createTracing({ categories: ['v8'] }); + * + * t1.enable(); + * t2.enable(); + * + * console.log(trace_events.getEnabledCategories()); + * ``` + * @since v10.0.0 + */ + function getEnabledCategories(): string | undefined; +} +declare module 'node:trace_events' { + export * from 'trace_events'; +} diff --git a/node_modules/@types/node/ts4.8/assert.d.ts b/node_modules/@types/node/ts4.8/assert.d.ts new file mode 100644 index 0000000..e8595e6 --- /dev/null +++ b/node_modules/@types/node/ts4.8/assert.d.ts @@ -0,0 +1,961 @@ +/** + * The `assert` module provides a set of assertion functions for verifying + * invariants. + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/assert.js) + */ +declare module 'assert' { + /** + * An alias of {@link ok}. + * @since v0.5.9 + * @param value The input that is checked for being truthy. + */ + function assert(value: unknown, message?: string | Error): asserts value; + namespace assert { + /** + * Indicates the failure of an assertion. All errors thrown by the `assert` module + * will be instances of the `AssertionError` class. + */ + class AssertionError extends Error { + actual: unknown; + expected: unknown; + operator: string; + generatedMessage: boolean; + code: 'ERR_ASSERTION'; + constructor(options?: { + /** If provided, the error message is set to this value. */ + message?: string | undefined; + /** The `actual` property on the error instance. */ + actual?: unknown | undefined; + /** The `expected` property on the error instance. */ + expected?: unknown | undefined; + /** The `operator` property on the error instance. */ + operator?: string | undefined; + /** If provided, the generated stack trace omits frames before this function. */ + // tslint:disable-next-line:ban-types + stackStartFn?: Function | undefined; + }); + } + /** + * This feature is currently experimental and behavior might still change. + * @since v14.2.0, v12.19.0 + * @experimental + */ + class CallTracker { + /** + * The wrapper function is expected to be called exactly `exact` times. If the + * function has not been called exactly `exact` times when `tracker.verify()` is called, then `tracker.verify()` will throw an + * error. + * + * ```js + * import assert from 'assert'; + * + * // Creates call tracker. + * const tracker = new assert.CallTracker(); + * + * function func() {} + * + * // Returns a function that wraps func() that must be called exact times + * // before tracker.verify(). + * const callsfunc = tracker.calls(func); + * ``` + * @since v14.2.0, v12.19.0 + * @param [fn='A no-op function'] + * @param [exact=1] + * @return that wraps `fn`. + */ + calls(exact?: number): () => void; + calls any>(fn?: Func, exact?: number): Func; + /** + * Example: + * + * ```js + * import assert from 'node:assert'; + * + * const tracker = new assert.CallTracker(); + * + * function func() {} + * const callsfunc = tracker.calls(func); + * callsfunc(1, 2, 3); + * + * assert.deepStrictEqual(tracker.getCalls(callsfunc), + * [{ thisArg: this, arguments: [1, 2, 3 ] }]); + * ``` + * + * @since v18.8.0, v16.18.0 + * @params fn + * @returns An Array with the calls to a tracked function. + */ + getCalls(fn: Function): CallTrackerCall[]; + /** + * The arrays contains information about the expected and actual number of calls of + * the functions that have not been called the expected number of times. + * + * ```js + * import assert from 'assert'; + * + * // Creates call tracker. + * const tracker = new assert.CallTracker(); + * + * function func() {} + * + * function foo() {} + * + * // Returns a function that wraps func() that must be called exact times + * // before tracker.verify(). + * const callsfunc = tracker.calls(func, 2); + * + * // Returns an array containing information on callsfunc() + * tracker.report(); + * // [ + * // { + * // message: 'Expected the func function to be executed 2 time(s) but was + * // executed 0 time(s).', + * // actual: 0, + * // expected: 2, + * // operator: 'func', + * // stack: stack trace + * // } + * // ] + * ``` + * @since v14.2.0, v12.19.0 + * @return of objects containing information about the wrapper functions returned by `calls`. + */ + report(): CallTrackerReportInformation[]; + /** + * Reset calls of the call tracker. + * If a tracked function is passed as an argument, the calls will be reset for it. + * If no arguments are passed, all tracked functions will be reset. + * + * ```js + * import assert from 'node:assert'; + * + * const tracker = new assert.CallTracker(); + * + * function func() {} + * const callsfunc = tracker.calls(func); + * + * callsfunc(); + * // Tracker was called once + * tracker.getCalls(callsfunc).length === 1; + * + * tracker.reset(callsfunc); + * tracker.getCalls(callsfunc).length === 0; + * ``` + * + * @since v18.8.0, v16.18.0 + * @param fn a tracked function to reset. + */ + reset(fn?: Function): void; + /** + * Iterates through the list of functions passed to `tracker.calls()` and will throw an error for functions that + * have not been called the expected number of times. + * + * ```js + * import assert from 'assert'; + * + * // Creates call tracker. + * const tracker = new assert.CallTracker(); + * + * function func() {} + * + * // Returns a function that wraps func() that must be called exact times + * // before tracker.verify(). + * const callsfunc = tracker.calls(func, 2); + * + * callsfunc(); + * + * // Will throw an error since callsfunc() was only called once. + * tracker.verify(); + * ``` + * @since v14.2.0, v12.19.0 + */ + verify(): void; + } + interface CallTrackerCall { + thisArg: object; + arguments: unknown[]; + } + interface CallTrackerReportInformation { + message: string; + /** The actual number of times the function was called. */ + actual: number; + /** The number of times the function was expected to be called. */ + expected: number; + /** The name of the function that is wrapped. */ + operator: string; + /** A stack trace of the function. */ + stack: object; + } + type AssertPredicate = RegExp | (new () => object) | ((thrown: unknown) => boolean) | object | Error; + /** + * Throws an `AssertionError` with the provided error message or a default + * error message. If the `message` parameter is an instance of an `Error` then + * it will be thrown instead of the `AssertionError`. + * + * ```js + * import assert from 'assert/strict'; + * + * assert.fail(); + * // AssertionError [ERR_ASSERTION]: Failed + * + * assert.fail('boom'); + * // AssertionError [ERR_ASSERTION]: boom + * + * assert.fail(new TypeError('need array')); + * // TypeError: need array + * ``` + * + * Using `assert.fail()` with more than two arguments is possible but deprecated. + * See below for further details. + * @since v0.1.21 + * @param [message='Failed'] + */ + function fail(message?: string | Error): never; + /** @deprecated since v10.0.0 - use fail([message]) or other assert functions instead. */ + function fail( + actual: unknown, + expected: unknown, + message?: string | Error, + operator?: string, + // tslint:disable-next-line:ban-types + stackStartFn?: Function + ): never; + /** + * Tests if `value` is truthy. It is equivalent to`assert.equal(!!value, true, message)`. + * + * If `value` is not truthy, an `AssertionError` is thrown with a `message`property set equal to the value of the `message` parameter. If the `message`parameter is `undefined`, a default + * error message is assigned. If the `message`parameter is an instance of an `Error` then it will be thrown instead of the`AssertionError`. + * If no arguments are passed in at all `message` will be set to the string:`` 'No value argument passed to `assert.ok()`' ``. + * + * Be aware that in the `repl` the error message will be different to the one + * thrown in a file! See below for further details. + * + * ```js + * import assert from 'assert/strict'; + * + * assert.ok(true); + * // OK + * assert.ok(1); + * // OK + * + * assert.ok(); + * // AssertionError: No value argument passed to `assert.ok()` + * + * assert.ok(false, 'it\'s false'); + * // AssertionError: it's false + * + * // In the repl: + * assert.ok(typeof 123 === 'string'); + * // AssertionError: false == true + * + * // In a file (e.g. test.js): + * assert.ok(typeof 123 === 'string'); + * // AssertionError: The expression evaluated to a falsy value: + * // + * // assert.ok(typeof 123 === 'string') + * + * assert.ok(false); + * // AssertionError: The expression evaluated to a falsy value: + * // + * // assert.ok(false) + * + * assert.ok(0); + * // AssertionError: The expression evaluated to a falsy value: + * // + * // assert.ok(0) + * ``` + * + * ```js + * import assert from 'assert/strict'; + * + * // Using `assert()` works the same: + * assert(0); + * // AssertionError: The expression evaluated to a falsy value: + * // + * // assert(0) + * ``` + * @since v0.1.21 + */ + function ok(value: unknown, message?: string | Error): asserts value; + /** + * **Strict assertion mode** + * + * An alias of {@link strictEqual}. + * + * **Legacy assertion mode** + * + * > Stability: 3 - Legacy: Use {@link strictEqual} instead. + * + * Tests shallow, coercive equality between the `actual` and `expected` parameters + * using the [`==` operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Equality). `NaN` is specially handled + * and treated as being identical if both sides are `NaN`. + * + * ```js + * import assert from 'assert'; + * + * assert.equal(1, 1); + * // OK, 1 == 1 + * assert.equal(1, '1'); + * // OK, 1 == '1' + * assert.equal(NaN, NaN); + * // OK + * + * assert.equal(1, 2); + * // AssertionError: 1 == 2 + * assert.equal({ a: { b: 1 } }, { a: { b: 1 } }); + * // AssertionError: { a: { b: 1 } } == { a: { b: 1 } } + * ``` + * + * If the values are not equal, an `AssertionError` is thrown with a `message`property set equal to the value of the `message` parameter. If the `message`parameter is undefined, a default + * error message is assigned. If the `message`parameter is an instance of an `Error` then it will be thrown instead of the`AssertionError`. + * @since v0.1.21 + */ + function equal(actual: unknown, expected: unknown, message?: string | Error): void; + /** + * **Strict assertion mode** + * + * An alias of {@link notStrictEqual}. + * + * **Legacy assertion mode** + * + * > Stability: 3 - Legacy: Use {@link notStrictEqual} instead. + * + * Tests shallow, coercive inequality with the [`!=` operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Inequality). `NaN` is + * specially handled and treated as being identical if both sides are `NaN`. + * + * ```js + * import assert from 'assert'; + * + * assert.notEqual(1, 2); + * // OK + * + * assert.notEqual(1, 1); + * // AssertionError: 1 != 1 + * + * assert.notEqual(1, '1'); + * // AssertionError: 1 != '1' + * ``` + * + * If the values are equal, an `AssertionError` is thrown with a `message`property set equal to the value of the `message` parameter. If the `message`parameter is undefined, a default error + * message is assigned. If the `message`parameter is an instance of an `Error` then it will be thrown instead of the`AssertionError`. + * @since v0.1.21 + */ + function notEqual(actual: unknown, expected: unknown, message?: string | Error): void; + /** + * **Strict assertion mode** + * + * An alias of {@link deepStrictEqual}. + * + * **Legacy assertion mode** + * + * > Stability: 3 - Legacy: Use {@link deepStrictEqual} instead. + * + * Tests for deep equality between the `actual` and `expected` parameters. Consider + * using {@link deepStrictEqual} instead. {@link deepEqual} can have + * surprising results. + * + * _Deep equality_ means that the enumerable "own" properties of child objects + * are also recursively evaluated by the following rules. + * @since v0.1.21 + */ + function deepEqual(actual: unknown, expected: unknown, message?: string | Error): void; + /** + * **Strict assertion mode** + * + * An alias of {@link notDeepStrictEqual}. + * + * **Legacy assertion mode** + * + * > Stability: 3 - Legacy: Use {@link notDeepStrictEqual} instead. + * + * Tests for any deep inequality. Opposite of {@link deepEqual}. + * + * ```js + * import assert from 'assert'; + * + * const obj1 = { + * a: { + * b: 1 + * } + * }; + * const obj2 = { + * a: { + * b: 2 + * } + * }; + * const obj3 = { + * a: { + * b: 1 + * } + * }; + * const obj4 = Object.create(obj1); + * + * assert.notDeepEqual(obj1, obj1); + * // AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } } + * + * assert.notDeepEqual(obj1, obj2); + * // OK + * + * assert.notDeepEqual(obj1, obj3); + * // AssertionError: { a: { b: 1 } } notDeepEqual { a: { b: 1 } } + * + * assert.notDeepEqual(obj1, obj4); + * // OK + * ``` + * + * If the values are deeply equal, an `AssertionError` is thrown with a`message` property set equal to the value of the `message` parameter. If the`message` parameter is undefined, a default + * error message is assigned. If the`message` parameter is an instance of an `Error` then it will be thrown + * instead of the `AssertionError`. + * @since v0.1.21 + */ + function notDeepEqual(actual: unknown, expected: unknown, message?: string | Error): void; + /** + * Tests strict equality between the `actual` and `expected` parameters as + * determined by [`Object.is()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is). + * + * ```js + * import assert from 'assert/strict'; + * + * assert.strictEqual(1, 2); + * // AssertionError [ERR_ASSERTION]: Expected inputs to be strictly equal: + * // + * // 1 !== 2 + * + * assert.strictEqual(1, 1); + * // OK + * + * assert.strictEqual('Hello foobar', 'Hello World!'); + * // AssertionError [ERR_ASSERTION]: Expected inputs to be strictly equal: + * // + actual - expected + * // + * // + 'Hello foobar' + * // - 'Hello World!' + * // ^ + * + * const apples = 1; + * const oranges = 2; + * assert.strictEqual(apples, oranges, `apples ${apples} !== oranges ${oranges}`); + * // AssertionError [ERR_ASSERTION]: apples 1 !== oranges 2 + * + * assert.strictEqual(1, '1', new TypeError('Inputs are not identical')); + * // TypeError: Inputs are not identical + * ``` + * + * If the values are not strictly equal, an `AssertionError` is thrown with a`message` property set equal to the value of the `message` parameter. If the`message` parameter is undefined, a + * default error message is assigned. If the`message` parameter is an instance of an `Error` then it will be thrown + * instead of the `AssertionError`. + * @since v0.1.21 + */ + function strictEqual(actual: unknown, expected: T, message?: string | Error): asserts actual is T; + /** + * Tests strict inequality between the `actual` and `expected` parameters as + * determined by [`Object.is()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is). + * + * ```js + * import assert from 'assert/strict'; + * + * assert.notStrictEqual(1, 2); + * // OK + * + * assert.notStrictEqual(1, 1); + * // AssertionError [ERR_ASSERTION]: Expected "actual" to be strictly unequal to: + * // + * // 1 + * + * assert.notStrictEqual(1, '1'); + * // OK + * ``` + * + * If the values are strictly equal, an `AssertionError` is thrown with a`message` property set equal to the value of the `message` parameter. If the`message` parameter is undefined, a + * default error message is assigned. If the`message` parameter is an instance of an `Error` then it will be thrown + * instead of the `AssertionError`. + * @since v0.1.21 + */ + function notStrictEqual(actual: unknown, expected: unknown, message?: string | Error): void; + /** + * Tests for deep equality between the `actual` and `expected` parameters. + * "Deep" equality means that the enumerable "own" properties of child objects + * are recursively evaluated also by the following rules. + * @since v1.2.0 + */ + function deepStrictEqual(actual: unknown, expected: T, message?: string | Error): asserts actual is T; + /** + * Tests for deep strict inequality. Opposite of {@link deepStrictEqual}. + * + * ```js + * import assert from 'assert/strict'; + * + * assert.notDeepStrictEqual({ a: 1 }, { a: '1' }); + * // OK + * ``` + * + * If the values are deeply and strictly equal, an `AssertionError` is thrown + * with a `message` property set equal to the value of the `message` parameter. If + * the `message` parameter is undefined, a default error message is assigned. If + * the `message` parameter is an instance of an `Error` then it will be thrown + * instead of the `AssertionError`. + * @since v1.2.0 + */ + function notDeepStrictEqual(actual: unknown, expected: unknown, message?: string | Error): void; + /** + * Expects the function `fn` to throw an error. + * + * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes), + * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), a validation function, + * a validation object where each property will be tested for strict deep equality, + * or an instance of error where each property will be tested for strict deep + * equality including the non-enumerable `message` and `name` properties. When + * using an object, it is also possible to use a regular expression, when + * validating against a string property. See below for examples. + * + * If specified, `message` will be appended to the message provided by the`AssertionError` if the `fn` call fails to throw or in case the error validation + * fails. + * + * Custom validation object/error instance: + * + * ```js + * import assert from 'assert/strict'; + * + * const err = new TypeError('Wrong value'); + * err.code = 404; + * err.foo = 'bar'; + * err.info = { + * nested: true, + * baz: 'text' + * }; + * err.reg = /abc/i; + * + * assert.throws( + * () => { + * throw err; + * }, + * { + * name: 'TypeError', + * message: 'Wrong value', + * info: { + * nested: true, + * baz: 'text' + * } + * // Only properties on the validation object will be tested for. + * // Using nested objects requires all properties to be present. Otherwise + * // the validation is going to fail. + * } + * ); + * + * // Using regular expressions to validate error properties: + * throws( + * () => { + * throw err; + * }, + * { + * // The `name` and `message` properties are strings and using regular + * // expressions on those will match against the string. If they fail, an + * // error is thrown. + * name: /^TypeError$/, + * message: /Wrong/, + * foo: 'bar', + * info: { + * nested: true, + * // It is not possible to use regular expressions for nested properties! + * baz: 'text' + * }, + * // The `reg` property contains a regular expression and only if the + * // validation object contains an identical regular expression, it is going + * // to pass. + * reg: /abc/i + * } + * ); + * + * // Fails due to the different `message` and `name` properties: + * throws( + * () => { + * const otherErr = new Error('Not found'); + * // Copy all enumerable properties from `err` to `otherErr`. + * for (const [key, value] of Object.entries(err)) { + * otherErr[key] = value; + * } + * throw otherErr; + * }, + * // The error's `message` and `name` properties will also be checked when using + * // an error as validation object. + * err + * ); + * ``` + * + * Validate instanceof using constructor: + * + * ```js + * import assert from 'assert/strict'; + * + * assert.throws( + * () => { + * throw new Error('Wrong value'); + * }, + * Error + * ); + * ``` + * + * Validate error message using [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions): + * + * Using a regular expression runs `.toString` on the error object, and will + * therefore also include the error name. + * + * ```js + * import assert from 'assert/strict'; + * + * assert.throws( + * () => { + * throw new Error('Wrong value'); + * }, + * /^Error: Wrong value$/ + * ); + * ``` + * + * Custom error validation: + * + * The function must return `true` to indicate all internal validations passed. + * It will otherwise fail with an `AssertionError`. + * + * ```js + * import assert from 'assert/strict'; + * + * assert.throws( + * () => { + * throw new Error('Wrong value'); + * }, + * (err) => { + * assert(err instanceof Error); + * assert(/value/.test(err)); + * // Avoid returning anything from validation functions besides `true`. + * // Otherwise, it's not clear what part of the validation failed. Instead, + * // throw an error about the specific validation that failed (as done in this + * // example) and add as much helpful debugging information to that error as + * // possible. + * return true; + * }, + * 'unexpected error' + * ); + * ``` + * + * `error` cannot be a string. If a string is provided as the second + * argument, then `error` is assumed to be omitted and the string will be used for`message` instead. This can lead to easy-to-miss mistakes. Using the same + * message as the thrown error message is going to result in an`ERR_AMBIGUOUS_ARGUMENT` error. Please read the example below carefully if using + * a string as the second argument gets considered: + * + * ```js + * import assert from 'assert/strict'; + * + * function throwingFirst() { + * throw new Error('First'); + * } + * + * function throwingSecond() { + * throw new Error('Second'); + * } + * + * function notThrowing() {} + * + * // The second argument is a string and the input function threw an Error. + * // The first case will not throw as it does not match for the error message + * // thrown by the input function! + * assert.throws(throwingFirst, 'Second'); + * // In the next example the message has no benefit over the message from the + * // error and since it is not clear if the user intended to actually match + * // against the error message, Node.js throws an `ERR_AMBIGUOUS_ARGUMENT` error. + * assert.throws(throwingSecond, 'Second'); + * // TypeError [ERR_AMBIGUOUS_ARGUMENT] + * + * // The string is only used (as message) in case the function does not throw: + * assert.throws(notThrowing, 'Second'); + * // AssertionError [ERR_ASSERTION]: Missing expected exception: Second + * + * // If it was intended to match for the error message do this instead: + * // It does not throw because the error messages match. + * assert.throws(throwingSecond, /Second$/); + * + * // If the error message does not match, an AssertionError is thrown. + * assert.throws(throwingFirst, /Second$/); + * // AssertionError [ERR_ASSERTION] + * ``` + * + * Due to the confusing error-prone notation, avoid a string as the second + * argument. + * @since v0.1.21 + */ + function throws(block: () => unknown, message?: string | Error): void; + function throws(block: () => unknown, error: AssertPredicate, message?: string | Error): void; + /** + * Asserts that the function `fn` does not throw an error. + * + * Using `assert.doesNotThrow()` is actually not useful because there + * is no benefit in catching an error and then rethrowing it. Instead, consider + * adding a comment next to the specific code path that should not throw and keep + * error messages as expressive as possible. + * + * When `assert.doesNotThrow()` is called, it will immediately call the `fn`function. + * + * If an error is thrown and it is the same type as that specified by the `error`parameter, then an `AssertionError` is thrown. If the error is of a + * different type, or if the `error` parameter is undefined, the error is + * propagated back to the caller. + * + * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes), + * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) or a validation + * function. See {@link throws} for more details. + * + * The following, for instance, will throw the `TypeError` because there is no + * matching error type in the assertion: + * + * ```js + * import assert from 'assert/strict'; + * + * assert.doesNotThrow( + * () => { + * throw new TypeError('Wrong value'); + * }, + * SyntaxError + * ); + * ``` + * + * However, the following will result in an `AssertionError` with the message + * 'Got unwanted exception...': + * + * ```js + * import assert from 'assert/strict'; + * + * assert.doesNotThrow( + * () => { + * throw new TypeError('Wrong value'); + * }, + * TypeError + * ); + * ``` + * + * If an `AssertionError` is thrown and a value is provided for the `message`parameter, the value of `message` will be appended to the `AssertionError` message: + * + * ```js + * import assert from 'assert/strict'; + * + * assert.doesNotThrow( + * () => { + * throw new TypeError('Wrong value'); + * }, + * /Wrong value/, + * 'Whoops' + * ); + * // Throws: AssertionError: Got unwanted exception: Whoops + * ``` + * @since v0.1.21 + */ + function doesNotThrow(block: () => unknown, message?: string | Error): void; + function doesNotThrow(block: () => unknown, error: AssertPredicate, message?: string | Error): void; + /** + * Throws `value` if `value` is not `undefined` or `null`. This is useful when + * testing the `error` argument in callbacks. The stack trace contains all frames + * from the error passed to `ifError()` including the potential new frames for`ifError()` itself. + * + * ```js + * import assert from 'assert/strict'; + * + * assert.ifError(null); + * // OK + * assert.ifError(0); + * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 0 + * assert.ifError('error'); + * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: 'error' + * assert.ifError(new Error()); + * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: Error + * + * // Create some random error frames. + * let err; + * (function errorFrame() { + * err = new Error('test error'); + * })(); + * + * (function ifErrorFrame() { + * assert.ifError(err); + * })(); + * // AssertionError [ERR_ASSERTION]: ifError got unwanted exception: test error + * // at ifErrorFrame + * // at errorFrame + * ``` + * @since v0.1.97 + */ + function ifError(value: unknown): asserts value is null | undefined; + /** + * Awaits the `asyncFn` promise or, if `asyncFn` is a function, immediately + * calls the function and awaits the returned promise to complete. It will then + * check that the promise is rejected. + * + * If `asyncFn` is a function and it throws an error synchronously,`assert.rejects()` will return a rejected `Promise` with that error. If the + * function does not return a promise, `assert.rejects()` will return a rejected`Promise` with an `ERR_INVALID_RETURN_VALUE` error. In both cases the error + * handler is skipped. + * + * Besides the async nature to await the completion behaves identically to {@link throws}. + * + * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes), + * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions), a validation function, + * an object where each property will be tested for, or an instance of error where + * each property will be tested for including the non-enumerable `message` and`name` properties. + * + * If specified, `message` will be the message provided by the `AssertionError` if the `asyncFn` fails to reject. + * + * ```js + * import assert from 'assert/strict'; + * + * await assert.rejects( + * async () => { + * throw new TypeError('Wrong value'); + * }, + * { + * name: 'TypeError', + * message: 'Wrong value' + * } + * ); + * ``` + * + * ```js + * import assert from 'assert/strict'; + * + * await assert.rejects( + * async () => { + * throw new TypeError('Wrong value'); + * }, + * (err) => { + * assert.strictEqual(err.name, 'TypeError'); + * assert.strictEqual(err.message, 'Wrong value'); + * return true; + * } + * ); + * ``` + * + * ```js + * import assert from 'assert/strict'; + * + * assert.rejects( + * Promise.reject(new Error('Wrong value')), + * Error + * ).then(() => { + * // ... + * }); + * ``` + * + * `error` cannot be a string. If a string is provided as the second + * argument, then `error` is assumed to be omitted and the string will be used for`message` instead. This can lead to easy-to-miss mistakes. Please read the + * example in {@link throws} carefully if using a string as the second + * argument gets considered. + * @since v10.0.0 + */ + function rejects(block: (() => Promise) | Promise, message?: string | Error): Promise; + function rejects(block: (() => Promise) | Promise, error: AssertPredicate, message?: string | Error): Promise; + /** + * Awaits the `asyncFn` promise or, if `asyncFn` is a function, immediately + * calls the function and awaits the returned promise to complete. It will then + * check that the promise is not rejected. + * + * If `asyncFn` is a function and it throws an error synchronously,`assert.doesNotReject()` will return a rejected `Promise` with that error. If + * the function does not return a promise, `assert.doesNotReject()` will return a + * rejected `Promise` with an `ERR_INVALID_RETURN_VALUE` error. In both cases + * the error handler is skipped. + * + * Using `assert.doesNotReject()` is actually not useful because there is little + * benefit in catching a rejection and then rejecting it again. Instead, consider + * adding a comment next to the specific code path that should not reject and keep + * error messages as expressive as possible. + * + * If specified, `error` can be a [`Class`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes), + * [`RegExp`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) or a validation + * function. See {@link throws} for more details. + * + * Besides the async nature to await the completion behaves identically to {@link doesNotThrow}. + * + * ```js + * import assert from 'assert/strict'; + * + * await assert.doesNotReject( + * async () => { + * throw new TypeError('Wrong value'); + * }, + * SyntaxError + * ); + * ``` + * + * ```js + * import assert from 'assert/strict'; + * + * assert.doesNotReject(Promise.reject(new TypeError('Wrong value'))) + * .then(() => { + * // ... + * }); + * ``` + * @since v10.0.0 + */ + function doesNotReject(block: (() => Promise) | Promise, message?: string | Error): Promise; + function doesNotReject(block: (() => Promise) | Promise, error: AssertPredicate, message?: string | Error): Promise; + /** + * Expects the `string` input to match the regular expression. + * + * ```js + * import assert from 'assert/strict'; + * + * assert.match('I will fail', /pass/); + * // AssertionError [ERR_ASSERTION]: The input did not match the regular ... + * + * assert.match(123, /pass/); + * // AssertionError [ERR_ASSERTION]: The "string" argument must be of type string. + * + * assert.match('I will pass', /pass/); + * // OK + * ``` + * + * If the values do not match, or if the `string` argument is of another type than`string`, an `AssertionError` is thrown with a `message` property set equal + * to the value of the `message` parameter. If the `message` parameter is + * undefined, a default error message is assigned. If the `message` parameter is an + * instance of an `Error` then it will be thrown instead of the `AssertionError`. + * @since v13.6.0, v12.16.0 + */ + function match(value: string, regExp: RegExp, message?: string | Error): void; + /** + * Expects the `string` input not to match the regular expression. + * + * ```js + * import assert from 'assert/strict'; + * + * assert.doesNotMatch('I will fail', /fail/); + * // AssertionError [ERR_ASSERTION]: The input was expected to not match the ... + * + * assert.doesNotMatch(123, /pass/); + * // AssertionError [ERR_ASSERTION]: The "string" argument must be of type string. + * + * assert.doesNotMatch('I will pass', /different/); + * // OK + * ``` + * + * If the values do match, or if the `string` argument is of another type than`string`, an `AssertionError` is thrown with a `message` property set equal + * to the value of the `message` parameter. If the `message` parameter is + * undefined, a default error message is assigned. If the `message` parameter is an + * instance of an `Error` then it will be thrown instead of the `AssertionError`. + * @since v13.6.0, v12.16.0 + */ + function doesNotMatch(value: string, regExp: RegExp, message?: string | Error): void; + const strict: Omit & { + (value: unknown, message?: string | Error): asserts value; + equal: typeof strictEqual; + notEqual: typeof notStrictEqual; + deepEqual: typeof deepStrictEqual; + notDeepEqual: typeof notDeepStrictEqual; + // Mapped types and assertion functions are incompatible? + // TS2775: Assertions require every name in the call target + // to be declared with an explicit type annotation. + ok: typeof ok; + strictEqual: typeof strictEqual; + deepStrictEqual: typeof deepStrictEqual; + ifError: typeof ifError; + strict: typeof strict; + }; + } + export = assert; +} +declare module 'node:assert' { + import assert = require('assert'); + export = assert; +} diff --git a/node_modules/@types/node/ts4.8/assert/strict.d.ts b/node_modules/@types/node/ts4.8/assert/strict.d.ts new file mode 100644 index 0000000..b4319b9 --- /dev/null +++ b/node_modules/@types/node/ts4.8/assert/strict.d.ts @@ -0,0 +1,8 @@ +declare module 'assert/strict' { + import { strict } from 'node:assert'; + export = strict; +} +declare module 'node:assert/strict' { + import { strict } from 'node:assert'; + export = strict; +} diff --git a/node_modules/@types/node/ts4.8/async_hooks.d.ts b/node_modules/@types/node/ts4.8/async_hooks.d.ts new file mode 100644 index 0000000..0bf4739 --- /dev/null +++ b/node_modules/@types/node/ts4.8/async_hooks.d.ts @@ -0,0 +1,501 @@ +/** + * The `async_hooks` module provides an API to track asynchronous resources. It + * can be accessed using: + * + * ```js + * import async_hooks from 'async_hooks'; + * ``` + * @experimental + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/async_hooks.js) + */ +declare module 'async_hooks' { + /** + * ```js + * import { executionAsyncId } from 'async_hooks'; + * + * console.log(executionAsyncId()); // 1 - bootstrap + * fs.open(path, 'r', (err, fd) => { + * console.log(executionAsyncId()); // 6 - open() + * }); + * ``` + * + * The ID returned from `executionAsyncId()` is related to execution timing, not + * causality (which is covered by `triggerAsyncId()`): + * + * ```js + * const server = net.createServer((conn) => { + * // Returns the ID of the server, not of the new connection, because the + * // callback runs in the execution scope of the server's MakeCallback(). + * async_hooks.executionAsyncId(); + * + * }).listen(port, () => { + * // Returns the ID of a TickObject (process.nextTick()) because all + * // callbacks passed to .listen() are wrapped in a nextTick(). + * async_hooks.executionAsyncId(); + * }); + * ``` + * + * Promise contexts may not get precise `executionAsyncIds` by default. + * See the section on `promise execution tracking`. + * @since v8.1.0 + * @return The `asyncId` of the current execution context. Useful to track when something calls. + */ + function executionAsyncId(): number; + /** + * Resource objects returned by `executionAsyncResource()` are most often internal + * Node.js handle objects with undocumented APIs. Using any functions or properties + * on the object is likely to crash your application and should be avoided. + * + * Using `executionAsyncResource()` in the top-level execution context will + * return an empty object as there is no handle or request object to use, + * but having an object representing the top-level can be helpful. + * + * ```js + * import { open } from 'fs'; + * import { executionAsyncId, executionAsyncResource } from 'async_hooks'; + * + * console.log(executionAsyncId(), executionAsyncResource()); // 1 {} + * open(new URL(import.meta.url), 'r', (err, fd) => { + * console.log(executionAsyncId(), executionAsyncResource()); // 7 FSReqWrap + * }); + * ``` + * + * This can be used to implement continuation local storage without the + * use of a tracking `Map` to store the metadata: + * + * ```js + * import { createServer } from 'http'; + * import { + * executionAsyncId, + * executionAsyncResource, + * createHook + * } from 'async_hooks'; + * const sym = Symbol('state'); // Private symbol to avoid pollution + * + * createHook({ + * init(asyncId, type, triggerAsyncId, resource) { + * const cr = executionAsyncResource(); + * if (cr) { + * resource[sym] = cr[sym]; + * } + * } + * }).enable(); + * + * const server = createServer((req, res) => { + * executionAsyncResource()[sym] = { state: req.url }; + * setTimeout(function() { + * res.end(JSON.stringify(executionAsyncResource()[sym])); + * }, 100); + * }).listen(3000); + * ``` + * @since v13.9.0, v12.17.0 + * @return The resource representing the current execution. Useful to store data within the resource. + */ + function executionAsyncResource(): object; + /** + * ```js + * const server = net.createServer((conn) => { + * // The resource that caused (or triggered) this callback to be called + * // was that of the new connection. Thus the return value of triggerAsyncId() + * // is the asyncId of "conn". + * async_hooks.triggerAsyncId(); + * + * }).listen(port, () => { + * // Even though all callbacks passed to .listen() are wrapped in a nextTick() + * // the callback itself exists because the call to the server's .listen() + * // was made. So the return value would be the ID of the server. + * async_hooks.triggerAsyncId(); + * }); + * ``` + * + * Promise contexts may not get valid `triggerAsyncId`s by default. See + * the section on `promise execution tracking`. + * @return The ID of the resource responsible for calling the callback that is currently being executed. + */ + function triggerAsyncId(): number; + interface HookCallbacks { + /** + * Called when a class is constructed that has the possibility to emit an asynchronous event. + * @param asyncId a unique ID for the async resource + * @param type the type of the async resource + * @param triggerAsyncId the unique ID of the async resource in whose execution context this async resource was created + * @param resource reference to the resource representing the async operation, needs to be released during destroy + */ + init?(asyncId: number, type: string, triggerAsyncId: number, resource: object): void; + /** + * When an asynchronous operation is initiated or completes a callback is called to notify the user. + * The before callback is called just before said callback is executed. + * @param asyncId the unique identifier assigned to the resource about to execute the callback. + */ + before?(asyncId: number): void; + /** + * Called immediately after the callback specified in before is completed. + * @param asyncId the unique identifier assigned to the resource which has executed the callback. + */ + after?(asyncId: number): void; + /** + * Called when a promise has resolve() called. This may not be in the same execution id + * as the promise itself. + * @param asyncId the unique id for the promise that was resolve()d. + */ + promiseResolve?(asyncId: number): void; + /** + * Called after the resource corresponding to asyncId is destroyed + * @param asyncId a unique ID for the async resource + */ + destroy?(asyncId: number): void; + } + interface AsyncHook { + /** + * Enable the callbacks for a given AsyncHook instance. If no callbacks are provided enabling is a noop. + */ + enable(): this; + /** + * Disable the callbacks for a given AsyncHook instance from the global pool of AsyncHook callbacks to be executed. Once a hook has been disabled it will not be called again until enabled. + */ + disable(): this; + } + /** + * Registers functions to be called for different lifetime events of each async + * operation. + * + * The callbacks `init()`/`before()`/`after()`/`destroy()` are called for the + * respective asynchronous event during a resource's lifetime. + * + * All callbacks are optional. For example, if only resource cleanup needs to + * be tracked, then only the `destroy` callback needs to be passed. The + * specifics of all functions that can be passed to `callbacks` is in the `Hook Callbacks` section. + * + * ```js + * import { createHook } from 'async_hooks'; + * + * const asyncHook = createHook({ + * init(asyncId, type, triggerAsyncId, resource) { }, + * destroy(asyncId) { } + * }); + * ``` + * + * The callbacks will be inherited via the prototype chain: + * + * ```js + * class MyAsyncCallbacks { + * init(asyncId, type, triggerAsyncId, resource) { } + * destroy(asyncId) {} + * } + * + * class MyAddedCallbacks extends MyAsyncCallbacks { + * before(asyncId) { } + * after(asyncId) { } + * } + * + * const asyncHook = async_hooks.createHook(new MyAddedCallbacks()); + * ``` + * + * Because promises are asynchronous resources whose lifecycle is tracked + * via the async hooks mechanism, the `init()`, `before()`, `after()`, and`destroy()` callbacks _must not_ be async functions that return promises. + * @since v8.1.0 + * @param callbacks The `Hook Callbacks` to register + * @return Instance used for disabling and enabling hooks + */ + function createHook(callbacks: HookCallbacks): AsyncHook; + interface AsyncResourceOptions { + /** + * The ID of the execution context that created this async event. + * @default executionAsyncId() + */ + triggerAsyncId?: number | undefined; + /** + * Disables automatic `emitDestroy` when the object is garbage collected. + * This usually does not need to be set (even if `emitDestroy` is called + * manually), unless the resource's `asyncId` is retrieved and the + * sensitive API's `emitDestroy` is called with it. + * @default false + */ + requireManualDestroy?: boolean | undefined; + } + /** + * The class `AsyncResource` is designed to be extended by the embedder's async + * resources. Using this, users can easily trigger the lifetime events of their + * own resources. + * + * The `init` hook will trigger when an `AsyncResource` is instantiated. + * + * The following is an overview of the `AsyncResource` API. + * + * ```js + * import { AsyncResource, executionAsyncId } from 'async_hooks'; + * + * // AsyncResource() is meant to be extended. Instantiating a + * // new AsyncResource() also triggers init. If triggerAsyncId is omitted then + * // async_hook.executionAsyncId() is used. + * const asyncResource = new AsyncResource( + * type, { triggerAsyncId: executionAsyncId(), requireManualDestroy: false } + * ); + * + * // Run a function in the execution context of the resource. This will + * // * establish the context of the resource + * // * trigger the AsyncHooks before callbacks + * // * call the provided function `fn` with the supplied arguments + * // * trigger the AsyncHooks after callbacks + * // * restore the original execution context + * asyncResource.runInAsyncScope(fn, thisArg, ...args); + * + * // Call AsyncHooks destroy callbacks. + * asyncResource.emitDestroy(); + * + * // Return the unique ID assigned to the AsyncResource instance. + * asyncResource.asyncId(); + * + * // Return the trigger ID for the AsyncResource instance. + * asyncResource.triggerAsyncId(); + * ``` + */ + class AsyncResource { + /** + * AsyncResource() is meant to be extended. Instantiating a + * new AsyncResource() also triggers init. If triggerAsyncId is omitted then + * async_hook.executionAsyncId() is used. + * @param type The type of async event. + * @param triggerAsyncId The ID of the execution context that created + * this async event (default: `executionAsyncId()`), or an + * AsyncResourceOptions object (since v9.3.0) + */ + constructor(type: string, triggerAsyncId?: number | AsyncResourceOptions); + /** + * Binds the given function to the current execution context. + * + * The returned function will have an `asyncResource` property referencing + * the `AsyncResource` to which the function is bound. + * @since v14.8.0, v12.19.0 + * @param fn The function to bind to the current execution context. + * @param type An optional name to associate with the underlying `AsyncResource`. + */ + static bind any, ThisArg>( + fn: Func, + type?: string, + thisArg?: ThisArg + ): Func & { + asyncResource: AsyncResource; + }; + /** + * Binds the given function to execute to this `AsyncResource`'s scope. + * + * The returned function will have an `asyncResource` property referencing + * the `AsyncResource` to which the function is bound. + * @since v14.8.0, v12.19.0 + * @param fn The function to bind to the current `AsyncResource`. + */ + bind any>( + fn: Func + ): Func & { + asyncResource: AsyncResource; + }; + /** + * Call the provided function with the provided arguments in the execution context + * of the async resource. This will establish the context, trigger the AsyncHooks + * before callbacks, call the function, trigger the AsyncHooks after callbacks, and + * then restore the original execution context. + * @since v9.6.0 + * @param fn The function to call in the execution context of this async resource. + * @param thisArg The receiver to be used for the function call. + * @param args Optional arguments to pass to the function. + */ + runInAsyncScope(fn: (this: This, ...args: any[]) => Result, thisArg?: This, ...args: any[]): Result; + /** + * Call all `destroy` hooks. This should only ever be called once. An error will + * be thrown if it is called more than once. This **must** be manually called. If + * the resource is left to be collected by the GC then the `destroy` hooks will + * never be called. + * @return A reference to `asyncResource`. + */ + emitDestroy(): this; + /** + * @return The unique `asyncId` assigned to the resource. + */ + asyncId(): number; + /** + * + * @return The same `triggerAsyncId` that is passed to the `AsyncResource` constructor. + */ + triggerAsyncId(): number; + } + /** + * This class creates stores that stay coherent through asynchronous operations. + * + * While you can create your own implementation on top of the `async_hooks` module,`AsyncLocalStorage` should be preferred as it is a performant and memory safe + * implementation that involves significant optimizations that are non-obvious to + * implement. + * + * The following example uses `AsyncLocalStorage` to build a simple logger + * that assigns IDs to incoming HTTP requests and includes them in messages + * logged within each request. + * + * ```js + * import http from 'http'; + * import { AsyncLocalStorage } from 'async_hooks'; + * + * const asyncLocalStorage = new AsyncLocalStorage(); + * + * function logWithId(msg) { + * const id = asyncLocalStorage.getStore(); + * console.log(`${id !== undefined ? id : '-'}:`, msg); + * } + * + * let idSeq = 0; + * http.createServer((req, res) => { + * asyncLocalStorage.run(idSeq++, () => { + * logWithId('start'); + * // Imagine any chain of async operations here + * setImmediate(() => { + * logWithId('finish'); + * res.end(); + * }); + * }); + * }).listen(8080); + * + * http.get('http://localhost:8080'); + * http.get('http://localhost:8080'); + * // Prints: + * // 0: start + * // 1: start + * // 0: finish + * // 1: finish + * ``` + * + * Each instance of `AsyncLocalStorage` maintains an independent storage context. + * Multiple instances can safely exist simultaneously without risk of interfering + * with each other's data. + * @since v13.10.0, v12.17.0 + */ + class AsyncLocalStorage { + /** + * Disables the instance of `AsyncLocalStorage`. All subsequent calls + * to `asyncLocalStorage.getStore()` will return `undefined` until`asyncLocalStorage.run()` or `asyncLocalStorage.enterWith()` is called again. + * + * When calling `asyncLocalStorage.disable()`, all current contexts linked to the + * instance will be exited. + * + * Calling `asyncLocalStorage.disable()` is required before the`asyncLocalStorage` can be garbage collected. This does not apply to stores + * provided by the `asyncLocalStorage`, as those objects are garbage collected + * along with the corresponding async resources. + * + * Use this method when the `asyncLocalStorage` is not in use anymore + * in the current process. + * @since v13.10.0, v12.17.0 + * @experimental + */ + disable(): void; + /** + * Returns the current store. + * If called outside of an asynchronous context initialized by + * calling `asyncLocalStorage.run()` or `asyncLocalStorage.enterWith()`, it + * returns `undefined`. + * @since v13.10.0, v12.17.0 + */ + getStore(): T | undefined; + /** + * Runs a function synchronously within a context and returns its + * return value. The store is not accessible outside of the callback function. + * The store is accessible to any asynchronous operations created within the + * callback. + * + * The optional `args` are passed to the callback function. + * + * If the callback function throws an error, the error is thrown by `run()` too. + * The stacktrace is not impacted by this call and the context is exited. + * + * Example: + * + * ```js + * const store = { id: 2 }; + * try { + * asyncLocalStorage.run(store, () => { + * asyncLocalStorage.getStore(); // Returns the store object + * setTimeout(() => { + * asyncLocalStorage.getStore(); // Returns the store object + * }, 200); + * throw new Error(); + * }); + * } catch (e) { + * asyncLocalStorage.getStore(); // Returns undefined + * // The error will be caught here + * } + * ``` + * @since v13.10.0, v12.17.0 + */ + run(store: T, callback: (...args: TArgs) => R, ...args: TArgs): R; + /** + * Runs a function synchronously outside of a context and returns its + * return value. The store is not accessible within the callback function or + * the asynchronous operations created within the callback. Any `getStore()`call done within the callback function will always return `undefined`. + * + * The optional `args` are passed to the callback function. + * + * If the callback function throws an error, the error is thrown by `exit()` too. + * The stacktrace is not impacted by this call and the context is re-entered. + * + * Example: + * + * ```js + * // Within a call to run + * try { + * asyncLocalStorage.getStore(); // Returns the store object or value + * asyncLocalStorage.exit(() => { + * asyncLocalStorage.getStore(); // Returns undefined + * throw new Error(); + * }); + * } catch (e) { + * asyncLocalStorage.getStore(); // Returns the same object or value + * // The error will be caught here + * } + * ``` + * @since v13.10.0, v12.17.0 + * @experimental + */ + exit(callback: (...args: TArgs) => R, ...args: TArgs): R; + /** + * Transitions into the context for the remainder of the current + * synchronous execution and then persists the store through any following + * asynchronous calls. + * + * Example: + * + * ```js + * const store = { id: 1 }; + * // Replaces previous store with the given store object + * asyncLocalStorage.enterWith(store); + * asyncLocalStorage.getStore(); // Returns the store object + * someAsyncOperation(() => { + * asyncLocalStorage.getStore(); // Returns the same object + * }); + * ``` + * + * This transition will continue for the _entire_ synchronous execution. + * This means that if, for example, the context is entered within an event + * handler subsequent event handlers will also run within that context unless + * specifically bound to another context with an `AsyncResource`. That is why`run()` should be preferred over `enterWith()` unless there are strong reasons + * to use the latter method. + * + * ```js + * const store = { id: 1 }; + * + * emitter.on('my-event', () => { + * asyncLocalStorage.enterWith(store); + * }); + * emitter.on('my-event', () => { + * asyncLocalStorage.getStore(); // Returns the same object + * }); + * + * asyncLocalStorage.getStore(); // Returns undefined + * emitter.emit('my-event'); + * asyncLocalStorage.getStore(); // Returns the same object + * ``` + * @since v13.11.0, v12.17.0 + * @experimental + */ + enterWith(store: T): void; + } +} +declare module 'node:async_hooks' { + export * from 'async_hooks'; +} diff --git a/node_modules/@types/node/ts4.8/buffer.d.ts b/node_modules/@types/node/ts4.8/buffer.d.ts new file mode 100644 index 0000000..ea859cd --- /dev/null +++ b/node_modules/@types/node/ts4.8/buffer.d.ts @@ -0,0 +1,2259 @@ +/** + * `Buffer` objects are used to represent a fixed-length sequence of bytes. Many + * Node.js APIs support `Buffer`s. + * + * The `Buffer` class is a subclass of JavaScript's [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) class and + * extends it with methods that cover additional use cases. Node.js APIs accept + * plain [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) s wherever `Buffer`s are supported as well. + * + * While the `Buffer` class is available within the global scope, it is still + * recommended to explicitly reference it via an import or require statement. + * + * ```js + * import { Buffer } from 'buffer'; + * + * // Creates a zero-filled Buffer of length 10. + * const buf1 = Buffer.alloc(10); + * + * // Creates a Buffer of length 10, + * // filled with bytes which all have the value `1`. + * const buf2 = Buffer.alloc(10, 1); + * + * // Creates an uninitialized buffer of length 10. + * // This is faster than calling Buffer.alloc() but the returned + * // Buffer instance might contain old data that needs to be + * // overwritten using fill(), write(), or other functions that fill the Buffer's + * // contents. + * const buf3 = Buffer.allocUnsafe(10); + * + * // Creates a Buffer containing the bytes [1, 2, 3]. + * const buf4 = Buffer.from([1, 2, 3]); + * + * // Creates a Buffer containing the bytes [1, 1, 1, 1] – the entries + * // are all truncated using `(value & 255)` to fit into the range 0–255. + * const buf5 = Buffer.from([257, 257.5, -255, '1']); + * + * // Creates a Buffer containing the UTF-8-encoded bytes for the string 'tést': + * // [0x74, 0xc3, 0xa9, 0x73, 0x74] (in hexadecimal notation) + * // [116, 195, 169, 115, 116] (in decimal notation) + * const buf6 = Buffer.from('tést'); + * + * // Creates a Buffer containing the Latin-1 bytes [0x74, 0xe9, 0x73, 0x74]. + * const buf7 = Buffer.from('tést', 'latin1'); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/buffer.js) + */ +declare module 'buffer' { + import { BinaryLike } from 'node:crypto'; + import { ReadableStream as WebReadableStream } from 'node:stream/web'; + export const INSPECT_MAX_BYTES: number; + export const kMaxLength: number; + export const kStringMaxLength: number; + export const constants: { + MAX_LENGTH: number; + MAX_STRING_LENGTH: number; + }; + export type TranscodeEncoding = 'ascii' | 'utf8' | 'utf16le' | 'ucs2' | 'latin1' | 'binary'; + /** + * Re-encodes the given `Buffer` or `Uint8Array` instance from one character + * encoding to another. Returns a new `Buffer` instance. + * + * Throws if the `fromEnc` or `toEnc` specify invalid character encodings or if + * conversion from `fromEnc` to `toEnc` is not permitted. + * + * Encodings supported by `buffer.transcode()` are: `'ascii'`, `'utf8'`,`'utf16le'`, `'ucs2'`, `'latin1'`, and `'binary'`. + * + * The transcoding process will use substitution characters if a given byte + * sequence cannot be adequately represented in the target encoding. For instance: + * + * ```js + * import { Buffer, transcode } from 'buffer'; + * + * const newBuf = transcode(Buffer.from('€'), 'utf8', 'ascii'); + * console.log(newBuf.toString('ascii')); + * // Prints: '?' + * ``` + * + * Because the Euro (`€`) sign is not representable in US-ASCII, it is replaced + * with `?` in the transcoded `Buffer`. + * @since v7.1.0 + * @param source A `Buffer` or `Uint8Array` instance. + * @param fromEnc The current encoding. + * @param toEnc To target encoding. + */ + export function transcode(source: Uint8Array, fromEnc: TranscodeEncoding, toEnc: TranscodeEncoding): Buffer; + export const SlowBuffer: { + /** @deprecated since v6.0.0, use `Buffer.allocUnsafeSlow()` */ + new (size: number): Buffer; + prototype: Buffer; + }; + /** + * Resolves a `'blob:nodedata:...'` an associated `Blob` object registered using + * a prior call to `URL.createObjectURL()`. + * @since v16.7.0 + * @experimental + * @param id A `'blob:nodedata:...` URL string returned by a prior call to `URL.createObjectURL()`. + */ + export function resolveObjectURL(id: string): Blob | undefined; + export { Buffer }; + /** + * @experimental + */ + export interface BlobOptions { + /** + * @default 'utf8' + */ + encoding?: BufferEncoding | undefined; + /** + * The Blob content-type. The intent is for `type` to convey + * the MIME media type of the data, however no validation of the type format + * is performed. + */ + type?: string | undefined; + } + /** + * A [`Blob`](https://developer.mozilla.org/en-US/docs/Web/API/Blob) encapsulates immutable, raw data that can be safely shared across + * multiple worker threads. + * @since v15.7.0, v14.18.0 + */ + export class Blob { + /** + * The total size of the `Blob` in bytes. + * @since v15.7.0, v14.18.0 + */ + readonly size: number; + /** + * The content-type of the `Blob`. + * @since v15.7.0, v14.18.0 + */ + readonly type: string; + /** + * Creates a new `Blob` object containing a concatenation of the given sources. + * + * {ArrayBuffer}, {TypedArray}, {DataView}, and {Buffer} sources are copied into + * the 'Blob' and can therefore be safely modified after the 'Blob' is created. + * + * String sources are also copied into the `Blob`. + */ + constructor(sources: Array, options?: BlobOptions); + /** + * Returns a promise that fulfills with an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) containing a copy of + * the `Blob` data. + * @since v15.7.0, v14.18.0 + */ + arrayBuffer(): Promise; + /** + * Creates and returns a new `Blob` containing a subset of this `Blob` objects + * data. The original `Blob` is not altered. + * @since v15.7.0, v14.18.0 + * @param start The starting index. + * @param end The ending index. + * @param type The content-type for the new `Blob` + */ + slice(start?: number, end?: number, type?: string): Blob; + /** + * Returns a promise that fulfills with the contents of the `Blob` decoded as a + * UTF-8 string. + * @since v15.7.0, v14.18.0 + */ + text(): Promise; + /** + * Returns a new (WHATWG) `ReadableStream` that allows the content of the `Blob` to be read. + * @since v16.7.0 + */ + stream(): WebReadableStream; + } + export import atob = globalThis.atob; + export import btoa = globalThis.btoa; + + import { Blob as NodeBlob } from 'buffer'; + // This conditional type will be the existing global Blob in a browser, or + // the copy below in a Node environment. + type __Blob = typeof globalThis extends { onmessage: any, Blob: any } + ? {} : NodeBlob; + + global { + // Buffer class + type BufferEncoding = 'ascii' | 'utf8' | 'utf-8' | 'utf16le' | 'ucs2' | 'ucs-2' | 'base64' | 'base64url' | 'latin1' | 'binary' | 'hex'; + type WithImplicitCoercion = + | T + | { + valueOf(): T; + }; + /** + * Raw data is stored in instances of the Buffer class. + * A Buffer is similar to an array of integers but corresponds to a raw memory allocation outside the V8 heap. A Buffer cannot be resized. + * Valid string encodings: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'base64url'|'binary'(deprecated)|'hex' + */ + interface BufferConstructor { + /** + * Allocates a new buffer containing the given {str}. + * + * @param str String to store in buffer. + * @param encoding encoding to use, optional. Default is 'utf8' + * @deprecated since v10.0.0 - Use `Buffer.from(string[, encoding])` instead. + */ + new (str: string, encoding?: BufferEncoding): Buffer; + /** + * Allocates a new buffer of {size} octets. + * + * @param size count of octets to allocate. + * @deprecated since v10.0.0 - Use `Buffer.alloc()` instead (also see `Buffer.allocUnsafe()`). + */ + new (size: number): Buffer; + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + * @deprecated since v10.0.0 - Use `Buffer.from(array)` instead. + */ + new (array: Uint8Array): Buffer; + /** + * Produces a Buffer backed by the same allocated memory as + * the given {ArrayBuffer}/{SharedArrayBuffer}. + * + * + * @param arrayBuffer The ArrayBuffer with which to share memory. + * @deprecated since v10.0.0 - Use `Buffer.from(arrayBuffer[, byteOffset[, length]])` instead. + */ + new (arrayBuffer: ArrayBuffer | SharedArrayBuffer): Buffer; + /** + * Allocates a new buffer containing the given {array} of octets. + * + * @param array The octets to store. + * @deprecated since v10.0.0 - Use `Buffer.from(array)` instead. + */ + new (array: ReadonlyArray): Buffer; + /** + * Copies the passed {buffer} data onto a new {Buffer} instance. + * + * @param buffer The buffer to copy. + * @deprecated since v10.0.0 - Use `Buffer.from(buffer)` instead. + */ + new (buffer: Buffer): Buffer; + /** + * Allocates a new `Buffer` using an `array` of bytes in the range `0` – `255`. + * Array entries outside that range will be truncated to fit into it. + * + * ```js + * import { Buffer } from 'buffer'; + * + * // Creates a new Buffer containing the UTF-8 bytes of the string 'buffer'. + * const buf = Buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]); + * ``` + * + * A `TypeError` will be thrown if `array` is not an `Array` or another type + * appropriate for `Buffer.from()` variants. + * + * `Buffer.from(array)` and `Buffer.from(string)` may also use the internal`Buffer` pool like `Buffer.allocUnsafe()` does. + * @since v5.10.0 + */ + from(arrayBuffer: WithImplicitCoercion, byteOffset?: number, length?: number): Buffer; + /** + * Creates a new Buffer using the passed {data} + * @param data data to create a new Buffer + */ + from(data: Uint8Array | ReadonlyArray): Buffer; + from(data: WithImplicitCoercion | string>): Buffer; + /** + * Creates a new Buffer containing the given JavaScript string {str}. + * If provided, the {encoding} parameter identifies the character encoding. + * If not provided, {encoding} defaults to 'utf8'. + */ + from( + str: + | WithImplicitCoercion + | { + [Symbol.toPrimitive](hint: 'string'): string; + }, + encoding?: BufferEncoding + ): Buffer; + /** + * Creates a new Buffer using the passed {data} + * @param values to create a new Buffer + */ + of(...items: number[]): Buffer; + /** + * Returns `true` if `obj` is a `Buffer`, `false` otherwise. + * + * ```js + * import { Buffer } from 'buffer'; + * + * Buffer.isBuffer(Buffer.alloc(10)); // true + * Buffer.isBuffer(Buffer.from('foo')); // true + * Buffer.isBuffer('a string'); // false + * Buffer.isBuffer([]); // false + * Buffer.isBuffer(new Uint8Array(1024)); // false + * ``` + * @since v0.1.101 + */ + isBuffer(obj: any): obj is Buffer; + /** + * Returns `true` if `encoding` is the name of a supported character encoding, + * or `false` otherwise. + * + * ```js + * import { Buffer } from 'buffer'; + * + * console.log(Buffer.isEncoding('utf8')); + * // Prints: true + * + * console.log(Buffer.isEncoding('hex')); + * // Prints: true + * + * console.log(Buffer.isEncoding('utf/8')); + * // Prints: false + * + * console.log(Buffer.isEncoding('')); + * // Prints: false + * ``` + * @since v0.9.1 + * @param encoding A character encoding name to check. + */ + isEncoding(encoding: string): encoding is BufferEncoding; + /** + * Returns the byte length of a string when encoded using `encoding`. + * This is not the same as [`String.prototype.length`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/length), which does not account + * for the encoding that is used to convert the string into bytes. + * + * For `'base64'`, `'base64url'`, and `'hex'`, this function assumes valid input. + * For strings that contain non-base64/hex-encoded data (e.g. whitespace), the + * return value might be greater than the length of a `Buffer` created from the + * string. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const str = '\u00bd + \u00bc = \u00be'; + * + * console.log(`${str}: ${str.length} characters, ` + + * `${Buffer.byteLength(str, 'utf8')} bytes`); + * // Prints: ½ + ¼ = ¾: 9 characters, 12 bytes + * ``` + * + * When `string` is a + * `Buffer`/[`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView)/[`TypedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/- + * Reference/Global_Objects/TypedArray)/[`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer)/[`SharedArrayBuffer`](https://develop- + * er.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer), the byte length as reported by `.byteLength`is returned. + * @since v0.1.90 + * @param string A value to calculate the length of. + * @param [encoding='utf8'] If `string` is a string, this is its encoding. + * @return The number of bytes contained within `string`. + */ + byteLength(string: string | NodeJS.ArrayBufferView | ArrayBuffer | SharedArrayBuffer, encoding?: BufferEncoding): number; + /** + * Returns a new `Buffer` which is the result of concatenating all the `Buffer`instances in the `list` together. + * + * If the list has no items, or if the `totalLength` is 0, then a new zero-length`Buffer` is returned. + * + * If `totalLength` is not provided, it is calculated from the `Buffer` instances + * in `list` by adding their lengths. + * + * If `totalLength` is provided, it is coerced to an unsigned integer. If the + * combined length of the `Buffer`s in `list` exceeds `totalLength`, the result is + * truncated to `totalLength`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * // Create a single `Buffer` from a list of three `Buffer` instances. + * + * const buf1 = Buffer.alloc(10); + * const buf2 = Buffer.alloc(14); + * const buf3 = Buffer.alloc(18); + * const totalLength = buf1.length + buf2.length + buf3.length; + * + * console.log(totalLength); + * // Prints: 42 + * + * const bufA = Buffer.concat([buf1, buf2, buf3], totalLength); + * + * console.log(bufA); + * // Prints: + * console.log(bufA.length); + * // Prints: 42 + * ``` + * + * `Buffer.concat()` may also use the internal `Buffer` pool like `Buffer.allocUnsafe()` does. + * @since v0.7.11 + * @param list List of `Buffer` or {@link Uint8Array} instances to concatenate. + * @param totalLength Total length of the `Buffer` instances in `list` when concatenated. + */ + concat(list: ReadonlyArray, totalLength?: number): Buffer; + /** + * Compares `buf1` to `buf2`, typically for the purpose of sorting arrays of`Buffer` instances. This is equivalent to calling `buf1.compare(buf2)`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf1 = Buffer.from('1234'); + * const buf2 = Buffer.from('0123'); + * const arr = [buf1, buf2]; + * + * console.log(arr.sort(Buffer.compare)); + * // Prints: [ , ] + * // (This result is equal to: [buf2, buf1].) + * ``` + * @since v0.11.13 + * @return Either `-1`, `0`, or `1`, depending on the result of the comparison. See `compare` for details. + */ + compare(buf1: Uint8Array, buf2: Uint8Array): -1 | 0 | 1; + /** + * Allocates a new `Buffer` of `size` bytes. If `fill` is `undefined`, the`Buffer` will be zero-filled. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.alloc(5); + * + * console.log(buf); + * // Prints: + * ``` + * + * If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_INVALID_ARG_VALUE` is thrown. + * + * If `fill` is specified, the allocated `Buffer` will be initialized by calling `buf.fill(fill)`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.alloc(5, 'a'); + * + * console.log(buf); + * // Prints: + * ``` + * + * If both `fill` and `encoding` are specified, the allocated `Buffer` will be + * initialized by calling `buf.fill(fill, encoding)`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.alloc(11, 'aGVsbG8gd29ybGQ=', 'base64'); + * + * console.log(buf); + * // Prints: + * ``` + * + * Calling `Buffer.alloc()` can be measurably slower than the alternative `Buffer.allocUnsafe()` but ensures that the newly created `Buffer` instance + * contents will never contain sensitive data from previous allocations, including + * data that might not have been allocated for `Buffer`s. + * + * A `TypeError` will be thrown if `size` is not a number. + * @since v5.10.0 + * @param size The desired length of the new `Buffer`. + * @param [fill=0] A value to pre-fill the new `Buffer` with. + * @param [encoding='utf8'] If `fill` is a string, this is its encoding. + */ + alloc(size: number, fill?: string | Buffer | number, encoding?: BufferEncoding): Buffer; + /** + * Allocates a new `Buffer` of `size` bytes. If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_INVALID_ARG_VALUE` is thrown. + * + * The underlying memory for `Buffer` instances created in this way is _not_ + * _initialized_. The contents of the newly created `Buffer` are unknown and _may contain sensitive data_. Use `Buffer.alloc()` instead to initialize`Buffer` instances with zeroes. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(10); + * + * console.log(buf); + * // Prints (contents may vary): + * + * buf.fill(0); + * + * console.log(buf); + * // Prints: + * ``` + * + * A `TypeError` will be thrown if `size` is not a number. + * + * The `Buffer` module pre-allocates an internal `Buffer` instance of + * size `Buffer.poolSize` that is used as a pool for the fast allocation of new`Buffer` instances created using `Buffer.allocUnsafe()`,`Buffer.from(array)`, `Buffer.concat()`, and the + * deprecated`new Buffer(size)` constructor only when `size` is less than or equal + * to `Buffer.poolSize >> 1` (floor of `Buffer.poolSize` divided by two). + * + * Use of this pre-allocated internal memory pool is a key difference between + * calling `Buffer.alloc(size, fill)` vs. `Buffer.allocUnsafe(size).fill(fill)`. + * Specifically, `Buffer.alloc(size, fill)` will _never_ use the internal `Buffer`pool, while `Buffer.allocUnsafe(size).fill(fill)`_will_ use the internal`Buffer` pool if `size` is less + * than or equal to half `Buffer.poolSize`. The + * difference is subtle but can be important when an application requires the + * additional performance that `Buffer.allocUnsafe()` provides. + * @since v5.10.0 + * @param size The desired length of the new `Buffer`. + */ + allocUnsafe(size: number): Buffer; + /** + * Allocates a new `Buffer` of `size` bytes. If `size` is larger than {@link constants.MAX_LENGTH} or smaller than 0, `ERR_INVALID_ARG_VALUE` is thrown. A zero-length `Buffer` is created + * if `size` is 0. + * + * The underlying memory for `Buffer` instances created in this way is _not_ + * _initialized_. The contents of the newly created `Buffer` are unknown and _may contain sensitive data_. Use `buf.fill(0)` to initialize + * such `Buffer` instances with zeroes. + * + * When using `Buffer.allocUnsafe()` to allocate new `Buffer` instances, + * allocations under 4 KB are sliced from a single pre-allocated `Buffer`. This + * allows applications to avoid the garbage collection overhead of creating many + * individually allocated `Buffer` instances. This approach improves both + * performance and memory usage by eliminating the need to track and clean up as + * many individual `ArrayBuffer` objects. + * + * However, in the case where a developer may need to retain a small chunk of + * memory from a pool for an indeterminate amount of time, it may be appropriate + * to create an un-pooled `Buffer` instance using `Buffer.allocUnsafeSlow()` and + * then copying out the relevant bits. + * + * ```js + * import { Buffer } from 'buffer'; + * + * // Need to keep around a few small chunks of memory. + * const store = []; + * + * socket.on('readable', () => { + * let data; + * while (null !== (data = readable.read())) { + * // Allocate for retained data. + * const sb = Buffer.allocUnsafeSlow(10); + * + * // Copy the data into the new allocation. + * data.copy(sb, 0, 0, 10); + * + * store.push(sb); + * } + * }); + * ``` + * + * A `TypeError` will be thrown if `size` is not a number. + * @since v5.12.0 + * @param size The desired length of the new `Buffer`. + */ + allocUnsafeSlow(size: number): Buffer; + /** + * This is the size (in bytes) of pre-allocated internal `Buffer` instances used + * for pooling. This value may be modified. + * @since v0.11.3 + */ + poolSize: number; + } + interface Buffer extends Uint8Array { + /** + * Writes `string` to `buf` at `offset` according to the character encoding in`encoding`. The `length` parameter is the number of bytes to write. If `buf` did + * not contain enough space to fit the entire string, only part of `string` will be + * written. However, partially encoded characters will not be written. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.alloc(256); + * + * const len = buf.write('\u00bd + \u00bc = \u00be', 0); + * + * console.log(`${len} bytes: ${buf.toString('utf8', 0, len)}`); + * // Prints: 12 bytes: ½ + ¼ = ¾ + * + * const buffer = Buffer.alloc(10); + * + * const length = buffer.write('abcd', 8); + * + * console.log(`${length} bytes: ${buffer.toString('utf8', 8, 10)}`); + * // Prints: 2 bytes : ab + * ``` + * @since v0.1.90 + * @param string String to write to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write `string`. + * @param [length=buf.length - offset] Maximum number of bytes to write (written bytes will not exceed `buf.length - offset`). + * @param [encoding='utf8'] The character encoding of `string`. + * @return Number of bytes written. + */ + write(string: string, encoding?: BufferEncoding): number; + write(string: string, offset: number, encoding?: BufferEncoding): number; + write(string: string, offset: number, length: number, encoding?: BufferEncoding): number; + /** + * Decodes `buf` to a string according to the specified character encoding in`encoding`. `start` and `end` may be passed to decode only a subset of `buf`. + * + * If `encoding` is `'utf8'` and a byte sequence in the input is not valid UTF-8, + * then each invalid byte is replaced with the replacement character `U+FFFD`. + * + * The maximum length of a string instance (in UTF-16 code units) is available + * as {@link constants.MAX_STRING_LENGTH}. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf1 = Buffer.allocUnsafe(26); + * + * for (let i = 0; i < 26; i++) { + * // 97 is the decimal ASCII value for 'a'. + * buf1[i] = i + 97; + * } + * + * console.log(buf1.toString('utf8')); + * // Prints: abcdefghijklmnopqrstuvwxyz + * console.log(buf1.toString('utf8', 0, 5)); + * // Prints: abcde + * + * const buf2 = Buffer.from('tést'); + * + * console.log(buf2.toString('hex')); + * // Prints: 74c3a97374 + * console.log(buf2.toString('utf8', 0, 3)); + * // Prints: té + * console.log(buf2.toString(undefined, 0, 3)); + * // Prints: té + * ``` + * @since v0.1.90 + * @param [encoding='utf8'] The character encoding to use. + * @param [start=0] The byte offset to start decoding at. + * @param [end=buf.length] The byte offset to stop decoding at (not inclusive). + */ + toString(encoding?: BufferEncoding, start?: number, end?: number): string; + /** + * Returns a JSON representation of `buf`. [`JSON.stringify()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify) implicitly calls + * this function when stringifying a `Buffer` instance. + * + * `Buffer.from()` accepts objects in the format returned from this method. + * In particular, `Buffer.from(buf.toJSON())` works like `Buffer.from(buf)`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]); + * const json = JSON.stringify(buf); + * + * console.log(json); + * // Prints: {"type":"Buffer","data":[1,2,3,4,5]} + * + * const copy = JSON.parse(json, (key, value) => { + * return value && value.type === 'Buffer' ? + * Buffer.from(value) : + * value; + * }); + * + * console.log(copy); + * // Prints: + * ``` + * @since v0.9.2 + */ + toJSON(): { + type: 'Buffer'; + data: number[]; + }; + /** + * Returns `true` if both `buf` and `otherBuffer` have exactly the same bytes,`false` otherwise. Equivalent to `buf.compare(otherBuffer) === 0`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf1 = Buffer.from('ABC'); + * const buf2 = Buffer.from('414243', 'hex'); + * const buf3 = Buffer.from('ABCD'); + * + * console.log(buf1.equals(buf2)); + * // Prints: true + * console.log(buf1.equals(buf3)); + * // Prints: false + * ``` + * @since v0.11.13 + * @param otherBuffer A `Buffer` or {@link Uint8Array} with which to compare `buf`. + */ + equals(otherBuffer: Uint8Array): boolean; + /** + * Compares `buf` with `target` and returns a number indicating whether `buf`comes before, after, or is the same as `target` in sort order. + * Comparison is based on the actual sequence of bytes in each `Buffer`. + * + * * `0` is returned if `target` is the same as `buf` + * * `1` is returned if `target` should come _before_`buf` when sorted. + * * `-1` is returned if `target` should come _after_`buf` when sorted. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf1 = Buffer.from('ABC'); + * const buf2 = Buffer.from('BCD'); + * const buf3 = Buffer.from('ABCD'); + * + * console.log(buf1.compare(buf1)); + * // Prints: 0 + * console.log(buf1.compare(buf2)); + * // Prints: -1 + * console.log(buf1.compare(buf3)); + * // Prints: -1 + * console.log(buf2.compare(buf1)); + * // Prints: 1 + * console.log(buf2.compare(buf3)); + * // Prints: 1 + * console.log([buf1, buf2, buf3].sort(Buffer.compare)); + * // Prints: [ , , ] + * // (This result is equal to: [buf1, buf3, buf2].) + * ``` + * + * The optional `targetStart`, `targetEnd`, `sourceStart`, and `sourceEnd`arguments can be used to limit the comparison to specific ranges within `target`and `buf` respectively. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf1 = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8, 9]); + * const buf2 = Buffer.from([5, 6, 7, 8, 9, 1, 2, 3, 4]); + * + * console.log(buf1.compare(buf2, 5, 9, 0, 4)); + * // Prints: 0 + * console.log(buf1.compare(buf2, 0, 6, 4)); + * // Prints: -1 + * console.log(buf1.compare(buf2, 5, 6, 5)); + * // Prints: 1 + * ``` + * + * `ERR_OUT_OF_RANGE` is thrown if `targetStart < 0`, `sourceStart < 0`,`targetEnd > target.byteLength`, or `sourceEnd > source.byteLength`. + * @since v0.11.13 + * @param target A `Buffer` or {@link Uint8Array} with which to compare `buf`. + * @param [targetStart=0] The offset within `target` at which to begin comparison. + * @param [targetEnd=target.length] The offset within `target` at which to end comparison (not inclusive). + * @param [sourceStart=0] The offset within `buf` at which to begin comparison. + * @param [sourceEnd=buf.length] The offset within `buf` at which to end comparison (not inclusive). + */ + compare(target: Uint8Array, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): -1 | 0 | 1; + /** + * Copies data from a region of `buf` to a region in `target`, even if the `target`memory region overlaps with `buf`. + * + * [`TypedArray.prototype.set()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/set) performs the same operation, and is available + * for all TypedArrays, including Node.js `Buffer`s, although it takes + * different function arguments. + * + * ```js + * import { Buffer } from 'buffer'; + * + * // Create two `Buffer` instances. + * const buf1 = Buffer.allocUnsafe(26); + * const buf2 = Buffer.allocUnsafe(26).fill('!'); + * + * for (let i = 0; i < 26; i++) { + * // 97 is the decimal ASCII value for 'a'. + * buf1[i] = i + 97; + * } + * + * // Copy `buf1` bytes 16 through 19 into `buf2` starting at byte 8 of `buf2`. + * buf1.copy(buf2, 8, 16, 20); + * // This is equivalent to: + * // buf2.set(buf1.subarray(16, 20), 8); + * + * console.log(buf2.toString('ascii', 0, 25)); + * // Prints: !!!!!!!!qrst!!!!!!!!!!!!! + * ``` + * + * ```js + * import { Buffer } from 'buffer'; + * + * // Create a `Buffer` and copy data from one region to an overlapping region + * // within the same `Buffer`. + * + * const buf = Buffer.allocUnsafe(26); + * + * for (let i = 0; i < 26; i++) { + * // 97 is the decimal ASCII value for 'a'. + * buf[i] = i + 97; + * } + * + * buf.copy(buf, 0, 4, 10); + * + * console.log(buf.toString()); + * // Prints: efghijghijklmnopqrstuvwxyz + * ``` + * @since v0.1.90 + * @param target A `Buffer` or {@link Uint8Array} to copy into. + * @param [targetStart=0] The offset within `target` at which to begin writing. + * @param [sourceStart=0] The offset within `buf` from which to begin copying. + * @param [sourceEnd=buf.length] The offset within `buf` at which to stop copying (not inclusive). + * @return The number of bytes copied. + */ + copy(target: Uint8Array, targetStart?: number, sourceStart?: number, sourceEnd?: number): number; + /** + * Returns a new `Buffer` that references the same memory as the original, but + * offset and cropped by the `start` and `end` indices. + * + * This method is not compatible with the `Uint8Array.prototype.slice()`, + * which is a superclass of `Buffer`. To copy the slice, use`Uint8Array.prototype.slice()`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from('buffer'); + * + * const copiedBuf = Uint8Array.prototype.slice.call(buf); + * copiedBuf[0]++; + * console.log(copiedBuf.toString()); + * // Prints: cuffer + * + * console.log(buf.toString()); + * // Prints: buffer + * + * // With buf.slice(), the original buffer is modified. + * const notReallyCopiedBuf = buf.slice(); + * notReallyCopiedBuf[0]++; + * console.log(notReallyCopiedBuf.toString()); + * // Prints: cuffer + * console.log(buf.toString()); + * // Also prints: cuffer (!) + * ``` + * @since v0.3.0 + * @deprecated Use `subarray` instead. + * @param [start=0] Where the new `Buffer` will start. + * @param [end=buf.length] Where the new `Buffer` will end (not inclusive). + */ + slice(start?: number, end?: number): Buffer; + /** + * Returns a new `Buffer` that references the same memory as the original, but + * offset and cropped by the `start` and `end` indices. + * + * Specifying `end` greater than `buf.length` will return the same result as + * that of `end` equal to `buf.length`. + * + * This method is inherited from [`TypedArray.prototype.subarray()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray). + * + * Modifying the new `Buffer` slice will modify the memory in the original `Buffer`because the allocated memory of the two objects overlap. + * + * ```js + * import { Buffer } from 'buffer'; + * + * // Create a `Buffer` with the ASCII alphabet, take a slice, and modify one byte + * // from the original `Buffer`. + * + * const buf1 = Buffer.allocUnsafe(26); + * + * for (let i = 0; i < 26; i++) { + * // 97 is the decimal ASCII value for 'a'. + * buf1[i] = i + 97; + * } + * + * const buf2 = buf1.subarray(0, 3); + * + * console.log(buf2.toString('ascii', 0, buf2.length)); + * // Prints: abc + * + * buf1[0] = 33; + * + * console.log(buf2.toString('ascii', 0, buf2.length)); + * // Prints: !bc + * ``` + * + * Specifying negative indexes causes the slice to be generated relative to the + * end of `buf` rather than the beginning. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from('buffer'); + * + * console.log(buf.subarray(-6, -1).toString()); + * // Prints: buffe + * // (Equivalent to buf.subarray(0, 5).) + * + * console.log(buf.subarray(-6, -2).toString()); + * // Prints: buff + * // (Equivalent to buf.subarray(0, 4).) + * + * console.log(buf.subarray(-5, -2).toString()); + * // Prints: uff + * // (Equivalent to buf.subarray(1, 4).) + * ``` + * @since v3.0.0 + * @param [start=0] Where the new `Buffer` will start. + * @param [end=buf.length] Where the new `Buffer` will end (not inclusive). + */ + subarray(start?: number, end?: number): Buffer; + /** + * Writes `value` to `buf` at the specified `offset` as big-endian. + * + * `value` is interpreted and written as a two's complement signed integer. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(8); + * + * buf.writeBigInt64BE(0x0102030405060708n, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v12.0.0, v10.20.0 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`. + * @return `offset` plus the number of bytes written. + */ + writeBigInt64BE(value: bigint, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as little-endian. + * + * `value` is interpreted and written as a two's complement signed integer. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(8); + * + * buf.writeBigInt64LE(0x0102030405060708n, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v12.0.0, v10.20.0 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`. + * @return `offset` plus the number of bytes written. + */ + writeBigInt64LE(value: bigint, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as big-endian. + * + * This function is also available under the `writeBigUint64BE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(8); + * + * buf.writeBigUInt64BE(0xdecafafecacefaden, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v12.0.0, v10.20.0 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`. + * @return `offset` plus the number of bytes written. + */ + writeBigUInt64BE(value: bigint, offset?: number): number; + /** + * @alias Buffer.writeBigUInt64BE + * @since v14.10.0, v12.19.0 + */ + writeBigUint64BE(value: bigint, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as little-endian + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(8); + * + * buf.writeBigUInt64LE(0xdecafafecacefaden, 0); + * + * console.log(buf); + * // Prints: + * ``` + * + * This function is also available under the `writeBigUint64LE` alias. + * @since v12.0.0, v10.20.0 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy: `0 <= offset <= buf.length - 8`. + * @return `offset` plus the number of bytes written. + */ + writeBigUInt64LE(value: bigint, offset?: number): number; + /** + * @alias Buffer.writeBigUInt64LE + * @since v14.10.0, v12.19.0 + */ + writeBigUint64LE(value: bigint, offset?: number): number; + /** + * Writes `byteLength` bytes of `value` to `buf` at the specified `offset`as little-endian. Supports up to 48 bits of accuracy. Behavior is undefined + * when `value` is anything other than an unsigned integer. + * + * This function is also available under the `writeUintLE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(6); + * + * buf.writeUIntLE(0x1234567890ab, 0, 6); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.5 + * @param value Number to be written to `buf`. + * @param offset Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - byteLength`. + * @param byteLength Number of bytes to write. Must satisfy `0 < byteLength <= 6`. + * @return `offset` plus the number of bytes written. + */ + writeUIntLE(value: number, offset: number, byteLength: number): number; + /** + * @alias Buffer.writeUIntLE + * @since v14.9.0, v12.19.0 + */ + writeUintLE(value: number, offset: number, byteLength: number): number; + /** + * Writes `byteLength` bytes of `value` to `buf` at the specified `offset`as big-endian. Supports up to 48 bits of accuracy. Behavior is undefined + * when `value` is anything other than an unsigned integer. + * + * This function is also available under the `writeUintBE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(6); + * + * buf.writeUIntBE(0x1234567890ab, 0, 6); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.5 + * @param value Number to be written to `buf`. + * @param offset Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - byteLength`. + * @param byteLength Number of bytes to write. Must satisfy `0 < byteLength <= 6`. + * @return `offset` plus the number of bytes written. + */ + writeUIntBE(value: number, offset: number, byteLength: number): number; + /** + * @alias Buffer.writeUIntBE + * @since v14.9.0, v12.19.0 + */ + writeUintBE(value: number, offset: number, byteLength: number): number; + /** + * Writes `byteLength` bytes of `value` to `buf` at the specified `offset`as little-endian. Supports up to 48 bits of accuracy. Behavior is undefined + * when `value` is anything other than a signed integer. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(6); + * + * buf.writeIntLE(0x1234567890ab, 0, 6); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.11.15 + * @param value Number to be written to `buf`. + * @param offset Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - byteLength`. + * @param byteLength Number of bytes to write. Must satisfy `0 < byteLength <= 6`. + * @return `offset` plus the number of bytes written. + */ + writeIntLE(value: number, offset: number, byteLength: number): number; + /** + * Writes `byteLength` bytes of `value` to `buf` at the specified `offset`as big-endian. Supports up to 48 bits of accuracy. Behavior is undefined when`value` is anything other than a + * signed integer. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(6); + * + * buf.writeIntBE(0x1234567890ab, 0, 6); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.11.15 + * @param value Number to be written to `buf`. + * @param offset Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - byteLength`. + * @param byteLength Number of bytes to write. Must satisfy `0 < byteLength <= 6`. + * @return `offset` plus the number of bytes written. + */ + writeIntBE(value: number, offset: number, byteLength: number): number; + /** + * Reads an unsigned, big-endian 64-bit integer from `buf` at the specified`offset`. + * + * This function is also available under the `readBigUint64BE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff]); + * + * console.log(buf.readBigUInt64BE(0)); + * // Prints: 4294967295n + * ``` + * @since v12.0.0, v10.20.0 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`. + */ + readBigUInt64BE(offset?: number): bigint; + /** + * @alias Buffer.readBigUInt64BE + * @since v14.10.0, v12.19.0 + */ + readBigUint64BE(offset?: number): bigint; + /** + * Reads an unsigned, little-endian 64-bit integer from `buf` at the specified`offset`. + * + * This function is also available under the `readBigUint64LE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff]); + * + * console.log(buf.readBigUInt64LE(0)); + * // Prints: 18446744069414584320n + * ``` + * @since v12.0.0, v10.20.0 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`. + */ + readBigUInt64LE(offset?: number): bigint; + /** + * @alias Buffer.readBigUInt64LE + * @since v14.10.0, v12.19.0 + */ + readBigUint64LE(offset?: number): bigint; + /** + * Reads a signed, big-endian 64-bit integer from `buf` at the specified `offset`. + * + * Integers read from a `Buffer` are interpreted as two's complement signed + * values. + * @since v12.0.0, v10.20.0 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`. + */ + readBigInt64BE(offset?: number): bigint; + /** + * Reads a signed, little-endian 64-bit integer from `buf` at the specified`offset`. + * + * Integers read from a `Buffer` are interpreted as two's complement signed + * values. + * @since v12.0.0, v10.20.0 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy: `0 <= offset <= buf.length - 8`. + */ + readBigInt64LE(offset?: number): bigint; + /** + * Reads `byteLength` number of bytes from `buf` at the specified `offset`and interprets the result as an unsigned, little-endian integer supporting + * up to 48 bits of accuracy. + * + * This function is also available under the `readUintLE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]); + * + * console.log(buf.readUIntLE(0, 6).toString(16)); + * // Prints: ab9078563412 + * ``` + * @since v0.11.15 + * @param offset Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - byteLength`. + * @param byteLength Number of bytes to read. Must satisfy `0 < byteLength <= 6`. + */ + readUIntLE(offset: number, byteLength: number): number; + /** + * @alias Buffer.readUIntLE + * @since v14.9.0, v12.19.0 + */ + readUintLE(offset: number, byteLength: number): number; + /** + * Reads `byteLength` number of bytes from `buf` at the specified `offset`and interprets the result as an unsigned big-endian integer supporting + * up to 48 bits of accuracy. + * + * This function is also available under the `readUintBE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]); + * + * console.log(buf.readUIntBE(0, 6).toString(16)); + * // Prints: 1234567890ab + * console.log(buf.readUIntBE(1, 6).toString(16)); + * // Throws ERR_OUT_OF_RANGE. + * ``` + * @since v0.11.15 + * @param offset Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - byteLength`. + * @param byteLength Number of bytes to read. Must satisfy `0 < byteLength <= 6`. + */ + readUIntBE(offset: number, byteLength: number): number; + /** + * @alias Buffer.readUIntBE + * @since v14.9.0, v12.19.0 + */ + readUintBE(offset: number, byteLength: number): number; + /** + * Reads `byteLength` number of bytes from `buf` at the specified `offset`and interprets the result as a little-endian, two's complement signed value + * supporting up to 48 bits of accuracy. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]); + * + * console.log(buf.readIntLE(0, 6).toString(16)); + * // Prints: -546f87a9cbee + * ``` + * @since v0.11.15 + * @param offset Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - byteLength`. + * @param byteLength Number of bytes to read. Must satisfy `0 < byteLength <= 6`. + */ + readIntLE(offset: number, byteLength: number): number; + /** + * Reads `byteLength` number of bytes from `buf` at the specified `offset`and interprets the result as a big-endian, two's complement signed value + * supporting up to 48 bits of accuracy. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78, 0x90, 0xab]); + * + * console.log(buf.readIntBE(0, 6).toString(16)); + * // Prints: 1234567890ab + * console.log(buf.readIntBE(1, 6).toString(16)); + * // Throws ERR_OUT_OF_RANGE. + * console.log(buf.readIntBE(1, 0).toString(16)); + * // Throws ERR_OUT_OF_RANGE. + * ``` + * @since v0.11.15 + * @param offset Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - byteLength`. + * @param byteLength Number of bytes to read. Must satisfy `0 < byteLength <= 6`. + */ + readIntBE(offset: number, byteLength: number): number; + /** + * Reads an unsigned 8-bit integer from `buf` at the specified `offset`. + * + * This function is also available under the `readUint8` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([1, -2]); + * + * console.log(buf.readUInt8(0)); + * // Prints: 1 + * console.log(buf.readUInt8(1)); + * // Prints: 254 + * console.log(buf.readUInt8(2)); + * // Throws ERR_OUT_OF_RANGE. + * ``` + * @since v0.5.0 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 1`. + */ + readUInt8(offset?: number): number; + /** + * @alias Buffer.readUInt8 + * @since v14.9.0, v12.19.0 + */ + readUint8(offset?: number): number; + /** + * Reads an unsigned, little-endian 16-bit integer from `buf` at the specified`offset`. + * + * This function is also available under the `readUint16LE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x12, 0x34, 0x56]); + * + * console.log(buf.readUInt16LE(0).toString(16)); + * // Prints: 3412 + * console.log(buf.readUInt16LE(1).toString(16)); + * // Prints: 5634 + * console.log(buf.readUInt16LE(2).toString(16)); + * // Throws ERR_OUT_OF_RANGE. + * ``` + * @since v0.5.5 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`. + */ + readUInt16LE(offset?: number): number; + /** + * @alias Buffer.readUInt16LE + * @since v14.9.0, v12.19.0 + */ + readUint16LE(offset?: number): number; + /** + * Reads an unsigned, big-endian 16-bit integer from `buf` at the specified`offset`. + * + * This function is also available under the `readUint16BE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x12, 0x34, 0x56]); + * + * console.log(buf.readUInt16BE(0).toString(16)); + * // Prints: 1234 + * console.log(buf.readUInt16BE(1).toString(16)); + * // Prints: 3456 + * ``` + * @since v0.5.5 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`. + */ + readUInt16BE(offset?: number): number; + /** + * @alias Buffer.readUInt16BE + * @since v14.9.0, v12.19.0 + */ + readUint16BE(offset?: number): number; + /** + * Reads an unsigned, little-endian 32-bit integer from `buf` at the specified`offset`. + * + * This function is also available under the `readUint32LE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78]); + * + * console.log(buf.readUInt32LE(0).toString(16)); + * // Prints: 78563412 + * console.log(buf.readUInt32LE(1).toString(16)); + * // Throws ERR_OUT_OF_RANGE. + * ``` + * @since v0.5.5 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`. + */ + readUInt32LE(offset?: number): number; + /** + * @alias Buffer.readUInt32LE + * @since v14.9.0, v12.19.0 + */ + readUint32LE(offset?: number): number; + /** + * Reads an unsigned, big-endian 32-bit integer from `buf` at the specified`offset`. + * + * This function is also available under the `readUint32BE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0x12, 0x34, 0x56, 0x78]); + * + * console.log(buf.readUInt32BE(0).toString(16)); + * // Prints: 12345678 + * ``` + * @since v0.5.5 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`. + */ + readUInt32BE(offset?: number): number; + /** + * @alias Buffer.readUInt32BE + * @since v14.9.0, v12.19.0 + */ + readUint32BE(offset?: number): number; + /** + * Reads a signed 8-bit integer from `buf` at the specified `offset`. + * + * Integers read from a `Buffer` are interpreted as two's complement signed values. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([-1, 5]); + * + * console.log(buf.readInt8(0)); + * // Prints: -1 + * console.log(buf.readInt8(1)); + * // Prints: 5 + * console.log(buf.readInt8(2)); + * // Throws ERR_OUT_OF_RANGE. + * ``` + * @since v0.5.0 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 1`. + */ + readInt8(offset?: number): number; + /** + * Reads a signed, little-endian 16-bit integer from `buf` at the specified`offset`. + * + * Integers read from a `Buffer` are interpreted as two's complement signed values. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0, 5]); + * + * console.log(buf.readInt16LE(0)); + * // Prints: 1280 + * console.log(buf.readInt16LE(1)); + * // Throws ERR_OUT_OF_RANGE. + * ``` + * @since v0.5.5 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`. + */ + readInt16LE(offset?: number): number; + /** + * Reads a signed, big-endian 16-bit integer from `buf` at the specified `offset`. + * + * Integers read from a `Buffer` are interpreted as two's complement signed values. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0, 5]); + * + * console.log(buf.readInt16BE(0)); + * // Prints: 5 + * ``` + * @since v0.5.5 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 2`. + */ + readInt16BE(offset?: number): number; + /** + * Reads a signed, little-endian 32-bit integer from `buf` at the specified`offset`. + * + * Integers read from a `Buffer` are interpreted as two's complement signed values. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0, 0, 0, 5]); + * + * console.log(buf.readInt32LE(0)); + * // Prints: 83886080 + * console.log(buf.readInt32LE(1)); + * // Throws ERR_OUT_OF_RANGE. + * ``` + * @since v0.5.5 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`. + */ + readInt32LE(offset?: number): number; + /** + * Reads a signed, big-endian 32-bit integer from `buf` at the specified `offset`. + * + * Integers read from a `Buffer` are interpreted as two's complement signed values. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([0, 0, 0, 5]); + * + * console.log(buf.readInt32BE(0)); + * // Prints: 5 + * ``` + * @since v0.5.5 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`. + */ + readInt32BE(offset?: number): number; + /** + * Reads a 32-bit, little-endian float from `buf` at the specified `offset`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([1, 2, 3, 4]); + * + * console.log(buf.readFloatLE(0)); + * // Prints: 1.539989614439558e-36 + * console.log(buf.readFloatLE(1)); + * // Throws ERR_OUT_OF_RANGE. + * ``` + * @since v0.11.15 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`. + */ + readFloatLE(offset?: number): number; + /** + * Reads a 32-bit, big-endian float from `buf` at the specified `offset`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([1, 2, 3, 4]); + * + * console.log(buf.readFloatBE(0)); + * // Prints: 2.387939260590663e-38 + * ``` + * @since v0.11.15 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 4`. + */ + readFloatBE(offset?: number): number; + /** + * Reads a 64-bit, little-endian double from `buf` at the specified `offset`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8]); + * + * console.log(buf.readDoubleLE(0)); + * // Prints: 5.447603722011605e-270 + * console.log(buf.readDoubleLE(1)); + * // Throws ERR_OUT_OF_RANGE. + * ``` + * @since v0.11.15 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 8`. + */ + readDoubleLE(offset?: number): number; + /** + * Reads a 64-bit, big-endian double from `buf` at the specified `offset`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8]); + * + * console.log(buf.readDoubleBE(0)); + * // Prints: 8.20788039913184e-304 + * ``` + * @since v0.11.15 + * @param [offset=0] Number of bytes to skip before starting to read. Must satisfy `0 <= offset <= buf.length - 8`. + */ + readDoubleBE(offset?: number): number; + reverse(): this; + /** + * Interprets `buf` as an array of unsigned 16-bit integers and swaps the + * byte order _in-place_. Throws `ERR_INVALID_BUFFER_SIZE` if `buf.length` is not a multiple of 2. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]); + * + * console.log(buf1); + * // Prints: + * + * buf1.swap16(); + * + * console.log(buf1); + * // Prints: + * + * const buf2 = Buffer.from([0x1, 0x2, 0x3]); + * + * buf2.swap16(); + * // Throws ERR_INVALID_BUFFER_SIZE. + * ``` + * + * One convenient use of `buf.swap16()` is to perform a fast in-place conversion + * between UTF-16 little-endian and UTF-16 big-endian: + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from('This is little-endian UTF-16', 'utf16le'); + * buf.swap16(); // Convert to big-endian UTF-16 text. + * ``` + * @since v5.10.0 + * @return A reference to `buf`. + */ + swap16(): Buffer; + /** + * Interprets `buf` as an array of unsigned 32-bit integers and swaps the + * byte order _in-place_. Throws `ERR_INVALID_BUFFER_SIZE` if `buf.length` is not a multiple of 4. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]); + * + * console.log(buf1); + * // Prints: + * + * buf1.swap32(); + * + * console.log(buf1); + * // Prints: + * + * const buf2 = Buffer.from([0x1, 0x2, 0x3]); + * + * buf2.swap32(); + * // Throws ERR_INVALID_BUFFER_SIZE. + * ``` + * @since v5.10.0 + * @return A reference to `buf`. + */ + swap32(): Buffer; + /** + * Interprets `buf` as an array of 64-bit numbers and swaps byte order _in-place_. + * Throws `ERR_INVALID_BUFFER_SIZE` if `buf.length` is not a multiple of 8. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf1 = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7, 0x8]); + * + * console.log(buf1); + * // Prints: + * + * buf1.swap64(); + * + * console.log(buf1); + * // Prints: + * + * const buf2 = Buffer.from([0x1, 0x2, 0x3]); + * + * buf2.swap64(); + * // Throws ERR_INVALID_BUFFER_SIZE. + * ``` + * @since v6.3.0 + * @return A reference to `buf`. + */ + swap64(): Buffer; + /** + * Writes `value` to `buf` at the specified `offset`. `value` must be a + * valid unsigned 8-bit integer. Behavior is undefined when `value` is anything + * other than an unsigned 8-bit integer. + * + * This function is also available under the `writeUint8` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(4); + * + * buf.writeUInt8(0x3, 0); + * buf.writeUInt8(0x4, 1); + * buf.writeUInt8(0x23, 2); + * buf.writeUInt8(0x42, 3); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.0 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 1`. + * @return `offset` plus the number of bytes written. + */ + writeUInt8(value: number, offset?: number): number; + /** + * @alias Buffer.writeUInt8 + * @since v14.9.0, v12.19.0 + */ + writeUint8(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as little-endian. The `value`must be a valid unsigned 16-bit integer. Behavior is undefined when `value` is + * anything other than an unsigned 16-bit integer. + * + * This function is also available under the `writeUint16LE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(4); + * + * buf.writeUInt16LE(0xdead, 0); + * buf.writeUInt16LE(0xbeef, 2); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.5 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`. + * @return `offset` plus the number of bytes written. + */ + writeUInt16LE(value: number, offset?: number): number; + /** + * @alias Buffer.writeUInt16LE + * @since v14.9.0, v12.19.0 + */ + writeUint16LE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as big-endian. The `value`must be a valid unsigned 16-bit integer. Behavior is undefined when `value`is anything other than an + * unsigned 16-bit integer. + * + * This function is also available under the `writeUint16BE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(4); + * + * buf.writeUInt16BE(0xdead, 0); + * buf.writeUInt16BE(0xbeef, 2); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.5 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`. + * @return `offset` plus the number of bytes written. + */ + writeUInt16BE(value: number, offset?: number): number; + /** + * @alias Buffer.writeUInt16BE + * @since v14.9.0, v12.19.0 + */ + writeUint16BE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as little-endian. The `value`must be a valid unsigned 32-bit integer. Behavior is undefined when `value` is + * anything other than an unsigned 32-bit integer. + * + * This function is also available under the `writeUint32LE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(4); + * + * buf.writeUInt32LE(0xfeedface, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.5 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`. + * @return `offset` plus the number of bytes written. + */ + writeUInt32LE(value: number, offset?: number): number; + /** + * @alias Buffer.writeUInt32LE + * @since v14.9.0, v12.19.0 + */ + writeUint32LE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as big-endian. The `value`must be a valid unsigned 32-bit integer. Behavior is undefined when `value`is anything other than an + * unsigned 32-bit integer. + * + * This function is also available under the `writeUint32BE` alias. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(4); + * + * buf.writeUInt32BE(0xfeedface, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.5 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`. + * @return `offset` plus the number of bytes written. + */ + writeUInt32BE(value: number, offset?: number): number; + /** + * @alias Buffer.writeUInt32BE + * @since v14.9.0, v12.19.0 + */ + writeUint32BE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset`. `value` must be a valid + * signed 8-bit integer. Behavior is undefined when `value` is anything other than + * a signed 8-bit integer. + * + * `value` is interpreted and written as a two's complement signed integer. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(2); + * + * buf.writeInt8(2, 0); + * buf.writeInt8(-2, 1); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.0 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 1`. + * @return `offset` plus the number of bytes written. + */ + writeInt8(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as little-endian. The `value`must be a valid signed 16-bit integer. Behavior is undefined when `value` is + * anything other than a signed 16-bit integer. + * + * The `value` is interpreted and written as a two's complement signed integer. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(2); + * + * buf.writeInt16LE(0x0304, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.5 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`. + * @return `offset` plus the number of bytes written. + */ + writeInt16LE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as big-endian. The `value`must be a valid signed 16-bit integer. Behavior is undefined when `value` is + * anything other than a signed 16-bit integer. + * + * The `value` is interpreted and written as a two's complement signed integer. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(2); + * + * buf.writeInt16BE(0x0102, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.5 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 2`. + * @return `offset` plus the number of bytes written. + */ + writeInt16BE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as little-endian. The `value`must be a valid signed 32-bit integer. Behavior is undefined when `value` is + * anything other than a signed 32-bit integer. + * + * The `value` is interpreted and written as a two's complement signed integer. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(4); + * + * buf.writeInt32LE(0x05060708, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.5 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`. + * @return `offset` plus the number of bytes written. + */ + writeInt32LE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as big-endian. The `value`must be a valid signed 32-bit integer. Behavior is undefined when `value` is + * anything other than a signed 32-bit integer. + * + * The `value` is interpreted and written as a two's complement signed integer. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(4); + * + * buf.writeInt32BE(0x01020304, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.5.5 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`. + * @return `offset` plus the number of bytes written. + */ + writeInt32BE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as little-endian. Behavior is + * undefined when `value` is anything other than a JavaScript number. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(4); + * + * buf.writeFloatLE(0xcafebabe, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.11.15 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`. + * @return `offset` plus the number of bytes written. + */ + writeFloatLE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as big-endian. Behavior is + * undefined when `value` is anything other than a JavaScript number. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(4); + * + * buf.writeFloatBE(0xcafebabe, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.11.15 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 4`. + * @return `offset` plus the number of bytes written. + */ + writeFloatBE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as little-endian. The `value`must be a JavaScript number. Behavior is undefined when `value` is anything + * other than a JavaScript number. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(8); + * + * buf.writeDoubleLE(123.456, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.11.15 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 8`. + * @return `offset` plus the number of bytes written. + */ + writeDoubleLE(value: number, offset?: number): number; + /** + * Writes `value` to `buf` at the specified `offset` as big-endian. The `value`must be a JavaScript number. Behavior is undefined when `value` is anything + * other than a JavaScript number. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(8); + * + * buf.writeDoubleBE(123.456, 0); + * + * console.log(buf); + * // Prints: + * ``` + * @since v0.11.15 + * @param value Number to be written to `buf`. + * @param [offset=0] Number of bytes to skip before starting to write. Must satisfy `0 <= offset <= buf.length - 8`. + * @return `offset` plus the number of bytes written. + */ + writeDoubleBE(value: number, offset?: number): number; + /** + * Fills `buf` with the specified `value`. If the `offset` and `end` are not given, + * the entire `buf` will be filled: + * + * ```js + * import { Buffer } from 'buffer'; + * + * // Fill a `Buffer` with the ASCII character 'h'. + * + * const b = Buffer.allocUnsafe(50).fill('h'); + * + * console.log(b.toString()); + * // Prints: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh + * ``` + * + * `value` is coerced to a `uint32` value if it is not a string, `Buffer`, or + * integer. If the resulting integer is greater than `255` (decimal), `buf` will be + * filled with `value & 255`. + * + * If the final write of a `fill()` operation falls on a multi-byte character, + * then only the bytes of that character that fit into `buf` are written: + * + * ```js + * import { Buffer } from 'buffer'; + * + * // Fill a `Buffer` with character that takes up two bytes in UTF-8. + * + * console.log(Buffer.allocUnsafe(5).fill('\u0222')); + * // Prints: + * ``` + * + * If `value` contains invalid characters, it is truncated; if no valid + * fill data remains, an exception is thrown: + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.allocUnsafe(5); + * + * console.log(buf.fill('a')); + * // Prints: + * console.log(buf.fill('aazz', 'hex')); + * // Prints: + * console.log(buf.fill('zz', 'hex')); + * // Throws an exception. + * ``` + * @since v0.5.0 + * @param value The value with which to fill `buf`. + * @param [offset=0] Number of bytes to skip before starting to fill `buf`. + * @param [end=buf.length] Where to stop filling `buf` (not inclusive). + * @param [encoding='utf8'] The encoding for `value` if `value` is a string. + * @return A reference to `buf`. + */ + fill(value: string | Uint8Array | number, offset?: number, end?: number, encoding?: BufferEncoding): this; + /** + * If `value` is: + * + * * a string, `value` is interpreted according to the character encoding in`encoding`. + * * a `Buffer` or [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array), `value` will be used in its entirety. + * To compare a partial `Buffer`, use `buf.subarray`. + * * a number, `value` will be interpreted as an unsigned 8-bit integer + * value between `0` and `255`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from('this is a buffer'); + * + * console.log(buf.indexOf('this')); + * // Prints: 0 + * console.log(buf.indexOf('is')); + * // Prints: 2 + * console.log(buf.indexOf(Buffer.from('a buffer'))); + * // Prints: 8 + * console.log(buf.indexOf(97)); + * // Prints: 8 (97 is the decimal ASCII value for 'a') + * console.log(buf.indexOf(Buffer.from('a buffer example'))); + * // Prints: -1 + * console.log(buf.indexOf(Buffer.from('a buffer example').slice(0, 8))); + * // Prints: 8 + * + * const utf16Buffer = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'utf16le'); + * + * console.log(utf16Buffer.indexOf('\u03a3', 0, 'utf16le')); + * // Prints: 4 + * console.log(utf16Buffer.indexOf('\u03a3', -4, 'utf16le')); + * // Prints: 6 + * ``` + * + * If `value` is not a string, number, or `Buffer`, this method will throw a`TypeError`. If `value` is a number, it will be coerced to a valid byte value, + * an integer between 0 and 255. + * + * If `byteOffset` is not a number, it will be coerced to a number. If the result + * of coercion is `NaN` or `0`, then the entire buffer will be searched. This + * behavior matches [`String.prototype.indexOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf). + * + * ```js + * import { Buffer } from 'buffer'; + * + * const b = Buffer.from('abcdef'); + * + * // Passing a value that's a number, but not a valid byte. + * // Prints: 2, equivalent to searching for 99 or 'c'. + * console.log(b.indexOf(99.9)); + * console.log(b.indexOf(256 + 99)); + * + * // Passing a byteOffset that coerces to NaN or 0. + * // Prints: 1, searching the whole buffer. + * console.log(b.indexOf('b', undefined)); + * console.log(b.indexOf('b', {})); + * console.log(b.indexOf('b', null)); + * console.log(b.indexOf('b', [])); + * ``` + * + * If `value` is an empty string or empty `Buffer` and `byteOffset` is less + * than `buf.length`, `byteOffset` will be returned. If `value` is empty and`byteOffset` is at least `buf.length`, `buf.length` will be returned. + * @since v1.5.0 + * @param value What to search for. + * @param [byteOffset=0] Where to begin searching in `buf`. If negative, then offset is calculated from the end of `buf`. + * @param [encoding='utf8'] If `value` is a string, this is the encoding used to determine the binary representation of the string that will be searched for in `buf`. + * @return The index of the first occurrence of `value` in `buf`, or `-1` if `buf` does not contain `value`. + */ + indexOf(value: string | number | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number; + /** + * Identical to `buf.indexOf()`, except the last occurrence of `value` is found + * rather than the first occurrence. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from('this buffer is a buffer'); + * + * console.log(buf.lastIndexOf('this')); + * // Prints: 0 + * console.log(buf.lastIndexOf('buffer')); + * // Prints: 17 + * console.log(buf.lastIndexOf(Buffer.from('buffer'))); + * // Prints: 17 + * console.log(buf.lastIndexOf(97)); + * // Prints: 15 (97 is the decimal ASCII value for 'a') + * console.log(buf.lastIndexOf(Buffer.from('yolo'))); + * // Prints: -1 + * console.log(buf.lastIndexOf('buffer', 5)); + * // Prints: 5 + * console.log(buf.lastIndexOf('buffer', 4)); + * // Prints: -1 + * + * const utf16Buffer = Buffer.from('\u039a\u0391\u03a3\u03a3\u0395', 'utf16le'); + * + * console.log(utf16Buffer.lastIndexOf('\u03a3', undefined, 'utf16le')); + * // Prints: 6 + * console.log(utf16Buffer.lastIndexOf('\u03a3', -5, 'utf16le')); + * // Prints: 4 + * ``` + * + * If `value` is not a string, number, or `Buffer`, this method will throw a`TypeError`. If `value` is a number, it will be coerced to a valid byte value, + * an integer between 0 and 255. + * + * If `byteOffset` is not a number, it will be coerced to a number. Any arguments + * that coerce to `NaN`, like `{}` or `undefined`, will search the whole buffer. + * This behavior matches [`String.prototype.lastIndexOf()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf). + * + * ```js + * import { Buffer } from 'buffer'; + * + * const b = Buffer.from('abcdef'); + * + * // Passing a value that's a number, but not a valid byte. + * // Prints: 2, equivalent to searching for 99 or 'c'. + * console.log(b.lastIndexOf(99.9)); + * console.log(b.lastIndexOf(256 + 99)); + * + * // Passing a byteOffset that coerces to NaN. + * // Prints: 1, searching the whole buffer. + * console.log(b.lastIndexOf('b', undefined)); + * console.log(b.lastIndexOf('b', {})); + * + * // Passing a byteOffset that coerces to 0. + * // Prints: -1, equivalent to passing 0. + * console.log(b.lastIndexOf('b', null)); + * console.log(b.lastIndexOf('b', [])); + * ``` + * + * If `value` is an empty string or empty `Buffer`, `byteOffset` will be returned. + * @since v6.0.0 + * @param value What to search for. + * @param [byteOffset=buf.length - 1] Where to begin searching in `buf`. If negative, then offset is calculated from the end of `buf`. + * @param [encoding='utf8'] If `value` is a string, this is the encoding used to determine the binary representation of the string that will be searched for in `buf`. + * @return The index of the last occurrence of `value` in `buf`, or `-1` if `buf` does not contain `value`. + */ + lastIndexOf(value: string | number | Uint8Array, byteOffset?: number, encoding?: BufferEncoding): number; + /** + * Creates and returns an [iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) of `[index, byte]` pairs from the contents + * of `buf`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * // Log the entire contents of a `Buffer`. + * + * const buf = Buffer.from('buffer'); + * + * for (const pair of buf.entries()) { + * console.log(pair); + * } + * // Prints: + * // [0, 98] + * // [1, 117] + * // [2, 102] + * // [3, 102] + * // [4, 101] + * // [5, 114] + * ``` + * @since v1.1.0 + */ + entries(): IterableIterator<[number, number]>; + /** + * Equivalent to `buf.indexOf() !== -1`. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from('this is a buffer'); + * + * console.log(buf.includes('this')); + * // Prints: true + * console.log(buf.includes('is')); + * // Prints: true + * console.log(buf.includes(Buffer.from('a buffer'))); + * // Prints: true + * console.log(buf.includes(97)); + * // Prints: true (97 is the decimal ASCII value for 'a') + * console.log(buf.includes(Buffer.from('a buffer example'))); + * // Prints: false + * console.log(buf.includes(Buffer.from('a buffer example').slice(0, 8))); + * // Prints: true + * console.log(buf.includes('this', 4)); + * // Prints: false + * ``` + * @since v5.3.0 + * @param value What to search for. + * @param [byteOffset=0] Where to begin searching in `buf`. If negative, then offset is calculated from the end of `buf`. + * @param [encoding='utf8'] If `value` is a string, this is its encoding. + * @return `true` if `value` was found in `buf`, `false` otherwise. + */ + includes(value: string | number | Buffer, byteOffset?: number, encoding?: BufferEncoding): boolean; + /** + * Creates and returns an [iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) of `buf` keys (indices). + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from('buffer'); + * + * for (const key of buf.keys()) { + * console.log(key); + * } + * // Prints: + * // 0 + * // 1 + * // 2 + * // 3 + * // 4 + * // 5 + * ``` + * @since v1.1.0 + */ + keys(): IterableIterator; + /** + * Creates and returns an [iterator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols) for `buf` values (bytes). This function is + * called automatically when a `Buffer` is used in a `for..of` statement. + * + * ```js + * import { Buffer } from 'buffer'; + * + * const buf = Buffer.from('buffer'); + * + * for (const value of buf.values()) { + * console.log(value); + * } + * // Prints: + * // 98 + * // 117 + * // 102 + * // 102 + * // 101 + * // 114 + * + * for (const value of buf) { + * console.log(value); + * } + * // Prints: + * // 98 + * // 117 + * // 102 + * // 102 + * // 101 + * // 114 + * ``` + * @since v1.1.0 + */ + values(): IterableIterator; + } + var Buffer: BufferConstructor; + /** + * Decodes a string of Base64-encoded data into bytes, and encodes those bytes + * into a string using Latin-1 (ISO-8859-1). + * + * The `data` may be any JavaScript-value that can be coerced into a string. + * + * **This function is only provided for compatibility with legacy web platform APIs** + * **and should never be used in new code, because they use strings to represent** + * **binary data and predate the introduction of typed arrays in JavaScript.** + * **For code running using Node.js APIs, converting between base64-encoded strings** + * **and binary data should be performed using `Buffer.from(str, 'base64')` and`buf.toString('base64')`.** + * @since v15.13.0, v14.17.0 + * @deprecated Use `Buffer.from(data, 'base64')` instead. + * @param data The Base64-encoded input string. + */ + function atob(data: string): string; + /** + * Decodes a string into bytes using Latin-1 (ISO-8859), and encodes those bytes + * into a string using Base64. + * + * The `data` may be any JavaScript-value that can be coerced into a string. + * + * **This function is only provided for compatibility with legacy web platform APIs** + * **and should never be used in new code, because they use strings to represent** + * **binary data and predate the introduction of typed arrays in JavaScript.** + * **For code running using Node.js APIs, converting between base64-encoded strings** + * **and binary data should be performed using `Buffer.from(str, 'base64')` and`buf.toString('base64')`.** + * @since v15.13.0, v14.17.0 + * @deprecated Use `buf.toString('base64')` instead. + * @param data An ASCII (Latin1) string. + */ + function btoa(data: string): string; + + interface Blob extends __Blob {} + /** + * `Blob` class is a global reference for `require('node:buffer').Blob` + * https://nodejs.org/api/buffer.html#class-blob + * @since v18.0.0 + */ + var Blob: typeof globalThis extends { + onmessage: any; + Blob: infer T; + } + ? T + : typeof NodeBlob; + } +} +declare module 'node:buffer' { + export * from 'buffer'; +} diff --git a/node_modules/@types/node/ts4.8/child_process.d.ts b/node_modules/@types/node/ts4.8/child_process.d.ts new file mode 100644 index 0000000..c537d6d --- /dev/null +++ b/node_modules/@types/node/ts4.8/child_process.d.ts @@ -0,0 +1,1369 @@ +/** + * The `child_process` module provides the ability to spawn subprocesses in + * a manner that is similar, but not identical, to [`popen(3)`](http://man7.org/linux/man-pages/man3/popen.3.html). This capability + * is primarily provided by the {@link spawn} function: + * + * ```js + * const { spawn } = require('child_process'); + * const ls = spawn('ls', ['-lh', '/usr']); + * + * ls.stdout.on('data', (data) => { + * console.log(`stdout: ${data}`); + * }); + * + * ls.stderr.on('data', (data) => { + * console.error(`stderr: ${data}`); + * }); + * + * ls.on('close', (code) => { + * console.log(`child process exited with code ${code}`); + * }); + * ``` + * + * By default, pipes for `stdin`, `stdout`, and `stderr` are established between + * the parent Node.js process and the spawned subprocess. These pipes have + * limited (and platform-specific) capacity. If the subprocess writes to + * stdout in excess of that limit without the output being captured, the + * subprocess blocks waiting for the pipe buffer to accept more data. This is + * identical to the behavior of pipes in the shell. Use the `{ stdio: 'ignore' }`option if the output will not be consumed. + * + * The command lookup is performed using the `options.env.PATH` environment + * variable if `env` is in the `options` object. Otherwise, `process.env.PATH` is + * used. If `options.env` is set without `PATH`, lookup on Unix is performed + * on a default search path search of `/usr/bin:/bin` (see your operating system's + * manual for execvpe/execvp), on Windows the current processes environment + * variable `PATH` is used. + * + * On Windows, environment variables are case-insensitive. Node.js + * lexicographically sorts the `env` keys and uses the first one that + * case-insensitively matches. Only first (in lexicographic order) entry will be + * passed to the subprocess. This might lead to issues on Windows when passing + * objects to the `env` option that have multiple variants of the same key, such as`PATH` and `Path`. + * + * The {@link spawn} method spawns the child process asynchronously, + * without blocking the Node.js event loop. The {@link spawnSync} function provides equivalent functionality in a synchronous manner that blocks + * the event loop until the spawned process either exits or is terminated. + * + * For convenience, the `child_process` module provides a handful of synchronous + * and asynchronous alternatives to {@link spawn} and {@link spawnSync}. Each of these alternatives are implemented on + * top of {@link spawn} or {@link spawnSync}. + * + * * {@link exec}: spawns a shell and runs a command within that + * shell, passing the `stdout` and `stderr` to a callback function when + * complete. + * * {@link execFile}: similar to {@link exec} except + * that it spawns the command directly without first spawning a shell by + * default. + * * {@link fork}: spawns a new Node.js process and invokes a + * specified module with an IPC communication channel established that allows + * sending messages between parent and child. + * * {@link execSync}: a synchronous version of {@link exec} that will block the Node.js event loop. + * * {@link execFileSync}: a synchronous version of {@link execFile} that will block the Node.js event loop. + * + * For certain use cases, such as automating shell scripts, the `synchronous counterparts` may be more convenient. In many cases, however, + * the synchronous methods can have significant impact on performance due to + * stalling the event loop while spawned processes complete. + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/child_process.js) + */ +declare module 'child_process' { + import { ObjectEncodingOptions } from 'node:fs'; + import { EventEmitter, Abortable } from 'node:events'; + import * as net from 'node:net'; + import { Writable, Readable, Stream, Pipe } from 'node:stream'; + import { URL } from 'node:url'; + type Serializable = string | object | number | boolean | bigint; + type SendHandle = net.Socket | net.Server; + /** + * Instances of the `ChildProcess` represent spawned child processes. + * + * Instances of `ChildProcess` are not intended to be created directly. Rather, + * use the {@link spawn}, {@link exec},{@link execFile}, or {@link fork} methods to create + * instances of `ChildProcess`. + * @since v2.2.0 + */ + class ChildProcess extends EventEmitter { + /** + * A `Writable Stream` that represents the child process's `stdin`. + * + * If a child process waits to read all of its input, the child will not continue + * until this stream has been closed via `end()`. + * + * If the child was spawned with `stdio[0]` set to anything other than `'pipe'`, + * then this will be `null`. + * + * `subprocess.stdin` is an alias for `subprocess.stdio[0]`. Both properties will + * refer to the same value. + * + * The `subprocess.stdin` property can be `undefined` if the child process could + * not be successfully spawned. + * @since v0.1.90 + */ + stdin: Writable | null; + /** + * A `Readable Stream` that represents the child process's `stdout`. + * + * If the child was spawned with `stdio[1]` set to anything other than `'pipe'`, + * then this will be `null`. + * + * `subprocess.stdout` is an alias for `subprocess.stdio[1]`. Both properties will + * refer to the same value. + * + * ```js + * const { spawn } = require('child_process'); + * + * const subprocess = spawn('ls'); + * + * subprocess.stdout.on('data', (data) => { + * console.log(`Received chunk ${data}`); + * }); + * ``` + * + * The `subprocess.stdout` property can be `null` if the child process could + * not be successfully spawned. + * @since v0.1.90 + */ + stdout: Readable | null; + /** + * A `Readable Stream` that represents the child process's `stderr`. + * + * If the child was spawned with `stdio[2]` set to anything other than `'pipe'`, + * then this will be `null`. + * + * `subprocess.stderr` is an alias for `subprocess.stdio[2]`. Both properties will + * refer to the same value. + * + * The `subprocess.stderr` property can be `null` if the child process could + * not be successfully spawned. + * @since v0.1.90 + */ + stderr: Readable | null; + /** + * The `subprocess.channel` property is a reference to the child's IPC channel. If + * no IPC channel currently exists, this property is `undefined`. + * @since v7.1.0 + */ + readonly channel?: Pipe | null | undefined; + /** + * A sparse array of pipes to the child process, corresponding with positions in + * the `stdio` option passed to {@link spawn} that have been set + * to the value `'pipe'`. `subprocess.stdio[0]`, `subprocess.stdio[1]`, and`subprocess.stdio[2]` are also available as `subprocess.stdin`,`subprocess.stdout`, and `subprocess.stderr`, + * respectively. + * + * In the following example, only the child's fd `1` (stdout) is configured as a + * pipe, so only the parent's `subprocess.stdio[1]` is a stream, all other values + * in the array are `null`. + * + * ```js + * const assert = require('assert'); + * const fs = require('fs'); + * const child_process = require('child_process'); + * + * const subprocess = child_process.spawn('ls', { + * stdio: [ + * 0, // Use parent's stdin for child. + * 'pipe', // Pipe child's stdout to parent. + * fs.openSync('err.out', 'w'), // Direct child's stderr to a file. + * ] + * }); + * + * assert.strictEqual(subprocess.stdio[0], null); + * assert.strictEqual(subprocess.stdio[0], subprocess.stdin); + * + * assert(subprocess.stdout); + * assert.strictEqual(subprocess.stdio[1], subprocess.stdout); + * + * assert.strictEqual(subprocess.stdio[2], null); + * assert.strictEqual(subprocess.stdio[2], subprocess.stderr); + * ``` + * + * The `subprocess.stdio` property can be `undefined` if the child process could + * not be successfully spawned. + * @since v0.7.10 + */ + readonly stdio: [ + Writable | null, + // stdin + Readable | null, + // stdout + Readable | null, + // stderr + Readable | Writable | null | undefined, + // extra + Readable | Writable | null | undefined // extra + ]; + /** + * The `subprocess.killed` property indicates whether the child process + * successfully received a signal from `subprocess.kill()`. The `killed` property + * does not indicate that the child process has been terminated. + * @since v0.5.10 + */ + readonly killed: boolean; + /** + * Returns the process identifier (PID) of the child process. If the child process + * fails to spawn due to errors, then the value is `undefined` and `error` is + * emitted. + * + * ```js + * const { spawn } = require('child_process'); + * const grep = spawn('grep', ['ssh']); + * + * console.log(`Spawned child pid: ${grep.pid}`); + * grep.stdin.end(); + * ``` + * @since v0.1.90 + */ + readonly pid?: number | undefined; + /** + * The `subprocess.connected` property indicates whether it is still possible to + * send and receive messages from a child process. When `subprocess.connected` is`false`, it is no longer possible to send or receive messages. + * @since v0.7.2 + */ + readonly connected: boolean; + /** + * The `subprocess.exitCode` property indicates the exit code of the child process. + * If the child process is still running, the field will be `null`. + */ + readonly exitCode: number | null; + /** + * The `subprocess.signalCode` property indicates the signal received by + * the child process if any, else `null`. + */ + readonly signalCode: NodeJS.Signals | null; + /** + * The `subprocess.spawnargs` property represents the full list of command-line + * arguments the child process was launched with. + */ + readonly spawnargs: string[]; + /** + * The `subprocess.spawnfile` property indicates the executable file name of + * the child process that is launched. + * + * For {@link fork}, its value will be equal to `process.execPath`. + * For {@link spawn}, its value will be the name of + * the executable file. + * For {@link exec}, its value will be the name of the shell + * in which the child process is launched. + */ + readonly spawnfile: string; + /** + * The `subprocess.kill()` method sends a signal to the child process. If no + * argument is given, the process will be sent the `'SIGTERM'` signal. See [`signal(7)`](http://man7.org/linux/man-pages/man7/signal.7.html) for a list of available signals. This function + * returns `true` if [`kill(2)`](http://man7.org/linux/man-pages/man2/kill.2.html) succeeds, and `false` otherwise. + * + * ```js + * const { spawn } = require('child_process'); + * const grep = spawn('grep', ['ssh']); + * + * grep.on('close', (code, signal) => { + * console.log( + * `child process terminated due to receipt of signal ${signal}`); + * }); + * + * // Send SIGHUP to process. + * grep.kill('SIGHUP'); + * ``` + * + * The `ChildProcess` object may emit an `'error'` event if the signal + * cannot be delivered. Sending a signal to a child process that has already exited + * is not an error but may have unforeseen consequences. Specifically, if the + * process identifier (PID) has been reassigned to another process, the signal will + * be delivered to that process instead which can have unexpected results. + * + * While the function is called `kill`, the signal delivered to the child process + * may not actually terminate the process. + * + * See [`kill(2)`](http://man7.org/linux/man-pages/man2/kill.2.html) for reference. + * + * On Windows, where POSIX signals do not exist, the `signal` argument will be + * ignored, and the process will be killed forcefully and abruptly (similar to`'SIGKILL'`). + * See `Signal Events` for more details. + * + * On Linux, child processes of child processes will not be terminated + * when attempting to kill their parent. This is likely to happen when running a + * new process in a shell or with the use of the `shell` option of `ChildProcess`: + * + * ```js + * 'use strict'; + * const { spawn } = require('child_process'); + * + * const subprocess = spawn( + * 'sh', + * [ + * '-c', + * `node -e "setInterval(() => { + * console.log(process.pid, 'is alive') + * }, 500);"`, + * ], { + * stdio: ['inherit', 'inherit', 'inherit'] + * } + * ); + * + * setTimeout(() => { + * subprocess.kill(); // Does not terminate the Node.js process in the shell. + * }, 2000); + * ``` + * @since v0.1.90 + */ + kill(signal?: NodeJS.Signals | number): boolean; + /** + * When an IPC channel has been established between the parent and child ( + * i.e. when using {@link fork}), the `subprocess.send()` method can + * be used to send messages to the child process. When the child process is a + * Node.js instance, these messages can be received via the `'message'` event. + * + * The message goes through serialization and parsing. The resulting + * message might not be the same as what is originally sent. + * + * For example, in the parent script: + * + * ```js + * const cp = require('child_process'); + * const n = cp.fork(`${__dirname}/sub.js`); + * + * n.on('message', (m) => { + * console.log('PARENT got message:', m); + * }); + * + * // Causes the child to print: CHILD got message: { hello: 'world' } + * n.send({ hello: 'world' }); + * ``` + * + * And then the child script, `'sub.js'` might look like this: + * + * ```js + * process.on('message', (m) => { + * console.log('CHILD got message:', m); + * }); + * + * // Causes the parent to print: PARENT got message: { foo: 'bar', baz: null } + * process.send({ foo: 'bar', baz: NaN }); + * ``` + * + * Child Node.js processes will have a `process.send()` method of their own + * that allows the child to send messages back to the parent. + * + * There is a special case when sending a `{cmd: 'NODE_foo'}` message. Messages + * containing a `NODE_` prefix in the `cmd` property are reserved for use within + * Node.js core and will not be emitted in the child's `'message'` event. Rather, such messages are emitted using the`'internalMessage'` event and are consumed internally by Node.js. + * Applications should avoid using such messages or listening for`'internalMessage'` events as it is subject to change without notice. + * + * The optional `sendHandle` argument that may be passed to `subprocess.send()` is + * for passing a TCP server or socket object to the child process. The child will + * receive the object as the second argument passed to the callback function + * registered on the `'message'` event. Any data that is received + * and buffered in the socket will not be sent to the child. + * + * The optional `callback` is a function that is invoked after the message is + * sent but before the child may have received it. The function is called with a + * single argument: `null` on success, or an `Error` object on failure. + * + * If no `callback` function is provided and the message cannot be sent, an`'error'` event will be emitted by the `ChildProcess` object. This can + * happen, for instance, when the child process has already exited. + * + * `subprocess.send()` will return `false` if the channel has closed or when the + * backlog of unsent messages exceeds a threshold that makes it unwise to send + * more. Otherwise, the method returns `true`. The `callback` function can be + * used to implement flow control. + * + * #### Example: sending a server object + * + * The `sendHandle` argument can be used, for instance, to pass the handle of + * a TCP server object to the child process as illustrated in the example below: + * + * ```js + * const subprocess = require('child_process').fork('subprocess.js'); + * + * // Open up the server object and send the handle. + * const server = require('net').createServer(); + * server.on('connection', (socket) => { + * socket.end('handled by parent'); + * }); + * server.listen(1337, () => { + * subprocess.send('server', server); + * }); + * ``` + * + * The child would then receive the server object as: + * + * ```js + * process.on('message', (m, server) => { + * if (m === 'server') { + * server.on('connection', (socket) => { + * socket.end('handled by child'); + * }); + * } + * }); + * ``` + * + * Once the server is now shared between the parent and child, some connections + * can be handled by the parent and some by the child. + * + * While the example above uses a server created using the `net` module, `dgram`module servers use exactly the same workflow with the exceptions of listening on + * a `'message'` event instead of `'connection'` and using `server.bind()` instead + * of `server.listen()`. This is, however, currently only supported on Unix + * platforms. + * + * #### Example: sending a socket object + * + * Similarly, the `sendHandler` argument can be used to pass the handle of a + * socket to the child process. The example below spawns two children that each + * handle connections with "normal" or "special" priority: + * + * ```js + * const { fork } = require('child_process'); + * const normal = fork('subprocess.js', ['normal']); + * const special = fork('subprocess.js', ['special']); + * + * // Open up the server and send sockets to child. Use pauseOnConnect to prevent + * // the sockets from being read before they are sent to the child process. + * const server = require('net').createServer({ pauseOnConnect: true }); + * server.on('connection', (socket) => { + * + * // If this is special priority... + * if (socket.remoteAddress === '74.125.127.100') { + * special.send('socket', socket); + * return; + * } + * // This is normal priority. + * normal.send('socket', socket); + * }); + * server.listen(1337); + * ``` + * + * The `subprocess.js` would receive the socket handle as the second argument + * passed to the event callback function: + * + * ```js + * process.on('message', (m, socket) => { + * if (m === 'socket') { + * if (socket) { + * // Check that the client socket exists. + * // It is possible for the socket to be closed between the time it is + * // sent and the time it is received in the child process. + * socket.end(`Request handled with ${process.argv[2]} priority`); + * } + * } + * }); + * ``` + * + * Do not use `.maxConnections` on a socket that has been passed to a subprocess. + * The parent cannot track when the socket is destroyed. + * + * Any `'message'` handlers in the subprocess should verify that `socket` exists, + * as the connection may have been closed during the time it takes to send the + * connection to the child. + * @since v0.5.9 + * @param options The `options` argument, if present, is an object used to parameterize the sending of certain types of handles. `options` supports the following properties: + */ + send(message: Serializable, callback?: (error: Error | null) => void): boolean; + send(message: Serializable, sendHandle?: SendHandle, callback?: (error: Error | null) => void): boolean; + send(message: Serializable, sendHandle?: SendHandle, options?: MessageOptions, callback?: (error: Error | null) => void): boolean; + /** + * Closes the IPC channel between parent and child, allowing the child to exit + * gracefully once there are no other connections keeping it alive. After calling + * this method the `subprocess.connected` and `process.connected` properties in + * both the parent and child (respectively) will be set to `false`, and it will be + * no longer possible to pass messages between the processes. + * + * The `'disconnect'` event will be emitted when there are no messages in the + * process of being received. This will most often be triggered immediately after + * calling `subprocess.disconnect()`. + * + * When the child process is a Node.js instance (e.g. spawned using {@link fork}), the `process.disconnect()` method can be invoked + * within the child process to close the IPC channel as well. + * @since v0.7.2 + */ + disconnect(): void; + /** + * By default, the parent will wait for the detached child to exit. To prevent the + * parent from waiting for a given `subprocess` to exit, use the`subprocess.unref()` method. Doing so will cause the parent's event loop to not + * include the child in its reference count, allowing the parent to exit + * independently of the child, unless there is an established IPC channel between + * the child and the parent. + * + * ```js + * const { spawn } = require('child_process'); + * + * const subprocess = spawn(process.argv[0], ['child_program.js'], { + * detached: true, + * stdio: 'ignore' + * }); + * + * subprocess.unref(); + * ``` + * @since v0.7.10 + */ + unref(): void; + /** + * Calling `subprocess.ref()` after making a call to `subprocess.unref()` will + * restore the removed reference count for the child process, forcing the parent + * to wait for the child to exit before exiting itself. + * + * ```js + * const { spawn } = require('child_process'); + * + * const subprocess = spawn(process.argv[0], ['child_program.js'], { + * detached: true, + * stdio: 'ignore' + * }); + * + * subprocess.unref(); + * subprocess.ref(); + * ``` + * @since v0.7.10 + */ + ref(): void; + /** + * events.EventEmitter + * 1. close + * 2. disconnect + * 3. error + * 4. exit + * 5. message + * 6. spawn + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + addListener(event: 'disconnect', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + addListener(event: 'message', listener: (message: Serializable, sendHandle: SendHandle) => void): this; + addListener(event: 'spawn', listener: () => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'close', code: number | null, signal: NodeJS.Signals | null): boolean; + emit(event: 'disconnect'): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'exit', code: number | null, signal: NodeJS.Signals | null): boolean; + emit(event: 'message', message: Serializable, sendHandle: SendHandle): boolean; + emit(event: 'spawn', listener: () => void): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + on(event: 'disconnect', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + on(event: 'message', listener: (message: Serializable, sendHandle: SendHandle) => void): this; + on(event: 'spawn', listener: () => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + once(event: 'disconnect', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + once(event: 'message', listener: (message: Serializable, sendHandle: SendHandle) => void): this; + once(event: 'spawn', listener: () => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + prependListener(event: 'disconnect', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + prependListener(event: 'message', listener: (message: Serializable, sendHandle: SendHandle) => void): this; + prependListener(event: 'spawn', listener: () => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + prependOnceListener(event: 'disconnect', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'exit', listener: (code: number | null, signal: NodeJS.Signals | null) => void): this; + prependOnceListener(event: 'message', listener: (message: Serializable, sendHandle: SendHandle) => void): this; + prependOnceListener(event: 'spawn', listener: () => void): this; + } + // return this object when stdio option is undefined or not specified + interface ChildProcessWithoutNullStreams extends ChildProcess { + stdin: Writable; + stdout: Readable; + stderr: Readable; + readonly stdio: [ + Writable, + Readable, + Readable, + // stderr + Readable | Writable | null | undefined, + // extra, no modification + Readable | Writable | null | undefined // extra, no modification + ]; + } + // return this object when stdio option is a tuple of 3 + interface ChildProcessByStdio extends ChildProcess { + stdin: I; + stdout: O; + stderr: E; + readonly stdio: [ + I, + O, + E, + Readable | Writable | null | undefined, + // extra, no modification + Readable | Writable | null | undefined // extra, no modification + ]; + } + interface MessageOptions { + keepOpen?: boolean | undefined; + } + type IOType = 'overlapped' | 'pipe' | 'ignore' | 'inherit'; + type StdioOptions = IOType | Array; + type SerializationType = 'json' | 'advanced'; + interface MessagingOptions extends Abortable { + /** + * Specify the kind of serialization used for sending messages between processes. + * @default 'json' + */ + serialization?: SerializationType | undefined; + /** + * The signal value to be used when the spawned process will be killed by the abort signal. + * @default 'SIGTERM' + */ + killSignal?: NodeJS.Signals | number | undefined; + /** + * In milliseconds the maximum amount of time the process is allowed to run. + */ + timeout?: number | undefined; + } + interface ProcessEnvOptions { + uid?: number | undefined; + gid?: number | undefined; + cwd?: string | URL | undefined; + env?: NodeJS.ProcessEnv | undefined; + } + interface CommonOptions extends ProcessEnvOptions { + /** + * @default false + */ + windowsHide?: boolean | undefined; + /** + * @default 0 + */ + timeout?: number | undefined; + } + interface CommonSpawnOptions extends CommonOptions, MessagingOptions, Abortable { + argv0?: string | undefined; + stdio?: StdioOptions | undefined; + shell?: boolean | string | undefined; + windowsVerbatimArguments?: boolean | undefined; + } + interface SpawnOptions extends CommonSpawnOptions { + detached?: boolean | undefined; + } + interface SpawnOptionsWithoutStdio extends SpawnOptions { + stdio?: StdioPipeNamed | StdioPipe[] | undefined; + } + type StdioNull = 'inherit' | 'ignore' | Stream; + type StdioPipeNamed = 'pipe' | 'overlapped'; + type StdioPipe = undefined | null | StdioPipeNamed; + interface SpawnOptionsWithStdioTuple extends SpawnOptions { + stdio: [Stdin, Stdout, Stderr]; + } + /** + * The `child_process.spawn()` method spawns a new process using the given`command`, with command-line arguments in `args`. If omitted, `args` defaults + * to an empty array. + * + * **If the `shell` option is enabled, do not pass unsanitized user input to this** + * **function. Any input containing shell metacharacters may be used to trigger** + * **arbitrary command execution.** + * + * A third argument may be used to specify additional options, with these defaults: + * + * ```js + * const defaults = { + * cwd: undefined, + * env: process.env + * }; + * ``` + * + * Use `cwd` to specify the working directory from which the process is spawned. + * If not given, the default is to inherit the current working directory. If given, + * but the path does not exist, the child process emits an `ENOENT` error + * and exits immediately. `ENOENT` is also emitted when the command + * does not exist. + * + * Use `env` to specify environment variables that will be visible to the new + * process, the default is `process.env`. + * + * `undefined` values in `env` will be ignored. + * + * Example of running `ls -lh /usr`, capturing `stdout`, `stderr`, and the + * exit code: + * + * ```js + * const { spawn } = require('child_process'); + * const ls = spawn('ls', ['-lh', '/usr']); + * + * ls.stdout.on('data', (data) => { + * console.log(`stdout: ${data}`); + * }); + * + * ls.stderr.on('data', (data) => { + * console.error(`stderr: ${data}`); + * }); + * + * ls.on('close', (code) => { + * console.log(`child process exited with code ${code}`); + * }); + * ``` + * + * Example: A very elaborate way to run `ps ax | grep ssh` + * + * ```js + * const { spawn } = require('child_process'); + * const ps = spawn('ps', ['ax']); + * const grep = spawn('grep', ['ssh']); + * + * ps.stdout.on('data', (data) => { + * grep.stdin.write(data); + * }); + * + * ps.stderr.on('data', (data) => { + * console.error(`ps stderr: ${data}`); + * }); + * + * ps.on('close', (code) => { + * if (code !== 0) { + * console.log(`ps process exited with code ${code}`); + * } + * grep.stdin.end(); + * }); + * + * grep.stdout.on('data', (data) => { + * console.log(data.toString()); + * }); + * + * grep.stderr.on('data', (data) => { + * console.error(`grep stderr: ${data}`); + * }); + * + * grep.on('close', (code) => { + * if (code !== 0) { + * console.log(`grep process exited with code ${code}`); + * } + * }); + * ``` + * + * Example of checking for failed `spawn`: + * + * ```js + * const { spawn } = require('child_process'); + * const subprocess = spawn('bad_command'); + * + * subprocess.on('error', (err) => { + * console.error('Failed to start subprocess.'); + * }); + * ``` + * + * Certain platforms (macOS, Linux) will use the value of `argv[0]` for the process + * title while others (Windows, SunOS) will use `command`. + * + * Node.js currently overwrites `argv[0]` with `process.execPath` on startup, so`process.argv[0]` in a Node.js child process will not match the `argv0`parameter passed to `spawn` from the parent, + * retrieve it with the`process.argv0` property instead. + * + * If the `signal` option is enabled, calling `.abort()` on the corresponding`AbortController` is similar to calling `.kill()` on the child process except + * the error passed to the callback will be an `AbortError`: + * + * ```js + * const { spawn } = require('child_process'); + * const controller = new AbortController(); + * const { signal } = controller; + * const grep = spawn('grep', ['ssh'], { signal }); + * grep.on('error', (err) => { + * // This will be called with err being an AbortError if the controller aborts + * }); + * controller.abort(); // Stops the child process + * ``` + * @since v0.1.90 + * @param command The command to run. + * @param args List of string arguments. + */ + function spawn(command: string, options?: SpawnOptionsWithoutStdio): ChildProcessWithoutNullStreams; + function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, options: SpawnOptions): ChildProcess; + // overloads of spawn with 'args' + function spawn(command: string, args?: ReadonlyArray, options?: SpawnOptionsWithoutStdio): ChildProcessWithoutNullStreams; + function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, args: ReadonlyArray, options: SpawnOptionsWithStdioTuple): ChildProcessByStdio; + function spawn(command: string, args: ReadonlyArray, options: SpawnOptions): ChildProcess; + interface ExecOptions extends CommonOptions { + shell?: string | undefined; + signal?: AbortSignal | undefined; + maxBuffer?: number | undefined; + killSignal?: NodeJS.Signals | number | undefined; + } + interface ExecOptionsWithStringEncoding extends ExecOptions { + encoding: BufferEncoding; + } + interface ExecOptionsWithBufferEncoding extends ExecOptions { + encoding: BufferEncoding | null; // specify `null`. + } + interface ExecException extends Error { + cmd?: string | undefined; + killed?: boolean | undefined; + code?: number | undefined; + signal?: NodeJS.Signals | undefined; + } + /** + * Spawns a shell then executes the `command` within that shell, buffering any + * generated output. The `command` string passed to the exec function is processed + * directly by the shell and special characters (vary based on [shell](https://en.wikipedia.org/wiki/List_of_command-line_interpreters)) + * need to be dealt with accordingly: + * + * ```js + * const { exec } = require('child_process'); + * + * exec('"/path/to/test file/test.sh" arg1 arg2'); + * // Double quotes are used so that the space in the path is not interpreted as + * // a delimiter of multiple arguments. + * + * exec('echo "The \\$HOME variable is $HOME"'); + * // The $HOME variable is escaped in the first instance, but not in the second. + * ``` + * + * **Never pass unsanitized user input to this function. Any input containing shell** + * **metacharacters may be used to trigger arbitrary command execution.** + * + * If a `callback` function is provided, it is called with the arguments`(error, stdout, stderr)`. On success, `error` will be `null`. On error,`error` will be an instance of `Error`. The + * `error.code` property will be + * the exit code of the process. By convention, any exit code other than `0`indicates an error. `error.signal` will be the signal that terminated the + * process. + * + * The `stdout` and `stderr` arguments passed to the callback will contain the + * stdout and stderr output of the child process. By default, Node.js will decode + * the output as UTF-8 and pass strings to the callback. The `encoding` option + * can be used to specify the character encoding used to decode the stdout and + * stderr output. If `encoding` is `'buffer'`, or an unrecognized character + * encoding, `Buffer` objects will be passed to the callback instead. + * + * ```js + * const { exec } = require('child_process'); + * exec('cat *.js missing_file | wc -l', (error, stdout, stderr) => { + * if (error) { + * console.error(`exec error: ${error}`); + * return; + * } + * console.log(`stdout: ${stdout}`); + * console.error(`stderr: ${stderr}`); + * }); + * ``` + * + * If `timeout` is greater than `0`, the parent will send the signal + * identified by the `killSignal` property (the default is `'SIGTERM'`) if the + * child runs longer than `timeout` milliseconds. + * + * Unlike the [`exec(3)`](http://man7.org/linux/man-pages/man3/exec.3.html) POSIX system call, `child_process.exec()` does not replace + * the existing process and uses a shell to execute the command. + * + * If this method is invoked as its `util.promisify()` ed version, it returns + * a `Promise` for an `Object` with `stdout` and `stderr` properties. The returned`ChildProcess` instance is attached to the `Promise` as a `child` property. In + * case of an error (including any error resulting in an exit code other than 0), a + * rejected promise is returned, with the same `error` object given in the + * callback, but with two additional properties `stdout` and `stderr`. + * + * ```js + * const util = require('util'); + * const exec = util.promisify(require('child_process').exec); + * + * async function lsExample() { + * const { stdout, stderr } = await exec('ls'); + * console.log('stdout:', stdout); + * console.error('stderr:', stderr); + * } + * lsExample(); + * ``` + * + * If the `signal` option is enabled, calling `.abort()` on the corresponding`AbortController` is similar to calling `.kill()` on the child process except + * the error passed to the callback will be an `AbortError`: + * + * ```js + * const { exec } = require('child_process'); + * const controller = new AbortController(); + * const { signal } = controller; + * const child = exec('grep ssh', { signal }, (error) => { + * console.log(error); // an AbortError + * }); + * controller.abort(); + * ``` + * @since v0.1.90 + * @param command The command to run, with space-separated arguments. + * @param callback called with the output when process terminates. + */ + function exec(command: string, callback?: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; + // `options` with `"buffer"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`. + function exec( + command: string, + options: { + encoding: 'buffer' | null; + } & ExecOptions, + callback?: (error: ExecException | null, stdout: Buffer, stderr: Buffer) => void + ): ChildProcess; + // `options` with well known `encoding` means stdout/stderr are definitely `string`. + function exec( + command: string, + options: { + encoding: BufferEncoding; + } & ExecOptions, + callback?: (error: ExecException | null, stdout: string, stderr: string) => void + ): ChildProcess; + // `options` with an `encoding` whose type is `string` means stdout/stderr could either be `Buffer` or `string`. + // There is no guarantee the `encoding` is unknown as `string` is a superset of `BufferEncoding`. + function exec( + command: string, + options: { + encoding: BufferEncoding; + } & ExecOptions, + callback?: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void + ): ChildProcess; + // `options` without an `encoding` means stdout/stderr are definitely `string`. + function exec(command: string, options: ExecOptions, callback?: (error: ExecException | null, stdout: string, stderr: string) => void): ChildProcess; + // fallback if nothing else matches. Worst case is always `string | Buffer`. + function exec( + command: string, + options: (ObjectEncodingOptions & ExecOptions) | undefined | null, + callback?: (error: ExecException | null, stdout: string | Buffer, stderr: string | Buffer) => void + ): ChildProcess; + interface PromiseWithChild extends Promise { + child: ChildProcess; + } + namespace exec { + function __promisify__(command: string): PromiseWithChild<{ + stdout: string; + stderr: string; + }>; + function __promisify__( + command: string, + options: { + encoding: 'buffer' | null; + } & ExecOptions + ): PromiseWithChild<{ + stdout: Buffer; + stderr: Buffer; + }>; + function __promisify__( + command: string, + options: { + encoding: BufferEncoding; + } & ExecOptions + ): PromiseWithChild<{ + stdout: string; + stderr: string; + }>; + function __promisify__( + command: string, + options: ExecOptions + ): PromiseWithChild<{ + stdout: string; + stderr: string; + }>; + function __promisify__( + command: string, + options?: (ObjectEncodingOptions & ExecOptions) | null + ): PromiseWithChild<{ + stdout: string | Buffer; + stderr: string | Buffer; + }>; + } + interface ExecFileOptions extends CommonOptions, Abortable { + maxBuffer?: number | undefined; + killSignal?: NodeJS.Signals | number | undefined; + windowsVerbatimArguments?: boolean | undefined; + shell?: boolean | string | undefined; + signal?: AbortSignal | undefined; + } + interface ExecFileOptionsWithStringEncoding extends ExecFileOptions { + encoding: BufferEncoding; + } + interface ExecFileOptionsWithBufferEncoding extends ExecFileOptions { + encoding: 'buffer' | null; + } + interface ExecFileOptionsWithOtherEncoding extends ExecFileOptions { + encoding: BufferEncoding; + } + type ExecFileException = ExecException & NodeJS.ErrnoException; + /** + * The `child_process.execFile()` function is similar to {@link exec} except that it does not spawn a shell by default. Rather, the specified + * executable `file` is spawned directly as a new process making it slightly more + * efficient than {@link exec}. + * + * The same options as {@link exec} are supported. Since a shell is + * not spawned, behaviors such as I/O redirection and file globbing are not + * supported. + * + * ```js + * const { execFile } = require('child_process'); + * const child = execFile('node', ['--version'], (error, stdout, stderr) => { + * if (error) { + * throw error; + * } + * console.log(stdout); + * }); + * ``` + * + * The `stdout` and `stderr` arguments passed to the callback will contain the + * stdout and stderr output of the child process. By default, Node.js will decode + * the output as UTF-8 and pass strings to the callback. The `encoding` option + * can be used to specify the character encoding used to decode the stdout and + * stderr output. If `encoding` is `'buffer'`, or an unrecognized character + * encoding, `Buffer` objects will be passed to the callback instead. + * + * If this method is invoked as its `util.promisify()` ed version, it returns + * a `Promise` for an `Object` with `stdout` and `stderr` properties. The returned`ChildProcess` instance is attached to the `Promise` as a `child` property. In + * case of an error (including any error resulting in an exit code other than 0), a + * rejected promise is returned, with the same `error` object given in the + * callback, but with two additional properties `stdout` and `stderr`. + * + * ```js + * const util = require('util'); + * const execFile = util.promisify(require('child_process').execFile); + * async function getVersion() { + * const { stdout } = await execFile('node', ['--version']); + * console.log(stdout); + * } + * getVersion(); + * ``` + * + * **If the `shell` option is enabled, do not pass unsanitized user input to this** + * **function. Any input containing shell metacharacters may be used to trigger** + * **arbitrary command execution.** + * + * If the `signal` option is enabled, calling `.abort()` on the corresponding`AbortController` is similar to calling `.kill()` on the child process except + * the error passed to the callback will be an `AbortError`: + * + * ```js + * const { execFile } = require('child_process'); + * const controller = new AbortController(); + * const { signal } = controller; + * const child = execFile('node', ['--version'], { signal }, (error) => { + * console.log(error); // an AbortError + * }); + * controller.abort(); + * ``` + * @since v0.1.91 + * @param file The name or path of the executable file to run. + * @param args List of string arguments. + * @param callback Called with the output when process terminates. + */ + function execFile(file: string): ChildProcess; + function execFile(file: string, options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null): ChildProcess; + function execFile(file: string, args?: ReadonlyArray | null): ChildProcess; + function execFile(file: string, args: ReadonlyArray | undefined | null, options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null): ChildProcess; + // no `options` definitely means stdout/stderr are `string`. + function execFile(file: string, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess; + function execFile(file: string, args: ReadonlyArray | undefined | null, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess; + // `options` with `"buffer"` or `null` for `encoding` means stdout/stderr are definitely `Buffer`. + function execFile(file: string, options: ExecFileOptionsWithBufferEncoding, callback: (error: ExecFileException | null, stdout: Buffer, stderr: Buffer) => void): ChildProcess; + function execFile( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptionsWithBufferEncoding, + callback: (error: ExecFileException | null, stdout: Buffer, stderr: Buffer) => void + ): ChildProcess; + // `options` with well known `encoding` means stdout/stderr are definitely `string`. + function execFile(file: string, options: ExecFileOptionsWithStringEncoding, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess; + function execFile( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptionsWithStringEncoding, + callback: (error: ExecFileException | null, stdout: string, stderr: string) => void + ): ChildProcess; + // `options` with an `encoding` whose type is `string` means stdout/stderr could either be `Buffer` or `string`. + // There is no guarantee the `encoding` is unknown as `string` is a superset of `BufferEncoding`. + function execFile(file: string, options: ExecFileOptionsWithOtherEncoding, callback: (error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void): ChildProcess; + function execFile( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptionsWithOtherEncoding, + callback: (error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void + ): ChildProcess; + // `options` without an `encoding` means stdout/stderr are definitely `string`. + function execFile(file: string, options: ExecFileOptions, callback: (error: ExecFileException | null, stdout: string, stderr: string) => void): ChildProcess; + function execFile( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptions, + callback: (error: ExecFileException | null, stdout: string, stderr: string) => void + ): ChildProcess; + // fallback if nothing else matches. Worst case is always `string | Buffer`. + function execFile( + file: string, + options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null, + callback: ((error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void) | undefined | null + ): ChildProcess; + function execFile( + file: string, + args: ReadonlyArray | undefined | null, + options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null, + callback: ((error: ExecFileException | null, stdout: string | Buffer, stderr: string | Buffer) => void) | undefined | null + ): ChildProcess; + namespace execFile { + function __promisify__(file: string): PromiseWithChild<{ + stdout: string; + stderr: string; + }>; + function __promisify__( + file: string, + args: ReadonlyArray | undefined | null + ): PromiseWithChild<{ + stdout: string; + stderr: string; + }>; + function __promisify__( + file: string, + options: ExecFileOptionsWithBufferEncoding + ): PromiseWithChild<{ + stdout: Buffer; + stderr: Buffer; + }>; + function __promisify__( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptionsWithBufferEncoding + ): PromiseWithChild<{ + stdout: Buffer; + stderr: Buffer; + }>; + function __promisify__( + file: string, + options: ExecFileOptionsWithStringEncoding + ): PromiseWithChild<{ + stdout: string; + stderr: string; + }>; + function __promisify__( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptionsWithStringEncoding + ): PromiseWithChild<{ + stdout: string; + stderr: string; + }>; + function __promisify__( + file: string, + options: ExecFileOptionsWithOtherEncoding + ): PromiseWithChild<{ + stdout: string | Buffer; + stderr: string | Buffer; + }>; + function __promisify__( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptionsWithOtherEncoding + ): PromiseWithChild<{ + stdout: string | Buffer; + stderr: string | Buffer; + }>; + function __promisify__( + file: string, + options: ExecFileOptions + ): PromiseWithChild<{ + stdout: string; + stderr: string; + }>; + function __promisify__( + file: string, + args: ReadonlyArray | undefined | null, + options: ExecFileOptions + ): PromiseWithChild<{ + stdout: string; + stderr: string; + }>; + function __promisify__( + file: string, + options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null + ): PromiseWithChild<{ + stdout: string | Buffer; + stderr: string | Buffer; + }>; + function __promisify__( + file: string, + args: ReadonlyArray | undefined | null, + options: (ObjectEncodingOptions & ExecFileOptions) | undefined | null + ): PromiseWithChild<{ + stdout: string | Buffer; + stderr: string | Buffer; + }>; + } + interface ForkOptions extends ProcessEnvOptions, MessagingOptions, Abortable { + execPath?: string | undefined; + execArgv?: string[] | undefined; + silent?: boolean | undefined; + stdio?: StdioOptions | undefined; + detached?: boolean | undefined; + windowsVerbatimArguments?: boolean | undefined; + } + /** + * The `child_process.fork()` method is a special case of {@link spawn} used specifically to spawn new Node.js processes. + * Like {@link spawn}, a `ChildProcess` object is returned. The + * returned `ChildProcess` will have an additional communication channel + * built-in that allows messages to be passed back and forth between the parent and + * child. See `subprocess.send()` for details. + * + * Keep in mind that spawned Node.js child processes are + * independent of the parent with exception of the IPC communication channel + * that is established between the two. Each process has its own memory, with + * their own V8 instances. Because of the additional resource allocations + * required, spawning a large number of child Node.js processes is not + * recommended. + * + * By default, `child_process.fork()` will spawn new Node.js instances using the `process.execPath` of the parent process. The `execPath` property in the`options` object allows for an alternative + * execution path to be used. + * + * Node.js processes launched with a custom `execPath` will communicate with the + * parent process using the file descriptor (fd) identified using the + * environment variable `NODE_CHANNEL_FD` on the child process. + * + * Unlike the [`fork(2)`](http://man7.org/linux/man-pages/man2/fork.2.html) POSIX system call, `child_process.fork()` does not clone the + * current process. + * + * The `shell` option available in {@link spawn} is not supported by`child_process.fork()` and will be ignored if set. + * + * If the `signal` option is enabled, calling `.abort()` on the corresponding`AbortController` is similar to calling `.kill()` on the child process except + * the error passed to the callback will be an `AbortError`: + * + * ```js + * if (process.argv[2] === 'child') { + * setTimeout(() => { + * console.log(`Hello from ${process.argv[2]}!`); + * }, 1_000); + * } else { + * const { fork } = require('child_process'); + * const controller = new AbortController(); + * const { signal } = controller; + * const child = fork(__filename, ['child'], { signal }); + * child.on('error', (err) => { + * // This will be called with err being an AbortError if the controller aborts + * }); + * controller.abort(); // Stops the child process + * } + * ``` + * @since v0.5.0 + * @param modulePath The module to run in the child. + * @param args List of string arguments. + */ + function fork(modulePath: string, options?: ForkOptions): ChildProcess; + function fork(modulePath: string, args?: ReadonlyArray, options?: ForkOptions): ChildProcess; + interface SpawnSyncOptions extends CommonSpawnOptions { + input?: string | NodeJS.ArrayBufferView | undefined; + maxBuffer?: number | undefined; + encoding?: BufferEncoding | 'buffer' | null | undefined; + } + interface SpawnSyncOptionsWithStringEncoding extends SpawnSyncOptions { + encoding: BufferEncoding; + } + interface SpawnSyncOptionsWithBufferEncoding extends SpawnSyncOptions { + encoding?: 'buffer' | null | undefined; + } + interface SpawnSyncReturns { + pid: number; + output: Array; + stdout: T; + stderr: T; + status: number | null; + signal: NodeJS.Signals | null; + error?: Error | undefined; + } + /** + * The `child_process.spawnSync()` method is generally identical to {@link spawn} with the exception that the function will not return + * until the child process has fully closed. When a timeout has been encountered + * and `killSignal` is sent, the method won't return until the process has + * completely exited. If the process intercepts and handles the `SIGTERM` signal + * and doesn't exit, the parent process will wait until the child process has + * exited. + * + * **If the `shell` option is enabled, do not pass unsanitized user input to this** + * **function. Any input containing shell metacharacters may be used to trigger** + * **arbitrary command execution.** + * @since v0.11.12 + * @param command The command to run. + * @param args List of string arguments. + */ + function spawnSync(command: string): SpawnSyncReturns; + function spawnSync(command: string, options: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns; + function spawnSync(command: string, options: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns; + function spawnSync(command: string, options?: SpawnSyncOptions): SpawnSyncReturns; + function spawnSync(command: string, args: ReadonlyArray): SpawnSyncReturns; + function spawnSync(command: string, args: ReadonlyArray, options: SpawnSyncOptionsWithStringEncoding): SpawnSyncReturns; + function spawnSync(command: string, args: ReadonlyArray, options: SpawnSyncOptionsWithBufferEncoding): SpawnSyncReturns; + function spawnSync(command: string, args?: ReadonlyArray, options?: SpawnSyncOptions): SpawnSyncReturns; + interface CommonExecOptions extends CommonOptions { + input?: string | NodeJS.ArrayBufferView | undefined; + stdio?: StdioOptions | undefined; + killSignal?: NodeJS.Signals | number | undefined; + maxBuffer?: number | undefined; + encoding?: BufferEncoding | 'buffer' | null | undefined; + } + interface ExecSyncOptions extends CommonExecOptions { + shell?: string | undefined; + } + interface ExecSyncOptionsWithStringEncoding extends ExecSyncOptions { + encoding: BufferEncoding; + } + interface ExecSyncOptionsWithBufferEncoding extends ExecSyncOptions { + encoding?: 'buffer' | null | undefined; + } + /** + * The `child_process.execSync()` method is generally identical to {@link exec} with the exception that the method will not return + * until the child process has fully closed. When a timeout has been encountered + * and `killSignal` is sent, the method won't return until the process has + * completely exited. If the child process intercepts and handles the `SIGTERM`signal and doesn't exit, the parent process will wait until the child process + * has exited. + * + * If the process times out or has a non-zero exit code, this method will throw. + * The `Error` object will contain the entire result from {@link spawnSync}. + * + * **Never pass unsanitized user input to this function. Any input containing shell** + * **metacharacters may be used to trigger arbitrary command execution.** + * @since v0.11.12 + * @param command The command to run. + * @return The stdout from the command. + */ + function execSync(command: string): Buffer; + function execSync(command: string, options: ExecSyncOptionsWithStringEncoding): string; + function execSync(command: string, options: ExecSyncOptionsWithBufferEncoding): Buffer; + function execSync(command: string, options?: ExecSyncOptions): string | Buffer; + interface ExecFileSyncOptions extends CommonExecOptions { + shell?: boolean | string | undefined; + } + interface ExecFileSyncOptionsWithStringEncoding extends ExecFileSyncOptions { + encoding: BufferEncoding; + } + interface ExecFileSyncOptionsWithBufferEncoding extends ExecFileSyncOptions { + encoding?: 'buffer' | null; // specify `null`. + } + /** + * The `child_process.execFileSync()` method is generally identical to {@link execFile} with the exception that the method will not + * return until the child process has fully closed. When a timeout has been + * encountered and `killSignal` is sent, the method won't return until the process + * has completely exited. + * + * If the child process intercepts and handles the `SIGTERM` signal and + * does not exit, the parent process will still wait until the child process has + * exited. + * + * If the process times out or has a non-zero exit code, this method will throw an `Error` that will include the full result of the underlying {@link spawnSync}. + * + * **If the `shell` option is enabled, do not pass unsanitized user input to this** + * **function. Any input containing shell metacharacters may be used to trigger** + * **arbitrary command execution.** + * @since v0.11.12 + * @param file The name or path of the executable file to run. + * @param args List of string arguments. + * @return The stdout from the command. + */ + function execFileSync(file: string): Buffer; + function execFileSync(file: string, options: ExecFileSyncOptionsWithStringEncoding): string; + function execFileSync(file: string, options: ExecFileSyncOptionsWithBufferEncoding): Buffer; + function execFileSync(file: string, options?: ExecFileSyncOptions): string | Buffer; + function execFileSync(file: string, args: ReadonlyArray): Buffer; + function execFileSync(file: string, args: ReadonlyArray, options: ExecFileSyncOptionsWithStringEncoding): string; + function execFileSync(file: string, args: ReadonlyArray, options: ExecFileSyncOptionsWithBufferEncoding): Buffer; + function execFileSync(file: string, args?: ReadonlyArray, options?: ExecFileSyncOptions): string | Buffer; +} +declare module 'node:child_process' { + export * from 'child_process'; +} diff --git a/node_modules/@types/node/ts4.8/cluster.d.ts b/node_modules/@types/node/ts4.8/cluster.d.ts new file mode 100644 index 0000000..37dbc57 --- /dev/null +++ b/node_modules/@types/node/ts4.8/cluster.d.ts @@ -0,0 +1,410 @@ +/** + * Clusters of Node.js processes can be used to run multiple instances of Node.js + * that can distribute workloads among their application threads. When process + * isolation is not needed, use the `worker_threads` module instead, which + * allows running multiple application threads within a single Node.js instance. + * + * The cluster module allows easy creation of child processes that all share + * server ports. + * + * ```js + * import cluster from 'cluster'; + * import http from 'http'; + * import { cpus } from 'os'; + * import process from 'process'; + * + * const numCPUs = cpus().length; + * + * if (cluster.isPrimary) { + * console.log(`Primary ${process.pid} is running`); + * + * // Fork workers. + * for (let i = 0; i < numCPUs; i++) { + * cluster.fork(); + * } + * + * cluster.on('exit', (worker, code, signal) => { + * console.log(`worker ${worker.process.pid} died`); + * }); + * } else { + * // Workers can share any TCP connection + * // In this case it is an HTTP server + * http.createServer((req, res) => { + * res.writeHead(200); + * res.end('hello world\n'); + * }).listen(8000); + * + * console.log(`Worker ${process.pid} started`); + * } + * ``` + * + * Running Node.js will now share port 8000 between the workers: + * + * ```console + * $ node server.js + * Primary 3596 is running + * Worker 4324 started + * Worker 4520 started + * Worker 6056 started + * Worker 5644 started + * ``` + * + * On Windows, it is not yet possible to set up a named pipe server in a worker. + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/cluster.js) + */ +declare module 'cluster' { + import * as child from 'node:child_process'; + import EventEmitter = require('node:events'); + import * as net from 'node:net'; + export interface ClusterSettings { + execArgv?: string[] | undefined; // default: process.execArgv + exec?: string | undefined; + args?: string[] | undefined; + silent?: boolean | undefined; + stdio?: any[] | undefined; + uid?: number | undefined; + gid?: number | undefined; + inspectPort?: number | (() => number) | undefined; + } + export interface Address { + address: string; + port: number; + addressType: number | 'udp4' | 'udp6'; // 4, 6, -1, "udp4", "udp6" + } + /** + * A `Worker` object contains all public information and method about a worker. + * In the primary it can be obtained using `cluster.workers`. In a worker + * it can be obtained using `cluster.worker`. + * @since v0.7.0 + */ + export class Worker extends EventEmitter { + /** + * Each new worker is given its own unique id, this id is stored in the`id`. + * + * While a worker is alive, this is the key that indexes it in`cluster.workers`. + * @since v0.8.0 + */ + id: number; + /** + * All workers are created using `child_process.fork()`, the returned object + * from this function is stored as `.process`. In a worker, the global `process`is stored. + * + * See: `Child Process module`. + * + * Workers will call `process.exit(0)` if the `'disconnect'` event occurs + * on `process` and `.exitedAfterDisconnect` is not `true`. This protects against + * accidental disconnection. + * @since v0.7.0 + */ + process: child.ChildProcess; + /** + * Send a message to a worker or primary, optionally with a handle. + * + * In the primary, this sends a message to a specific worker. It is identical to `ChildProcess.send()`. + * + * In a worker, this sends a message to the primary. It is identical to`process.send()`. + * + * This example will echo back all messages from the primary: + * + * ```js + * if (cluster.isPrimary) { + * const worker = cluster.fork(); + * worker.send('hi there'); + * + * } else if (cluster.isWorker) { + * process.on('message', (msg) => { + * process.send(msg); + * }); + * } + * ``` + * @since v0.7.0 + * @param options The `options` argument, if present, is an object used to parameterize the sending of certain types of handles. `options` supports the following properties: + */ + send(message: child.Serializable, callback?: (error: Error | null) => void): boolean; + send(message: child.Serializable, sendHandle: child.SendHandle, callback?: (error: Error | null) => void): boolean; + send(message: child.Serializable, sendHandle: child.SendHandle, options?: child.MessageOptions, callback?: (error: Error | null) => void): boolean; + /** + * This function will kill the worker. In the primary worker, it does this by + * disconnecting the `worker.process`, and once disconnected, killing with`signal`. In the worker, it does it by killing the process with `signal`. + * + * The `kill()` function kills the worker process without waiting for a graceful + * disconnect, it has the same behavior as `worker.process.kill()`. + * + * This method is aliased as `worker.destroy()` for backwards compatibility. + * + * In a worker, `process.kill()` exists, but it is not this function; + * it is `kill()`. + * @since v0.9.12 + * @param [signal='SIGTERM'] Name of the kill signal to send to the worker process. + */ + kill(signal?: string): void; + destroy(signal?: string): void; + /** + * In a worker, this function will close all servers, wait for the `'close'` event + * on those servers, and then disconnect the IPC channel. + * + * In the primary, an internal message is sent to the worker causing it to call`.disconnect()` on itself. + * + * Causes `.exitedAfterDisconnect` to be set. + * + * After a server is closed, it will no longer accept new connections, + * but connections may be accepted by any other listening worker. Existing + * connections will be allowed to close as usual. When no more connections exist, + * see `server.close()`, the IPC channel to the worker will close allowing it + * to die gracefully. + * + * The above applies _only_ to server connections, client connections are not + * automatically closed by workers, and disconnect does not wait for them to close + * before exiting. + * + * In a worker, `process.disconnect` exists, but it is not this function; + * it is `disconnect()`. + * + * Because long living server connections may block workers from disconnecting, it + * may be useful to send a message, so application specific actions may be taken to + * close them. It also may be useful to implement a timeout, killing a worker if + * the `'disconnect'` event has not been emitted after some time. + * + * ```js + * if (cluster.isPrimary) { + * const worker = cluster.fork(); + * let timeout; + * + * worker.on('listening', (address) => { + * worker.send('shutdown'); + * worker.disconnect(); + * timeout = setTimeout(() => { + * worker.kill(); + * }, 2000); + * }); + * + * worker.on('disconnect', () => { + * clearTimeout(timeout); + * }); + * + * } else if (cluster.isWorker) { + * const net = require('net'); + * const server = net.createServer((socket) => { + * // Connections never end + * }); + * + * server.listen(8000); + * + * process.on('message', (msg) => { + * if (msg === 'shutdown') { + * // Initiate graceful close of any connections to server + * } + * }); + * } + * ``` + * @since v0.7.7 + * @return A reference to `worker`. + */ + disconnect(): void; + /** + * This function returns `true` if the worker is connected to its primary via its + * IPC channel, `false` otherwise. A worker is connected to its primary after it + * has been created. It is disconnected after the `'disconnect'` event is emitted. + * @since v0.11.14 + */ + isConnected(): boolean; + /** + * This function returns `true` if the worker's process has terminated (either + * because of exiting or being signaled). Otherwise, it returns `false`. + * + * ```js + * import cluster from 'cluster'; + * import http from 'http'; + * import { cpus } from 'os'; + * import process from 'process'; + * + * const numCPUs = cpus().length; + * + * if (cluster.isPrimary) { + * console.log(`Primary ${process.pid} is running`); + * + * // Fork workers. + * for (let i = 0; i < numCPUs; i++) { + * cluster.fork(); + * } + * + * cluster.on('fork', (worker) => { + * console.log('worker is dead:', worker.isDead()); + * }); + * + * cluster.on('exit', (worker, code, signal) => { + * console.log('worker is dead:', worker.isDead()); + * }); + * } else { + * // Workers can share any TCP connection. In this case, it is an HTTP server. + * http.createServer((req, res) => { + * res.writeHead(200); + * res.end(`Current process\n ${process.pid}`); + * process.kill(process.pid); + * }).listen(8000); + * } + * ``` + * @since v0.11.14 + */ + isDead(): boolean; + /** + * This property is `true` if the worker exited due to `.disconnect()`. + * If the worker exited any other way, it is `false`. If the + * worker has not exited, it is `undefined`. + * + * The boolean `worker.exitedAfterDisconnect` allows distinguishing between + * voluntary and accidental exit, the primary may choose not to respawn a worker + * based on this value. + * + * ```js + * cluster.on('exit', (worker, code, signal) => { + * if (worker.exitedAfterDisconnect === true) { + * console.log('Oh, it was just voluntary – no need to worry'); + * } + * }); + * + * // kill worker + * worker.kill(); + * ``` + * @since v6.0.0 + */ + exitedAfterDisconnect: boolean; + /** + * events.EventEmitter + * 1. disconnect + * 2. error + * 3. exit + * 4. listening + * 5. message + * 6. online + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'disconnect', listener: () => void): this; + addListener(event: 'error', listener: (error: Error) => void): this; + addListener(event: 'exit', listener: (code: number, signal: string) => void): this; + addListener(event: 'listening', listener: (address: Address) => void): this; + addListener(event: 'message', listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + addListener(event: 'online', listener: () => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'disconnect'): boolean; + emit(event: 'error', error: Error): boolean; + emit(event: 'exit', code: number, signal: string): boolean; + emit(event: 'listening', address: Address): boolean; + emit(event: 'message', message: any, handle: net.Socket | net.Server): boolean; + emit(event: 'online'): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'disconnect', listener: () => void): this; + on(event: 'error', listener: (error: Error) => void): this; + on(event: 'exit', listener: (code: number, signal: string) => void): this; + on(event: 'listening', listener: (address: Address) => void): this; + on(event: 'message', listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + on(event: 'online', listener: () => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'disconnect', listener: () => void): this; + once(event: 'error', listener: (error: Error) => void): this; + once(event: 'exit', listener: (code: number, signal: string) => void): this; + once(event: 'listening', listener: (address: Address) => void): this; + once(event: 'message', listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + once(event: 'online', listener: () => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'disconnect', listener: () => void): this; + prependListener(event: 'error', listener: (error: Error) => void): this; + prependListener(event: 'exit', listener: (code: number, signal: string) => void): this; + prependListener(event: 'listening', listener: (address: Address) => void): this; + prependListener(event: 'message', listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + prependListener(event: 'online', listener: () => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'disconnect', listener: () => void): this; + prependOnceListener(event: 'error', listener: (error: Error) => void): this; + prependOnceListener(event: 'exit', listener: (code: number, signal: string) => void): this; + prependOnceListener(event: 'listening', listener: (address: Address) => void): this; + prependOnceListener(event: 'message', listener: (message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + prependOnceListener(event: 'online', listener: () => void): this; + } + export interface Cluster extends EventEmitter { + disconnect(callback?: () => void): void; + fork(env?: any): Worker; + /** @deprecated since v16.0.0 - use isPrimary. */ + readonly isMaster: boolean; + readonly isPrimary: boolean; + readonly isWorker: boolean; + schedulingPolicy: number; + readonly settings: ClusterSettings; + /** @deprecated since v16.0.0 - use setupPrimary. */ + setupMaster(settings?: ClusterSettings): void; + /** + * `setupPrimary` is used to change the default 'fork' behavior. Once called, the settings will be present in cluster.settings. + */ + setupPrimary(settings?: ClusterSettings): void; + readonly worker?: Worker | undefined; + readonly workers?: NodeJS.Dict | undefined; + readonly SCHED_NONE: number; + readonly SCHED_RR: number; + /** + * events.EventEmitter + * 1. disconnect + * 2. exit + * 3. fork + * 4. listening + * 5. message + * 6. online + * 7. setup + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'disconnect', listener: (worker: Worker) => void): this; + addListener(event: 'exit', listener: (worker: Worker, code: number, signal: string) => void): this; + addListener(event: 'fork', listener: (worker: Worker) => void): this; + addListener(event: 'listening', listener: (worker: Worker, address: Address) => void): this; + addListener(event: 'message', listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + addListener(event: 'online', listener: (worker: Worker) => void): this; + addListener(event: 'setup', listener: (settings: ClusterSettings) => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'disconnect', worker: Worker): boolean; + emit(event: 'exit', worker: Worker, code: number, signal: string): boolean; + emit(event: 'fork', worker: Worker): boolean; + emit(event: 'listening', worker: Worker, address: Address): boolean; + emit(event: 'message', worker: Worker, message: any, handle: net.Socket | net.Server): boolean; + emit(event: 'online', worker: Worker): boolean; + emit(event: 'setup', settings: ClusterSettings): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'disconnect', listener: (worker: Worker) => void): this; + on(event: 'exit', listener: (worker: Worker, code: number, signal: string) => void): this; + on(event: 'fork', listener: (worker: Worker) => void): this; + on(event: 'listening', listener: (worker: Worker, address: Address) => void): this; + on(event: 'message', listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + on(event: 'online', listener: (worker: Worker) => void): this; + on(event: 'setup', listener: (settings: ClusterSettings) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'disconnect', listener: (worker: Worker) => void): this; + once(event: 'exit', listener: (worker: Worker, code: number, signal: string) => void): this; + once(event: 'fork', listener: (worker: Worker) => void): this; + once(event: 'listening', listener: (worker: Worker, address: Address) => void): this; + once(event: 'message', listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; // the handle is a net.Socket or net.Server object, or undefined. + once(event: 'online', listener: (worker: Worker) => void): this; + once(event: 'setup', listener: (settings: ClusterSettings) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'disconnect', listener: (worker: Worker) => void): this; + prependListener(event: 'exit', listener: (worker: Worker, code: number, signal: string) => void): this; + prependListener(event: 'fork', listener: (worker: Worker) => void): this; + prependListener(event: 'listening', listener: (worker: Worker, address: Address) => void): this; + // the handle is a net.Socket or net.Server object, or undefined. + prependListener(event: 'message', listener: (worker: Worker, message: any, handle?: net.Socket | net.Server) => void): this; + prependListener(event: 'online', listener: (worker: Worker) => void): this; + prependListener(event: 'setup', listener: (settings: ClusterSettings) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'disconnect', listener: (worker: Worker) => void): this; + prependOnceListener(event: 'exit', listener: (worker: Worker, code: number, signal: string) => void): this; + prependOnceListener(event: 'fork', listener: (worker: Worker) => void): this; + prependOnceListener(event: 'listening', listener: (worker: Worker, address: Address) => void): this; + // the handle is a net.Socket or net.Server object, or undefined. + prependOnceListener(event: 'message', listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this; + prependOnceListener(event: 'online', listener: (worker: Worker) => void): this; + prependOnceListener(event: 'setup', listener: (settings: ClusterSettings) => void): this; + } + const cluster: Cluster; + export default cluster; +} +declare module 'node:cluster' { + export * from 'cluster'; + export { default as default } from 'cluster'; +} diff --git a/node_modules/@types/node/ts4.8/console.d.ts b/node_modules/@types/node/ts4.8/console.d.ts new file mode 100644 index 0000000..16c9137 --- /dev/null +++ b/node_modules/@types/node/ts4.8/console.d.ts @@ -0,0 +1,412 @@ +/** + * The `console` module provides a simple debugging console that is similar to the + * JavaScript console mechanism provided by web browsers. + * + * The module exports two specific components: + * + * * A `Console` class with methods such as `console.log()`, `console.error()` and`console.warn()` that can be used to write to any Node.js stream. + * * A global `console` instance configured to write to `process.stdout` and `process.stderr`. The global `console` can be used without calling`require('console')`. + * + * _**Warning**_: The global console object's methods are neither consistently + * synchronous like the browser APIs they resemble, nor are they consistently + * asynchronous like all other Node.js streams. See the `note on process I/O` for + * more information. + * + * Example using the global `console`: + * + * ```js + * console.log('hello world'); + * // Prints: hello world, to stdout + * console.log('hello %s', 'world'); + * // Prints: hello world, to stdout + * console.error(new Error('Whoops, something bad happened')); + * // Prints error message and stack trace to stderr: + * // Error: Whoops, something bad happened + * // at [eval]:5:15 + * // at Script.runInThisContext (node:vm:132:18) + * // at Object.runInThisContext (node:vm:309:38) + * // at node:internal/process/execution:77:19 + * // at [eval]-wrapper:6:22 + * // at evalScript (node:internal/process/execution:76:60) + * // at node:internal/main/eval_string:23:3 + * + * const name = 'Will Robinson'; + * console.warn(`Danger ${name}! Danger!`); + * // Prints: Danger Will Robinson! Danger!, to stderr + * ``` + * + * Example using the `Console` class: + * + * ```js + * const out = getStreamSomehow(); + * const err = getStreamSomehow(); + * const myConsole = new console.Console(out, err); + * + * myConsole.log('hello world'); + * // Prints: hello world, to out + * myConsole.log('hello %s', 'world'); + * // Prints: hello world, to out + * myConsole.error(new Error('Whoops, something bad happened')); + * // Prints: [Error: Whoops, something bad happened], to err + * + * const name = 'Will Robinson'; + * myConsole.warn(`Danger ${name}! Danger!`); + * // Prints: Danger Will Robinson! Danger!, to err + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/console.js) + */ +declare module 'console' { + import console = require('node:console'); + export = console; +} +declare module 'node:console' { + import { InspectOptions } from 'node:util'; + global { + // This needs to be global to avoid TS2403 in case lib.dom.d.ts is present in the same build + interface Console { + Console: console.ConsoleConstructor; + /** + * `console.assert()` writes a message if `value` is [falsy](https://developer.mozilla.org/en-US/docs/Glossary/Falsy) or omitted. It only + * writes a message and does not otherwise affect execution. The output always + * starts with `"Assertion failed"`. If provided, `message` is formatted using `util.format()`. + * + * If `value` is [truthy](https://developer.mozilla.org/en-US/docs/Glossary/Truthy), nothing happens. + * + * ```js + * console.assert(true, 'does nothing'); + * + * console.assert(false, 'Whoops %s work', 'didn\'t'); + * // Assertion failed: Whoops didn't work + * + * console.assert(); + * // Assertion failed + * ``` + * @since v0.1.101 + * @param value The value tested for being truthy. + * @param message All arguments besides `value` are used as error message. + */ + assert(value: any, message?: string, ...optionalParams: any[]): void; + /** + * When `stdout` is a TTY, calling `console.clear()` will attempt to clear the + * TTY. When `stdout` is not a TTY, this method does nothing. + * + * The specific operation of `console.clear()` can vary across operating systems + * and terminal types. For most Linux operating systems, `console.clear()`operates similarly to the `clear` shell command. On Windows, `console.clear()`will clear only the output in the + * current terminal viewport for the Node.js + * binary. + * @since v8.3.0 + */ + clear(): void; + /** + * Maintains an internal counter specific to `label` and outputs to `stdout` the + * number of times `console.count()` has been called with the given `label`. + * + * ```js + * > console.count() + * default: 1 + * undefined + * > console.count('default') + * default: 2 + * undefined + * > console.count('abc') + * abc: 1 + * undefined + * > console.count('xyz') + * xyz: 1 + * undefined + * > console.count('abc') + * abc: 2 + * undefined + * > console.count() + * default: 3 + * undefined + * > + * ``` + * @since v8.3.0 + * @param label The display label for the counter. + */ + count(label?: string): void; + /** + * Resets the internal counter specific to `label`. + * + * ```js + * > console.count('abc'); + * abc: 1 + * undefined + * > console.countReset('abc'); + * undefined + * > console.count('abc'); + * abc: 1 + * undefined + * > + * ``` + * @since v8.3.0 + * @param label The display label for the counter. + */ + countReset(label?: string): void; + /** + * The `console.debug()` function is an alias for {@link log}. + * @since v8.0.0 + */ + debug(message?: any, ...optionalParams: any[]): void; + /** + * Uses `util.inspect()` on `obj` and prints the resulting string to `stdout`. + * This function bypasses any custom `inspect()` function defined on `obj`. + * @since v0.1.101 + */ + dir(obj: any, options?: InspectOptions): void; + /** + * This method calls `console.log()` passing it the arguments received. + * This method does not produce any XML formatting. + * @since v8.0.0 + */ + dirxml(...data: any[]): void; + /** + * Prints to `stderr` with newline. Multiple arguments can be passed, with the + * first used as the primary message and all additional used as substitution + * values similar to [`printf(3)`](http://man7.org/linux/man-pages/man3/printf.3.html) (the arguments are all passed to `util.format()`). + * + * ```js + * const code = 5; + * console.error('error #%d', code); + * // Prints: error #5, to stderr + * console.error('error', code); + * // Prints: error 5, to stderr + * ``` + * + * If formatting elements (e.g. `%d`) are not found in the first string then `util.inspect()` is called on each argument and the resulting string + * values are concatenated. See `util.format()` for more information. + * @since v0.1.100 + */ + error(message?: any, ...optionalParams: any[]): void; + /** + * Increases indentation of subsequent lines by spaces for `groupIndentation`length. + * + * If one or more `label`s are provided, those are printed first without the + * additional indentation. + * @since v8.5.0 + */ + group(...label: any[]): void; + /** + * An alias for {@link group}. + * @since v8.5.0 + */ + groupCollapsed(...label: any[]): void; + /** + * Decreases indentation of subsequent lines by spaces for `groupIndentation`length. + * @since v8.5.0 + */ + groupEnd(): void; + /** + * The `console.info()` function is an alias for {@link log}. + * @since v0.1.100 + */ + info(message?: any, ...optionalParams: any[]): void; + /** + * Prints to `stdout` with newline. Multiple arguments can be passed, with the + * first used as the primary message and all additional used as substitution + * values similar to [`printf(3)`](http://man7.org/linux/man-pages/man3/printf.3.html) (the arguments are all passed to `util.format()`). + * + * ```js + * const count = 5; + * console.log('count: %d', count); + * // Prints: count: 5, to stdout + * console.log('count:', count); + * // Prints: count: 5, to stdout + * ``` + * + * See `util.format()` for more information. + * @since v0.1.100 + */ + log(message?: any, ...optionalParams: any[]): void; + /** + * Try to construct a table with the columns of the properties of `tabularData`(or use `properties`) and rows of `tabularData` and log it. Falls back to just + * logging the argument if it can’t be parsed as tabular. + * + * ```js + * // These can't be parsed as tabular data + * console.table(Symbol()); + * // Symbol() + * + * console.table(undefined); + * // undefined + * + * console.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }]); + * // ┌─────────┬─────┬─────┐ + * // │ (index) │ a │ b │ + * // ├─────────┼─────┼─────┤ + * // │ 0 │ 1 │ 'Y' │ + * // │ 1 │ 'Z' │ 2 │ + * // └─────────┴─────┴─────┘ + * + * console.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }], ['a']); + * // ┌─────────┬─────┐ + * // │ (index) │ a │ + * // ├─────────┼─────┤ + * // │ 0 │ 1 │ + * // │ 1 │ 'Z' │ + * // └─────────┴─────┘ + * ``` + * @since v10.0.0 + * @param properties Alternate properties for constructing the table. + */ + table(tabularData: any, properties?: ReadonlyArray): void; + /** + * Starts a timer that can be used to compute the duration of an operation. Timers + * are identified by a unique `label`. Use the same `label` when calling {@link timeEnd} to stop the timer and output the elapsed time in + * suitable time units to `stdout`. For example, if the elapsed + * time is 3869ms, `console.timeEnd()` displays "3.869s". + * @since v0.1.104 + */ + time(label?: string): void; + /** + * Stops a timer that was previously started by calling {@link time} and + * prints the result to `stdout`: + * + * ```js + * console.time('100-elements'); + * for (let i = 0; i < 100; i++) {} + * console.timeEnd('100-elements'); + * // prints 100-elements: 225.438ms + * ``` + * @since v0.1.104 + */ + timeEnd(label?: string): void; + /** + * For a timer that was previously started by calling {@link time}, prints + * the elapsed time and other `data` arguments to `stdout`: + * + * ```js + * console.time('process'); + * const value = expensiveProcess1(); // Returns 42 + * console.timeLog('process', value); + * // Prints "process: 365.227ms 42". + * doExpensiveProcess2(value); + * console.timeEnd('process'); + * ``` + * @since v10.7.0 + */ + timeLog(label?: string, ...data: any[]): void; + /** + * Prints to `stderr` the string `'Trace: '`, followed by the `util.format()` formatted message and stack trace to the current position in the code. + * + * ```js + * console.trace('Show me'); + * // Prints: (stack trace will vary based on where trace is called) + * // Trace: Show me + * // at repl:2:9 + * // at REPLServer.defaultEval (repl.js:248:27) + * // at bound (domain.js:287:14) + * // at REPLServer.runBound [as eval] (domain.js:300:12) + * // at REPLServer. (repl.js:412:12) + * // at emitOne (events.js:82:20) + * // at REPLServer.emit (events.js:169:7) + * // at REPLServer.Interface._onLine (readline.js:210:10) + * // at REPLServer.Interface._line (readline.js:549:8) + * // at REPLServer.Interface._ttyWrite (readline.js:826:14) + * ``` + * @since v0.1.104 + */ + trace(message?: any, ...optionalParams: any[]): void; + /** + * The `console.warn()` function is an alias for {@link error}. + * @since v0.1.100 + */ + warn(message?: any, ...optionalParams: any[]): void; + // --- Inspector mode only --- + /** + * This method does not display anything unless used in the inspector. + * Starts a JavaScript CPU profile with an optional label. + */ + profile(label?: string): void; + /** + * This method does not display anything unless used in the inspector. + * Stops the current JavaScript CPU profiling session if one has been started and prints the report to the Profiles panel of the inspector. + */ + profileEnd(label?: string): void; + /** + * This method does not display anything unless used in the inspector. + * Adds an event with the label `label` to the Timeline panel of the inspector. + */ + timeStamp(label?: string): void; + } + /** + * The `console` module provides a simple debugging console that is similar to the + * JavaScript console mechanism provided by web browsers. + * + * The module exports two specific components: + * + * * A `Console` class with methods such as `console.log()`, `console.error()` and`console.warn()` that can be used to write to any Node.js stream. + * * A global `console` instance configured to write to `process.stdout` and `process.stderr`. The global `console` can be used without calling`require('console')`. + * + * _**Warning**_: The global console object's methods are neither consistently + * synchronous like the browser APIs they resemble, nor are they consistently + * asynchronous like all other Node.js streams. See the `note on process I/O` for + * more information. + * + * Example using the global `console`: + * + * ```js + * console.log('hello world'); + * // Prints: hello world, to stdout + * console.log('hello %s', 'world'); + * // Prints: hello world, to stdout + * console.error(new Error('Whoops, something bad happened')); + * // Prints error message and stack trace to stderr: + * // Error: Whoops, something bad happened + * // at [eval]:5:15 + * // at Script.runInThisContext (node:vm:132:18) + * // at Object.runInThisContext (node:vm:309:38) + * // at node:internal/process/execution:77:19 + * // at [eval]-wrapper:6:22 + * // at evalScript (node:internal/process/execution:76:60) + * // at node:internal/main/eval_string:23:3 + * + * const name = 'Will Robinson'; + * console.warn(`Danger ${name}! Danger!`); + * // Prints: Danger Will Robinson! Danger!, to stderr + * ``` + * + * Example using the `Console` class: + * + * ```js + * const out = getStreamSomehow(); + * const err = getStreamSomehow(); + * const myConsole = new console.Console(out, err); + * + * myConsole.log('hello world'); + * // Prints: hello world, to out + * myConsole.log('hello %s', 'world'); + * // Prints: hello world, to out + * myConsole.error(new Error('Whoops, something bad happened')); + * // Prints: [Error: Whoops, something bad happened], to err + * + * const name = 'Will Robinson'; + * myConsole.warn(`Danger ${name}! Danger!`); + * // Prints: Danger Will Robinson! Danger!, to err + * ``` + * @see [source](https://github.com/nodejs/node/blob/v16.4.2/lib/console.js) + */ + namespace console { + interface ConsoleConstructorOptions { + stdout: NodeJS.WritableStream; + stderr?: NodeJS.WritableStream | undefined; + ignoreErrors?: boolean | undefined; + colorMode?: boolean | 'auto' | undefined; + inspectOptions?: InspectOptions | undefined; + /** + * Set group indentation + * @default 2 + */ + groupIndentation?: number | undefined; + } + interface ConsoleConstructor { + prototype: Console; + new (stdout: NodeJS.WritableStream, stderr?: NodeJS.WritableStream, ignoreErrors?: boolean): Console; + new (options: ConsoleConstructorOptions): Console; + } + } + var console: Console; + } + export = globalThis.console; +} diff --git a/node_modules/@types/node/ts4.8/constants.d.ts b/node_modules/@types/node/ts4.8/constants.d.ts new file mode 100644 index 0000000..208020d --- /dev/null +++ b/node_modules/@types/node/ts4.8/constants.d.ts @@ -0,0 +1,18 @@ +/** @deprecated since v6.3.0 - use constants property exposed by the relevant module instead. */ +declare module 'constants' { + import { constants as osConstants, SignalConstants } from 'node:os'; + import { constants as cryptoConstants } from 'node:crypto'; + import { constants as fsConstants } from 'node:fs'; + + const exp: typeof osConstants.errno & + typeof osConstants.priority & + SignalConstants & + typeof cryptoConstants & + typeof fsConstants; + export = exp; +} + +declare module 'node:constants' { + import constants = require('constants'); + export = constants; +} diff --git a/node_modules/@types/node/ts4.8/crypto.d.ts b/node_modules/@types/node/ts4.8/crypto.d.ts new file mode 100644 index 0000000..20d960c --- /dev/null +++ b/node_modules/@types/node/ts4.8/crypto.d.ts @@ -0,0 +1,3964 @@ +/** + * The `crypto` module provides cryptographic functionality that includes a set of + * wrappers for OpenSSL's hash, HMAC, cipher, decipher, sign, and verify functions. + * + * ```js + * const { createHmac } = await import('crypto'); + * + * const secret = 'abcdefg'; + * const hash = createHmac('sha256', secret) + * .update('I love cupcakes') + * .digest('hex'); + * console.log(hash); + * // Prints: + * // c0fa1bc00531bd78ef38c628449c5102aeabd49b5dc3a2a516ea6ea959d6658e + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/crypto.js) + */ +declare module 'crypto' { + import * as stream from 'node:stream'; + import { PeerCertificate } from 'node:tls'; + /** + * SPKAC is a Certificate Signing Request mechanism originally implemented by + * Netscape and was specified formally as part of [HTML5's `keygen` element](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/keygen). + * + * `` is deprecated since [HTML 5.2](https://www.w3.org/TR/html52/changes.html#features-removed) and new projects + * should not use this element anymore. + * + * The `crypto` module provides the `Certificate` class for working with SPKAC + * data. The most common usage is handling output generated by the HTML5`` element. Node.js uses [OpenSSL's SPKAC + * implementation](https://www.openssl.org/docs/man1.1.0/apps/openssl-spkac.html) internally. + * @since v0.11.8 + */ + class Certificate { + /** + * ```js + * const { Certificate } = await import('crypto'); + * const spkac = getSpkacSomehow(); + * const challenge = Certificate.exportChallenge(spkac); + * console.log(challenge.toString('utf8')); + * // Prints: the challenge as a UTF8 string + * ``` + * @since v9.0.0 + * @param encoding The `encoding` of the `spkac` string. + * @return The challenge component of the `spkac` data structure, which includes a public key and a challenge. + */ + static exportChallenge(spkac: BinaryLike): Buffer; + /** + * ```js + * const { Certificate } = await import('crypto'); + * const spkac = getSpkacSomehow(); + * const publicKey = Certificate.exportPublicKey(spkac); + * console.log(publicKey); + * // Prints: the public key as + * ``` + * @since v9.0.0 + * @param encoding The `encoding` of the `spkac` string. + * @return The public key component of the `spkac` data structure, which includes a public key and a challenge. + */ + static exportPublicKey(spkac: BinaryLike, encoding?: string): Buffer; + /** + * ```js + * import { Buffer } from 'buffer'; + * const { Certificate } = await import('crypto'); + * + * const spkac = getSpkacSomehow(); + * console.log(Certificate.verifySpkac(Buffer.from(spkac))); + * // Prints: true or false + * ``` + * @since v9.0.0 + * @param encoding The `encoding` of the `spkac` string. + * @return `true` if the given `spkac` data structure is valid, `false` otherwise. + */ + static verifySpkac(spkac: NodeJS.ArrayBufferView): boolean; + /** + * @deprecated + * @param spkac + * @returns The challenge component of the `spkac` data structure, + * which includes a public key and a challenge. + */ + exportChallenge(spkac: BinaryLike): Buffer; + /** + * @deprecated + * @param spkac + * @param encoding The encoding of the spkac string. + * @returns The public key component of the `spkac` data structure, + * which includes a public key and a challenge. + */ + exportPublicKey(spkac: BinaryLike, encoding?: string): Buffer; + /** + * @deprecated + * @param spkac + * @returns `true` if the given `spkac` data structure is valid, + * `false` otherwise. + */ + verifySpkac(spkac: NodeJS.ArrayBufferView): boolean; + } + namespace constants { + // https://nodejs.org/dist/latest-v10.x/docs/api/crypto.html#crypto_crypto_constants + const OPENSSL_VERSION_NUMBER: number; + /** Applies multiple bug workarounds within OpenSSL. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html for detail. */ + const SSL_OP_ALL: number; + /** Allows legacy insecure renegotiation between OpenSSL and unpatched clients or servers. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html. */ + const SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: number; + /** Attempts to use the server's preferences instead of the client's when selecting a cipher. See https://www.openssl.org/docs/man1.0.2/ssl/SSL_CTX_set_options.html. */ + const SSL_OP_CIPHER_SERVER_PREFERENCE: number; + /** Instructs OpenSSL to use Cisco's "speshul" version of DTLS_BAD_VER. */ + const SSL_OP_CISCO_ANYCONNECT: number; + /** Instructs OpenSSL to turn on cookie exchange. */ + const SSL_OP_COOKIE_EXCHANGE: number; + /** Instructs OpenSSL to add server-hello extension from an early version of the cryptopro draft. */ + const SSL_OP_CRYPTOPRO_TLSEXT_BUG: number; + /** Instructs OpenSSL to disable a SSL 3.0/TLS 1.0 vulnerability workaround added in OpenSSL 0.9.6d. */ + const SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS: number; + /** Instructs OpenSSL to always use the tmp_rsa key when performing RSA operations. */ + const SSL_OP_EPHEMERAL_RSA: number; + /** Allows initial connection to servers that do not support RI. */ + const SSL_OP_LEGACY_SERVER_CONNECT: number; + const SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER: number; + const SSL_OP_MICROSOFT_SESS_ID_BUG: number; + /** Instructs OpenSSL to disable the workaround for a man-in-the-middle protocol-version vulnerability in the SSL 2.0 server implementation. */ + const SSL_OP_MSIE_SSLV2_RSA_PADDING: number; + const SSL_OP_NETSCAPE_CA_DN_BUG: number; + const SSL_OP_NETSCAPE_CHALLENGE_BUG: number; + const SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG: number; + const SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG: number; + /** Instructs OpenSSL to disable support for SSL/TLS compression. */ + const SSL_OP_NO_COMPRESSION: number; + const SSL_OP_NO_QUERY_MTU: number; + /** Instructs OpenSSL to always start a new session when performing renegotiation. */ + const SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION: number; + const SSL_OP_NO_SSLv2: number; + const SSL_OP_NO_SSLv3: number; + const SSL_OP_NO_TICKET: number; + const SSL_OP_NO_TLSv1: number; + const SSL_OP_NO_TLSv1_1: number; + const SSL_OP_NO_TLSv1_2: number; + const SSL_OP_PKCS1_CHECK_1: number; + const SSL_OP_PKCS1_CHECK_2: number; + /** Instructs OpenSSL to always create a new key when using temporary/ephemeral DH parameters. */ + const SSL_OP_SINGLE_DH_USE: number; + /** Instructs OpenSSL to always create a new key when using temporary/ephemeral ECDH parameters. */ + const SSL_OP_SINGLE_ECDH_USE: number; + const SSL_OP_SSLEAY_080_CLIENT_DH_BUG: number; + const SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG: number; + const SSL_OP_TLS_BLOCK_PADDING_BUG: number; + const SSL_OP_TLS_D5_BUG: number; + /** Instructs OpenSSL to disable version rollback attack detection. */ + const SSL_OP_TLS_ROLLBACK_BUG: number; + const ENGINE_METHOD_RSA: number; + const ENGINE_METHOD_DSA: number; + const ENGINE_METHOD_DH: number; + const ENGINE_METHOD_RAND: number; + const ENGINE_METHOD_EC: number; + const ENGINE_METHOD_CIPHERS: number; + const ENGINE_METHOD_DIGESTS: number; + const ENGINE_METHOD_PKEY_METHS: number; + const ENGINE_METHOD_PKEY_ASN1_METHS: number; + const ENGINE_METHOD_ALL: number; + const ENGINE_METHOD_NONE: number; + const DH_CHECK_P_NOT_SAFE_PRIME: number; + const DH_CHECK_P_NOT_PRIME: number; + const DH_UNABLE_TO_CHECK_GENERATOR: number; + const DH_NOT_SUITABLE_GENERATOR: number; + const ALPN_ENABLED: number; + const RSA_PKCS1_PADDING: number; + const RSA_SSLV23_PADDING: number; + const RSA_NO_PADDING: number; + const RSA_PKCS1_OAEP_PADDING: number; + const RSA_X931_PADDING: number; + const RSA_PKCS1_PSS_PADDING: number; + /** Sets the salt length for RSA_PKCS1_PSS_PADDING to the digest size when signing or verifying. */ + const RSA_PSS_SALTLEN_DIGEST: number; + /** Sets the salt length for RSA_PKCS1_PSS_PADDING to the maximum permissible value when signing data. */ + const RSA_PSS_SALTLEN_MAX_SIGN: number; + /** Causes the salt length for RSA_PKCS1_PSS_PADDING to be determined automatically when verifying a signature. */ + const RSA_PSS_SALTLEN_AUTO: number; + const POINT_CONVERSION_COMPRESSED: number; + const POINT_CONVERSION_UNCOMPRESSED: number; + const POINT_CONVERSION_HYBRID: number; + /** Specifies the built-in default cipher list used by Node.js (colon-separated values). */ + const defaultCoreCipherList: string; + /** Specifies the active default cipher list used by the current Node.js process (colon-separated values). */ + const defaultCipherList: string; + } + interface HashOptions extends stream.TransformOptions { + /** + * For XOF hash functions such as `shake256`, the + * outputLength option can be used to specify the desired output length in bytes. + */ + outputLength?: number | undefined; + } + /** @deprecated since v10.0.0 */ + const fips: boolean; + /** + * Creates and returns a `Hash` object that can be used to generate hash digests + * using the given `algorithm`. Optional `options` argument controls stream + * behavior. For XOF hash functions such as `'shake256'`, the `outputLength` option + * can be used to specify the desired output length in bytes. + * + * The `algorithm` is dependent on the available algorithms supported by the + * version of OpenSSL on the platform. Examples are `'sha256'`, `'sha512'`, etc. + * On recent releases of OpenSSL, `openssl list -digest-algorithms` will + * display the available digest algorithms. + * + * Example: generating the sha256 sum of a file + * + * ```js + * import { + * createReadStream + * } from 'fs'; + * import { argv } from 'process'; + * const { + * createHash + * } = await import('crypto'); + * + * const filename = argv[2]; + * + * const hash = createHash('sha256'); + * + * const input = createReadStream(filename); + * input.on('readable', () => { + * // Only one element is going to be produced by the + * // hash stream. + * const data = input.read(); + * if (data) + * hash.update(data); + * else { + * console.log(`${hash.digest('hex')} ${filename}`); + * } + * }); + * ``` + * @since v0.1.92 + * @param options `stream.transform` options + */ + function createHash(algorithm: string, options?: HashOptions): Hash; + /** + * Creates and returns an `Hmac` object that uses the given `algorithm` and `key`. + * Optional `options` argument controls stream behavior. + * + * The `algorithm` is dependent on the available algorithms supported by the + * version of OpenSSL on the platform. Examples are `'sha256'`, `'sha512'`, etc. + * On recent releases of OpenSSL, `openssl list -digest-algorithms` will + * display the available digest algorithms. + * + * The `key` is the HMAC key used to generate the cryptographic HMAC hash. If it is + * a `KeyObject`, its type must be `secret`. + * + * Example: generating the sha256 HMAC of a file + * + * ```js + * import { + * createReadStream + * } from 'fs'; + * import { argv } from 'process'; + * const { + * createHmac + * } = await import('crypto'); + * + * const filename = argv[2]; + * + * const hmac = createHmac('sha256', 'a secret'); + * + * const input = createReadStream(filename); + * input.on('readable', () => { + * // Only one element is going to be produced by the + * // hash stream. + * const data = input.read(); + * if (data) + * hmac.update(data); + * else { + * console.log(`${hmac.digest('hex')} ${filename}`); + * } + * }); + * ``` + * @since v0.1.94 + * @param options `stream.transform` options + */ + function createHmac(algorithm: string, key: BinaryLike | KeyObject, options?: stream.TransformOptions): Hmac; + // https://nodejs.org/api/buffer.html#buffer_buffers_and_character_encodings + type BinaryToTextEncoding = 'base64' | 'base64url' | 'hex' | 'binary'; + type CharacterEncoding = 'utf8' | 'utf-8' | 'utf16le' | 'latin1'; + type LegacyCharacterEncoding = 'ascii' | 'binary' | 'ucs2' | 'ucs-2'; + type Encoding = BinaryToTextEncoding | CharacterEncoding | LegacyCharacterEncoding; + type ECDHKeyFormat = 'compressed' | 'uncompressed' | 'hybrid'; + /** + * The `Hash` class is a utility for creating hash digests of data. It can be + * used in one of two ways: + * + * * As a `stream` that is both readable and writable, where data is written + * to produce a computed hash digest on the readable side, or + * * Using the `hash.update()` and `hash.digest()` methods to produce the + * computed hash. + * + * The {@link createHash} method is used to create `Hash` instances. `Hash`objects are not to be created directly using the `new` keyword. + * + * Example: Using `Hash` objects as streams: + * + * ```js + * const { + * createHash + * } = await import('crypto'); + * + * const hash = createHash('sha256'); + * + * hash.on('readable', () => { + * // Only one element is going to be produced by the + * // hash stream. + * const data = hash.read(); + * if (data) { + * console.log(data.toString('hex')); + * // Prints: + * // 6a2da20943931e9834fc12cfe5bb47bbd9ae43489a30726962b576f4e3993e50 + * } + * }); + * + * hash.write('some data to hash'); + * hash.end(); + * ``` + * + * Example: Using `Hash` and piped streams: + * + * ```js + * import { createReadStream } from 'fs'; + * import { stdout } from 'process'; + * const { createHash } = await import('crypto'); + * + * const hash = createHash('sha256'); + * + * const input = createReadStream('test.js'); + * input.pipe(hash).setEncoding('hex').pipe(stdout); + * ``` + * + * Example: Using the `hash.update()` and `hash.digest()` methods: + * + * ```js + * const { + * createHash + * } = await import('crypto'); + * + * const hash = createHash('sha256'); + * + * hash.update('some data to hash'); + * console.log(hash.digest('hex')); + * // Prints: + * // 6a2da20943931e9834fc12cfe5bb47bbd9ae43489a30726962b576f4e3993e50 + * ``` + * @since v0.1.92 + */ + class Hash extends stream.Transform { + private constructor(); + /** + * Creates a new `Hash` object that contains a deep copy of the internal state + * of the current `Hash` object. + * + * The optional `options` argument controls stream behavior. For XOF hash + * functions such as `'shake256'`, the `outputLength` option can be used to + * specify the desired output length in bytes. + * + * An error is thrown when an attempt is made to copy the `Hash` object after + * its `hash.digest()` method has been called. + * + * ```js + * // Calculate a rolling hash. + * const { + * createHash + * } = await import('crypto'); + * + * const hash = createHash('sha256'); + * + * hash.update('one'); + * console.log(hash.copy().digest('hex')); + * + * hash.update('two'); + * console.log(hash.copy().digest('hex')); + * + * hash.update('three'); + * console.log(hash.copy().digest('hex')); + * + * // Etc. + * ``` + * @since v13.1.0 + * @param options `stream.transform` options + */ + copy(options?: stream.TransformOptions): Hash; + /** + * Updates the hash content with the given `data`, the encoding of which + * is given in `inputEncoding`. + * If `encoding` is not provided, and the `data` is a string, an + * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored. + * + * This can be called many times with new data as it is streamed. + * @since v0.1.92 + * @param inputEncoding The `encoding` of the `data` string. + */ + update(data: BinaryLike): Hash; + update(data: string, inputEncoding: Encoding): Hash; + /** + * Calculates the digest of all of the data passed to be hashed (using the `hash.update()` method). + * If `encoding` is provided a string will be returned; otherwise + * a `Buffer` is returned. + * + * The `Hash` object can not be used again after `hash.digest()` method has been + * called. Multiple calls will cause an error to be thrown. + * @since v0.1.92 + * @param encoding The `encoding` of the return value. + */ + digest(): Buffer; + digest(encoding: BinaryToTextEncoding): string; + } + /** + * The `Hmac` class is a utility for creating cryptographic HMAC digests. It can + * be used in one of two ways: + * + * * As a `stream` that is both readable and writable, where data is written + * to produce a computed HMAC digest on the readable side, or + * * Using the `hmac.update()` and `hmac.digest()` methods to produce the + * computed HMAC digest. + * + * The {@link createHmac} method is used to create `Hmac` instances. `Hmac`objects are not to be created directly using the `new` keyword. + * + * Example: Using `Hmac` objects as streams: + * + * ```js + * const { + * createHmac + * } = await import('crypto'); + * + * const hmac = createHmac('sha256', 'a secret'); + * + * hmac.on('readable', () => { + * // Only one element is going to be produced by the + * // hash stream. + * const data = hmac.read(); + * if (data) { + * console.log(data.toString('hex')); + * // Prints: + * // 7fd04df92f636fd450bc841c9418e5825c17f33ad9c87c518115a45971f7f77e + * } + * }); + * + * hmac.write('some data to hash'); + * hmac.end(); + * ``` + * + * Example: Using `Hmac` and piped streams: + * + * ```js + * import { createReadStream } from 'fs'; + * import { stdout } from 'process'; + * const { + * createHmac + * } = await import('crypto'); + * + * const hmac = createHmac('sha256', 'a secret'); + * + * const input = createReadStream('test.js'); + * input.pipe(hmac).pipe(stdout); + * ``` + * + * Example: Using the `hmac.update()` and `hmac.digest()` methods: + * + * ```js + * const { + * createHmac + * } = await import('crypto'); + * + * const hmac = createHmac('sha256', 'a secret'); + * + * hmac.update('some data to hash'); + * console.log(hmac.digest('hex')); + * // Prints: + * // 7fd04df92f636fd450bc841c9418e5825c17f33ad9c87c518115a45971f7f77e + * ``` + * @since v0.1.94 + */ + class Hmac extends stream.Transform { + private constructor(); + /** + * Updates the `Hmac` content with the given `data`, the encoding of which + * is given in `inputEncoding`. + * If `encoding` is not provided, and the `data` is a string, an + * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored. + * + * This can be called many times with new data as it is streamed. + * @since v0.1.94 + * @param inputEncoding The `encoding` of the `data` string. + */ + update(data: BinaryLike): Hmac; + update(data: string, inputEncoding: Encoding): Hmac; + /** + * Calculates the HMAC digest of all of the data passed using `hmac.update()`. + * If `encoding` is + * provided a string is returned; otherwise a `Buffer` is returned; + * + * The `Hmac` object can not be used again after `hmac.digest()` has been + * called. Multiple calls to `hmac.digest()` will result in an error being thrown. + * @since v0.1.94 + * @param encoding The `encoding` of the return value. + */ + digest(): Buffer; + digest(encoding: BinaryToTextEncoding): string; + } + type KeyObjectType = 'secret' | 'public' | 'private'; + interface KeyExportOptions { + type: 'pkcs1' | 'spki' | 'pkcs8' | 'sec1'; + format: T; + cipher?: string | undefined; + passphrase?: string | Buffer | undefined; + } + interface JwkKeyExportOptions { + format: 'jwk'; + } + interface JsonWebKey { + crv?: string | undefined; + d?: string | undefined; + dp?: string | undefined; + dq?: string | undefined; + e?: string | undefined; + k?: string | undefined; + kty?: string | undefined; + n?: string | undefined; + p?: string | undefined; + q?: string | undefined; + qi?: string | undefined; + x?: string | undefined; + y?: string | undefined; + [key: string]: unknown; + } + interface AsymmetricKeyDetails { + /** + * Key size in bits (RSA, DSA). + */ + modulusLength?: number | undefined; + /** + * Public exponent (RSA). + */ + publicExponent?: bigint | undefined; + /** + * Name of the message digest (RSA-PSS). + */ + hashAlgorithm?: string | undefined; + /** + * Name of the message digest used by MGF1 (RSA-PSS). + */ + mgf1HashAlgorithm?: string | undefined; + /** + * Minimal salt length in bytes (RSA-PSS). + */ + saltLength?: number | undefined; + /** + * Size of q in bits (DSA). + */ + divisorLength?: number | undefined; + /** + * Name of the curve (EC). + */ + namedCurve?: string | undefined; + } + /** + * Node.js uses a `KeyObject` class to represent a symmetric or asymmetric key, + * and each kind of key exposes different functions. The {@link createSecretKey}, {@link createPublicKey} and {@link createPrivateKey} methods are used to create `KeyObject`instances. `KeyObject` + * objects are not to be created directly using the `new`keyword. + * + * Most applications should consider using the new `KeyObject` API instead of + * passing keys as strings or `Buffer`s due to improved security features. + * + * `KeyObject` instances can be passed to other threads via `postMessage()`. + * The receiver obtains a cloned `KeyObject`, and the `KeyObject` does not need to + * be listed in the `transferList` argument. + * @since v11.6.0 + */ + class KeyObject { + private constructor(); + /** + * Example: Converting a `CryptoKey` instance to a `KeyObject`: + * + * ```js + * const { webcrypto, KeyObject } = await import('crypto'); + * const { subtle } = webcrypto; + * + * const key = await subtle.generateKey({ + * name: 'HMAC', + * hash: 'SHA-256', + * length: 256 + * }, true, ['sign', 'verify']); + * + * const keyObject = KeyObject.from(key); + * console.log(keyObject.symmetricKeySize); + * // Prints: 32 (symmetric key size in bytes) + * ``` + * @since v15.0.0 + */ + static from(key: webcrypto.CryptoKey): KeyObject; + /** + * For asymmetric keys, this property represents the type of the key. Supported key + * types are: + * + * * `'rsa'` (OID 1.2.840.113549.1.1.1) + * * `'rsa-pss'` (OID 1.2.840.113549.1.1.10) + * * `'dsa'` (OID 1.2.840.10040.4.1) + * * `'ec'` (OID 1.2.840.10045.2.1) + * * `'x25519'` (OID 1.3.101.110) + * * `'x448'` (OID 1.3.101.111) + * * `'ed25519'` (OID 1.3.101.112) + * * `'ed448'` (OID 1.3.101.113) + * * `'dh'` (OID 1.2.840.113549.1.3.1) + * + * This property is `undefined` for unrecognized `KeyObject` types and symmetric + * keys. + * @since v11.6.0 + */ + asymmetricKeyType?: KeyType | undefined; + /** + * For asymmetric keys, this property represents the size of the embedded key in + * bytes. This property is `undefined` for symmetric keys. + */ + asymmetricKeySize?: number | undefined; + /** + * This property exists only on asymmetric keys. Depending on the type of the key, + * this object contains information about the key. None of the information obtained + * through this property can be used to uniquely identify a key or to compromise + * the security of the key. + * + * For RSA-PSS keys, if the key material contains a `RSASSA-PSS-params` sequence, + * the `hashAlgorithm`, `mgf1HashAlgorithm`, and `saltLength` properties will be + * set. + * + * Other key details might be exposed via this API using additional attributes. + * @since v15.7.0 + */ + asymmetricKeyDetails?: AsymmetricKeyDetails | undefined; + /** + * For symmetric keys, the following encoding options can be used: + * + * For public keys, the following encoding options can be used: + * + * For private keys, the following encoding options can be used: + * + * The result type depends on the selected encoding format, when PEM the + * result is a string, when DER it will be a buffer containing the data + * encoded as DER, when [JWK](https://tools.ietf.org/html/rfc7517) it will be an object. + * + * When [JWK](https://tools.ietf.org/html/rfc7517) encoding format was selected, all other encoding options are + * ignored. + * + * PKCS#1, SEC1, and PKCS#8 type keys can be encrypted by using a combination of + * the `cipher` and `format` options. The PKCS#8 `type` can be used with any`format` to encrypt any key algorithm (RSA, EC, or DH) by specifying a`cipher`. PKCS#1 and SEC1 can only be + * encrypted by specifying a `cipher`when the PEM `format` is used. For maximum compatibility, use PKCS#8 for + * encrypted private keys. Since PKCS#8 defines its own + * encryption mechanism, PEM-level encryption is not supported when encrypting + * a PKCS#8 key. See [RFC 5208](https://www.rfc-editor.org/rfc/rfc5208.txt) for PKCS#8 encryption and [RFC 1421](https://www.rfc-editor.org/rfc/rfc1421.txt) for + * PKCS#1 and SEC1 encryption. + * @since v11.6.0 + */ + export(options: KeyExportOptions<'pem'>): string | Buffer; + export(options?: KeyExportOptions<'der'>): Buffer; + export(options?: JwkKeyExportOptions): JsonWebKey; + /** + * For secret keys, this property represents the size of the key in bytes. This + * property is `undefined` for asymmetric keys. + * @since v11.6.0 + */ + symmetricKeySize?: number | undefined; + /** + * Depending on the type of this `KeyObject`, this property is either`'secret'` for secret (symmetric) keys, `'public'` for public (asymmetric) keys + * or `'private'` for private (asymmetric) keys. + * @since v11.6.0 + */ + type: KeyObjectType; + } + type CipherCCMTypes = 'aes-128-ccm' | 'aes-192-ccm' | 'aes-256-ccm' | 'chacha20-poly1305'; + type CipherGCMTypes = 'aes-128-gcm' | 'aes-192-gcm' | 'aes-256-gcm'; + type CipherOCBTypes = 'aes-128-ocb' | 'aes-192-ocb' | 'aes-256-ocb'; + type BinaryLike = string | NodeJS.ArrayBufferView; + type CipherKey = BinaryLike | KeyObject; + interface CipherCCMOptions extends stream.TransformOptions { + authTagLength: number; + } + interface CipherGCMOptions extends stream.TransformOptions { + authTagLength?: number | undefined; + } + interface CipherOCBOptions extends stream.TransformOptions { + authTagLength: number; + } + /** + * Creates and returns a `Cipher` object that uses the given `algorithm` and`password`. + * + * The `options` argument controls stream behavior and is optional except when a + * cipher in CCM or OCB mode (e.g. `'aes-128-ccm'`) is used. In that case, the`authTagLength` option is required and specifies the length of the + * authentication tag in bytes, see `CCM mode`. In GCM mode, the `authTagLength`option is not required but can be used to set the length of the authentication + * tag that will be returned by `getAuthTag()` and defaults to 16 bytes. + * For `chacha20-poly1305`, the `authTagLength` option defaults to 16 bytes. + * + * The `algorithm` is dependent on OpenSSL, examples are `'aes192'`, etc. On + * recent OpenSSL releases, `openssl list -cipher-algorithms` will + * display the available cipher algorithms. + * + * The `password` is used to derive the cipher key and initialization vector (IV). + * The value must be either a `'latin1'` encoded string, a `Buffer`, a`TypedArray`, or a `DataView`. + * + * The implementation of `crypto.createCipher()` derives keys using the OpenSSL + * function [`EVP_BytesToKey`](https://www.openssl.org/docs/man1.1.0/crypto/EVP_BytesToKey.html) with the digest algorithm set to MD5, one + * iteration, and no salt. The lack of salt allows dictionary attacks as the same + * password always creates the same key. The low iteration count and + * non-cryptographically secure hash algorithm allow passwords to be tested very + * rapidly. + * + * In line with OpenSSL's recommendation to use a more modern algorithm instead of [`EVP_BytesToKey`](https://www.openssl.org/docs/man1.1.0/crypto/EVP_BytesToKey.html) it is recommended that + * developers derive a key and IV on + * their own using {@link scrypt} and to use {@link createCipheriv} to create the `Cipher` object. Users should not use ciphers with counter mode + * (e.g. CTR, GCM, or CCM) in `crypto.createCipher()`. A warning is emitted when + * they are used in order to avoid the risk of IV reuse that causes + * vulnerabilities. For the case when IV is reused in GCM, see [Nonce-Disrespecting Adversaries](https://github.com/nonce-disrespect/nonce-disrespect) for details. + * @since v0.1.94 + * @deprecated Since v10.0.0 - Use {@link createCipheriv} instead. + * @param options `stream.transform` options + */ + function createCipher(algorithm: CipherCCMTypes, password: BinaryLike, options: CipherCCMOptions): CipherCCM; + /** @deprecated since v10.0.0 use `createCipheriv()` */ + function createCipher(algorithm: CipherGCMTypes, password: BinaryLike, options?: CipherGCMOptions): CipherGCM; + /** @deprecated since v10.0.0 use `createCipheriv()` */ + function createCipher(algorithm: string, password: BinaryLike, options?: stream.TransformOptions): Cipher; + /** + * Creates and returns a `Cipher` object, with the given `algorithm`, `key` and + * initialization vector (`iv`). + * + * The `options` argument controls stream behavior and is optional except when a + * cipher in CCM or OCB mode (e.g. `'aes-128-ccm'`) is used. In that case, the`authTagLength` option is required and specifies the length of the + * authentication tag in bytes, see `CCM mode`. In GCM mode, the `authTagLength`option is not required but can be used to set the length of the authentication + * tag that will be returned by `getAuthTag()` and defaults to 16 bytes. + * For `chacha20-poly1305`, the `authTagLength` option defaults to 16 bytes. + * + * The `algorithm` is dependent on OpenSSL, examples are `'aes192'`, etc. On + * recent OpenSSL releases, `openssl list -cipher-algorithms` will + * display the available cipher algorithms. + * + * The `key` is the raw key used by the `algorithm` and `iv` is an [initialization vector](https://en.wikipedia.org/wiki/Initialization_vector). Both arguments must be `'utf8'` encoded + * strings,`Buffers`, `TypedArray`, or `DataView`s. The `key` may optionally be + * a `KeyObject` of type `secret`. If the cipher does not need + * an initialization vector, `iv` may be `null`. + * + * When passing strings for `key` or `iv`, please consider `caveats when using strings as inputs to cryptographic APIs`. + * + * Initialization vectors should be unpredictable and unique; ideally, they will be + * cryptographically random. They do not have to be secret: IVs are typically just + * added to ciphertext messages unencrypted. It may sound contradictory that + * something has to be unpredictable and unique, but does not have to be secret; + * remember that an attacker must not be able to predict ahead of time what a + * given IV will be. + * @since v0.1.94 + * @param options `stream.transform` options + */ + function createCipheriv(algorithm: CipherCCMTypes, key: CipherKey, iv: BinaryLike, options: CipherCCMOptions): CipherCCM; + function createCipheriv(algorithm: CipherOCBTypes, key: CipherKey, iv: BinaryLike, options: CipherOCBOptions): CipherOCB; + function createCipheriv(algorithm: CipherGCMTypes, key: CipherKey, iv: BinaryLike, options?: CipherGCMOptions): CipherGCM; + function createCipheriv(algorithm: string, key: CipherKey, iv: BinaryLike | null, options?: stream.TransformOptions): Cipher; + /** + * Instances of the `Cipher` class are used to encrypt data. The class can be + * used in one of two ways: + * + * * As a `stream` that is both readable and writable, where plain unencrypted + * data is written to produce encrypted data on the readable side, or + * * Using the `cipher.update()` and `cipher.final()` methods to produce + * the encrypted data. + * + * The {@link createCipher} or {@link createCipheriv} methods are + * used to create `Cipher` instances. `Cipher` objects are not to be created + * directly using the `new` keyword. + * + * Example: Using `Cipher` objects as streams: + * + * ```js + * const { + * scrypt, + * randomFill, + * createCipheriv + * } = await import('crypto'); + * + * const algorithm = 'aes-192-cbc'; + * const password = 'Password used to generate key'; + * + * // First, we'll generate the key. The key length is dependent on the algorithm. + * // In this case for aes192, it is 24 bytes (192 bits). + * scrypt(password, 'salt', 24, (err, key) => { + * if (err) throw err; + * // Then, we'll generate a random initialization vector + * randomFill(new Uint8Array(16), (err, iv) => { + * if (err) throw err; + * + * // Once we have the key and iv, we can create and use the cipher... + * const cipher = createCipheriv(algorithm, key, iv); + * + * let encrypted = ''; + * cipher.setEncoding('hex'); + * + * cipher.on('data', (chunk) => encrypted += chunk); + * cipher.on('end', () => console.log(encrypted)); + * + * cipher.write('some clear text data'); + * cipher.end(); + * }); + * }); + * ``` + * + * Example: Using `Cipher` and piped streams: + * + * ```js + * import { + * createReadStream, + * createWriteStream, + * } from 'fs'; + * + * import { + * pipeline + * } from 'stream'; + * + * const { + * scrypt, + * randomFill, + * createCipheriv + * } = await import('crypto'); + * + * const algorithm = 'aes-192-cbc'; + * const password = 'Password used to generate key'; + * + * // First, we'll generate the key. The key length is dependent on the algorithm. + * // In this case for aes192, it is 24 bytes (192 bits). + * scrypt(password, 'salt', 24, (err, key) => { + * if (err) throw err; + * // Then, we'll generate a random initialization vector + * randomFill(new Uint8Array(16), (err, iv) => { + * if (err) throw err; + * + * const cipher = createCipheriv(algorithm, key, iv); + * + * const input = createReadStream('test.js'); + * const output = createWriteStream('test.enc'); + * + * pipeline(input, cipher, output, (err) => { + * if (err) throw err; + * }); + * }); + * }); + * ``` + * + * Example: Using the `cipher.update()` and `cipher.final()` methods: + * + * ```js + * const { + * scrypt, + * randomFill, + * createCipheriv + * } = await import('crypto'); + * + * const algorithm = 'aes-192-cbc'; + * const password = 'Password used to generate key'; + * + * // First, we'll generate the key. The key length is dependent on the algorithm. + * // In this case for aes192, it is 24 bytes (192 bits). + * scrypt(password, 'salt', 24, (err, key) => { + * if (err) throw err; + * // Then, we'll generate a random initialization vector + * randomFill(new Uint8Array(16), (err, iv) => { + * if (err) throw err; + * + * const cipher = createCipheriv(algorithm, key, iv); + * + * let encrypted = cipher.update('some clear text data', 'utf8', 'hex'); + * encrypted += cipher.final('hex'); + * console.log(encrypted); + * }); + * }); + * ``` + * @since v0.1.94 + */ + class Cipher extends stream.Transform { + private constructor(); + /** + * Updates the cipher with `data`. If the `inputEncoding` argument is given, + * the `data`argument is a string using the specified encoding. If the `inputEncoding`argument is not given, `data` must be a `Buffer`, `TypedArray`, or`DataView`. If `data` is a `Buffer`, + * `TypedArray`, or `DataView`, then`inputEncoding` is ignored. + * + * The `outputEncoding` specifies the output format of the enciphered + * data. If the `outputEncoding`is specified, a string using the specified encoding is returned. If no`outputEncoding` is provided, a `Buffer` is returned. + * + * The `cipher.update()` method can be called multiple times with new data until `cipher.final()` is called. Calling `cipher.update()` after `cipher.final()` will result in an error being + * thrown. + * @since v0.1.94 + * @param inputEncoding The `encoding` of the data. + * @param outputEncoding The `encoding` of the return value. + */ + update(data: BinaryLike): Buffer; + update(data: string, inputEncoding: Encoding): Buffer; + update(data: NodeJS.ArrayBufferView, inputEncoding: undefined, outputEncoding: Encoding): string; + update(data: string, inputEncoding: Encoding | undefined, outputEncoding: Encoding): string; + /** + * Once the `cipher.final()` method has been called, the `Cipher` object can no + * longer be used to encrypt data. Attempts to call `cipher.final()` more than + * once will result in an error being thrown. + * @since v0.1.94 + * @param outputEncoding The `encoding` of the return value. + * @return Any remaining enciphered contents. If `outputEncoding` is specified, a string is returned. If an `outputEncoding` is not provided, a {@link Buffer} is returned. + */ + final(): Buffer; + final(outputEncoding: BufferEncoding): string; + /** + * When using block encryption algorithms, the `Cipher` class will automatically + * add padding to the input data to the appropriate block size. To disable the + * default padding call `cipher.setAutoPadding(false)`. + * + * When `autoPadding` is `false`, the length of the entire input data must be a + * multiple of the cipher's block size or `cipher.final()` will throw an error. + * Disabling automatic padding is useful for non-standard padding, for instance + * using `0x0` instead of PKCS padding. + * + * The `cipher.setAutoPadding()` method must be called before `cipher.final()`. + * @since v0.7.1 + * @param [autoPadding=true] + * @return for method chaining. + */ + setAutoPadding(autoPadding?: boolean): this; + } + interface CipherCCM extends Cipher { + setAAD( + buffer: NodeJS.ArrayBufferView, + options: { + plaintextLength: number; + } + ): this; + getAuthTag(): Buffer; + } + interface CipherGCM extends Cipher { + setAAD( + buffer: NodeJS.ArrayBufferView, + options?: { + plaintextLength: number; + } + ): this; + getAuthTag(): Buffer; + } + interface CipherOCB extends Cipher { + setAAD( + buffer: NodeJS.ArrayBufferView, + options?: { + plaintextLength: number; + } + ): this; + getAuthTag(): Buffer; + } + /** + * Creates and returns a `Decipher` object that uses the given `algorithm` and`password` (key). + * + * The `options` argument controls stream behavior and is optional except when a + * cipher in CCM or OCB mode (e.g. `'aes-128-ccm'`) is used. In that case, the`authTagLength` option is required and specifies the length of the + * authentication tag in bytes, see `CCM mode`. + * For `chacha20-poly1305`, the `authTagLength` option defaults to 16 bytes. + * + * The implementation of `crypto.createDecipher()` derives keys using the OpenSSL + * function [`EVP_BytesToKey`](https://www.openssl.org/docs/man1.1.0/crypto/EVP_BytesToKey.html) with the digest algorithm set to MD5, one + * iteration, and no salt. The lack of salt allows dictionary attacks as the same + * password always creates the same key. The low iteration count and + * non-cryptographically secure hash algorithm allow passwords to be tested very + * rapidly. + * + * In line with OpenSSL's recommendation to use a more modern algorithm instead of [`EVP_BytesToKey`](https://www.openssl.org/docs/man1.1.0/crypto/EVP_BytesToKey.html) it is recommended that + * developers derive a key and IV on + * their own using {@link scrypt} and to use {@link createDecipheriv} to create the `Decipher` object. + * @since v0.1.94 + * @deprecated Since v10.0.0 - Use {@link createDecipheriv} instead. + * @param options `stream.transform` options + */ + function createDecipher(algorithm: CipherCCMTypes, password: BinaryLike, options: CipherCCMOptions): DecipherCCM; + /** @deprecated since v10.0.0 use `createDecipheriv()` */ + function createDecipher(algorithm: CipherGCMTypes, password: BinaryLike, options?: CipherGCMOptions): DecipherGCM; + /** @deprecated since v10.0.0 use `createDecipheriv()` */ + function createDecipher(algorithm: string, password: BinaryLike, options?: stream.TransformOptions): Decipher; + /** + * Creates and returns a `Decipher` object that uses the given `algorithm`, `key`and initialization vector (`iv`). + * + * The `options` argument controls stream behavior and is optional except when a + * cipher in CCM or OCB mode (e.g. `'aes-128-ccm'`) is used. In that case, the`authTagLength` option is required and specifies the length of the + * authentication tag in bytes, see `CCM mode`. In GCM mode, the `authTagLength`option is not required but can be used to restrict accepted authentication tags + * to those with the specified length. + * For `chacha20-poly1305`, the `authTagLength` option defaults to 16 bytes. + * + * The `algorithm` is dependent on OpenSSL, examples are `'aes192'`, etc. On + * recent OpenSSL releases, `openssl list -cipher-algorithms` will + * display the available cipher algorithms. + * + * The `key` is the raw key used by the `algorithm` and `iv` is an [initialization vector](https://en.wikipedia.org/wiki/Initialization_vector). Both arguments must be `'utf8'` encoded + * strings,`Buffers`, `TypedArray`, or `DataView`s. The `key` may optionally be + * a `KeyObject` of type `secret`. If the cipher does not need + * an initialization vector, `iv` may be `null`. + * + * When passing strings for `key` or `iv`, please consider `caveats when using strings as inputs to cryptographic APIs`. + * + * Initialization vectors should be unpredictable and unique; ideally, they will be + * cryptographically random. They do not have to be secret: IVs are typically just + * added to ciphertext messages unencrypted. It may sound contradictory that + * something has to be unpredictable and unique, but does not have to be secret; + * remember that an attacker must not be able to predict ahead of time what a given + * IV will be. + * @since v0.1.94 + * @param options `stream.transform` options + */ + function createDecipheriv(algorithm: CipherCCMTypes, key: CipherKey, iv: BinaryLike, options: CipherCCMOptions): DecipherCCM; + function createDecipheriv(algorithm: CipherOCBTypes, key: CipherKey, iv: BinaryLike, options: CipherOCBOptions): DecipherOCB; + function createDecipheriv(algorithm: CipherGCMTypes, key: CipherKey, iv: BinaryLike, options?: CipherGCMOptions): DecipherGCM; + function createDecipheriv(algorithm: string, key: CipherKey, iv: BinaryLike | null, options?: stream.TransformOptions): Decipher; + /** + * Instances of the `Decipher` class are used to decrypt data. The class can be + * used in one of two ways: + * + * * As a `stream` that is both readable and writable, where plain encrypted + * data is written to produce unencrypted data on the readable side, or + * * Using the `decipher.update()` and `decipher.final()` methods to + * produce the unencrypted data. + * + * The {@link createDecipher} or {@link createDecipheriv} methods are + * used to create `Decipher` instances. `Decipher` objects are not to be created + * directly using the `new` keyword. + * + * Example: Using `Decipher` objects as streams: + * + * ```js + * import { Buffer } from 'buffer'; + * const { + * scryptSync, + * createDecipheriv + * } = await import('crypto'); + * + * const algorithm = 'aes-192-cbc'; + * const password = 'Password used to generate key'; + * // Key length is dependent on the algorithm. In this case for aes192, it is + * // 24 bytes (192 bits). + * // Use the async `crypto.scrypt()` instead. + * const key = scryptSync(password, 'salt', 24); + * // The IV is usually passed along with the ciphertext. + * const iv = Buffer.alloc(16, 0); // Initialization vector. + * + * const decipher = createDecipheriv(algorithm, key, iv); + * + * let decrypted = ''; + * decipher.on('readable', () => { + * while (null !== (chunk = decipher.read())) { + * decrypted += chunk.toString('utf8'); + * } + * }); + * decipher.on('end', () => { + * console.log(decrypted); + * // Prints: some clear text data + * }); + * + * // Encrypted with same algorithm, key and iv. + * const encrypted = + * 'e5f79c5915c02171eec6b212d5520d44480993d7d622a7c4c2da32f6efda0ffa'; + * decipher.write(encrypted, 'hex'); + * decipher.end(); + * ``` + * + * Example: Using `Decipher` and piped streams: + * + * ```js + * import { + * createReadStream, + * createWriteStream, + * } from 'fs'; + * import { Buffer } from 'buffer'; + * const { + * scryptSync, + * createDecipheriv + * } = await import('crypto'); + * + * const algorithm = 'aes-192-cbc'; + * const password = 'Password used to generate key'; + * // Use the async `crypto.scrypt()` instead. + * const key = scryptSync(password, 'salt', 24); + * // The IV is usually passed along with the ciphertext. + * const iv = Buffer.alloc(16, 0); // Initialization vector. + * + * const decipher = createDecipheriv(algorithm, key, iv); + * + * const input = createReadStream('test.enc'); + * const output = createWriteStream('test.js'); + * + * input.pipe(decipher).pipe(output); + * ``` + * + * Example: Using the `decipher.update()` and `decipher.final()` methods: + * + * ```js + * import { Buffer } from 'buffer'; + * const { + * scryptSync, + * createDecipheriv + * } = await import('crypto'); + * + * const algorithm = 'aes-192-cbc'; + * const password = 'Password used to generate key'; + * // Use the async `crypto.scrypt()` instead. + * const key = scryptSync(password, 'salt', 24); + * // The IV is usually passed along with the ciphertext. + * const iv = Buffer.alloc(16, 0); // Initialization vector. + * + * const decipher = createDecipheriv(algorithm, key, iv); + * + * // Encrypted using same algorithm, key and iv. + * const encrypted = + * 'e5f79c5915c02171eec6b212d5520d44480993d7d622a7c4c2da32f6efda0ffa'; + * let decrypted = decipher.update(encrypted, 'hex', 'utf8'); + * decrypted += decipher.final('utf8'); + * console.log(decrypted); + * // Prints: some clear text data + * ``` + * @since v0.1.94 + */ + class Decipher extends stream.Transform { + private constructor(); + /** + * Updates the decipher with `data`. If the `inputEncoding` argument is given, + * the `data`argument is a string using the specified encoding. If the `inputEncoding`argument is not given, `data` must be a `Buffer`. If `data` is a `Buffer` then `inputEncoding` is + * ignored. + * + * The `outputEncoding` specifies the output format of the enciphered + * data. If the `outputEncoding`is specified, a string using the specified encoding is returned. If no`outputEncoding` is provided, a `Buffer` is returned. + * + * The `decipher.update()` method can be called multiple times with new data until `decipher.final()` is called. Calling `decipher.update()` after `decipher.final()` will result in an error + * being thrown. + * @since v0.1.94 + * @param inputEncoding The `encoding` of the `data` string. + * @param outputEncoding The `encoding` of the return value. + */ + update(data: NodeJS.ArrayBufferView): Buffer; + update(data: string, inputEncoding: Encoding): Buffer; + update(data: NodeJS.ArrayBufferView, inputEncoding: undefined, outputEncoding: Encoding): string; + update(data: string, inputEncoding: Encoding | undefined, outputEncoding: Encoding): string; + /** + * Once the `decipher.final()` method has been called, the `Decipher` object can + * no longer be used to decrypt data. Attempts to call `decipher.final()` more + * than once will result in an error being thrown. + * @since v0.1.94 + * @param outputEncoding The `encoding` of the return value. + * @return Any remaining deciphered contents. If `outputEncoding` is specified, a string is returned. If an `outputEncoding` is not provided, a {@link Buffer} is returned. + */ + final(): Buffer; + final(outputEncoding: BufferEncoding): string; + /** + * When data has been encrypted without standard block padding, calling`decipher.setAutoPadding(false)` will disable automatic padding to prevent `decipher.final()` from checking for and + * removing padding. + * + * Turning auto padding off will only work if the input data's length is a + * multiple of the ciphers block size. + * + * The `decipher.setAutoPadding()` method must be called before `decipher.final()`. + * @since v0.7.1 + * @param [autoPadding=true] + * @return for method chaining. + */ + setAutoPadding(auto_padding?: boolean): this; + } + interface DecipherCCM extends Decipher { + setAuthTag(buffer: NodeJS.ArrayBufferView): this; + setAAD( + buffer: NodeJS.ArrayBufferView, + options: { + plaintextLength: number; + } + ): this; + } + interface DecipherGCM extends Decipher { + setAuthTag(buffer: NodeJS.ArrayBufferView): this; + setAAD( + buffer: NodeJS.ArrayBufferView, + options?: { + plaintextLength: number; + } + ): this; + } + interface DecipherOCB extends Decipher { + setAuthTag(buffer: NodeJS.ArrayBufferView): this; + setAAD( + buffer: NodeJS.ArrayBufferView, + options?: { + plaintextLength: number; + } + ): this; + } + interface PrivateKeyInput { + key: string | Buffer; + format?: KeyFormat | undefined; + type?: 'pkcs1' | 'pkcs8' | 'sec1' | undefined; + passphrase?: string | Buffer | undefined; + } + interface PublicKeyInput { + key: string | Buffer; + format?: KeyFormat | undefined; + type?: 'pkcs1' | 'spki' | undefined; + } + /** + * Asynchronously generates a new random secret key of the given `length`. The`type` will determine which validations will be performed on the `length`. + * + * ```js + * const { + * generateKey + * } = await import('crypto'); + * + * generateKey('hmac', { length: 64 }, (err, key) => { + * if (err) throw err; + * console.log(key.export().toString('hex')); // 46e..........620 + * }); + * ``` + * @since v15.0.0 + * @param type The intended use of the generated secret key. Currently accepted values are `'hmac'` and `'aes'`. + */ + function generateKey( + type: 'hmac' | 'aes', + options: { + length: number; + }, + callback: (err: Error | null, key: KeyObject) => void + ): void; + /** + * Synchronously generates a new random secret key of the given `length`. The`type` will determine which validations will be performed on the `length`. + * + * ```js + * const { + * generateKeySync + * } = await import('crypto'); + * + * const key = generateKeySync('hmac', { length: 64 }); + * console.log(key.export().toString('hex')); // e89..........41e + * ``` + * @since v15.0.0 + * @param type The intended use of the generated secret key. Currently accepted values are `'hmac'` and `'aes'`. + */ + function generateKeySync( + type: 'hmac' | 'aes', + options: { + length: number; + } + ): KeyObject; + interface JsonWebKeyInput { + key: JsonWebKey; + format: 'jwk'; + } + /** + * Creates and returns a new key object containing a private key. If `key` is a + * string or `Buffer`, `format` is assumed to be `'pem'`; otherwise, `key`must be an object with the properties described above. + * + * If the private key is encrypted, a `passphrase` must be specified. The length + * of the passphrase is limited to 1024 bytes. + * @since v11.6.0 + */ + function createPrivateKey(key: PrivateKeyInput | string | Buffer | JsonWebKeyInput): KeyObject; + /** + * Creates and returns a new key object containing a public key. If `key` is a + * string or `Buffer`, `format` is assumed to be `'pem'`; if `key` is a `KeyObject`with type `'private'`, the public key is derived from the given private key; + * otherwise, `key` must be an object with the properties described above. + * + * If the format is `'pem'`, the `'key'` may also be an X.509 certificate. + * + * Because public keys can be derived from private keys, a private key may be + * passed instead of a public key. In that case, this function behaves as if {@link createPrivateKey} had been called, except that the type of the + * returned `KeyObject` will be `'public'` and that the private key cannot be + * extracted from the returned `KeyObject`. Similarly, if a `KeyObject` with type`'private'` is given, a new `KeyObject` with type `'public'` will be returned + * and it will be impossible to extract the private key from the returned object. + * @since v11.6.0 + */ + function createPublicKey(key: PublicKeyInput | string | Buffer | KeyObject | JsonWebKeyInput): KeyObject; + /** + * Creates and returns a new key object containing a secret key for symmetric + * encryption or `Hmac`. + * @since v11.6.0 + * @param encoding The string encoding when `key` is a string. + */ + function createSecretKey(key: NodeJS.ArrayBufferView): KeyObject; + function createSecretKey(key: string, encoding: BufferEncoding): KeyObject; + /** + * Creates and returns a `Sign` object that uses the given `algorithm`. Use {@link getHashes} to obtain the names of the available digest algorithms. + * Optional `options` argument controls the `stream.Writable` behavior. + * + * In some cases, a `Sign` instance can be created using the name of a signature + * algorithm, such as `'RSA-SHA256'`, instead of a digest algorithm. This will use + * the corresponding digest algorithm. This does not work for all signature + * algorithms, such as `'ecdsa-with-SHA256'`, so it is best to always use digest + * algorithm names. + * @since v0.1.92 + * @param options `stream.Writable` options + */ + function createSign(algorithm: string, options?: stream.WritableOptions): Sign; + type DSAEncoding = 'der' | 'ieee-p1363'; + interface SigningOptions { + /** + * @See crypto.constants.RSA_PKCS1_PADDING + */ + padding?: number | undefined; + saltLength?: number | undefined; + dsaEncoding?: DSAEncoding | undefined; + } + interface SignPrivateKeyInput extends PrivateKeyInput, SigningOptions {} + interface SignKeyObjectInput extends SigningOptions { + key: KeyObject; + } + interface VerifyPublicKeyInput extends PublicKeyInput, SigningOptions {} + interface VerifyKeyObjectInput extends SigningOptions { + key: KeyObject; + } + type KeyLike = string | Buffer | KeyObject; + /** + * The `Sign` class is a utility for generating signatures. It can be used in one + * of two ways: + * + * * As a writable `stream`, where data to be signed is written and the `sign.sign()` method is used to generate and return the signature, or + * * Using the `sign.update()` and `sign.sign()` methods to produce the + * signature. + * + * The {@link createSign} method is used to create `Sign` instances. The + * argument is the string name of the hash function to use. `Sign` objects are not + * to be created directly using the `new` keyword. + * + * Example: Using `Sign` and `Verify` objects as streams: + * + * ```js + * const { + * generateKeyPairSync, + * createSign, + * createVerify + * } = await import('crypto'); + * + * const { privateKey, publicKey } = generateKeyPairSync('ec', { + * namedCurve: 'sect239k1' + * }); + * + * const sign = createSign('SHA256'); + * sign.write('some data to sign'); + * sign.end(); + * const signature = sign.sign(privateKey, 'hex'); + * + * const verify = createVerify('SHA256'); + * verify.write('some data to sign'); + * verify.end(); + * console.log(verify.verify(publicKey, signature, 'hex')); + * // Prints: true + * ``` + * + * Example: Using the `sign.update()` and `verify.update()` methods: + * + * ```js + * const { + * generateKeyPairSync, + * createSign, + * createVerify + * } = await import('crypto'); + * + * const { privateKey, publicKey } = generateKeyPairSync('rsa', { + * modulusLength: 2048, + * }); + * + * const sign = createSign('SHA256'); + * sign.update('some data to sign'); + * sign.end(); + * const signature = sign.sign(privateKey); + * + * const verify = createVerify('SHA256'); + * verify.update('some data to sign'); + * verify.end(); + * console.log(verify.verify(publicKey, signature)); + * // Prints: true + * ``` + * @since v0.1.92 + */ + class Sign extends stream.Writable { + private constructor(); + /** + * Updates the `Sign` content with the given `data`, the encoding of which + * is given in `inputEncoding`. + * If `encoding` is not provided, and the `data` is a string, an + * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored. + * + * This can be called many times with new data as it is streamed. + * @since v0.1.92 + * @param inputEncoding The `encoding` of the `data` string. + */ + update(data: BinaryLike): this; + update(data: string, inputEncoding: Encoding): this; + /** + * Calculates the signature on all the data passed through using either `sign.update()` or `sign.write()`. + * + * If `privateKey` is not a `KeyObject`, this function behaves as if`privateKey` had been passed to {@link createPrivateKey}. If it is an + * object, the following additional properties can be passed: + * + * If `outputEncoding` is provided a string is returned; otherwise a `Buffer` is returned. + * + * The `Sign` object can not be again used after `sign.sign()` method has been + * called. Multiple calls to `sign.sign()` will result in an error being thrown. + * @since v0.1.92 + */ + sign(privateKey: KeyLike | SignKeyObjectInput | SignPrivateKeyInput): Buffer; + sign(privateKey: KeyLike | SignKeyObjectInput | SignPrivateKeyInput, outputFormat: BinaryToTextEncoding): string; + } + /** + * Creates and returns a `Verify` object that uses the given algorithm. + * Use {@link getHashes} to obtain an array of names of the available + * signing algorithms. Optional `options` argument controls the`stream.Writable` behavior. + * + * In some cases, a `Verify` instance can be created using the name of a signature + * algorithm, such as `'RSA-SHA256'`, instead of a digest algorithm. This will use + * the corresponding digest algorithm. This does not work for all signature + * algorithms, such as `'ecdsa-with-SHA256'`, so it is best to always use digest + * algorithm names. + * @since v0.1.92 + * @param options `stream.Writable` options + */ + function createVerify(algorithm: string, options?: stream.WritableOptions): Verify; + /** + * The `Verify` class is a utility for verifying signatures. It can be used in one + * of two ways: + * + * * As a writable `stream` where written data is used to validate against the + * supplied signature, or + * * Using the `verify.update()` and `verify.verify()` methods to verify + * the signature. + * + * The {@link createVerify} method is used to create `Verify` instances.`Verify` objects are not to be created directly using the `new` keyword. + * + * See `Sign` for examples. + * @since v0.1.92 + */ + class Verify extends stream.Writable { + private constructor(); + /** + * Updates the `Verify` content with the given `data`, the encoding of which + * is given in `inputEncoding`. + * If `inputEncoding` is not provided, and the `data` is a string, an + * encoding of `'utf8'` is enforced. If `data` is a `Buffer`, `TypedArray`, or`DataView`, then `inputEncoding` is ignored. + * + * This can be called many times with new data as it is streamed. + * @since v0.1.92 + * @param inputEncoding The `encoding` of the `data` string. + */ + update(data: BinaryLike): Verify; + update(data: string, inputEncoding: Encoding): Verify; + /** + * Verifies the provided data using the given `object` and `signature`. + * + * If `object` is not a `KeyObject`, this function behaves as if`object` had been passed to {@link createPublicKey}. If it is an + * object, the following additional properties can be passed: + * + * The `signature` argument is the previously calculated signature for the data, in + * the `signatureEncoding`. + * If a `signatureEncoding` is specified, the `signature` is expected to be a + * string; otherwise `signature` is expected to be a `Buffer`,`TypedArray`, or `DataView`. + * + * The `verify` object can not be used again after `verify.verify()` has been + * called. Multiple calls to `verify.verify()` will result in an error being + * thrown. + * + * Because public keys can be derived from private keys, a private key may + * be passed instead of a public key. + * @since v0.1.92 + */ + verify(object: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput, signature: NodeJS.ArrayBufferView): boolean; + verify(object: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput, signature: string, signature_format?: BinaryToTextEncoding): boolean; + } + /** + * Creates a `DiffieHellman` key exchange object using the supplied `prime` and an + * optional specific `generator`. + * + * The `generator` argument can be a number, string, or `Buffer`. If`generator` is not specified, the value `2` is used. + * + * If `primeEncoding` is specified, `prime` is expected to be a string; otherwise + * a `Buffer`, `TypedArray`, or `DataView` is expected. + * + * If `generatorEncoding` is specified, `generator` is expected to be a string; + * otherwise a number, `Buffer`, `TypedArray`, or `DataView` is expected. + * @since v0.11.12 + * @param primeEncoding The `encoding` of the `prime` string. + * @param [generator=2] + * @param generatorEncoding The `encoding` of the `generator` string. + */ + function createDiffieHellman(primeLength: number, generator?: number): DiffieHellman; + function createDiffieHellman(prime: ArrayBuffer | NodeJS.ArrayBufferView, generator?: number | ArrayBuffer | NodeJS.ArrayBufferView): DiffieHellman; + function createDiffieHellman(prime: ArrayBuffer | NodeJS.ArrayBufferView, generator: string, generatorEncoding: BinaryToTextEncoding): DiffieHellman; + function createDiffieHellman(prime: string, primeEncoding: BinaryToTextEncoding, generator?: number | ArrayBuffer | NodeJS.ArrayBufferView): DiffieHellman; + function createDiffieHellman(prime: string, primeEncoding: BinaryToTextEncoding, generator: string, generatorEncoding: BinaryToTextEncoding): DiffieHellman; + /** + * The `DiffieHellman` class is a utility for creating Diffie-Hellman key + * exchanges. + * + * Instances of the `DiffieHellman` class can be created using the {@link createDiffieHellman} function. + * + * ```js + * import assert from 'assert'; + * + * const { + * createDiffieHellman + * } = await import('crypto'); + * + * // Generate Alice's keys... + * const alice = createDiffieHellman(2048); + * const aliceKey = alice.generateKeys(); + * + * // Generate Bob's keys... + * const bob = createDiffieHellman(alice.getPrime(), alice.getGenerator()); + * const bobKey = bob.generateKeys(); + * + * // Exchange and generate the secret... + * const aliceSecret = alice.computeSecret(bobKey); + * const bobSecret = bob.computeSecret(aliceKey); + * + * // OK + * assert.strictEqual(aliceSecret.toString('hex'), bobSecret.toString('hex')); + * ``` + * @since v0.5.0 + */ + class DiffieHellman { + private constructor(); + /** + * Generates private and public Diffie-Hellman key values, and returns + * the public key in the specified `encoding`. This key should be + * transferred to the other party. + * If `encoding` is provided a string is returned; otherwise a `Buffer` is returned. + * @since v0.5.0 + * @param encoding The `encoding` of the return value. + */ + generateKeys(): Buffer; + generateKeys(encoding: BinaryToTextEncoding): string; + /** + * Computes the shared secret using `otherPublicKey` as the other + * party's public key and returns the computed shared secret. The supplied + * key is interpreted using the specified `inputEncoding`, and secret is + * encoded using specified `outputEncoding`. + * If the `inputEncoding` is not + * provided, `otherPublicKey` is expected to be a `Buffer`,`TypedArray`, or `DataView`. + * + * If `outputEncoding` is given a string is returned; otherwise, a `Buffer` is returned. + * @since v0.5.0 + * @param inputEncoding The `encoding` of an `otherPublicKey` string. + * @param outputEncoding The `encoding` of the return value. + */ + computeSecret(otherPublicKey: NodeJS.ArrayBufferView, inputEncoding?: null, outputEncoding?: null): Buffer; + computeSecret(otherPublicKey: string, inputEncoding: BinaryToTextEncoding, outputEncoding?: null): Buffer; + computeSecret(otherPublicKey: NodeJS.ArrayBufferView, inputEncoding: null, outputEncoding: BinaryToTextEncoding): string; + computeSecret(otherPublicKey: string, inputEncoding: BinaryToTextEncoding, outputEncoding: BinaryToTextEncoding): string; + /** + * Returns the Diffie-Hellman prime in the specified `encoding`. + * If `encoding` is provided a string is + * returned; otherwise a `Buffer` is returned. + * @since v0.5.0 + * @param encoding The `encoding` of the return value. + */ + getPrime(): Buffer; + getPrime(encoding: BinaryToTextEncoding): string; + /** + * Returns the Diffie-Hellman generator in the specified `encoding`. + * If `encoding` is provided a string is + * returned; otherwise a `Buffer` is returned. + * @since v0.5.0 + * @param encoding The `encoding` of the return value. + */ + getGenerator(): Buffer; + getGenerator(encoding: BinaryToTextEncoding): string; + /** + * Returns the Diffie-Hellman public key in the specified `encoding`. + * If `encoding` is provided a + * string is returned; otherwise a `Buffer` is returned. + * @since v0.5.0 + * @param encoding The `encoding` of the return value. + */ + getPublicKey(): Buffer; + getPublicKey(encoding: BinaryToTextEncoding): string; + /** + * Returns the Diffie-Hellman private key in the specified `encoding`. + * If `encoding` is provided a + * string is returned; otherwise a `Buffer` is returned. + * @since v0.5.0 + * @param encoding The `encoding` of the return value. + */ + getPrivateKey(): Buffer; + getPrivateKey(encoding: BinaryToTextEncoding): string; + /** + * Sets the Diffie-Hellman public key. If the `encoding` argument is provided,`publicKey` is expected + * to be a string. If no `encoding` is provided, `publicKey` is expected + * to be a `Buffer`, `TypedArray`, or `DataView`. + * @since v0.5.0 + * @param encoding The `encoding` of the `publicKey` string. + */ + setPublicKey(publicKey: NodeJS.ArrayBufferView): void; + setPublicKey(publicKey: string, encoding: BufferEncoding): void; + /** + * Sets the Diffie-Hellman private key. If the `encoding` argument is provided,`privateKey` is expected + * to be a string. If no `encoding` is provided, `privateKey` is expected + * to be a `Buffer`, `TypedArray`, or `DataView`. + * @since v0.5.0 + * @param encoding The `encoding` of the `privateKey` string. + */ + setPrivateKey(privateKey: NodeJS.ArrayBufferView): void; + setPrivateKey(privateKey: string, encoding: BufferEncoding): void; + /** + * A bit field containing any warnings and/or errors resulting from a check + * performed during initialization of the `DiffieHellman` object. + * + * The following values are valid for this property (as defined in `constants`module): + * + * * `DH_CHECK_P_NOT_SAFE_PRIME` + * * `DH_CHECK_P_NOT_PRIME` + * * `DH_UNABLE_TO_CHECK_GENERATOR` + * * `DH_NOT_SUITABLE_GENERATOR` + * @since v0.11.12 + */ + verifyError: number; + } + /** + * The `DiffieHellmanGroup` class takes a well-known modp group as its argument. + * It works the same as `DiffieHellman`, except that it does not allow changing its keys after creation. + * In other words, it does not implement `setPublicKey()` or `setPrivateKey()` methods. + * + * ```js + * const { createDiffieHellmanGroup } = await import('node:crypto'); + * const dh = createDiffieHellmanGroup('modp1'); + * ``` + * The name (e.g. `'modp1'`) is taken from [RFC 2412](https://www.rfc-editor.org/rfc/rfc2412.txt) (modp1 and 2) and [RFC 3526](https://www.rfc-editor.org/rfc/rfc3526.txt): + * ```bash + * $ perl -ne 'print "$1\n" if /"(modp\d+)"/' src/node_crypto_groups.h + * modp1 # 768 bits + * modp2 # 1024 bits + * modp5 # 1536 bits + * modp14 # 2048 bits + * modp15 # etc. + * modp16 + * modp17 + * modp18 + * ``` + * @since v0.7.5 + */ + const DiffieHellmanGroup: DiffieHellmanGroupConstructor; + interface DiffieHellmanGroupConstructor { + new(name: string): DiffieHellmanGroup; + (name: string): DiffieHellmanGroup; + readonly prototype: DiffieHellmanGroup; + } + type DiffieHellmanGroup = Omit; + /** + * Creates a predefined `DiffieHellmanGroup` key exchange object. The + * supported groups are: `'modp1'`, `'modp2'`, `'modp5'` (defined in [RFC 2412](https://www.rfc-editor.org/rfc/rfc2412.txt), but see `Caveats`) and `'modp14'`, `'modp15'`,`'modp16'`, `'modp17'`, + * `'modp18'` (defined in [RFC 3526](https://www.rfc-editor.org/rfc/rfc3526.txt)). The + * returned object mimics the interface of objects created by {@link createDiffieHellman}, but will not allow changing + * the keys (with `diffieHellman.setPublicKey()`, for example). The + * advantage of using this method is that the parties do not have to + * generate nor exchange a group modulus beforehand, saving both processor + * and communication time. + * + * Example (obtaining a shared secret): + * + * ```js + * const { + * getDiffieHellman + * } = await import('crypto'); + * const alice = getDiffieHellman('modp14'); + * const bob = getDiffieHellman('modp14'); + * + * alice.generateKeys(); + * bob.generateKeys(); + * + * const aliceSecret = alice.computeSecret(bob.getPublicKey(), null, 'hex'); + * const bobSecret = bob.computeSecret(alice.getPublicKey(), null, 'hex'); + * + * // aliceSecret and bobSecret should be the same + * console.log(aliceSecret === bobSecret); + * ``` + * @since v0.7.5 + */ + function getDiffieHellman(groupName: string): DiffieHellmanGroup; + /** + * An alias for {@link getDiffieHellman} + * @since v0.9.3 + */ + function createDiffieHellmanGroup(name: string): DiffieHellmanGroup; + /** + * Provides an asynchronous Password-Based Key Derivation Function 2 (PBKDF2) + * implementation. A selected HMAC digest algorithm specified by `digest` is + * applied to derive a key of the requested byte length (`keylen`) from the`password`, `salt` and `iterations`. + * + * The supplied `callback` function is called with two arguments: `err` and`derivedKey`. If an error occurs while deriving the key, `err` will be set; + * otherwise `err` will be `null`. By default, the successfully generated`derivedKey` will be passed to the callback as a `Buffer`. An error will be + * thrown if any of the input arguments specify invalid values or types. + * + * If `digest` is `null`, `'sha1'` will be used. This behavior is deprecated, + * please specify a `digest` explicitly. + * + * The `iterations` argument must be a number set as high as possible. The + * higher the number of iterations, the more secure the derived key will be, + * but will take a longer amount of time to complete. + * + * The `salt` should be as unique as possible. It is recommended that a salt is + * random and at least 16 bytes long. See [NIST SP 800-132](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf) for details. + * + * When passing strings for `password` or `salt`, please consider `caveats when using strings as inputs to cryptographic APIs`. + * + * ```js + * const { + * pbkdf2 + * } = await import('crypto'); + * + * pbkdf2('secret', 'salt', 100000, 64, 'sha512', (err, derivedKey) => { + * if (err) throw err; + * console.log(derivedKey.toString('hex')); // '3745e48...08d59ae' + * }); + * ``` + * + * The `crypto.DEFAULT_ENCODING` property can be used to change the way the`derivedKey` is passed to the callback. This property, however, has been + * deprecated and use should be avoided. + * + * ```js + * import crypto from 'crypto'; + * crypto.DEFAULT_ENCODING = 'hex'; + * crypto.pbkdf2('secret', 'salt', 100000, 512, 'sha512', (err, derivedKey) => { + * if (err) throw err; + * console.log(derivedKey); // '3745e48...aa39b34' + * }); + * ``` + * + * An array of supported digest functions can be retrieved using {@link getHashes}. + * + * This API uses libuv's threadpool, which can have surprising and + * negative performance implications for some applications; see the `UV_THREADPOOL_SIZE` documentation for more information. + * @since v0.5.5 + */ + function pbkdf2(password: BinaryLike, salt: BinaryLike, iterations: number, keylen: number, digest: string, callback: (err: Error | null, derivedKey: Buffer) => void): void; + /** + * Provides a synchronous Password-Based Key Derivation Function 2 (PBKDF2) + * implementation. A selected HMAC digest algorithm specified by `digest` is + * applied to derive a key of the requested byte length (`keylen`) from the`password`, `salt` and `iterations`. + * + * If an error occurs an `Error` will be thrown, otherwise the derived key will be + * returned as a `Buffer`. + * + * If `digest` is `null`, `'sha1'` will be used. This behavior is deprecated, + * please specify a `digest` explicitly. + * + * The `iterations` argument must be a number set as high as possible. The + * higher the number of iterations, the more secure the derived key will be, + * but will take a longer amount of time to complete. + * + * The `salt` should be as unique as possible. It is recommended that a salt is + * random and at least 16 bytes long. See [NIST SP 800-132](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf) for details. + * + * When passing strings for `password` or `salt`, please consider `caveats when using strings as inputs to cryptographic APIs`. + * + * ```js + * const { + * pbkdf2Sync + * } = await import('crypto'); + * + * const key = pbkdf2Sync('secret', 'salt', 100000, 64, 'sha512'); + * console.log(key.toString('hex')); // '3745e48...08d59ae' + * ``` + * + * The `crypto.DEFAULT_ENCODING` property may be used to change the way the`derivedKey` is returned. This property, however, is deprecated and use + * should be avoided. + * + * ```js + * import crypto from 'crypto'; + * crypto.DEFAULT_ENCODING = 'hex'; + * const key = crypto.pbkdf2Sync('secret', 'salt', 100000, 512, 'sha512'); + * console.log(key); // '3745e48...aa39b34' + * ``` + * + * An array of supported digest functions can be retrieved using {@link getHashes}. + * @since v0.9.3 + */ + function pbkdf2Sync(password: BinaryLike, salt: BinaryLike, iterations: number, keylen: number, digest: string): Buffer; + /** + * Generates cryptographically strong pseudorandom data. The `size` argument + * is a number indicating the number of bytes to generate. + * + * If a `callback` function is provided, the bytes are generated asynchronously + * and the `callback` function is invoked with two arguments: `err` and `buf`. + * If an error occurs, `err` will be an `Error` object; otherwise it is `null`. The`buf` argument is a `Buffer` containing the generated bytes. + * + * ```js + * // Asynchronous + * const { + * randomBytes + * } = await import('crypto'); + * + * randomBytes(256, (err, buf) => { + * if (err) throw err; + * console.log(`${buf.length} bytes of random data: ${buf.toString('hex')}`); + * }); + * ``` + * + * If the `callback` function is not provided, the random bytes are generated + * synchronously and returned as a `Buffer`. An error will be thrown if + * there is a problem generating the bytes. + * + * ```js + * // Synchronous + * const { + * randomBytes + * } = await import('crypto'); + * + * const buf = randomBytes(256); + * console.log( + * `${buf.length} bytes of random data: ${buf.toString('hex')}`); + * ``` + * + * The `crypto.randomBytes()` method will not complete until there is + * sufficient entropy available. + * This should normally never take longer than a few milliseconds. The only time + * when generating the random bytes may conceivably block for a longer period of + * time is right after boot, when the whole system is still low on entropy. + * + * This API uses libuv's threadpool, which can have surprising and + * negative performance implications for some applications; see the `UV_THREADPOOL_SIZE` documentation for more information. + * + * The asynchronous version of `crypto.randomBytes()` is carried out in a single + * threadpool request. To minimize threadpool task length variation, partition + * large `randomBytes` requests when doing so as part of fulfilling a client + * request. + * @since v0.5.8 + * @param size The number of bytes to generate. The `size` must not be larger than `2**31 - 1`. + * @return if the `callback` function is not provided. + */ + function randomBytes(size: number): Buffer; + function randomBytes(size: number, callback: (err: Error | null, buf: Buffer) => void): void; + function pseudoRandomBytes(size: number): Buffer; + function pseudoRandomBytes(size: number, callback: (err: Error | null, buf: Buffer) => void): void; + /** + * Return a random integer `n` such that `min <= n < max`. This + * implementation avoids [modulo bias](https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle#Modulo_bias). + * + * The range (`max - min`) must be less than 2^48. `min` and `max` must + * be [safe integers](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger). + * + * If the `callback` function is not provided, the random integer is + * generated synchronously. + * + * ```js + * // Asynchronous + * const { + * randomInt + * } = await import('crypto'); + * + * randomInt(3, (err, n) => { + * if (err) throw err; + * console.log(`Random number chosen from (0, 1, 2): ${n}`); + * }); + * ``` + * + * ```js + * // Synchronous + * const { + * randomInt + * } = await import('crypto'); + * + * const n = randomInt(3); + * console.log(`Random number chosen from (0, 1, 2): ${n}`); + * ``` + * + * ```js + * // With `min` argument + * const { + * randomInt + * } = await import('crypto'); + * + * const n = randomInt(1, 7); + * console.log(`The dice rolled: ${n}`); + * ``` + * @since v14.10.0, v12.19.0 + * @param [min=0] Start of random range (inclusive). + * @param max End of random range (exclusive). + * @param callback `function(err, n) {}`. + */ + function randomInt(max: number): number; + function randomInt(min: number, max: number): number; + function randomInt(max: number, callback: (err: Error | null, value: number) => void): void; + function randomInt(min: number, max: number, callback: (err: Error | null, value: number) => void): void; + /** + * Synchronous version of {@link randomFill}. + * + * ```js + * import { Buffer } from 'buffer'; + * const { randomFillSync } = await import('crypto'); + * + * const buf = Buffer.alloc(10); + * console.log(randomFillSync(buf).toString('hex')); + * + * randomFillSync(buf, 5); + * console.log(buf.toString('hex')); + * + * // The above is equivalent to the following: + * randomFillSync(buf, 5, 5); + * console.log(buf.toString('hex')); + * ``` + * + * Any `ArrayBuffer`, `TypedArray` or `DataView` instance may be passed as`buffer`. + * + * ```js + * import { Buffer } from 'buffer'; + * const { randomFillSync } = await import('crypto'); + * + * const a = new Uint32Array(10); + * console.log(Buffer.from(randomFillSync(a).buffer, + * a.byteOffset, a.byteLength).toString('hex')); + * + * const b = new DataView(new ArrayBuffer(10)); + * console.log(Buffer.from(randomFillSync(b).buffer, + * b.byteOffset, b.byteLength).toString('hex')); + * + * const c = new ArrayBuffer(10); + * console.log(Buffer.from(randomFillSync(c)).toString('hex')); + * ``` + * @since v7.10.0, v6.13.0 + * @param buffer Must be supplied. The size of the provided `buffer` must not be larger than `2**31 - 1`. + * @param [offset=0] + * @param [size=buffer.length - offset] + * @return The object passed as `buffer` argument. + */ + function randomFillSync(buffer: T, offset?: number, size?: number): T; + /** + * This function is similar to {@link randomBytes} but requires the first + * argument to be a `Buffer` that will be filled. It also + * requires that a callback is passed in. + * + * If the `callback` function is not provided, an error will be thrown. + * + * ```js + * import { Buffer } from 'buffer'; + * const { randomFill } = await import('crypto'); + * + * const buf = Buffer.alloc(10); + * randomFill(buf, (err, buf) => { + * if (err) throw err; + * console.log(buf.toString('hex')); + * }); + * + * randomFill(buf, 5, (err, buf) => { + * if (err) throw err; + * console.log(buf.toString('hex')); + * }); + * + * // The above is equivalent to the following: + * randomFill(buf, 5, 5, (err, buf) => { + * if (err) throw err; + * console.log(buf.toString('hex')); + * }); + * ``` + * + * Any `ArrayBuffer`, `TypedArray`, or `DataView` instance may be passed as`buffer`. + * + * While this includes instances of `Float32Array` and `Float64Array`, this + * function should not be used to generate random floating-point numbers. The + * result may contain `+Infinity`, `-Infinity`, and `NaN`, and even if the array + * contains finite numbers only, they are not drawn from a uniform random + * distribution and have no meaningful lower or upper bounds. + * + * ```js + * import { Buffer } from 'buffer'; + * const { randomFill } = await import('crypto'); + * + * const a = new Uint32Array(10); + * randomFill(a, (err, buf) => { + * if (err) throw err; + * console.log(Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength) + * .toString('hex')); + * }); + * + * const b = new DataView(new ArrayBuffer(10)); + * randomFill(b, (err, buf) => { + * if (err) throw err; + * console.log(Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength) + * .toString('hex')); + * }); + * + * const c = new ArrayBuffer(10); + * randomFill(c, (err, buf) => { + * if (err) throw err; + * console.log(Buffer.from(buf).toString('hex')); + * }); + * ``` + * + * This API uses libuv's threadpool, which can have surprising and + * negative performance implications for some applications; see the `UV_THREADPOOL_SIZE` documentation for more information. + * + * The asynchronous version of `crypto.randomFill()` is carried out in a single + * threadpool request. To minimize threadpool task length variation, partition + * large `randomFill` requests when doing so as part of fulfilling a client + * request. + * @since v7.10.0, v6.13.0 + * @param buffer Must be supplied. The size of the provided `buffer` must not be larger than `2**31 - 1`. + * @param [offset=0] + * @param [size=buffer.length - offset] + * @param callback `function(err, buf) {}`. + */ + function randomFill(buffer: T, callback: (err: Error | null, buf: T) => void): void; + function randomFill(buffer: T, offset: number, callback: (err: Error | null, buf: T) => void): void; + function randomFill(buffer: T, offset: number, size: number, callback: (err: Error | null, buf: T) => void): void; + interface ScryptOptions { + cost?: number | undefined; + blockSize?: number | undefined; + parallelization?: number | undefined; + N?: number | undefined; + r?: number | undefined; + p?: number | undefined; + maxmem?: number | undefined; + } + /** + * Provides an asynchronous [scrypt](https://en.wikipedia.org/wiki/Scrypt) implementation. Scrypt is a password-based + * key derivation function that is designed to be expensive computationally and + * memory-wise in order to make brute-force attacks unrewarding. + * + * The `salt` should be as unique as possible. It is recommended that a salt is + * random and at least 16 bytes long. See [NIST SP 800-132](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf) for details. + * + * When passing strings for `password` or `salt`, please consider `caveats when using strings as inputs to cryptographic APIs`. + * + * The `callback` function is called with two arguments: `err` and `derivedKey`.`err` is an exception object when key derivation fails, otherwise `err` is`null`. `derivedKey` is passed to the + * callback as a `Buffer`. + * + * An exception is thrown when any of the input arguments specify invalid values + * or types. + * + * ```js + * const { + * scrypt + * } = await import('crypto'); + * + * // Using the factory defaults. + * scrypt('password', 'salt', 64, (err, derivedKey) => { + * if (err) throw err; + * console.log(derivedKey.toString('hex')); // '3745e48...08d59ae' + * }); + * // Using a custom N parameter. Must be a power of two. + * scrypt('password', 'salt', 64, { N: 1024 }, (err, derivedKey) => { + * if (err) throw err; + * console.log(derivedKey.toString('hex')); // '3745e48...aa39b34' + * }); + * ``` + * @since v10.5.0 + */ + function scrypt(password: BinaryLike, salt: BinaryLike, keylen: number, callback: (err: Error | null, derivedKey: Buffer) => void): void; + function scrypt(password: BinaryLike, salt: BinaryLike, keylen: number, options: ScryptOptions, callback: (err: Error | null, derivedKey: Buffer) => void): void; + /** + * Provides a synchronous [scrypt](https://en.wikipedia.org/wiki/Scrypt) implementation. Scrypt is a password-based + * key derivation function that is designed to be expensive computationally and + * memory-wise in order to make brute-force attacks unrewarding. + * + * The `salt` should be as unique as possible. It is recommended that a salt is + * random and at least 16 bytes long. See [NIST SP 800-132](https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf) for details. + * + * When passing strings for `password` or `salt`, please consider `caveats when using strings as inputs to cryptographic APIs`. + * + * An exception is thrown when key derivation fails, otherwise the derived key is + * returned as a `Buffer`. + * + * An exception is thrown when any of the input arguments specify invalid values + * or types. + * + * ```js + * const { + * scryptSync + * } = await import('crypto'); + * // Using the factory defaults. + * + * const key1 = scryptSync('password', 'salt', 64); + * console.log(key1.toString('hex')); // '3745e48...08d59ae' + * // Using a custom N parameter. Must be a power of two. + * const key2 = scryptSync('password', 'salt', 64, { N: 1024 }); + * console.log(key2.toString('hex')); // '3745e48...aa39b34' + * ``` + * @since v10.5.0 + */ + function scryptSync(password: BinaryLike, salt: BinaryLike, keylen: number, options?: ScryptOptions): Buffer; + interface RsaPublicKey { + key: KeyLike; + padding?: number | undefined; + } + interface RsaPrivateKey { + key: KeyLike; + passphrase?: string | undefined; + /** + * @default 'sha1' + */ + oaepHash?: string | undefined; + oaepLabel?: NodeJS.TypedArray | undefined; + padding?: number | undefined; + } + /** + * Encrypts the content of `buffer` with `key` and returns a new `Buffer` with encrypted content. The returned data can be decrypted using + * the corresponding private key, for example using {@link privateDecrypt}. + * + * If `key` is not a `KeyObject`, this function behaves as if`key` had been passed to {@link createPublicKey}. If it is an + * object, the `padding` property can be passed. Otherwise, this function uses`RSA_PKCS1_OAEP_PADDING`. + * + * Because RSA public keys can be derived from private keys, a private key may + * be passed instead of a public key. + * @since v0.11.14 + */ + function publicEncrypt(key: RsaPublicKey | RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer; + /** + * Decrypts `buffer` with `key`.`buffer` was previously encrypted using + * the corresponding private key, for example using {@link privateEncrypt}. + * + * If `key` is not a `KeyObject`, this function behaves as if`key` had been passed to {@link createPublicKey}. If it is an + * object, the `padding` property can be passed. Otherwise, this function uses`RSA_PKCS1_PADDING`. + * + * Because RSA public keys can be derived from private keys, a private key may + * be passed instead of a public key. + * @since v1.1.0 + */ + function publicDecrypt(key: RsaPublicKey | RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer; + /** + * Decrypts `buffer` with `privateKey`. `buffer` was previously encrypted using + * the corresponding public key, for example using {@link publicEncrypt}. + * + * If `privateKey` is not a `KeyObject`, this function behaves as if`privateKey` had been passed to {@link createPrivateKey}. If it is an + * object, the `padding` property can be passed. Otherwise, this function uses`RSA_PKCS1_OAEP_PADDING`. + * @since v0.11.14 + */ + function privateDecrypt(privateKey: RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer; + /** + * Encrypts `buffer` with `privateKey`. The returned data can be decrypted using + * the corresponding public key, for example using {@link publicDecrypt}. + * + * If `privateKey` is not a `KeyObject`, this function behaves as if`privateKey` had been passed to {@link createPrivateKey}. If it is an + * object, the `padding` property can be passed. Otherwise, this function uses`RSA_PKCS1_PADDING`. + * @since v1.1.0 + */ + function privateEncrypt(privateKey: RsaPrivateKey | KeyLike, buffer: NodeJS.ArrayBufferView): Buffer; + /** + * ```js + * const { + * getCiphers + * } = await import('crypto'); + * + * console.log(getCiphers()); // ['aes-128-cbc', 'aes-128-ccm', ...] + * ``` + * @since v0.9.3 + * @return An array with the names of the supported cipher algorithms. + */ + function getCiphers(): string[]; + /** + * ```js + * const { + * getCurves + * } = await import('crypto'); + * + * console.log(getCurves()); // ['Oakley-EC2N-3', 'Oakley-EC2N-4', ...] + * ``` + * @since v2.3.0 + * @return An array with the names of the supported elliptic curves. + */ + function getCurves(): string[]; + /** + * @since v10.0.0 + * @return `1` if and only if a FIPS compliant crypto provider is currently in use, `0` otherwise. A future semver-major release may change the return type of this API to a {boolean}. + */ + function getFips(): 1 | 0; + /** + * Enables the FIPS compliant crypto provider in a FIPS-enabled Node.js build. Throws an error if FIPS mode is not available. + * @since v10.0.0 + * @param bool `true` to enable FIPS mode. + */ + function setFips(bool: boolean): void; + /** + * ```js + * const { + * getHashes + * } = await import('crypto'); + * + * console.log(getHashes()); // ['DSA', 'DSA-SHA', 'DSA-SHA1', ...] + * ``` + * @since v0.9.3 + * @return An array of the names of the supported hash algorithms, such as `'RSA-SHA256'`. Hash algorithms are also called "digest" algorithms. + */ + function getHashes(): string[]; + /** + * The `ECDH` class is a utility for creating Elliptic Curve Diffie-Hellman (ECDH) + * key exchanges. + * + * Instances of the `ECDH` class can be created using the {@link createECDH} function. + * + * ```js + * import assert from 'assert'; + * + * const { + * createECDH + * } = await import('crypto'); + * + * // Generate Alice's keys... + * const alice = createECDH('secp521r1'); + * const aliceKey = alice.generateKeys(); + * + * // Generate Bob's keys... + * const bob = createECDH('secp521r1'); + * const bobKey = bob.generateKeys(); + * + * // Exchange and generate the secret... + * const aliceSecret = alice.computeSecret(bobKey); + * const bobSecret = bob.computeSecret(aliceKey); + * + * assert.strictEqual(aliceSecret.toString('hex'), bobSecret.toString('hex')); + * // OK + * ``` + * @since v0.11.14 + */ + class ECDH { + private constructor(); + /** + * Converts the EC Diffie-Hellman public key specified by `key` and `curve` to the + * format specified by `format`. The `format` argument specifies point encoding + * and can be `'compressed'`, `'uncompressed'` or `'hybrid'`. The supplied key is + * interpreted using the specified `inputEncoding`, and the returned key is encoded + * using the specified `outputEncoding`. + * + * Use {@link getCurves} to obtain a list of available curve names. + * On recent OpenSSL releases, `openssl ecparam -list_curves` will also display + * the name and description of each available elliptic curve. + * + * If `format` is not specified the point will be returned in `'uncompressed'`format. + * + * If the `inputEncoding` is not provided, `key` is expected to be a `Buffer`,`TypedArray`, or `DataView`. + * + * Example (uncompressing a key): + * + * ```js + * const { + * createECDH, + * ECDH + * } = await import('crypto'); + * + * const ecdh = createECDH('secp256k1'); + * ecdh.generateKeys(); + * + * const compressedKey = ecdh.getPublicKey('hex', 'compressed'); + * + * const uncompressedKey = ECDH.convertKey(compressedKey, + * 'secp256k1', + * 'hex', + * 'hex', + * 'uncompressed'); + * + * // The converted key and the uncompressed public key should be the same + * console.log(uncompressedKey === ecdh.getPublicKey('hex')); + * ``` + * @since v10.0.0 + * @param inputEncoding The `encoding` of the `key` string. + * @param outputEncoding The `encoding` of the return value. + * @param [format='uncompressed'] + */ + static convertKey( + key: BinaryLike, + curve: string, + inputEncoding?: BinaryToTextEncoding, + outputEncoding?: 'latin1' | 'hex' | 'base64' | 'base64url', + format?: 'uncompressed' | 'compressed' | 'hybrid' + ): Buffer | string; + /** + * Generates private and public EC Diffie-Hellman key values, and returns + * the public key in the specified `format` and `encoding`. This key should be + * transferred to the other party. + * + * The `format` argument specifies point encoding and can be `'compressed'` or`'uncompressed'`. If `format` is not specified, the point will be returned in`'uncompressed'` format. + * + * If `encoding` is provided a string is returned; otherwise a `Buffer` is returned. + * @since v0.11.14 + * @param encoding The `encoding` of the return value. + * @param [format='uncompressed'] + */ + generateKeys(): Buffer; + generateKeys(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string; + /** + * Computes the shared secret using `otherPublicKey` as the other + * party's public key and returns the computed shared secret. The supplied + * key is interpreted using specified `inputEncoding`, and the returned secret + * is encoded using the specified `outputEncoding`. + * If the `inputEncoding` is not + * provided, `otherPublicKey` is expected to be a `Buffer`, `TypedArray`, or`DataView`. + * + * If `outputEncoding` is given a string will be returned; otherwise a `Buffer` is returned. + * + * `ecdh.computeSecret` will throw an`ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY` error when `otherPublicKey`lies outside of the elliptic curve. Since `otherPublicKey` is + * usually supplied from a remote user over an insecure network, + * be sure to handle this exception accordingly. + * @since v0.11.14 + * @param inputEncoding The `encoding` of the `otherPublicKey` string. + * @param outputEncoding The `encoding` of the return value. + */ + computeSecret(otherPublicKey: NodeJS.ArrayBufferView): Buffer; + computeSecret(otherPublicKey: string, inputEncoding: BinaryToTextEncoding): Buffer; + computeSecret(otherPublicKey: NodeJS.ArrayBufferView, outputEncoding: BinaryToTextEncoding): string; + computeSecret(otherPublicKey: string, inputEncoding: BinaryToTextEncoding, outputEncoding: BinaryToTextEncoding): string; + /** + * If `encoding` is specified, a string is returned; otherwise a `Buffer` is + * returned. + * @since v0.11.14 + * @param encoding The `encoding` of the return value. + * @return The EC Diffie-Hellman in the specified `encoding`. + */ + getPrivateKey(): Buffer; + getPrivateKey(encoding: BinaryToTextEncoding): string; + /** + * The `format` argument specifies point encoding and can be `'compressed'` or`'uncompressed'`. If `format` is not specified the point will be returned in`'uncompressed'` format. + * + * If `encoding` is specified, a string is returned; otherwise a `Buffer` is + * returned. + * @since v0.11.14 + * @param [encoding] The `encoding` of the return value. + * @param [format='uncompressed'] + * @return The EC Diffie-Hellman public key in the specified `encoding` and `format`. + */ + getPublicKey(encoding?: null, format?: ECDHKeyFormat): Buffer; + getPublicKey(encoding: BinaryToTextEncoding, format?: ECDHKeyFormat): string; + /** + * Sets the EC Diffie-Hellman private key. + * If `encoding` is provided, `privateKey` is expected + * to be a string; otherwise `privateKey` is expected to be a `Buffer`,`TypedArray`, or `DataView`. + * + * If `privateKey` is not valid for the curve specified when the `ECDH` object was + * created, an error is thrown. Upon setting the private key, the associated + * public point (key) is also generated and set in the `ECDH` object. + * @since v0.11.14 + * @param encoding The `encoding` of the `privateKey` string. + */ + setPrivateKey(privateKey: NodeJS.ArrayBufferView): void; + setPrivateKey(privateKey: string, encoding: BinaryToTextEncoding): void; + } + /** + * Creates an Elliptic Curve Diffie-Hellman (`ECDH`) key exchange object using a + * predefined curve specified by the `curveName` string. Use {@link getCurves} to obtain a list of available curve names. On recent + * OpenSSL releases, `openssl ecparam -list_curves` will also display the name + * and description of each available elliptic curve. + * @since v0.11.14 + */ + function createECDH(curveName: string): ECDH; + /** + * This function is based on a constant-time algorithm. + * Returns true if `a` is equal to `b`, without leaking timing information that + * would allow an attacker to guess one of the values. This is suitable for + * comparing HMAC digests or secret values like authentication cookies or [capability urls](https://www.w3.org/TR/capability-urls/). + * + * `a` and `b` must both be `Buffer`s, `TypedArray`s, or `DataView`s, and they + * must have the same byte length. An error is thrown if `a` and `b` have + * different byte lengths. + * + * If at least one of `a` and `b` is a `TypedArray` with more than one byte per + * entry, such as `Uint16Array`, the result will be computed using the platform + * byte order. + * + * Use of `crypto.timingSafeEqual` does not guarantee that the _surrounding_ code + * is timing-safe. Care should be taken to ensure that the surrounding code does + * not introduce timing vulnerabilities. + * @since v6.6.0 + */ + function timingSafeEqual(a: NodeJS.ArrayBufferView, b: NodeJS.ArrayBufferView): boolean; + /** @deprecated since v10.0.0 */ + const DEFAULT_ENCODING: BufferEncoding; + type KeyType = 'rsa' | 'rsa-pss' | 'dsa' | 'ec' | 'ed25519' | 'ed448' | 'x25519' | 'x448'; + type KeyFormat = 'pem' | 'der' | 'jwk'; + interface BasePrivateKeyEncodingOptions { + format: T; + cipher?: string | undefined; + passphrase?: string | undefined; + } + interface KeyPairKeyObjectResult { + publicKey: KeyObject; + privateKey: KeyObject; + } + interface ED25519KeyPairKeyObjectOptions {} + interface ED448KeyPairKeyObjectOptions {} + interface X25519KeyPairKeyObjectOptions {} + interface X448KeyPairKeyObjectOptions {} + interface ECKeyPairKeyObjectOptions { + /** + * Name of the curve to use + */ + namedCurve: string; + } + interface RSAKeyPairKeyObjectOptions { + /** + * Key size in bits + */ + modulusLength: number; + /** + * Public exponent + * @default 0x10001 + */ + publicExponent?: number | undefined; + } + interface RSAPSSKeyPairKeyObjectOptions { + /** + * Key size in bits + */ + modulusLength: number; + /** + * Public exponent + * @default 0x10001 + */ + publicExponent?: number | undefined; + /** + * Name of the message digest + */ + hashAlgorithm?: string; + /** + * Name of the message digest used by MGF1 + */ + mgf1HashAlgorithm?: string; + /** + * Minimal salt length in bytes + */ + saltLength?: string; + } + interface DSAKeyPairKeyObjectOptions { + /** + * Key size in bits + */ + modulusLength: number; + /** + * Size of q in bits + */ + divisorLength: number; + } + interface RSAKeyPairOptions { + /** + * Key size in bits + */ + modulusLength: number; + /** + * Public exponent + * @default 0x10001 + */ + publicExponent?: number | undefined; + publicKeyEncoding: { + type: 'pkcs1' | 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs1' | 'pkcs8'; + }; + } + interface RSAPSSKeyPairOptions { + /** + * Key size in bits + */ + modulusLength: number; + /** + * Public exponent + * @default 0x10001 + */ + publicExponent?: number | undefined; + /** + * Name of the message digest + */ + hashAlgorithm?: string; + /** + * Name of the message digest used by MGF1 + */ + mgf1HashAlgorithm?: string; + /** + * Minimal salt length in bytes + */ + saltLength?: string; + publicKeyEncoding: { + type: 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs8'; + }; + } + interface DSAKeyPairOptions { + /** + * Key size in bits + */ + modulusLength: number; + /** + * Size of q in bits + */ + divisorLength: number; + publicKeyEncoding: { + type: 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs8'; + }; + } + interface ECKeyPairOptions { + /** + * Name of the curve to use. + */ + namedCurve: string; + publicKeyEncoding: { + type: 'pkcs1' | 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'sec1' | 'pkcs8'; + }; + } + interface ED25519KeyPairOptions { + publicKeyEncoding: { + type: 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs8'; + }; + } + interface ED448KeyPairOptions { + publicKeyEncoding: { + type: 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs8'; + }; + } + interface X25519KeyPairOptions { + publicKeyEncoding: { + type: 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs8'; + }; + } + interface X448KeyPairOptions { + publicKeyEncoding: { + type: 'spki'; + format: PubF; + }; + privateKeyEncoding: BasePrivateKeyEncodingOptions & { + type: 'pkcs8'; + }; + } + interface KeyPairSyncResult { + publicKey: T1; + privateKey: T2; + } + /** + * Generates a new asymmetric key pair of the given `type`. RSA, RSA-PSS, DSA, EC, + * Ed25519, Ed448, X25519, X448, and DH are currently supported. + * + * If a `publicKeyEncoding` or `privateKeyEncoding` was specified, this function + * behaves as if `keyObject.export()` had been called on its result. Otherwise, + * the respective part of the key is returned as a `KeyObject`. + * + * When encoding public keys, it is recommended to use `'spki'`. When encoding + * private keys, it is recommended to use `'pkcs8'` with a strong passphrase, + * and to keep the passphrase confidential. + * + * ```js + * const { + * generateKeyPairSync + * } = await import('crypto'); + * + * const { + * publicKey, + * privateKey, + * } = generateKeyPairSync('rsa', { + * modulusLength: 4096, + * publicKeyEncoding: { + * type: 'spki', + * format: 'pem' + * }, + * privateKeyEncoding: { + * type: 'pkcs8', + * format: 'pem', + * cipher: 'aes-256-cbc', + * passphrase: 'top secret' + * } + * }); + * ``` + * + * The return value `{ publicKey, privateKey }` represents the generated key pair. + * When PEM encoding was selected, the respective key will be a string, otherwise + * it will be a buffer containing the data encoded as DER. + * @since v10.12.0 + * @param type Must be `'rsa'`, `'rsa-pss'`, `'dsa'`, `'ec'`, `'ed25519'`, `'ed448'`, `'x25519'`, `'x448'`, or `'dh'`. + */ + function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'pem', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'der', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa', options: RSAKeyPairOptions<'der', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa', options: RSAKeyPairKeyObjectOptions): KeyPairKeyObjectResult; + function generateKeyPairSync(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'pem', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'der', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'der', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'rsa-pss', options: RSAPSSKeyPairKeyObjectOptions): KeyPairKeyObjectResult; + function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'pem', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'der', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'dsa', options: DSAKeyPairOptions<'der', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'dsa', options: DSAKeyPairKeyObjectOptions): KeyPairKeyObjectResult; + function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'pem', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'der', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ec', options: ECKeyPairOptions<'der', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ec', options: ECKeyPairKeyObjectOptions): KeyPairKeyObjectResult; + function generateKeyPairSync(type: 'ed25519', options: ED25519KeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ed25519', options: ED25519KeyPairOptions<'pem', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ed25519', options: ED25519KeyPairOptions<'der', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ed25519', options: ED25519KeyPairOptions<'der', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ed25519', options?: ED25519KeyPairKeyObjectOptions): KeyPairKeyObjectResult; + function generateKeyPairSync(type: 'ed448', options: ED448KeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ed448', options: ED448KeyPairOptions<'pem', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ed448', options: ED448KeyPairOptions<'der', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ed448', options: ED448KeyPairOptions<'der', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'ed448', options?: ED448KeyPairKeyObjectOptions): KeyPairKeyObjectResult; + function generateKeyPairSync(type: 'x25519', options: X25519KeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'x25519', options: X25519KeyPairOptions<'pem', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'x25519', options: X25519KeyPairOptions<'der', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'x25519', options: X25519KeyPairOptions<'der', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'x25519', options?: X25519KeyPairKeyObjectOptions): KeyPairKeyObjectResult; + function generateKeyPairSync(type: 'x448', options: X448KeyPairOptions<'pem', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'x448', options: X448KeyPairOptions<'pem', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'x448', options: X448KeyPairOptions<'der', 'pem'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'x448', options: X448KeyPairOptions<'der', 'der'>): KeyPairSyncResult; + function generateKeyPairSync(type: 'x448', options?: X448KeyPairKeyObjectOptions): KeyPairKeyObjectResult; + /** + * Generates a new asymmetric key pair of the given `type`. RSA, RSA-PSS, DSA, EC, + * Ed25519, Ed448, X25519, X448, and DH are currently supported. + * + * If a `publicKeyEncoding` or `privateKeyEncoding` was specified, this function + * behaves as if `keyObject.export()` had been called on its result. Otherwise, + * the respective part of the key is returned as a `KeyObject`. + * + * It is recommended to encode public keys as `'spki'` and private keys as`'pkcs8'` with encryption for long-term storage: + * + * ```js + * const { + * generateKeyPair + * } = await import('crypto'); + * + * generateKeyPair('rsa', { + * modulusLength: 4096, + * publicKeyEncoding: { + * type: 'spki', + * format: 'pem' + * }, + * privateKeyEncoding: { + * type: 'pkcs8', + * format: 'pem', + * cipher: 'aes-256-cbc', + * passphrase: 'top secret' + * } + * }, (err, publicKey, privateKey) => { + * // Handle errors and use the generated key pair. + * }); + * ``` + * + * On completion, `callback` will be called with `err` set to `undefined` and`publicKey` / `privateKey` representing the generated key pair. + * + * If this method is invoked as its `util.promisify()` ed version, it returns + * a `Promise` for an `Object` with `publicKey` and `privateKey` properties. + * @since v10.12.0 + * @param type Must be `'rsa'`, `'rsa-pss'`, `'dsa'`, `'ec'`, `'ed25519'`, `'ed448'`, `'x25519'`, `'x448'`, or `'dh'`. + */ + function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; + function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; + function generateKeyPair(type: 'rsa', options: RSAKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'rsa', options: RSAKeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void; + function generateKeyPair(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; + function generateKeyPair(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; + function generateKeyPair(type: 'rsa-pss', options: RSAPSSKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'rsa-pss', options: RSAPSSKeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void; + function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; + function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; + function generateKeyPair(type: 'dsa', options: DSAKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'dsa', options: DSAKeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void; + function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; + function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; + function generateKeyPair(type: 'ec', options: ECKeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'ec', options: ECKeyPairKeyObjectOptions, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void; + function generateKeyPair(type: 'ed25519', options: ED25519KeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; + function generateKeyPair(type: 'ed25519', options: ED25519KeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'ed25519', options: ED25519KeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; + function generateKeyPair(type: 'ed25519', options: ED25519KeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'ed25519', options: ED25519KeyPairKeyObjectOptions | undefined, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void; + function generateKeyPair(type: 'ed448', options: ED448KeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; + function generateKeyPair(type: 'ed448', options: ED448KeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'ed448', options: ED448KeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; + function generateKeyPair(type: 'ed448', options: ED448KeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'ed448', options: ED448KeyPairKeyObjectOptions | undefined, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void; + function generateKeyPair(type: 'x25519', options: X25519KeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; + function generateKeyPair(type: 'x25519', options: X25519KeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'x25519', options: X25519KeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; + function generateKeyPair(type: 'x25519', options: X25519KeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'x25519', options: X25519KeyPairKeyObjectOptions | undefined, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void; + function generateKeyPair(type: 'x448', options: X448KeyPairOptions<'pem', 'pem'>, callback: (err: Error | null, publicKey: string, privateKey: string) => void): void; + function generateKeyPair(type: 'x448', options: X448KeyPairOptions<'pem', 'der'>, callback: (err: Error | null, publicKey: string, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'x448', options: X448KeyPairOptions<'der', 'pem'>, callback: (err: Error | null, publicKey: Buffer, privateKey: string) => void): void; + function generateKeyPair(type: 'x448', options: X448KeyPairOptions<'der', 'der'>, callback: (err: Error | null, publicKey: Buffer, privateKey: Buffer) => void): void; + function generateKeyPair(type: 'x448', options: X448KeyPairKeyObjectOptions | undefined, callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void): void; + namespace generateKeyPair { + function __promisify__( + type: 'rsa', + options: RSAKeyPairOptions<'pem', 'pem'> + ): Promise<{ + publicKey: string; + privateKey: string; + }>; + function __promisify__( + type: 'rsa', + options: RSAKeyPairOptions<'pem', 'der'> + ): Promise<{ + publicKey: string; + privateKey: Buffer; + }>; + function __promisify__( + type: 'rsa', + options: RSAKeyPairOptions<'der', 'pem'> + ): Promise<{ + publicKey: Buffer; + privateKey: string; + }>; + function __promisify__( + type: 'rsa', + options: RSAKeyPairOptions<'der', 'der'> + ): Promise<{ + publicKey: Buffer; + privateKey: Buffer; + }>; + function __promisify__(type: 'rsa', options: RSAKeyPairKeyObjectOptions): Promise; + function __promisify__( + type: 'rsa-pss', + options: RSAPSSKeyPairOptions<'pem', 'pem'> + ): Promise<{ + publicKey: string; + privateKey: string; + }>; + function __promisify__( + type: 'rsa-pss', + options: RSAPSSKeyPairOptions<'pem', 'der'> + ): Promise<{ + publicKey: string; + privateKey: Buffer; + }>; + function __promisify__( + type: 'rsa-pss', + options: RSAPSSKeyPairOptions<'der', 'pem'> + ): Promise<{ + publicKey: Buffer; + privateKey: string; + }>; + function __promisify__( + type: 'rsa-pss', + options: RSAPSSKeyPairOptions<'der', 'der'> + ): Promise<{ + publicKey: Buffer; + privateKey: Buffer; + }>; + function __promisify__(type: 'rsa-pss', options: RSAPSSKeyPairKeyObjectOptions): Promise; + function __promisify__( + type: 'dsa', + options: DSAKeyPairOptions<'pem', 'pem'> + ): Promise<{ + publicKey: string; + privateKey: string; + }>; + function __promisify__( + type: 'dsa', + options: DSAKeyPairOptions<'pem', 'der'> + ): Promise<{ + publicKey: string; + privateKey: Buffer; + }>; + function __promisify__( + type: 'dsa', + options: DSAKeyPairOptions<'der', 'pem'> + ): Promise<{ + publicKey: Buffer; + privateKey: string; + }>; + function __promisify__( + type: 'dsa', + options: DSAKeyPairOptions<'der', 'der'> + ): Promise<{ + publicKey: Buffer; + privateKey: Buffer; + }>; + function __promisify__(type: 'dsa', options: DSAKeyPairKeyObjectOptions): Promise; + function __promisify__( + type: 'ec', + options: ECKeyPairOptions<'pem', 'pem'> + ): Promise<{ + publicKey: string; + privateKey: string; + }>; + function __promisify__( + type: 'ec', + options: ECKeyPairOptions<'pem', 'der'> + ): Promise<{ + publicKey: string; + privateKey: Buffer; + }>; + function __promisify__( + type: 'ec', + options: ECKeyPairOptions<'der', 'pem'> + ): Promise<{ + publicKey: Buffer; + privateKey: string; + }>; + function __promisify__( + type: 'ec', + options: ECKeyPairOptions<'der', 'der'> + ): Promise<{ + publicKey: Buffer; + privateKey: Buffer; + }>; + function __promisify__(type: 'ec', options: ECKeyPairKeyObjectOptions): Promise; + function __promisify__( + type: 'ed25519', + options: ED25519KeyPairOptions<'pem', 'pem'> + ): Promise<{ + publicKey: string; + privateKey: string; + }>; + function __promisify__( + type: 'ed25519', + options: ED25519KeyPairOptions<'pem', 'der'> + ): Promise<{ + publicKey: string; + privateKey: Buffer; + }>; + function __promisify__( + type: 'ed25519', + options: ED25519KeyPairOptions<'der', 'pem'> + ): Promise<{ + publicKey: Buffer; + privateKey: string; + }>; + function __promisify__( + type: 'ed25519', + options: ED25519KeyPairOptions<'der', 'der'> + ): Promise<{ + publicKey: Buffer; + privateKey: Buffer; + }>; + function __promisify__(type: 'ed25519', options?: ED25519KeyPairKeyObjectOptions): Promise; + function __promisify__( + type: 'ed448', + options: ED448KeyPairOptions<'pem', 'pem'> + ): Promise<{ + publicKey: string; + privateKey: string; + }>; + function __promisify__( + type: 'ed448', + options: ED448KeyPairOptions<'pem', 'der'> + ): Promise<{ + publicKey: string; + privateKey: Buffer; + }>; + function __promisify__( + type: 'ed448', + options: ED448KeyPairOptions<'der', 'pem'> + ): Promise<{ + publicKey: Buffer; + privateKey: string; + }>; + function __promisify__( + type: 'ed448', + options: ED448KeyPairOptions<'der', 'der'> + ): Promise<{ + publicKey: Buffer; + privateKey: Buffer; + }>; + function __promisify__(type: 'ed448', options?: ED448KeyPairKeyObjectOptions): Promise; + function __promisify__( + type: 'x25519', + options: X25519KeyPairOptions<'pem', 'pem'> + ): Promise<{ + publicKey: string; + privateKey: string; + }>; + function __promisify__( + type: 'x25519', + options: X25519KeyPairOptions<'pem', 'der'> + ): Promise<{ + publicKey: string; + privateKey: Buffer; + }>; + function __promisify__( + type: 'x25519', + options: X25519KeyPairOptions<'der', 'pem'> + ): Promise<{ + publicKey: Buffer; + privateKey: string; + }>; + function __promisify__( + type: 'x25519', + options: X25519KeyPairOptions<'der', 'der'> + ): Promise<{ + publicKey: Buffer; + privateKey: Buffer; + }>; + function __promisify__(type: 'x25519', options?: X25519KeyPairKeyObjectOptions): Promise; + function __promisify__( + type: 'x448', + options: X448KeyPairOptions<'pem', 'pem'> + ): Promise<{ + publicKey: string; + privateKey: string; + }>; + function __promisify__( + type: 'x448', + options: X448KeyPairOptions<'pem', 'der'> + ): Promise<{ + publicKey: string; + privateKey: Buffer; + }>; + function __promisify__( + type: 'x448', + options: X448KeyPairOptions<'der', 'pem'> + ): Promise<{ + publicKey: Buffer; + privateKey: string; + }>; + function __promisify__( + type: 'x448', + options: X448KeyPairOptions<'der', 'der'> + ): Promise<{ + publicKey: Buffer; + privateKey: Buffer; + }>; + function __promisify__(type: 'x448', options?: X448KeyPairKeyObjectOptions): Promise; + } + /** + * Calculates and returns the signature for `data` using the given private key and + * algorithm. If `algorithm` is `null` or `undefined`, then the algorithm is + * dependent upon the key type (especially Ed25519 and Ed448). + * + * If `key` is not a `KeyObject`, this function behaves as if `key` had been + * passed to {@link createPrivateKey}. If it is an object, the following + * additional properties can be passed: + * + * If the `callback` function is provided this function uses libuv's threadpool. + * @since v12.0.0 + */ + function sign(algorithm: string | null | undefined, data: NodeJS.ArrayBufferView, key: KeyLike | SignKeyObjectInput | SignPrivateKeyInput): Buffer; + function sign( + algorithm: string | null | undefined, + data: NodeJS.ArrayBufferView, + key: KeyLike | SignKeyObjectInput | SignPrivateKeyInput, + callback: (error: Error | null, data: Buffer) => void + ): void; + /** + * Verifies the given signature for `data` using the given key and algorithm. If`algorithm` is `null` or `undefined`, then the algorithm is dependent upon the + * key type (especially Ed25519 and Ed448). + * + * If `key` is not a `KeyObject`, this function behaves as if `key` had been + * passed to {@link createPublicKey}. If it is an object, the following + * additional properties can be passed: + * + * The `signature` argument is the previously calculated signature for the `data`. + * + * Because public keys can be derived from private keys, a private key or a public + * key may be passed for `key`. + * + * If the `callback` function is provided this function uses libuv's threadpool. + * @since v12.0.0 + */ + function verify(algorithm: string | null | undefined, data: NodeJS.ArrayBufferView, key: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput, signature: NodeJS.ArrayBufferView): boolean; + function verify( + algorithm: string | null | undefined, + data: NodeJS.ArrayBufferView, + key: KeyLike | VerifyKeyObjectInput | VerifyPublicKeyInput, + signature: NodeJS.ArrayBufferView, + callback: (error: Error | null, result: boolean) => void + ): void; + /** + * Computes the Diffie-Hellman secret based on a `privateKey` and a `publicKey`. + * Both keys must have the same `asymmetricKeyType`, which must be one of `'dh'`(for Diffie-Hellman), `'ec'` (for ECDH), `'x448'`, or `'x25519'` (for ECDH-ES). + * @since v13.9.0, v12.17.0 + */ + function diffieHellman(options: { privateKey: KeyObject; publicKey: KeyObject }): Buffer; + type CipherMode = 'cbc' | 'ccm' | 'cfb' | 'ctr' | 'ecb' | 'gcm' | 'ocb' | 'ofb' | 'stream' | 'wrap' | 'xts'; + interface CipherInfoOptions { + /** + * A test key length. + */ + keyLength?: number | undefined; + /** + * A test IV length. + */ + ivLength?: number | undefined; + } + interface CipherInfo { + /** + * The name of the cipher. + */ + name: string; + /** + * The nid of the cipher. + */ + nid: number; + /** + * The block size of the cipher in bytes. + * This property is omitted when mode is 'stream'. + */ + blockSize?: number | undefined; + /** + * The expected or default initialization vector length in bytes. + * This property is omitted if the cipher does not use an initialization vector. + */ + ivLength?: number | undefined; + /** + * The expected or default key length in bytes. + */ + keyLength: number; + /** + * The cipher mode. + */ + mode: CipherMode; + } + /** + * Returns information about a given cipher. + * + * Some ciphers accept variable length keys and initialization vectors. By default, + * the `crypto.getCipherInfo()` method will return the default values for these + * ciphers. To test if a given key length or iv length is acceptable for given + * cipher, use the `keyLength` and `ivLength` options. If the given values are + * unacceptable, `undefined` will be returned. + * @since v15.0.0 + * @param nameOrNid The name or nid of the cipher to query. + */ + function getCipherInfo(nameOrNid: string | number, options?: CipherInfoOptions): CipherInfo | undefined; + /** + * HKDF is a simple key derivation function defined in RFC 5869\. The given `ikm`,`salt` and `info` are used with the `digest` to derive a key of `keylen` bytes. + * + * The supplied `callback` function is called with two arguments: `err` and`derivedKey`. If an errors occurs while deriving the key, `err` will be set; + * otherwise `err` will be `null`. The successfully generated `derivedKey` will + * be passed to the callback as an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer). An error will be thrown if any + * of the input arguments specify invalid values or types. + * + * ```js + * import { Buffer } from 'buffer'; + * const { + * hkdf + * } = await import('crypto'); + * + * hkdf('sha512', 'key', 'salt', 'info', 64, (err, derivedKey) => { + * if (err) throw err; + * console.log(Buffer.from(derivedKey).toString('hex')); // '24156e2...5391653' + * }); + * ``` + * @since v15.0.0 + * @param digest The digest algorithm to use. + * @param ikm The input keying material. It must be at least one byte in length. + * @param salt The salt value. Must be provided but can be zero-length. + * @param info Additional info value. Must be provided but can be zero-length, and cannot be more than 1024 bytes. + * @param keylen The length of the key to generate. Must be greater than 0. The maximum allowable value is `255` times the number of bytes produced by the selected digest function (e.g. `sha512` + * generates 64-byte hashes, making the maximum HKDF output 16320 bytes). + */ + function hkdf(digest: string, irm: BinaryLike | KeyObject, salt: BinaryLike, info: BinaryLike, keylen: number, callback: (err: Error | null, derivedKey: ArrayBuffer) => void): void; + /** + * Provides a synchronous HKDF key derivation function as defined in RFC 5869\. The + * given `ikm`, `salt` and `info` are used with the `digest` to derive a key of`keylen` bytes. + * + * The successfully generated `derivedKey` will be returned as an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer). + * + * An error will be thrown if any of the input arguments specify invalid values or + * types, or if the derived key cannot be generated. + * + * ```js + * import { Buffer } from 'buffer'; + * const { + * hkdfSync + * } = await import('crypto'); + * + * const derivedKey = hkdfSync('sha512', 'key', 'salt', 'info', 64); + * console.log(Buffer.from(derivedKey).toString('hex')); // '24156e2...5391653' + * ``` + * @since v15.0.0 + * @param digest The digest algorithm to use. + * @param ikm The input keying material. It must be at least one byte in length. + * @param salt The salt value. Must be provided but can be zero-length. + * @param info Additional info value. Must be provided but can be zero-length, and cannot be more than 1024 bytes. + * @param keylen The length of the key to generate. Must be greater than 0. The maximum allowable value is `255` times the number of bytes produced by the selected digest function (e.g. `sha512` + * generates 64-byte hashes, making the maximum HKDF output 16320 bytes). + */ + function hkdfSync(digest: string, ikm: BinaryLike | KeyObject, salt: BinaryLike, info: BinaryLike, keylen: number): ArrayBuffer; + interface SecureHeapUsage { + /** + * The total allocated secure heap size as specified using the `--secure-heap=n` command-line flag. + */ + total: number; + /** + * The minimum allocation from the secure heap as specified using the `--secure-heap-min` command-line flag. + */ + min: number; + /** + * The total number of bytes currently allocated from the secure heap. + */ + used: number; + /** + * The calculated ratio of `used` to `total` allocated bytes. + */ + utilization: number; + } + /** + * @since v15.6.0 + */ + function secureHeapUsed(): SecureHeapUsage; + interface RandomUUIDOptions { + /** + * By default, to improve performance, + * Node.js will pre-emptively generate and persistently cache enough + * random data to generate up to 128 random UUIDs. To generate a UUID + * without using the cache, set `disableEntropyCache` to `true`. + * + * @default `false` + */ + disableEntropyCache?: boolean | undefined; + } + /** + * Generates a random [RFC 4122](https://www.rfc-editor.org/rfc/rfc4122.txt) version 4 UUID. The UUID is generated using a + * cryptographic pseudorandom number generator. + * @since v15.6.0, v14.17.0 + */ + function randomUUID(options?: RandomUUIDOptions): string; + interface X509CheckOptions { + /** + * @default 'always' + */ + subject?: 'always' | 'default' | 'never'; + /** + * @default true + */ + wildcards?: boolean; + /** + * @default true + */ + partialWildcards?: boolean; + /** + * @default false + */ + multiLabelWildcards?: boolean; + /** + * @default false + */ + singleLabelSubdomains?: boolean; + } + /** + * Encapsulates an X509 certificate and provides read-only access to + * its information. + * + * ```js + * const { X509Certificate } = await import('crypto'); + * + * const x509 = new X509Certificate('{... pem encoded cert ...}'); + * + * console.log(x509.subject); + * ``` + * @since v15.6.0 + */ + class X509Certificate { + /** + * Will be \`true\` if this is a Certificate Authority (CA) certificate. + * @since v15.6.0 + */ + readonly ca: boolean; + /** + * The SHA-1 fingerprint of this certificate. + * + * Because SHA-1 is cryptographically broken and because the security of SHA-1 is + * significantly worse than that of algorithms that are commonly used to sign + * certificates, consider using `x509.fingerprint256` instead. + * @since v15.6.0 + */ + readonly fingerprint: string; + /** + * The SHA-256 fingerprint of this certificate. + * @since v15.6.0 + */ + readonly fingerprint256: string; + /** + * The SHA-512 fingerprint of this certificate. + * @since v16.14.0 + */ + readonly fingerprint512: string; + /** + * The complete subject of this certificate. + * @since v15.6.0 + */ + readonly subject: string; + /** + * The subject alternative name specified for this certificate or `undefined` + * if not available. + * @since v15.6.0 + */ + readonly subjectAltName: string | undefined; + /** + * The information access content of this certificate or `undefined` if not + * available. + * @since v15.6.0 + */ + readonly infoAccess: string | undefined; + /** + * An array detailing the key usages for this certificate. + * @since v15.6.0 + */ + readonly keyUsage: string[]; + /** + * The issuer identification included in this certificate. + * @since v15.6.0 + */ + readonly issuer: string; + /** + * The issuer certificate or `undefined` if the issuer certificate is not + * available. + * @since v15.9.0 + */ + readonly issuerCertificate?: X509Certificate | undefined; + /** + * The public key `KeyObject` for this certificate. + * @since v15.6.0 + */ + readonly publicKey: KeyObject; + /** + * A `Buffer` containing the DER encoding of this certificate. + * @since v15.6.0 + */ + readonly raw: Buffer; + /** + * The serial number of this certificate. + * + * Serial numbers are assigned by certificate authorities and do not uniquely + * identify certificates. Consider using `x509.fingerprint256` as a unique + * identifier instead. + * @since v15.6.0 + */ + readonly serialNumber: string; + /** + * The date/time from which this certificate is considered valid. + * @since v15.6.0 + */ + readonly validFrom: string; + /** + * The date/time until which this certificate is considered valid. + * @since v15.6.0 + */ + readonly validTo: string; + constructor(buffer: BinaryLike); + /** + * Checks whether the certificate matches the given email address. + * + * If the `'subject'` option is undefined or set to `'default'`, the certificate + * subject is only considered if the subject alternative name extension either does + * not exist or does not contain any email addresses. + * + * If the `'subject'` option is set to `'always'` and if the subject alternative + * name extension either does not exist or does not contain a matching email + * address, the certificate subject is considered. + * + * If the `'subject'` option is set to `'never'`, the certificate subject is never + * considered, even if the certificate contains no subject alternative names. + * @since v15.6.0 + * @return Returns `email` if the certificate matches, `undefined` if it does not. + */ + checkEmail(email: string, options?: Pick): string | undefined; + /** + * Checks whether the certificate matches the given host name. + * + * If the certificate matches the given host name, the matching subject name is + * returned. The returned name might be an exact match (e.g., `foo.example.com`) + * or it might contain wildcards (e.g., `*.example.com`). Because host name + * comparisons are case-insensitive, the returned subject name might also differ + * from the given `name` in capitalization. + * + * If the `'subject'` option is undefined or set to `'default'`, the certificate + * subject is only considered if the subject alternative name extension either does + * not exist or does not contain any DNS names. This behavior is consistent with [RFC 2818](https://www.rfc-editor.org/rfc/rfc2818.txt) ("HTTP Over TLS"). + * + * If the `'subject'` option is set to `'always'` and if the subject alternative + * name extension either does not exist or does not contain a matching DNS name, + * the certificate subject is considered. + * + * If the `'subject'` option is set to `'never'`, the certificate subject is never + * considered, even if the certificate contains no subject alternative names. + * @since v15.6.0 + * @return Returns a subject name that matches `name`, or `undefined` if no subject name matches `name`. + */ + checkHost(name: string, options?: X509CheckOptions): string | undefined; + /** + * Checks whether the certificate matches the given IP address (IPv4 or IPv6). + * + * Only [RFC 5280](https://www.rfc-editor.org/rfc/rfc5280.txt) `iPAddress` subject alternative names are considered, and they + * must match the given `ip` address exactly. Other subject alternative names as + * well as the subject field of the certificate are ignored. + * @since v15.6.0 + * @return Returns `ip` if the certificate matches, `undefined` if it does not. + */ + checkIP(ip: string): string | undefined; + /** + * Checks whether this certificate was issued by the given `otherCert`. + * @since v15.6.0 + */ + checkIssued(otherCert: X509Certificate): boolean; + /** + * Checks whether the public key for this certificate is consistent with + * the given private key. + * @since v15.6.0 + * @param privateKey A private key. + */ + checkPrivateKey(privateKey: KeyObject): boolean; + /** + * There is no standard JSON encoding for X509 certificates. The`toJSON()` method returns a string containing the PEM encoded + * certificate. + * @since v15.6.0 + */ + toJSON(): string; + /** + * Returns information about this certificate using the legacy `certificate object` encoding. + * @since v15.6.0 + */ + toLegacyObject(): PeerCertificate; + /** + * Returns the PEM-encoded certificate. + * @since v15.6.0 + */ + toString(): string; + /** + * Verifies that this certificate was signed by the given public key. + * Does not perform any other validation checks on the certificate. + * @since v15.6.0 + * @param publicKey A public key. + */ + verify(publicKey: KeyObject): boolean; + } + type LargeNumberLike = NodeJS.ArrayBufferView | SharedArrayBuffer | ArrayBuffer | bigint; + interface GeneratePrimeOptions { + add?: LargeNumberLike | undefined; + rem?: LargeNumberLike | undefined; + /** + * @default false + */ + safe?: boolean | undefined; + bigint?: boolean | undefined; + } + interface GeneratePrimeOptionsBigInt extends GeneratePrimeOptions { + bigint: true; + } + interface GeneratePrimeOptionsArrayBuffer extends GeneratePrimeOptions { + bigint?: false | undefined; + } + /** + * Generates a pseudorandom prime of `size` bits. + * + * If `options.safe` is `true`, the prime will be a safe prime -- that is,`(prime - 1) / 2` will also be a prime. + * + * The `options.add` and `options.rem` parameters can be used to enforce additional + * requirements, e.g., for Diffie-Hellman: + * + * * If `options.add` and `options.rem` are both set, the prime will satisfy the + * condition that `prime % add = rem`. + * * If only `options.add` is set and `options.safe` is not `true`, the prime will + * satisfy the condition that `prime % add = 1`. + * * If only `options.add` is set and `options.safe` is set to `true`, the prime + * will instead satisfy the condition that `prime % add = 3`. This is necessary + * because `prime % add = 1` for `options.add > 2` would contradict the condition + * enforced by `options.safe`. + * * `options.rem` is ignored if `options.add` is not given. + * + * Both `options.add` and `options.rem` must be encoded as big-endian sequences + * if given as an `ArrayBuffer`, `SharedArrayBuffer`, `TypedArray`, `Buffer`, or`DataView`. + * + * By default, the prime is encoded as a big-endian sequence of octets + * in an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer). If the `bigint` option is `true`, then a + * [bigint](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) is provided. + * @since v15.8.0 + * @param size The size (in bits) of the prime to generate. + */ + function generatePrime(size: number, callback: (err: Error | null, prime: ArrayBuffer) => void): void; + function generatePrime(size: number, options: GeneratePrimeOptionsBigInt, callback: (err: Error | null, prime: bigint) => void): void; + function generatePrime(size: number, options: GeneratePrimeOptionsArrayBuffer, callback: (err: Error | null, prime: ArrayBuffer) => void): void; + function generatePrime(size: number, options: GeneratePrimeOptions, callback: (err: Error | null, prime: ArrayBuffer | bigint) => void): void; + /** + * Generates a pseudorandom prime of `size` bits. + * + * If `options.safe` is `true`, the prime will be a safe prime -- that is,`(prime - 1) / 2` will also be a prime. + * + * The `options.add` and `options.rem` parameters can be used to enforce additional + * requirements, e.g., for Diffie-Hellman: + * + * * If `options.add` and `options.rem` are both set, the prime will satisfy the + * condition that `prime % add = rem`. + * * If only `options.add` is set and `options.safe` is not `true`, the prime will + * satisfy the condition that `prime % add = 1`. + * * If only `options.add` is set and `options.safe` is set to `true`, the prime + * will instead satisfy the condition that `prime % add = 3`. This is necessary + * because `prime % add = 1` for `options.add > 2` would contradict the condition + * enforced by `options.safe`. + * * `options.rem` is ignored if `options.add` is not given. + * + * Both `options.add` and `options.rem` must be encoded as big-endian sequences + * if given as an `ArrayBuffer`, `SharedArrayBuffer`, `TypedArray`, `Buffer`, or`DataView`. + * + * By default, the prime is encoded as a big-endian sequence of octets + * in an [ArrayBuffer](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer). If the `bigint` option is `true`, then a + * [bigint](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) is provided. + * @since v15.8.0 + * @param size The size (in bits) of the prime to generate. + */ + function generatePrimeSync(size: number): ArrayBuffer; + function generatePrimeSync(size: number, options: GeneratePrimeOptionsBigInt): bigint; + function generatePrimeSync(size: number, options: GeneratePrimeOptionsArrayBuffer): ArrayBuffer; + function generatePrimeSync(size: number, options: GeneratePrimeOptions): ArrayBuffer | bigint; + interface CheckPrimeOptions { + /** + * The number of Miller-Rabin probabilistic primality iterations to perform. + * When the value is 0 (zero), a number of checks is used that yields a false positive rate of at most `2**-64` for random input. + * Care must be used when selecting a number of checks. + * Refer to the OpenSSL documentation for the BN_is_prime_ex function nchecks options for more details. + * + * @default 0 + */ + checks?: number | undefined; + } + /** + * Checks the primality of the `candidate`. + * @since v15.8.0 + * @param candidate A possible prime encoded as a sequence of big endian octets of arbitrary length. + */ + function checkPrime(value: LargeNumberLike, callback: (err: Error | null, result: boolean) => void): void; + function checkPrime(value: LargeNumberLike, options: CheckPrimeOptions, callback: (err: Error | null, result: boolean) => void): void; + /** + * Checks the primality of the `candidate`. + * @since v15.8.0 + * @param candidate A possible prime encoded as a sequence of big endian octets of arbitrary length. + * @return `true` if the candidate is a prime with an error probability less than `0.25 ** options.checks`. + */ + function checkPrimeSync(candidate: LargeNumberLike, options?: CheckPrimeOptions): boolean; + /** + * Load and set the `engine` for some or all OpenSSL functions (selected by flags). + * + * `engine` could be either an id or a path to the engine's shared library. + * + * The optional `flags` argument uses `ENGINE_METHOD_ALL` by default. + * The `flags` is a bit field taking one of or a mix of the following flags (defined in `crypto.constants`): + * + * - `crypto.constants.ENGINE_METHOD_RSA` + * - `crypto.constants.ENGINE_METHOD_DSA` + * - `crypto.constants.ENGINE_METHOD_DH` + * - `crypto.constants.ENGINE_METHOD_RAND` + * - `crypto.constants.ENGINE_METHOD_EC` + * - `crypto.constants.ENGINE_METHOD_CIPHERS` + * - `crypto.constants.ENGINE_METHOD_DIGESTS` + * - `crypto.constants.ENGINE_METHOD_PKEY_METHS` + * - `crypto.constants.ENGINE_METHOD_PKEY_ASN1_METHS` + * - `crypto.constants.ENGINE_METHOD_ALL` + * - `crypto.constants.ENGINE_METHOD_NONE` + * + * The flags below are deprecated in OpenSSL-1.1.0. + * + * - `crypto.constants.ENGINE_METHOD_ECDH` + * - `crypto.constants.ENGINE_METHOD_ECDSA` + * - `crypto.constants.ENGINE_METHOD_STORE` + * @since v0.11.11 + * @param [flags=crypto.constants.ENGINE_METHOD_ALL] + */ + function setEngine(engine: string, flags?: number): void; + /** + * A convenient alias for `crypto.webcrypto.getRandomValues()`. + * This implementation is not compliant with the Web Crypto spec, + * to write web-compatible code use `crypto.webcrypto.getRandomValues()` instead. + * @since v17.4.0 + * @returns Returns `typedArray`. + */ + function getRandomValues(typedArray: T): T; + /** + * A convenient alias for `crypto.webcrypto.subtle`. + * @since v17.4.0 + */ + const subtle: webcrypto.SubtleCrypto; + /** + * An implementation of the Web Crypto API standard. + * + * See the {@link https://nodejs.org/docs/latest/api/webcrypto.html Web Crypto API documentation} for details. + * @since v15.0.0 + */ + const webcrypto: webcrypto.Crypto; + namespace webcrypto { + type BufferSource = ArrayBufferView | ArrayBuffer; + type KeyFormat = 'jwk' | 'pkcs8' | 'raw' | 'spki'; + type KeyType = 'private' | 'public' | 'secret'; + type KeyUsage = 'decrypt' | 'deriveBits' | 'deriveKey' | 'encrypt' | 'sign' | 'unwrapKey' | 'verify' | 'wrapKey'; + type AlgorithmIdentifier = Algorithm | string; + type HashAlgorithmIdentifier = AlgorithmIdentifier; + type NamedCurve = string; + type BigInteger = Uint8Array; + interface AesCbcParams extends Algorithm { + iv: BufferSource; + } + interface AesCtrParams extends Algorithm { + counter: BufferSource; + length: number; + } + interface AesDerivedKeyParams extends Algorithm { + length: number; + } + interface AesGcmParams extends Algorithm { + additionalData?: BufferSource; + iv: BufferSource; + tagLength?: number; + } + interface AesKeyAlgorithm extends KeyAlgorithm { + length: number; + } + interface AesKeyGenParams extends Algorithm { + length: number; + } + interface Algorithm { + name: string; + } + interface EcKeyAlgorithm extends KeyAlgorithm { + namedCurve: NamedCurve; + } + interface EcKeyGenParams extends Algorithm { + namedCurve: NamedCurve; + } + interface EcKeyImportParams extends Algorithm { + namedCurve: NamedCurve; + } + interface EcdhKeyDeriveParams extends Algorithm { + public: CryptoKey; + } + interface EcdsaParams extends Algorithm { + hash: HashAlgorithmIdentifier; + } + interface Ed448Params extends Algorithm { + context?: BufferSource; + } + interface HkdfParams extends Algorithm { + hash: HashAlgorithmIdentifier; + info: BufferSource; + salt: BufferSource; + } + interface HmacImportParams extends Algorithm { + hash: HashAlgorithmIdentifier; + length?: number; + } + interface HmacKeyAlgorithm extends KeyAlgorithm { + hash: KeyAlgorithm; + length: number; + } + interface HmacKeyGenParams extends Algorithm { + hash: HashAlgorithmIdentifier; + length?: number; + } + interface JsonWebKey { + alg?: string; + crv?: string; + d?: string; + dp?: string; + dq?: string; + e?: string; + ext?: boolean; + k?: string; + key_ops?: string[]; + kty?: string; + n?: string; + oth?: RsaOtherPrimesInfo[]; + p?: string; + q?: string; + qi?: string; + use?: string; + x?: string; + y?: string; + } + interface KeyAlgorithm { + name: string; + } + interface Pbkdf2Params extends Algorithm { + hash: HashAlgorithmIdentifier; + iterations: number; + salt: BufferSource; + } + interface RsaHashedImportParams extends Algorithm { + hash: HashAlgorithmIdentifier; + } + interface RsaHashedKeyAlgorithm extends RsaKeyAlgorithm { + hash: KeyAlgorithm; + } + interface RsaHashedKeyGenParams extends RsaKeyGenParams { + hash: HashAlgorithmIdentifier; + } + interface RsaKeyAlgorithm extends KeyAlgorithm { + modulusLength: number; + publicExponent: BigInteger; + } + interface RsaKeyGenParams extends Algorithm { + modulusLength: number; + publicExponent: BigInteger; + } + interface RsaOaepParams extends Algorithm { + label?: BufferSource; + } + interface RsaOtherPrimesInfo { + d?: string; + r?: string; + t?: string; + } + interface RsaPssParams extends Algorithm { + saltLength: number; + } + /** + * Calling `require('node:crypto').webcrypto` returns an instance of the `Crypto` class. + * `Crypto` is a singleton that provides access to the remainder of the crypto API. + * @since v15.0.0 + */ + interface Crypto { + /** + * Provides access to the `SubtleCrypto` API. + * @since v15.0.0 + */ + readonly subtle: SubtleCrypto; + /** + * Generates cryptographically strong random values. + * The given `typedArray` is filled with random values, and a reference to `typedArray` is returned. + * + * The given `typedArray` must be an integer-based instance of {@link NodeJS.TypedArray}, i.e. `Float32Array` and `Float64Array` are not accepted. + * + * An error will be thrown if the given `typedArray` is larger than 65,536 bytes. + * @since v15.0.0 + */ + getRandomValues>(typedArray: T): T; + /** + * Generates a random {@link https://www.rfc-editor.org/rfc/rfc4122.txt RFC 4122} version 4 UUID. + * The UUID is generated using a cryptographic pseudorandom number generator. + * @since v16.7.0 + */ + randomUUID(): string; + CryptoKey: CryptoKeyConstructor; + } + // This constructor throws ILLEGAL_CONSTRUCTOR so it should not be newable. + interface CryptoKeyConstructor { + /** Illegal constructor */ + (_: { readonly _: unique symbol }): never; // Allows instanceof to work but not be callable by the user. + readonly length: 0; + readonly name: 'CryptoKey'; + readonly prototype: CryptoKey; + } + /** + * @since v15.0.0 + */ + interface CryptoKey { + /** + * An object detailing the algorithm for which the key can be used along with additional algorithm-specific parameters. + * @since v15.0.0 + */ + readonly algorithm: KeyAlgorithm; + /** + * When `true`, the {@link CryptoKey} can be extracted using either `subtleCrypto.exportKey()` or `subtleCrypto.wrapKey()`. + * @since v15.0.0 + */ + readonly extractable: boolean; + /** + * A string identifying whether the key is a symmetric (`'secret'`) or asymmetric (`'private'` or `'public'`) key. + * @since v15.0.0 + */ + readonly type: KeyType; + /** + * An array of strings identifying the operations for which the key may be used. + * + * The possible usages are: + * - `'encrypt'` - The key may be used to encrypt data. + * - `'decrypt'` - The key may be used to decrypt data. + * - `'sign'` - The key may be used to generate digital signatures. + * - `'verify'` - The key may be used to verify digital signatures. + * - `'deriveKey'` - The key may be used to derive a new key. + * - `'deriveBits'` - The key may be used to derive bits. + * - `'wrapKey'` - The key may be used to wrap another key. + * - `'unwrapKey'` - The key may be used to unwrap another key. + * + * Valid key usages depend on the key algorithm (identified by `cryptokey.algorithm.name`). + * @since v15.0.0 + */ + readonly usages: KeyUsage[]; + } + /** + * The `CryptoKeyPair` is a simple dictionary object with `publicKey` and `privateKey` properties, representing an asymmetric key pair. + * @since v15.0.0 + */ + interface CryptoKeyPair { + /** + * A {@link CryptoKey} whose type will be `'private'`. + * @since v15.0.0 + */ + privateKey: CryptoKey; + /** + * A {@link CryptoKey} whose type will be `'public'`. + * @since v15.0.0 + */ + publicKey: CryptoKey; + } + /** + * @since v15.0.0 + */ + interface SubtleCrypto { + /** + * Using the method and parameters specified in `algorithm` and the keying material provided by `key`, + * `subtle.decrypt()` attempts to decipher the provided `data`. If successful, + * the returned promise will be resolved with an `` containing the plaintext result. + * + * The algorithms currently supported include: + * + * - `'RSA-OAEP'` + * - `'AES-CTR'` + * - `'AES-CBC'` + * - `'AES-GCM'` + * @since v15.0.0 + */ + decrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise; + /** + * Using the method and parameters specified in `algorithm` and the keying material provided by `baseKey`, + * `subtle.deriveBits()` attempts to generate `length` bits. + * The Node.js implementation requires that when `length` is a number it must be multiple of `8`. + * When `length` is `null` the maximum number of bits for a given algorithm is generated. This is allowed + * for the `'ECDH'`, `'X25519'`, and `'X448'` algorithms. + * If successful, the returned promise will be resolved with an `` containing the generated data. + * + * The algorithms currently supported include: + * + * - `'ECDH'` + * - `'X25519'` + * - `'X448'` + * - `'HKDF'` + * - `'PBKDF2'` + * @since v15.0.0 + */ + deriveBits(algorithm: EcdhKeyDeriveParams, baseKey: CryptoKey, length: number | null): Promise; + deriveBits(algorithm: AlgorithmIdentifier | HkdfParams | Pbkdf2Params, baseKey: CryptoKey, length: number): Promise; + /** + * Using the method and parameters specified in `algorithm`, and the keying material provided by `baseKey`, + * `subtle.deriveKey()` attempts to generate a new ` based on the method and parameters in `derivedKeyAlgorithm`. + * + * Calling `subtle.deriveKey()` is equivalent to calling `subtle.deriveBits()` to generate raw keying material, + * then passing the result into the `subtle.importKey()` method using the `deriveKeyAlgorithm`, `extractable`, and `keyUsages` parameters as input. + * + * The algorithms currently supported include: + * + * - `'ECDH'` + * - `'X25519'` + * - `'X448'` + * - `'HKDF'` + * - `'PBKDF2'` + * @param keyUsages See {@link https://nodejs.org/docs/latest/api/webcrypto.html#cryptokeyusages Key usages}. + * @since v15.0.0 + */ + deriveKey( + algorithm: AlgorithmIdentifier | EcdhKeyDeriveParams | HkdfParams | Pbkdf2Params, + baseKey: CryptoKey, + derivedKeyAlgorithm: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams | HkdfParams | Pbkdf2Params, + extractable: boolean, + keyUsages: ReadonlyArray + ): Promise; + /** + * Using the method identified by `algorithm`, `subtle.digest()` attempts to generate a digest of `data`. + * If successful, the returned promise is resolved with an `` containing the computed digest. + * + * If `algorithm` is provided as a ``, it must be one of: + * + * - `'SHA-1'` + * - `'SHA-256'` + * - `'SHA-384'` + * - `'SHA-512'` + * + * If `algorithm` is provided as an ``, it must have a `name` property whose value is one of the above. + * @since v15.0.0 + */ + digest(algorithm: AlgorithmIdentifier, data: BufferSource): Promise; + /** + * Using the method and parameters specified by `algorithm` and the keying material provided by `key`, + * `subtle.encrypt()` attempts to encipher `data`. If successful, + * the returned promise is resolved with an `` containing the encrypted result. + * + * The algorithms currently supported include: + * + * - `'RSA-OAEP'` + * - `'AES-CTR'` + * - `'AES-CBC'` + * - `'AES-GCM'` + * @since v15.0.0 + */ + encrypt(algorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, key: CryptoKey, data: BufferSource): Promise; + /** + * Exports the given key into the specified format, if supported. + * + * If the `` is not extractable, the returned promise will reject. + * + * When `format` is either `'pkcs8'` or `'spki'` and the export is successful, + * the returned promise will be resolved with an `` containing the exported key data. + * + * When `format` is `'jwk'` and the export is successful, the returned promise will be resolved with a + * JavaScript object conforming to the {@link https://tools.ietf.org/html/rfc7517 JSON Web Key} specification. + * @param format Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`. + * @returns `` containing ``. + * @since v15.0.0 + */ + exportKey(format: 'jwk', key: CryptoKey): Promise; + exportKey(format: Exclude, key: CryptoKey): Promise; + /** + * Using the method and parameters provided in `algorithm`, + * `subtle.generateKey()` attempts to generate new keying material. + * Depending the method used, the method may generate either a single `` or a ``. + * + * The `` (public and private key) generating algorithms supported include: + * + * - `'RSASSA-PKCS1-v1_5'` + * - `'RSA-PSS'` + * - `'RSA-OAEP'` + * - `'ECDSA'` + * - `'Ed25519'` + * - `'Ed448'` + * - `'ECDH'` + * - `'X25519'` + * - `'X448'` + * The `` (secret key) generating algorithms supported include: + * + * - `'HMAC'` + * - `'AES-CTR'` + * - `'AES-CBC'` + * - `'AES-GCM'` + * - `'AES-KW'` + * @param keyUsages See {@link https://nodejs.org/docs/latest/api/webcrypto.html#cryptokeyusages Key usages}. + * @since v15.0.0 + */ + generateKey(algorithm: RsaHashedKeyGenParams | EcKeyGenParams, extractable: boolean, keyUsages: ReadonlyArray): Promise; + generateKey(algorithm: AesKeyGenParams | HmacKeyGenParams | Pbkdf2Params, extractable: boolean, keyUsages: ReadonlyArray): Promise; + generateKey(algorithm: AlgorithmIdentifier, extractable: boolean, keyUsages: KeyUsage[]): Promise; + /** + * The `subtle.importKey()` method attempts to interpret the provided `keyData` as the given `format` + * to create a `` instance using the provided `algorithm`, `extractable`, and `keyUsages` arguments. + * If the import is successful, the returned promise will be resolved with the created ``. + * + * If importing a `'PBKDF2'` key, `extractable` must be `false`. + * @param format Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`. + * @param keyUsages See {@link https://nodejs.org/docs/latest/api/webcrypto.html#cryptokeyusages Key usages}. + * @since v15.0.0 + */ + importKey( + format: 'jwk', + keyData: JsonWebKey, + algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, + extractable: boolean, + keyUsages: ReadonlyArray + ): Promise; + importKey( + format: Exclude, + keyData: BufferSource, + algorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, + extractable: boolean, + keyUsages: KeyUsage[] + ): Promise; + /** + * Using the method and parameters given by `algorithm` and the keying material provided by `key`, + * `subtle.sign()` attempts to generate a cryptographic signature of `data`. If successful, + * the returned promise is resolved with an `` containing the generated signature. + * + * The algorithms currently supported include: + * + * - `'RSASSA-PKCS1-v1_5'` + * - `'RSA-PSS'` + * - `'ECDSA'` + * - `'Ed25519'` + * - `'Ed448'` + * - `'HMAC'` + * @since v15.0.0 + */ + sign(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams | Ed448Params, key: CryptoKey, data: BufferSource): Promise; + /** + * In cryptography, "wrapping a key" refers to exporting and then encrypting the keying material. + * The `subtle.unwrapKey()` method attempts to decrypt a wrapped key and create a `` instance. + * It is equivalent to calling `subtle.decrypt()` first on the encrypted key data (using the `wrappedKey`, `unwrapAlgo`, and `unwrappingKey` arguments as input) + * then passing the results in to the `subtle.importKey()` method using the `unwrappedKeyAlgo`, `extractable`, and `keyUsages` arguments as inputs. + * If successful, the returned promise is resolved with a `` object. + * + * The wrapping algorithms currently supported include: + * + * - `'RSA-OAEP'` + * - `'AES-CTR'` + * - `'AES-CBC'` + * - `'AES-GCM'` + * - `'AES-KW'` + * + * The unwrapped key algorithms supported include: + * + * - `'RSASSA-PKCS1-v1_5'` + * - `'RSA-PSS'` + * - `'RSA-OAEP'` + * - `'ECDSA'` + * - `'Ed25519'` + * - `'Ed448'` + * - `'ECDH'` + * - `'X25519'` + * - `'X448'` + * - `'HMAC'` + * - `'AES-CTR'` + * - `'AES-CBC'` + * - `'AES-GCM'` + * - `'AES-KW'` + * @param format Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`. + * @param keyUsages See {@link https://nodejs.org/docs/latest/api/webcrypto.html#cryptokeyusages Key usages}. + * @since v15.0.0 + */ + unwrapKey( + format: KeyFormat, + wrappedKey: BufferSource, + unwrappingKey: CryptoKey, + unwrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams, + unwrappedKeyAlgorithm: AlgorithmIdentifier | RsaHashedImportParams | EcKeyImportParams | HmacImportParams | AesKeyAlgorithm, + extractable: boolean, + keyUsages: KeyUsage[] + ): Promise; + /** + * Using the method and parameters given in `algorithm` and the keying material provided by `key`, + * `subtle.verify()` attempts to verify that `signature` is a valid cryptographic signature of `data`. + * The returned promise is resolved with either `true` or `false`. + * + * The algorithms currently supported include: + * + * - `'RSASSA-PKCS1-v1_5'` + * - `'RSA-PSS'` + * - `'ECDSA'` + * - `'Ed25519'` + * - `'Ed448'` + * - `'HMAC'` + * @since v15.0.0 + */ + verify(algorithm: AlgorithmIdentifier | RsaPssParams | EcdsaParams | Ed448Params, key: CryptoKey, signature: BufferSource, data: BufferSource): Promise; + /** + * In cryptography, "wrapping a key" refers to exporting and then encrypting the keying material. + * The `subtle.wrapKey()` method exports the keying material into the format identified by `format`, + * then encrypts it using the method and parameters specified by `wrapAlgo` and the keying material provided by `wrappingKey`. + * It is the equivalent to calling `subtle.exportKey()` using `format` and `key` as the arguments, + * then passing the result to the `subtle.encrypt()` method using `wrappingKey` and `wrapAlgo` as inputs. + * If successful, the returned promise will be resolved with an `` containing the encrypted key data. + * + * The wrapping algorithms currently supported include: + * + * - `'RSA-OAEP'` + * - `'AES-CTR'` + * - `'AES-CBC'` + * - `'AES-GCM'` + * - `'AES-KW'` + * @param format Must be one of `'raw'`, `'pkcs8'`, `'spki'`, or `'jwk'`. + * @since v15.0.0 + */ + wrapKey(format: KeyFormat, key: CryptoKey, wrappingKey: CryptoKey, wrapAlgorithm: AlgorithmIdentifier | RsaOaepParams | AesCtrParams | AesCbcParams | AesGcmParams): Promise; + } + } +} +declare module 'node:crypto' { + export * from 'crypto'; +} diff --git a/node_modules/@types/node/ts4.8/dgram.d.ts b/node_modules/@types/node/ts4.8/dgram.d.ts new file mode 100644 index 0000000..247328d --- /dev/null +++ b/node_modules/@types/node/ts4.8/dgram.d.ts @@ -0,0 +1,545 @@ +/** + * The `dgram` module provides an implementation of UDP datagram sockets. + * + * ```js + * import dgram from 'dgram'; + * + * const server = dgram.createSocket('udp4'); + * + * server.on('error', (err) => { + * console.log(`server error:\n${err.stack}`); + * server.close(); + * }); + * + * server.on('message', (msg, rinfo) => { + * console.log(`server got: ${msg} from ${rinfo.address}:${rinfo.port}`); + * }); + * + * server.on('listening', () => { + * const address = server.address(); + * console.log(`server listening ${address.address}:${address.port}`); + * }); + * + * server.bind(41234); + * // Prints: server listening 0.0.0.0:41234 + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/dgram.js) + */ +declare module 'dgram' { + import { AddressInfo } from 'node:net'; + import * as dns from 'node:dns'; + import { EventEmitter, Abortable } from 'node:events'; + interface RemoteInfo { + address: string; + family: 'IPv4' | 'IPv6'; + port: number; + size: number; + } + interface BindOptions { + port?: number | undefined; + address?: string | undefined; + exclusive?: boolean | undefined; + fd?: number | undefined; + } + type SocketType = 'udp4' | 'udp6'; + interface SocketOptions extends Abortable { + type: SocketType; + reuseAddr?: boolean | undefined; + /** + * @default false + */ + ipv6Only?: boolean | undefined; + recvBufferSize?: number | undefined; + sendBufferSize?: number | undefined; + lookup?: ((hostname: string, options: dns.LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void) => void) | undefined; + } + /** + * Creates a `dgram.Socket` object. Once the socket is created, calling `socket.bind()` will instruct the socket to begin listening for datagram + * messages. When `address` and `port` are not passed to `socket.bind()` the + * method will bind the socket to the "all interfaces" address on a random port + * (it does the right thing for both `udp4` and `udp6` sockets). The bound address + * and port can be retrieved using `socket.address().address` and `socket.address().port`. + * + * If the `signal` option is enabled, calling `.abort()` on the corresponding`AbortController` is similar to calling `.close()` on the socket: + * + * ```js + * const controller = new AbortController(); + * const { signal } = controller; + * const server = dgram.createSocket({ type: 'udp4', signal }); + * server.on('message', (msg, rinfo) => { + * console.log(`server got: ${msg} from ${rinfo.address}:${rinfo.port}`); + * }); + * // Later, when you want to close the server. + * controller.abort(); + * ``` + * @since v0.11.13 + * @param options Available options are: + * @param callback Attached as a listener for `'message'` events. Optional. + */ + function createSocket(type: SocketType, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket; + function createSocket(options: SocketOptions, callback?: (msg: Buffer, rinfo: RemoteInfo) => void): Socket; + /** + * Encapsulates the datagram functionality. + * + * New instances of `dgram.Socket` are created using {@link createSocket}. + * The `new` keyword is not to be used to create `dgram.Socket` instances. + * @since v0.1.99 + */ + class Socket extends EventEmitter { + /** + * Tells the kernel to join a multicast group at the given `multicastAddress` and`multicastInterface` using the `IP_ADD_MEMBERSHIP` socket option. If the`multicastInterface` argument is not + * specified, the operating system will choose + * one interface and will add membership to it. To add membership to every + * available interface, call `addMembership` multiple times, once per interface. + * + * When called on an unbound socket, this method will implicitly bind to a random + * port, listening on all interfaces. + * + * When sharing a UDP socket across multiple `cluster` workers, the`socket.addMembership()` function must be called only once or an`EADDRINUSE` error will occur: + * + * ```js + * import cluster from 'cluster'; + * import dgram from 'dgram'; + * + * if (cluster.isPrimary) { + * cluster.fork(); // Works ok. + * cluster.fork(); // Fails with EADDRINUSE. + * } else { + * const s = dgram.createSocket('udp4'); + * s.bind(1234, () => { + * s.addMembership('224.0.0.114'); + * }); + * } + * ``` + * @since v0.6.9 + */ + addMembership(multicastAddress: string, multicastInterface?: string): void; + /** + * Returns an object containing the address information for a socket. + * For UDP sockets, this object will contain `address`, `family` and `port`properties. + * + * This method throws `EBADF` if called on an unbound socket. + * @since v0.1.99 + */ + address(): AddressInfo; + /** + * For UDP sockets, causes the `dgram.Socket` to listen for datagram + * messages on a named `port` and optional `address`. If `port` is not + * specified or is `0`, the operating system will attempt to bind to a + * random port. If `address` is not specified, the operating system will + * attempt to listen on all addresses. Once binding is complete, a`'listening'` event is emitted and the optional `callback` function is + * called. + * + * Specifying both a `'listening'` event listener and passing a`callback` to the `socket.bind()` method is not harmful but not very + * useful. + * + * A bound datagram socket keeps the Node.js process running to receive + * datagram messages. + * + * If binding fails, an `'error'` event is generated. In rare case (e.g. + * attempting to bind with a closed socket), an `Error` may be thrown. + * + * Example of a UDP server listening on port 41234: + * + * ```js + * import dgram from 'dgram'; + * + * const server = dgram.createSocket('udp4'); + * + * server.on('error', (err) => { + * console.log(`server error:\n${err.stack}`); + * server.close(); + * }); + * + * server.on('message', (msg, rinfo) => { + * console.log(`server got: ${msg} from ${rinfo.address}:${rinfo.port}`); + * }); + * + * server.on('listening', () => { + * const address = server.address(); + * console.log(`server listening ${address.address}:${address.port}`); + * }); + * + * server.bind(41234); + * // Prints: server listening 0.0.0.0:41234 + * ``` + * @since v0.1.99 + * @param callback with no parameters. Called when binding is complete. + */ + bind(port?: number, address?: string, callback?: () => void): this; + bind(port?: number, callback?: () => void): this; + bind(callback?: () => void): this; + bind(options: BindOptions, callback?: () => void): this; + /** + * Close the underlying socket and stop listening for data on it. If a callback is + * provided, it is added as a listener for the `'close'` event. + * @since v0.1.99 + * @param callback Called when the socket has been closed. + */ + close(callback?: () => void): this; + /** + * Associates the `dgram.Socket` to a remote address and port. Every + * message sent by this handle is automatically sent to that destination. Also, + * the socket will only receive messages from that remote peer. + * Trying to call `connect()` on an already connected socket will result + * in an `ERR_SOCKET_DGRAM_IS_CONNECTED` exception. If `address` is not + * provided, `'127.0.0.1'` (for `udp4` sockets) or `'::1'` (for `udp6` sockets) + * will be used by default. Once the connection is complete, a `'connect'` event + * is emitted and the optional `callback` function is called. In case of failure, + * the `callback` is called or, failing this, an `'error'` event is emitted. + * @since v12.0.0 + * @param callback Called when the connection is completed or on error. + */ + connect(port: number, address?: string, callback?: () => void): void; + connect(port: number, callback: () => void): void; + /** + * A synchronous function that disassociates a connected `dgram.Socket` from + * its remote address. Trying to call `disconnect()` on an unbound or already + * disconnected socket will result in an `ERR_SOCKET_DGRAM_NOT_CONNECTED` exception. + * @since v12.0.0 + */ + disconnect(): void; + /** + * Instructs the kernel to leave a multicast group at `multicastAddress` using the`IP_DROP_MEMBERSHIP` socket option. This method is automatically called by the + * kernel when the socket is closed or the process terminates, so most apps will + * never have reason to call this. + * + * If `multicastInterface` is not specified, the operating system will attempt to + * drop membership on all valid interfaces. + * @since v0.6.9 + */ + dropMembership(multicastAddress: string, multicastInterface?: string): void; + /** + * This method throws `ERR_SOCKET_BUFFER_SIZE` if called on an unbound socket. + * @since v8.7.0 + * @return the `SO_RCVBUF` socket receive buffer size in bytes. + */ + getRecvBufferSize(): number; + /** + * This method throws `ERR_SOCKET_BUFFER_SIZE` if called on an unbound socket. + * @since v8.7.0 + * @return the `SO_SNDBUF` socket send buffer size in bytes. + */ + getSendBufferSize(): number; + /** + * By default, binding a socket will cause it to block the Node.js process from + * exiting as long as the socket is open. The `socket.unref()` method can be used + * to exclude the socket from the reference counting that keeps the Node.js + * process active. The `socket.ref()` method adds the socket back to the reference + * counting and restores the default behavior. + * + * Calling `socket.ref()` multiples times will have no additional effect. + * + * The `socket.ref()` method returns a reference to the socket so calls can be + * chained. + * @since v0.9.1 + */ + ref(): this; + /** + * Returns an object containing the `address`, `family`, and `port` of the remote + * endpoint. This method throws an `ERR_SOCKET_DGRAM_NOT_CONNECTED` exception + * if the socket is not connected. + * @since v12.0.0 + */ + remoteAddress(): AddressInfo; + /** + * Broadcasts a datagram on the socket. + * For connectionless sockets, the destination `port` and `address` must be + * specified. Connected sockets, on the other hand, will use their associated + * remote endpoint, so the `port` and `address` arguments must not be set. + * + * The `msg` argument contains the message to be sent. + * Depending on its type, different behavior can apply. If `msg` is a `Buffer`, + * any `TypedArray` or a `DataView`, + * the `offset` and `length` specify the offset within the `Buffer` where the + * message begins and the number of bytes in the message, respectively. + * If `msg` is a `String`, then it is automatically converted to a `Buffer`with `'utf8'` encoding. With messages that + * contain multi-byte characters, `offset` and `length` will be calculated with + * respect to `byte length` and not the character position. + * If `msg` is an array, `offset` and `length` must not be specified. + * + * The `address` argument is a string. If the value of `address` is a host name, + * DNS will be used to resolve the address of the host. If `address` is not + * provided or otherwise nullish, `'127.0.0.1'` (for `udp4` sockets) or `'::1'`(for `udp6` sockets) will be used by default. + * + * If the socket has not been previously bound with a call to `bind`, the socket + * is assigned a random port number and is bound to the "all interfaces" address + * (`'0.0.0.0'` for `udp4` sockets, `'::0'` for `udp6` sockets.) + * + * An optional `callback` function may be specified to as a way of reporting + * DNS errors or for determining when it is safe to reuse the `buf` object. + * DNS lookups delay the time to send for at least one tick of the + * Node.js event loop. + * + * The only way to know for sure that the datagram has been sent is by using a`callback`. If an error occurs and a `callback` is given, the error will be + * passed as the first argument to the `callback`. If a `callback` is not given, + * the error is emitted as an `'error'` event on the `socket` object. + * + * Offset and length are optional but both _must_ be set if either are used. + * They are supported only when the first argument is a `Buffer`, a `TypedArray`, + * or a `DataView`. + * + * This method throws `ERR_SOCKET_BAD_PORT` if called on an unbound socket. + * + * Example of sending a UDP packet to a port on `localhost`; + * + * ```js + * import dgram from 'dgram'; + * import { Buffer } from 'buffer'; + * + * const message = Buffer.from('Some bytes'); + * const client = dgram.createSocket('udp4'); + * client.send(message, 41234, 'localhost', (err) => { + * client.close(); + * }); + * ``` + * + * Example of sending a UDP packet composed of multiple buffers to a port on`127.0.0.1`; + * + * ```js + * import dgram from 'dgram'; + * import { Buffer } from 'buffer'; + * + * const buf1 = Buffer.from('Some '); + * const buf2 = Buffer.from('bytes'); + * const client = dgram.createSocket('udp4'); + * client.send([buf1, buf2], 41234, (err) => { + * client.close(); + * }); + * ``` + * + * Sending multiple buffers might be faster or slower depending on the + * application and operating system. Run benchmarks to + * determine the optimal strategy on a case-by-case basis. Generally speaking, + * however, sending multiple buffers is faster. + * + * Example of sending a UDP packet using a socket connected to a port on`localhost`: + * + * ```js + * import dgram from 'dgram'; + * import { Buffer } from 'buffer'; + * + * const message = Buffer.from('Some bytes'); + * const client = dgram.createSocket('udp4'); + * client.connect(41234, 'localhost', (err) => { + * client.send(message, (err) => { + * client.close(); + * }); + * }); + * ``` + * @since v0.1.99 + * @param msg Message to be sent. + * @param offset Offset in the buffer where the message starts. + * @param length Number of bytes in the message. + * @param port Destination port. + * @param address Destination host name or IP address. + * @param callback Called when the message has been sent. + */ + send(msg: string | Uint8Array | ReadonlyArray, port?: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void; + send(msg: string | Uint8Array | ReadonlyArray, port?: number, callback?: (error: Error | null, bytes: number) => void): void; + send(msg: string | Uint8Array | ReadonlyArray, callback?: (error: Error | null, bytes: number) => void): void; + send(msg: string | Uint8Array, offset: number, length: number, port?: number, address?: string, callback?: (error: Error | null, bytes: number) => void): void; + send(msg: string | Uint8Array, offset: number, length: number, port?: number, callback?: (error: Error | null, bytes: number) => void): void; + send(msg: string | Uint8Array, offset: number, length: number, callback?: (error: Error | null, bytes: number) => void): void; + /** + * Sets or clears the `SO_BROADCAST` socket option. When set to `true`, UDP + * packets may be sent to a local interface's broadcast address. + * + * This method throws `EBADF` if called on an unbound socket. + * @since v0.6.9 + */ + setBroadcast(flag: boolean): void; + /** + * _All references to scope in this section are referring to [IPv6 Zone Indices](https://en.wikipedia.org/wiki/IPv6_address#Scoped_literal_IPv6_addresses), which are defined by [RFC + * 4007](https://tools.ietf.org/html/rfc4007). In string form, an IP_ + * _with a scope index is written as `'IP%scope'` where scope is an interface name_ + * _or interface number._ + * + * Sets the default outgoing multicast interface of the socket to a chosen + * interface or back to system interface selection. The `multicastInterface` must + * be a valid string representation of an IP from the socket's family. + * + * For IPv4 sockets, this should be the IP configured for the desired physical + * interface. All packets sent to multicast on the socket will be sent on the + * interface determined by the most recent successful use of this call. + * + * For IPv6 sockets, `multicastInterface` should include a scope to indicate the + * interface as in the examples that follow. In IPv6, individual `send` calls can + * also use explicit scope in addresses, so only packets sent to a multicast + * address without specifying an explicit scope are affected by the most recent + * successful use of this call. + * + * This method throws `EBADF` if called on an unbound socket. + * + * #### Example: IPv6 outgoing multicast interface + * + * On most systems, where scope format uses the interface name: + * + * ```js + * const socket = dgram.createSocket('udp6'); + * + * socket.bind(1234, () => { + * socket.setMulticastInterface('::%eth1'); + * }); + * ``` + * + * On Windows, where scope format uses an interface number: + * + * ```js + * const socket = dgram.createSocket('udp6'); + * + * socket.bind(1234, () => { + * socket.setMulticastInterface('::%2'); + * }); + * ``` + * + * #### Example: IPv4 outgoing multicast interface + * + * All systems use an IP of the host on the desired physical interface: + * + * ```js + * const socket = dgram.createSocket('udp4'); + * + * socket.bind(1234, () => { + * socket.setMulticastInterface('10.0.0.2'); + * }); + * ``` + * @since v8.6.0 + */ + setMulticastInterface(multicastInterface: string): void; + /** + * Sets or clears the `IP_MULTICAST_LOOP` socket option. When set to `true`, + * multicast packets will also be received on the local interface. + * + * This method throws `EBADF` if called on an unbound socket. + * @since v0.3.8 + */ + setMulticastLoopback(flag: boolean): boolean; + /** + * Sets the `IP_MULTICAST_TTL` socket option. While TTL generally stands for + * "Time to Live", in this context it specifies the number of IP hops that a + * packet is allowed to travel through, specifically for multicast traffic. Each + * router or gateway that forwards a packet decrements the TTL. If the TTL is + * decremented to 0 by a router, it will not be forwarded. + * + * The `ttl` argument may be between 0 and 255\. The default on most systems is `1`. + * + * This method throws `EBADF` if called on an unbound socket. + * @since v0.3.8 + */ + setMulticastTTL(ttl: number): number; + /** + * Sets the `SO_RCVBUF` socket option. Sets the maximum socket receive buffer + * in bytes. + * + * This method throws `ERR_SOCKET_BUFFER_SIZE` if called on an unbound socket. + * @since v8.7.0 + */ + setRecvBufferSize(size: number): void; + /** + * Sets the `SO_SNDBUF` socket option. Sets the maximum socket send buffer + * in bytes. + * + * This method throws `ERR_SOCKET_BUFFER_SIZE` if called on an unbound socket. + * @since v8.7.0 + */ + setSendBufferSize(size: number): void; + /** + * Sets the `IP_TTL` socket option. While TTL generally stands for "Time to Live", + * in this context it specifies the number of IP hops that a packet is allowed to + * travel through. Each router or gateway that forwards a packet decrements the + * TTL. If the TTL is decremented to 0 by a router, it will not be forwarded. + * Changing TTL values is typically done for network probes or when multicasting. + * + * The `ttl` argument may be between 1 and 255\. The default on most systems + * is 64. + * + * This method throws `EBADF` if called on an unbound socket. + * @since v0.1.101 + */ + setTTL(ttl: number): number; + /** + * By default, binding a socket will cause it to block the Node.js process from + * exiting as long as the socket is open. The `socket.unref()` method can be used + * to exclude the socket from the reference counting that keeps the Node.js + * process active, allowing the process to exit even if the socket is still + * listening. + * + * Calling `socket.unref()` multiple times will have no addition effect. + * + * The `socket.unref()` method returns a reference to the socket so calls can be + * chained. + * @since v0.9.1 + */ + unref(): this; + /** + * Tells the kernel to join a source-specific multicast channel at the given`sourceAddress` and `groupAddress`, using the `multicastInterface` with the`IP_ADD_SOURCE_MEMBERSHIP` socket + * option. If the `multicastInterface` argument + * is not specified, the operating system will choose one interface and will add + * membership to it. To add membership to every available interface, call`socket.addSourceSpecificMembership()` multiple times, once per interface. + * + * When called on an unbound socket, this method will implicitly bind to a random + * port, listening on all interfaces. + * @since v13.1.0, v12.16.0 + */ + addSourceSpecificMembership(sourceAddress: string, groupAddress: string, multicastInterface?: string): void; + /** + * Instructs the kernel to leave a source-specific multicast channel at the given`sourceAddress` and `groupAddress` using the `IP_DROP_SOURCE_MEMBERSHIP`socket option. This method is + * automatically called by the kernel when the + * socket is closed or the process terminates, so most apps will never have + * reason to call this. + * + * If `multicastInterface` is not specified, the operating system will attempt to + * drop membership on all valid interfaces. + * @since v13.1.0, v12.16.0 + */ + dropSourceSpecificMembership(sourceAddress: string, groupAddress: string, multicastInterface?: string): void; + /** + * events.EventEmitter + * 1. close + * 2. connect + * 3. error + * 4. listening + * 5. message + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'connect', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'listening', listener: () => void): this; + addListener(event: 'message', listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'close'): boolean; + emit(event: 'connect'): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'listening'): boolean; + emit(event: 'message', msg: Buffer, rinfo: RemoteInfo): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'connect', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'listening', listener: () => void): this; + on(event: 'message', listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'connect', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'listening', listener: () => void): this; + once(event: 'message', listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'connect', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'listening', listener: () => void): this; + prependListener(event: 'message', listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'connect', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'listening', listener: () => void): this; + prependOnceListener(event: 'message', listener: (msg: Buffer, rinfo: RemoteInfo) => void): this; + } +} +declare module 'node:dgram' { + export * from 'dgram'; +} diff --git a/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts b/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts new file mode 100644 index 0000000..3dcaa03 --- /dev/null +++ b/node_modules/@types/node/ts4.8/diagnostics_channel.d.ts @@ -0,0 +1,153 @@ +/** + * The `diagnostics_channel` module provides an API to create named channels + * to report arbitrary message data for diagnostics purposes. + * + * It can be accessed using: + * + * ```js + * import diagnostics_channel from 'diagnostics_channel'; + * ``` + * + * It is intended that a module writer wanting to report diagnostics messages + * will create one or many top-level channels to report messages through. + * Channels may also be acquired at runtime but it is not encouraged + * due to the additional overhead of doing so. Channels may be exported for + * convenience, but as long as the name is known it can be acquired anywhere. + * + * If you intend for your module to produce diagnostics data for others to + * consume it is recommended that you include documentation of what named + * channels are used along with the shape of the message data. Channel names + * should generally include the module name to avoid collisions with data from + * other modules. + * @experimental + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/diagnostics_channel.js) + */ +declare module 'diagnostics_channel' { + /** + * Check if there are active subscribers to the named channel. This is helpful if + * the message you want to send might be expensive to prepare. + * + * This API is optional but helpful when trying to publish messages from very + * performance-sensitive code. + * + * ```js + * import diagnostics_channel from 'diagnostics_channel'; + * + * if (diagnostics_channel.hasSubscribers('my-channel')) { + * // There are subscribers, prepare and publish message + * } + * ``` + * @since v15.1.0, v14.17.0 + * @param name The channel name + * @return If there are active subscribers + */ + function hasSubscribers(name: string | symbol): boolean; + /** + * This is the primary entry-point for anyone wanting to interact with a named + * channel. It produces a channel object which is optimized to reduce overhead at + * publish time as much as possible. + * + * ```js + * import diagnostics_channel from 'diagnostics_channel'; + * + * const channel = diagnostics_channel.channel('my-channel'); + * ``` + * @since v15.1.0, v14.17.0 + * @param name The channel name + * @return The named channel object + */ + function channel(name: string | symbol): Channel; + type ChannelListener = (message: unknown, name: string | symbol) => void; + /** + * The class `Channel` represents an individual named channel within the data + * pipeline. It is use to track subscribers and to publish messages when there + * are subscribers present. It exists as a separate object to avoid channel + * lookups at publish time, enabling very fast publish speeds and allowing + * for heavy use while incurring very minimal cost. Channels are created with {@link channel}, constructing a channel directly + * with `new Channel(name)` is not supported. + * @since v15.1.0, v14.17.0 + */ + class Channel { + readonly name: string | symbol; + /** + * Check if there are active subscribers to this channel. This is helpful if + * the message you want to send might be expensive to prepare. + * + * This API is optional but helpful when trying to publish messages from very + * performance-sensitive code. + * + * ```js + * import diagnostics_channel from 'diagnostics_channel'; + * + * const channel = diagnostics_channel.channel('my-channel'); + * + * if (channel.hasSubscribers) { + * // There are subscribers, prepare and publish message + * } + * ``` + * @since v15.1.0, v14.17.0 + */ + readonly hasSubscribers: boolean; + private constructor(name: string | symbol); + /** + * Publish a message to any subscribers to the channel. This will + * trigger message handlers synchronously so they will execute within + * the same context. + * + * ```js + * import diagnostics_channel from 'diagnostics_channel'; + * + * const channel = diagnostics_channel.channel('my-channel'); + * + * channel.publish({ + * some: 'message' + * }); + * ``` + * @since v15.1.0, v14.17.0 + * @param message The message to send to the channel subscribers + */ + publish(message: unknown): void; + /** + * Register a message handler to subscribe to this channel. This message handler + * will be run synchronously whenever a message is published to the channel. Any + * errors thrown in the message handler will trigger an `'uncaughtException'`. + * + * ```js + * import diagnostics_channel from 'diagnostics_channel'; + * + * const channel = diagnostics_channel.channel('my-channel'); + * + * channel.subscribe((message, name) => { + * // Received data + * }); + * ``` + * @since v15.1.0, v14.17.0 + * @param onMessage The handler to receive channel messages + */ + subscribe(onMessage: ChannelListener): void; + /** + * Remove a message handler previously registered to this channel with `channel.subscribe(onMessage)`. + * + * ```js + * import diagnostics_channel from 'diagnostics_channel'; + * + * const channel = diagnostics_channel.channel('my-channel'); + * + * function onMessage(message, name) { + * // Received data + * } + * + * channel.subscribe(onMessage); + * + * channel.unsubscribe(onMessage); + * ``` + * @since v15.1.0, v14.17.0 + * @param onMessage The previous subscribed handler to remove + * @return `true` if the handler was found, `false` otherwise. + */ + unsubscribe(onMessage: ChannelListener): void; + } +} +declare module 'node:diagnostics_channel' { + export * from 'diagnostics_channel'; +} diff --git a/node_modules/@types/node/ts4.8/dns.d.ts b/node_modules/@types/node/ts4.8/dns.d.ts new file mode 100644 index 0000000..305367b --- /dev/null +++ b/node_modules/@types/node/ts4.8/dns.d.ts @@ -0,0 +1,659 @@ +/** + * The `dns` module enables name resolution. For example, use it to look up IP + * addresses of host names. + * + * Although named for the [Domain Name System (DNS)](https://en.wikipedia.org/wiki/Domain_Name_System), it does not always use the + * DNS protocol for lookups. {@link lookup} uses the operating system + * facilities to perform name resolution. It may not need to perform any network + * communication. To perform name resolution the way other applications on the same + * system do, use {@link lookup}. + * + * ```js + * const dns = require('dns'); + * + * dns.lookup('example.org', (err, address, family) => { + * console.log('address: %j family: IPv%s', address, family); + * }); + * // address: "93.184.216.34" family: IPv4 + * ``` + * + * All other functions in the `dns` module connect to an actual DNS server to + * perform name resolution. They will always use the network to perform DNS + * queries. These functions do not use the same set of configuration files used by {@link lookup} (e.g. `/etc/hosts`). Use these functions to always perform + * DNS queries, bypassing other name-resolution facilities. + * + * ```js + * const dns = require('dns'); + * + * dns.resolve4('archive.org', (err, addresses) => { + * if (err) throw err; + * + * console.log(`addresses: ${JSON.stringify(addresses)}`); + * + * addresses.forEach((a) => { + * dns.reverse(a, (err, hostnames) => { + * if (err) { + * throw err; + * } + * console.log(`reverse for ${a}: ${JSON.stringify(hostnames)}`); + * }); + * }); + * }); + * ``` + * + * See the `Implementation considerations section` for more information. + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/dns.js) + */ +declare module 'dns' { + import * as dnsPromises from 'node:dns/promises'; + // Supported getaddrinfo flags. + export const ADDRCONFIG: number; + export const V4MAPPED: number; + /** + * If `dns.V4MAPPED` is specified, return resolved IPv6 addresses as + * well as IPv4 mapped IPv6 addresses. + */ + export const ALL: number; + export interface LookupOptions { + family?: number | undefined; + hints?: number | undefined; + all?: boolean | undefined; + /** + * @default true + */ + verbatim?: boolean | undefined; + } + export interface LookupOneOptions extends LookupOptions { + all?: false | undefined; + } + export interface LookupAllOptions extends LookupOptions { + all: true; + } + export interface LookupAddress { + address: string; + family: number; + } + /** + * Resolves a host name (e.g. `'nodejs.org'`) into the first found A (IPv4) or + * AAAA (IPv6) record. All `option` properties are optional. If `options` is an + * integer, then it must be `4` or `6` – if `options` is not provided, then IPv4 + * and IPv6 addresses are both returned if found. + * + * With the `all` option set to `true`, the arguments for `callback` change to`(err, addresses)`, with `addresses` being an array of objects with the + * properties `address` and `family`. + * + * On error, `err` is an `Error` object, where `err.code` is the error code. + * Keep in mind that `err.code` will be set to `'ENOTFOUND'` not only when + * the host name does not exist but also when the lookup fails in other ways + * such as no available file descriptors. + * + * `dns.lookup()` does not necessarily have anything to do with the DNS protocol. + * The implementation uses an operating system facility that can associate names + * with addresses, and vice versa. This implementation can have subtle but + * important consequences on the behavior of any Node.js program. Please take some + * time to consult the `Implementation considerations section` before using`dns.lookup()`. + * + * Example usage: + * + * ```js + * const dns = require('dns'); + * const options = { + * family: 6, + * hints: dns.ADDRCONFIG | dns.V4MAPPED, + * }; + * dns.lookup('example.com', options, (err, address, family) => + * console.log('address: %j family: IPv%s', address, family)); + * // address: "2606:2800:220:1:248:1893:25c8:1946" family: IPv6 + * + * // When options.all is true, the result will be an Array. + * options.all = true; + * dns.lookup('example.com', options, (err, addresses) => + * console.log('addresses: %j', addresses)); + * // addresses: [{"address":"2606:2800:220:1:248:1893:25c8:1946","family":6}] + * ``` + * + * If this method is invoked as its `util.promisify()` ed version, and `all`is not set to `true`, it returns a `Promise` for an `Object` with `address` and`family` properties. + * @since v0.1.90 + */ + export function lookup(hostname: string, family: number, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; + export function lookup(hostname: string, options: LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; + export function lookup(hostname: string, options: LookupAllOptions, callback: (err: NodeJS.ErrnoException | null, addresses: LookupAddress[]) => void): void; + export function lookup(hostname: string, options: LookupOptions, callback: (err: NodeJS.ErrnoException | null, address: string | LookupAddress[], family: number) => void): void; + export function lookup(hostname: string, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void; + export namespace lookup { + function __promisify__(hostname: string, options: LookupAllOptions): Promise; + function __promisify__(hostname: string, options?: LookupOneOptions | number): Promise; + function __promisify__(hostname: string, options: LookupOptions): Promise; + } + /** + * Resolves the given `address` and `port` into a host name and service using + * the operating system's underlying `getnameinfo` implementation. + * + * If `address` is not a valid IP address, a `TypeError` will be thrown. + * The `port` will be coerced to a number. If it is not a legal port, a `TypeError`will be thrown. + * + * On an error, `err` is an `Error` object, where `err.code` is the error code. + * + * ```js + * const dns = require('dns'); + * dns.lookupService('127.0.0.1', 22, (err, hostname, service) => { + * console.log(hostname, service); + * // Prints: localhost ssh + * }); + * ``` + * + * If this method is invoked as its `util.promisify()` ed version, it returns a`Promise` for an `Object` with `hostname` and `service` properties. + * @since v0.11.14 + */ + export function lookupService(address: string, port: number, callback: (err: NodeJS.ErrnoException | null, hostname: string, service: string) => void): void; + export namespace lookupService { + function __promisify__( + address: string, + port: number + ): Promise<{ + hostname: string; + service: string; + }>; + } + export interface ResolveOptions { + ttl: boolean; + } + export interface ResolveWithTtlOptions extends ResolveOptions { + ttl: true; + } + export interface RecordWithTtl { + address: string; + ttl: number; + } + /** @deprecated Use `AnyARecord` or `AnyAaaaRecord` instead. */ + export type AnyRecordWithTtl = AnyARecord | AnyAaaaRecord; + export interface AnyARecord extends RecordWithTtl { + type: 'A'; + } + export interface AnyAaaaRecord extends RecordWithTtl { + type: 'AAAA'; + } + export interface CaaRecord { + critial: number; + issue?: string | undefined; + issuewild?: string | undefined; + iodef?: string | undefined; + contactemail?: string | undefined; + contactphone?: string | undefined; + } + export interface MxRecord { + priority: number; + exchange: string; + } + export interface AnyMxRecord extends MxRecord { + type: 'MX'; + } + export interface NaptrRecord { + flags: string; + service: string; + regexp: string; + replacement: string; + order: number; + preference: number; + } + export interface AnyNaptrRecord extends NaptrRecord { + type: 'NAPTR'; + } + export interface SoaRecord { + nsname: string; + hostmaster: string; + serial: number; + refresh: number; + retry: number; + expire: number; + minttl: number; + } + export interface AnySoaRecord extends SoaRecord { + type: 'SOA'; + } + export interface SrvRecord { + priority: number; + weight: number; + port: number; + name: string; + } + export interface AnySrvRecord extends SrvRecord { + type: 'SRV'; + } + export interface AnyTxtRecord { + type: 'TXT'; + entries: string[]; + } + export interface AnyNsRecord { + type: 'NS'; + value: string; + } + export interface AnyPtrRecord { + type: 'PTR'; + value: string; + } + export interface AnyCnameRecord { + type: 'CNAME'; + value: string; + } + export type AnyRecord = AnyARecord | AnyAaaaRecord | AnyCnameRecord | AnyMxRecord | AnyNaptrRecord | AnyNsRecord | AnyPtrRecord | AnySoaRecord | AnySrvRecord | AnyTxtRecord; + /** + * Uses the DNS protocol to resolve a host name (e.g. `'nodejs.org'`) into an array + * of the resource records. The `callback` function has arguments`(err, records)`. When successful, `records` will be an array of resource + * records. The type and structure of individual results varies based on `rrtype`: + * + * + * + * On error, `err` is an `Error` object, where `err.code` is one of the `DNS error codes`. + * @since v0.1.27 + * @param hostname Host name to resolve. + * @param [rrtype='A'] Resource record type. + */ + export function resolve(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve(hostname: string, rrtype: 'A', callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve(hostname: string, rrtype: 'AAAA', callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve(hostname: string, rrtype: 'ANY', callback: (err: NodeJS.ErrnoException | null, addresses: AnyRecord[]) => void): void; + export function resolve(hostname: string, rrtype: 'CNAME', callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve(hostname: string, rrtype: 'MX', callback: (err: NodeJS.ErrnoException | null, addresses: MxRecord[]) => void): void; + export function resolve(hostname: string, rrtype: 'NAPTR', callback: (err: NodeJS.ErrnoException | null, addresses: NaptrRecord[]) => void): void; + export function resolve(hostname: string, rrtype: 'NS', callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve(hostname: string, rrtype: 'PTR', callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve(hostname: string, rrtype: 'SOA', callback: (err: NodeJS.ErrnoException | null, addresses: SoaRecord) => void): void; + export function resolve(hostname: string, rrtype: 'SRV', callback: (err: NodeJS.ErrnoException | null, addresses: SrvRecord[]) => void): void; + export function resolve(hostname: string, rrtype: 'TXT', callback: (err: NodeJS.ErrnoException | null, addresses: string[][]) => void): void; + export function resolve( + hostname: string, + rrtype: string, + callback: (err: NodeJS.ErrnoException | null, addresses: string[] | MxRecord[] | NaptrRecord[] | SoaRecord | SrvRecord[] | string[][] | AnyRecord[]) => void + ): void; + export namespace resolve { + function __promisify__(hostname: string, rrtype?: 'A' | 'AAAA' | 'CNAME' | 'NS' | 'PTR'): Promise; + function __promisify__(hostname: string, rrtype: 'ANY'): Promise; + function __promisify__(hostname: string, rrtype: 'MX'): Promise; + function __promisify__(hostname: string, rrtype: 'NAPTR'): Promise; + function __promisify__(hostname: string, rrtype: 'SOA'): Promise; + function __promisify__(hostname: string, rrtype: 'SRV'): Promise; + function __promisify__(hostname: string, rrtype: 'TXT'): Promise; + function __promisify__(hostname: string, rrtype: string): Promise; + } + /** + * Uses the DNS protocol to resolve a IPv4 addresses (`A` records) for the`hostname`. The `addresses` argument passed to the `callback` function + * will contain an array of IPv4 addresses (e.g.`['74.125.79.104', '74.125.79.105', '74.125.79.106']`). + * @since v0.1.16 + * @param hostname Host name to resolve. + */ + export function resolve4(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve4(hostname: string, options: ResolveWithTtlOptions, callback: (err: NodeJS.ErrnoException | null, addresses: RecordWithTtl[]) => void): void; + export function resolve4(hostname: string, options: ResolveOptions, callback: (err: NodeJS.ErrnoException | null, addresses: string[] | RecordWithTtl[]) => void): void; + export namespace resolve4 { + function __promisify__(hostname: string): Promise; + function __promisify__(hostname: string, options: ResolveWithTtlOptions): Promise; + function __promisify__(hostname: string, options?: ResolveOptions): Promise; + } + /** + * Uses the DNS protocol to resolve a IPv6 addresses (`AAAA` records) for the`hostname`. The `addresses` argument passed to the `callback` function + * will contain an array of IPv6 addresses. + * @since v0.1.16 + * @param hostname Host name to resolve. + */ + export function resolve6(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export function resolve6(hostname: string, options: ResolveWithTtlOptions, callback: (err: NodeJS.ErrnoException | null, addresses: RecordWithTtl[]) => void): void; + export function resolve6(hostname: string, options: ResolveOptions, callback: (err: NodeJS.ErrnoException | null, addresses: string[] | RecordWithTtl[]) => void): void; + export namespace resolve6 { + function __promisify__(hostname: string): Promise; + function __promisify__(hostname: string, options: ResolveWithTtlOptions): Promise; + function __promisify__(hostname: string, options?: ResolveOptions): Promise; + } + /** + * Uses the DNS protocol to resolve `CNAME` records for the `hostname`. The`addresses` argument passed to the `callback` function + * will contain an array of canonical name records available for the `hostname`(e.g. `['bar.example.com']`). + * @since v0.3.2 + */ + export function resolveCname(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export namespace resolveCname { + function __promisify__(hostname: string): Promise; + } + /** + * Uses the DNS protocol to resolve `CAA` records for the `hostname`. The`addresses` argument passed to the `callback` function + * will contain an array of certification authority authorization records + * available for the `hostname` (e.g. `[{critical: 0, iodef: 'mailto:pki@example.com'}, {critical: 128, issue: 'pki.example.com'}]`). + * @since v15.0.0, v14.17.0 + */ + export function resolveCaa(hostname: string, callback: (err: NodeJS.ErrnoException | null, records: CaaRecord[]) => void): void; + export namespace resolveCaa { + function __promisify__(hostname: string): Promise; + } + /** + * Uses the DNS protocol to resolve mail exchange records (`MX` records) for the`hostname`. The `addresses` argument passed to the `callback` function will + * contain an array of objects containing both a `priority` and `exchange`property (e.g. `[{priority: 10, exchange: 'mx.example.com'}, ...]`). + * @since v0.1.27 + */ + export function resolveMx(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: MxRecord[]) => void): void; + export namespace resolveMx { + function __promisify__(hostname: string): Promise; + } + /** + * Uses the DNS protocol to resolve regular expression based records (`NAPTR`records) for the `hostname`. The `addresses` argument passed to the `callback`function will contain an array of + * objects with the following properties: + * + * * `flags` + * * `service` + * * `regexp` + * * `replacement` + * * `order` + * * `preference` + * + * ```js + * { + * flags: 's', + * service: 'SIP+D2U', + * regexp: '', + * replacement: '_sip._udp.example.com', + * order: 30, + * preference: 100 + * } + * ``` + * @since v0.9.12 + */ + export function resolveNaptr(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: NaptrRecord[]) => void): void; + export namespace resolveNaptr { + function __promisify__(hostname: string): Promise; + } + /** + * Uses the DNS protocol to resolve name server records (`NS` records) for the`hostname`. The `addresses` argument passed to the `callback` function will + * contain an array of name server records available for `hostname`(e.g. `['ns1.example.com', 'ns2.example.com']`). + * @since v0.1.90 + */ + export function resolveNs(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export namespace resolveNs { + function __promisify__(hostname: string): Promise; + } + /** + * Uses the DNS protocol to resolve pointer records (`PTR` records) for the`hostname`. The `addresses` argument passed to the `callback` function will + * be an array of strings containing the reply records. + * @since v6.0.0 + */ + export function resolvePtr(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[]) => void): void; + export namespace resolvePtr { + function __promisify__(hostname: string): Promise; + } + /** + * Uses the DNS protocol to resolve a start of authority record (`SOA` record) for + * the `hostname`. The `address` argument passed to the `callback` function will + * be an object with the following properties: + * + * * `nsname` + * * `hostmaster` + * * `serial` + * * `refresh` + * * `retry` + * * `expire` + * * `minttl` + * + * ```js + * { + * nsname: 'ns.example.com', + * hostmaster: 'root.example.com', + * serial: 2013101809, + * refresh: 10000, + * retry: 2400, + * expire: 604800, + * minttl: 3600 + * } + * ``` + * @since v0.11.10 + */ + export function resolveSoa(hostname: string, callback: (err: NodeJS.ErrnoException | null, address: SoaRecord) => void): void; + export namespace resolveSoa { + function __promisify__(hostname: string): Promise; + } + /** + * Uses the DNS protocol to resolve service records (`SRV` records) for the`hostname`. The `addresses` argument passed to the `callback` function will + * be an array of objects with the following properties: + * + * * `priority` + * * `weight` + * * `port` + * * `name` + * + * ```js + * { + * priority: 10, + * weight: 5, + * port: 21223, + * name: 'service.example.com' + * } + * ``` + * @since v0.1.27 + */ + export function resolveSrv(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: SrvRecord[]) => void): void; + export namespace resolveSrv { + function __promisify__(hostname: string): Promise; + } + /** + * Uses the DNS protocol to resolve text queries (`TXT` records) for the`hostname`. The `records` argument passed to the `callback` function is a + * two-dimensional array of the text records available for `hostname` (e.g.`[ ['v=spf1 ip4:0.0.0.0 ', '~all' ] ]`). Each sub-array contains TXT chunks of + * one record. Depending on the use case, these could be either joined together or + * treated separately. + * @since v0.1.27 + */ + export function resolveTxt(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: string[][]) => void): void; + export namespace resolveTxt { + function __promisify__(hostname: string): Promise; + } + /** + * Uses the DNS protocol to resolve all records (also known as `ANY` or `*` query). + * The `ret` argument passed to the `callback` function will be an array containing + * various types of records. Each object has a property `type` that indicates the + * type of the current record. And depending on the `type`, additional properties + * will be present on the object: + * + * + * + * Here is an example of the `ret` object passed to the callback: + * + * ```js + * [ { type: 'A', address: '127.0.0.1', ttl: 299 }, + * { type: 'CNAME', value: 'example.com' }, + * { type: 'MX', exchange: 'alt4.aspmx.l.example.com', priority: 50 }, + * { type: 'NS', value: 'ns1.example.com' }, + * { type: 'TXT', entries: [ 'v=spf1 include:_spf.example.com ~all' ] }, + * { type: 'SOA', + * nsname: 'ns1.example.com', + * hostmaster: 'admin.example.com', + * serial: 156696742, + * refresh: 900, + * retry: 900, + * expire: 1800, + * minttl: 60 } ] + * ``` + * + * DNS server operators may choose not to respond to `ANY`queries. It may be better to call individual methods like {@link resolve4},{@link resolveMx}, and so on. For more details, see [RFC + * 8482](https://tools.ietf.org/html/rfc8482). + */ + export function resolveAny(hostname: string, callback: (err: NodeJS.ErrnoException | null, addresses: AnyRecord[]) => void): void; + export namespace resolveAny { + function __promisify__(hostname: string): Promise; + } + /** + * Performs a reverse DNS query that resolves an IPv4 or IPv6 address to an + * array of host names. + * + * On error, `err` is an `Error` object, where `err.code` is + * one of the `DNS error codes`. + * @since v0.1.16 + */ + export function reverse(ip: string, callback: (err: NodeJS.ErrnoException | null, hostnames: string[]) => void): void; + /** + * Sets the IP address and port of servers to be used when performing DNS + * resolution. The `servers` argument is an array of [RFC 5952](https://tools.ietf.org/html/rfc5952#section-6) formatted + * addresses. If the port is the IANA default DNS port (53) it can be omitted. + * + * ```js + * dns.setServers([ + * '4.4.4.4', + * '[2001:4860:4860::8888]', + * '4.4.4.4:1053', + * '[2001:4860:4860::8888]:1053', + * ]); + * ``` + * + * An error will be thrown if an invalid address is provided. + * + * The `dns.setServers()` method must not be called while a DNS query is in + * progress. + * + * The {@link setServers} method affects only {@link resolve},`dns.resolve*()` and {@link reverse} (and specifically _not_ {@link lookup}). + * + * This method works much like [resolve.conf](https://man7.org/linux/man-pages/man5/resolv.conf.5.html). + * That is, if attempting to resolve with the first server provided results in a`NOTFOUND` error, the `resolve()` method will _not_ attempt to resolve with + * subsequent servers provided. Fallback DNS servers will only be used if the + * earlier ones time out or result in some other error. + * @since v0.11.3 + * @param servers array of `RFC 5952` formatted addresses + */ + export function setServers(servers: ReadonlyArray): void; + /** + * Returns an array of IP address strings, formatted according to [RFC 5952](https://tools.ietf.org/html/rfc5952#section-6), + * that are currently configured for DNS resolution. A string will include a port + * section if a custom port is used. + * + * ```js + * [ + * '4.4.4.4', + * '2001:4860:4860::8888', + * '4.4.4.4:1053', + * '[2001:4860:4860::8888]:1053', + * ] + * ``` + * @since v0.11.3 + */ + export function getServers(): string[]; + /** + * Set the default value of `verbatim` in {@link lookup} and `dnsPromises.lookup()`. The value could be: + * + * * `ipv4first`: sets default `verbatim` `false`. + * * `verbatim`: sets default `verbatim` `true`. + * + * The default is `ipv4first` and {@link setDefaultResultOrder} have higher + * priority than `--dns-result-order`. When using `worker threads`,{@link setDefaultResultOrder} from the main thread won't affect the default + * dns orders in workers. + * @since v16.4.0, v14.18.0 + * @param order must be `'ipv4first'` or `'verbatim'`. + */ + export function setDefaultResultOrder(order: 'ipv4first' | 'verbatim'): void; + // Error codes + export const NODATA: string; + export const FORMERR: string; + export const SERVFAIL: string; + export const NOTFOUND: string; + export const NOTIMP: string; + export const REFUSED: string; + export const BADQUERY: string; + export const BADNAME: string; + export const BADFAMILY: string; + export const BADRESP: string; + export const CONNREFUSED: string; + export const TIMEOUT: string; + export const EOF: string; + export const FILE: string; + export const NOMEM: string; + export const DESTRUCTION: string; + export const BADSTR: string; + export const BADFLAGS: string; + export const NONAME: string; + export const BADHINTS: string; + export const NOTINITIALIZED: string; + export const LOADIPHLPAPI: string; + export const ADDRGETNETWORKPARAMS: string; + export const CANCELLED: string; + export interface ResolverOptions { + timeout?: number | undefined; + /** + * @default 4 + */ + tries?: number; + } + /** + * An independent resolver for DNS requests. + * + * Creating a new resolver uses the default server settings. Setting + * the servers used for a resolver using `resolver.setServers()` does not affect + * other resolvers: + * + * ```js + * const { Resolver } = require('dns'); + * const resolver = new Resolver(); + * resolver.setServers(['4.4.4.4']); + * + * // This request will use the server at 4.4.4.4, independent of global settings. + * resolver.resolve4('example.org', (err, addresses) => { + * // ... + * }); + * ``` + * + * The following methods from the `dns` module are available: + * + * * `resolver.getServers()` + * * `resolver.resolve()` + * * `resolver.resolve4()` + * * `resolver.resolve6()` + * * `resolver.resolveAny()` + * * `resolver.resolveCaa()` + * * `resolver.resolveCname()` + * * `resolver.resolveMx()` + * * `resolver.resolveNaptr()` + * * `resolver.resolveNs()` + * * `resolver.resolvePtr()` + * * `resolver.resolveSoa()` + * * `resolver.resolveSrv()` + * * `resolver.resolveTxt()` + * * `resolver.reverse()` + * * `resolver.setServers()` + * @since v8.3.0 + */ + export class Resolver { + constructor(options?: ResolverOptions); + /** + * Cancel all outstanding DNS queries made by this resolver. The corresponding + * callbacks will be called with an error with code `ECANCELLED`. + * @since v8.3.0 + */ + cancel(): void; + getServers: typeof getServers; + resolve: typeof resolve; + resolve4: typeof resolve4; + resolve6: typeof resolve6; + resolveAny: typeof resolveAny; + resolveCname: typeof resolveCname; + resolveMx: typeof resolveMx; + resolveNaptr: typeof resolveNaptr; + resolveNs: typeof resolveNs; + resolvePtr: typeof resolvePtr; + resolveSoa: typeof resolveSoa; + resolveSrv: typeof resolveSrv; + resolveTxt: typeof resolveTxt; + reverse: typeof reverse; + /** + * The resolver instance will send its requests from the specified IP address. + * This allows programs to specify outbound interfaces when used on multi-homed + * systems. + * + * If a v4 or v6 address is not specified, it is set to the default, and the + * operating system will choose a local address automatically. + * + * The resolver will use the v4 local address when making requests to IPv4 DNS + * servers, and the v6 local address when making requests to IPv6 DNS servers. + * The `rrtype` of resolution requests has no impact on the local address used. + * @since v15.1.0, v14.17.0 + * @param [ipv4='0.0.0.0'] A string representation of an IPv4 address. + * @param [ipv6='::0'] A string representation of an IPv6 address. + */ + setLocalAddress(ipv4?: string, ipv6?: string): void; + setServers: typeof setServers; + } + export { dnsPromises as promises }; +} +declare module 'node:dns' { + export * from 'dns'; +} diff --git a/node_modules/@types/node/ts4.8/dns/promises.d.ts b/node_modules/@types/node/ts4.8/dns/promises.d.ts new file mode 100644 index 0000000..77cd807 --- /dev/null +++ b/node_modules/@types/node/ts4.8/dns/promises.d.ts @@ -0,0 +1,370 @@ +/** + * The `dns.promises` API provides an alternative set of asynchronous DNS methods + * that return `Promise` objects rather than using callbacks. The API is accessible + * via `require('dns').promises` or `require('dns/promises')`. + * @since v10.6.0 + */ +declare module 'dns/promises' { + import { + LookupAddress, + LookupOneOptions, + LookupAllOptions, + LookupOptions, + AnyRecord, + CaaRecord, + MxRecord, + NaptrRecord, + SoaRecord, + SrvRecord, + ResolveWithTtlOptions, + RecordWithTtl, + ResolveOptions, + ResolverOptions, + } from 'node:dns'; + /** + * Returns an array of IP address strings, formatted according to [RFC 5952](https://tools.ietf.org/html/rfc5952#section-6), + * that are currently configured for DNS resolution. A string will include a port + * section if a custom port is used. + * + * ```js + * [ + * '4.4.4.4', + * '2001:4860:4860::8888', + * '4.4.4.4:1053', + * '[2001:4860:4860::8888]:1053', + * ] + * ``` + * @since v10.6.0 + */ + function getServers(): string[]; + /** + * Resolves a host name (e.g. `'nodejs.org'`) into the first found A (IPv4) or + * AAAA (IPv6) record. All `option` properties are optional. If `options` is an + * integer, then it must be `4` or `6` – if `options` is not provided, then IPv4 + * and IPv6 addresses are both returned if found. + * + * With the `all` option set to `true`, the `Promise` is resolved with `addresses`being an array of objects with the properties `address` and `family`. + * + * On error, the `Promise` is rejected with an `Error` object, where `err.code`is the error code. + * Keep in mind that `err.code` will be set to `'ENOTFOUND'` not only when + * the host name does not exist but also when the lookup fails in other ways + * such as no available file descriptors. + * + * `dnsPromises.lookup()` does not necessarily have anything to do with the DNS + * protocol. The implementation uses an operating system facility that can + * associate names with addresses, and vice versa. This implementation can have + * subtle but important consequences on the behavior of any Node.js program. Please + * take some time to consult the `Implementation considerations section` before + * using `dnsPromises.lookup()`. + * + * Example usage: + * + * ```js + * const dns = require('dns'); + * const dnsPromises = dns.promises; + * const options = { + * family: 6, + * hints: dns.ADDRCONFIG | dns.V4MAPPED, + * }; + * + * dnsPromises.lookup('example.com', options).then((result) => { + * console.log('address: %j family: IPv%s', result.address, result.family); + * // address: "2606:2800:220:1:248:1893:25c8:1946" family: IPv6 + * }); + * + * // When options.all is true, the result will be an Array. + * options.all = true; + * dnsPromises.lookup('example.com', options).then((result) => { + * console.log('addresses: %j', result); + * // addresses: [{"address":"2606:2800:220:1:248:1893:25c8:1946","family":6}] + * }); + * ``` + * @since v10.6.0 + */ + function lookup(hostname: string, family: number): Promise; + function lookup(hostname: string, options: LookupOneOptions): Promise; + function lookup(hostname: string, options: LookupAllOptions): Promise; + function lookup(hostname: string, options: LookupOptions): Promise; + function lookup(hostname: string): Promise; + /** + * Resolves the given `address` and `port` into a host name and service using + * the operating system's underlying `getnameinfo` implementation. + * + * If `address` is not a valid IP address, a `TypeError` will be thrown. + * The `port` will be coerced to a number. If it is not a legal port, a `TypeError`will be thrown. + * + * On error, the `Promise` is rejected with an `Error` object, where `err.code`is the error code. + * + * ```js + * const dnsPromises = require('dns').promises; + * dnsPromises.lookupService('127.0.0.1', 22).then((result) => { + * console.log(result.hostname, result.service); + * // Prints: localhost ssh + * }); + * ``` + * @since v10.6.0 + */ + function lookupService( + address: string, + port: number + ): Promise<{ + hostname: string; + service: string; + }>; + /** + * Uses the DNS protocol to resolve a host name (e.g. `'nodejs.org'`) into an array + * of the resource records. When successful, the `Promise` is resolved with an + * array of resource records. The type and structure of individual results vary + * based on `rrtype`: + * + * + * + * On error, the `Promise` is rejected with an `Error` object, where `err.code`is one of the `DNS error codes`. + * @since v10.6.0 + * @param hostname Host name to resolve. + * @param [rrtype='A'] Resource record type. + */ + function resolve(hostname: string): Promise; + function resolve(hostname: string, rrtype: 'A'): Promise; + function resolve(hostname: string, rrtype: 'AAAA'): Promise; + function resolve(hostname: string, rrtype: 'ANY'): Promise; + function resolve(hostname: string, rrtype: 'CAA'): Promise; + function resolve(hostname: string, rrtype: 'CNAME'): Promise; + function resolve(hostname: string, rrtype: 'MX'): Promise; + function resolve(hostname: string, rrtype: 'NAPTR'): Promise; + function resolve(hostname: string, rrtype: 'NS'): Promise; + function resolve(hostname: string, rrtype: 'PTR'): Promise; + function resolve(hostname: string, rrtype: 'SOA'): Promise; + function resolve(hostname: string, rrtype: 'SRV'): Promise; + function resolve(hostname: string, rrtype: 'TXT'): Promise; + function resolve(hostname: string, rrtype: string): Promise; + /** + * Uses the DNS protocol to resolve IPv4 addresses (`A` records) for the`hostname`. On success, the `Promise` is resolved with an array of IPv4 + * addresses (e.g. `['74.125.79.104', '74.125.79.105', '74.125.79.106']`). + * @since v10.6.0 + * @param hostname Host name to resolve. + */ + function resolve4(hostname: string): Promise; + function resolve4(hostname: string, options: ResolveWithTtlOptions): Promise; + function resolve4(hostname: string, options: ResolveOptions): Promise; + /** + * Uses the DNS protocol to resolve IPv6 addresses (`AAAA` records) for the`hostname`. On success, the `Promise` is resolved with an array of IPv6 + * addresses. + * @since v10.6.0 + * @param hostname Host name to resolve. + */ + function resolve6(hostname: string): Promise; + function resolve6(hostname: string, options: ResolveWithTtlOptions): Promise; + function resolve6(hostname: string, options: ResolveOptions): Promise; + /** + * Uses the DNS protocol to resolve all records (also known as `ANY` or `*` query). + * On success, the `Promise` is resolved with an array containing various types of + * records. Each object has a property `type` that indicates the type of the + * current record. And depending on the `type`, additional properties will be + * present on the object: + * + * + * + * Here is an example of the result object: + * + * ```js + * [ { type: 'A', address: '127.0.0.1', ttl: 299 }, + * { type: 'CNAME', value: 'example.com' }, + * { type: 'MX', exchange: 'alt4.aspmx.l.example.com', priority: 50 }, + * { type: 'NS', value: 'ns1.example.com' }, + * { type: 'TXT', entries: [ 'v=spf1 include:_spf.example.com ~all' ] }, + * { type: 'SOA', + * nsname: 'ns1.example.com', + * hostmaster: 'admin.example.com', + * serial: 156696742, + * refresh: 900, + * retry: 900, + * expire: 1800, + * minttl: 60 } ] + * ``` + * @since v10.6.0 + */ + function resolveAny(hostname: string): Promise; + /** + * Uses the DNS protocol to resolve `CAA` records for the `hostname`. On success, + * the `Promise` is resolved with an array of objects containing available + * certification authority authorization records available for the `hostname`(e.g. `[{critical: 0, iodef: 'mailto:pki@example.com'},{critical: 128, issue: 'pki.example.com'}]`). + * @since v15.0.0, v14.17.0 + */ + function resolveCaa(hostname: string): Promise; + /** + * Uses the DNS protocol to resolve `CNAME` records for the `hostname`. On success, + * the `Promise` is resolved with an array of canonical name records available for + * the `hostname` (e.g. `['bar.example.com']`). + * @since v10.6.0 + */ + function resolveCname(hostname: string): Promise; + /** + * Uses the DNS protocol to resolve mail exchange records (`MX` records) for the`hostname`. On success, the `Promise` is resolved with an array of objects + * containing both a `priority` and `exchange` property (e.g.`[{priority: 10, exchange: 'mx.example.com'}, ...]`). + * @since v10.6.0 + */ + function resolveMx(hostname: string): Promise; + /** + * Uses the DNS protocol to resolve regular expression based records (`NAPTR`records) for the `hostname`. On success, the `Promise` is resolved with an array + * of objects with the following properties: + * + * * `flags` + * * `service` + * * `regexp` + * * `replacement` + * * `order` + * * `preference` + * + * ```js + * { + * flags: 's', + * service: 'SIP+D2U', + * regexp: '', + * replacement: '_sip._udp.example.com', + * order: 30, + * preference: 100 + * } + * ``` + * @since v10.6.0 + */ + function resolveNaptr(hostname: string): Promise; + /** + * Uses the DNS protocol to resolve name server records (`NS` records) for the`hostname`. On success, the `Promise` is resolved with an array of name server + * records available for `hostname` (e.g.`['ns1.example.com', 'ns2.example.com']`). + * @since v10.6.0 + */ + function resolveNs(hostname: string): Promise; + /** + * Uses the DNS protocol to resolve pointer records (`PTR` records) for the`hostname`. On success, the `Promise` is resolved with an array of strings + * containing the reply records. + * @since v10.6.0 + */ + function resolvePtr(hostname: string): Promise; + /** + * Uses the DNS protocol to resolve a start of authority record (`SOA` record) for + * the `hostname`. On success, the `Promise` is resolved with an object with the + * following properties: + * + * * `nsname` + * * `hostmaster` + * * `serial` + * * `refresh` + * * `retry` + * * `expire` + * * `minttl` + * + * ```js + * { + * nsname: 'ns.example.com', + * hostmaster: 'root.example.com', + * serial: 2013101809, + * refresh: 10000, + * retry: 2400, + * expire: 604800, + * minttl: 3600 + * } + * ``` + * @since v10.6.0 + */ + function resolveSoa(hostname: string): Promise; + /** + * Uses the DNS protocol to resolve service records (`SRV` records) for the`hostname`. On success, the `Promise` is resolved with an array of objects with + * the following properties: + * + * * `priority` + * * `weight` + * * `port` + * * `name` + * + * ```js + * { + * priority: 10, + * weight: 5, + * port: 21223, + * name: 'service.example.com' + * } + * ``` + * @since v10.6.0 + */ + function resolveSrv(hostname: string): Promise; + /** + * Uses the DNS protocol to resolve text queries (`TXT` records) for the`hostname`. On success, the `Promise` is resolved with a two-dimensional array + * of the text records available for `hostname` (e.g.`[ ['v=spf1 ip4:0.0.0.0 ', '~all' ] ]`). Each sub-array contains TXT chunks of + * one record. Depending on the use case, these could be either joined together or + * treated separately. + * @since v10.6.0 + */ + function resolveTxt(hostname: string): Promise; + /** + * Performs a reverse DNS query that resolves an IPv4 or IPv6 address to an + * array of host names. + * + * On error, the `Promise` is rejected with an `Error` object, where `err.code`is one of the `DNS error codes`. + * @since v10.6.0 + */ + function reverse(ip: string): Promise; + /** + * Sets the IP address and port of servers to be used when performing DNS + * resolution. The `servers` argument is an array of [RFC 5952](https://tools.ietf.org/html/rfc5952#section-6) formatted + * addresses. If the port is the IANA default DNS port (53) it can be omitted. + * + * ```js + * dnsPromises.setServers([ + * '4.4.4.4', + * '[2001:4860:4860::8888]', + * '4.4.4.4:1053', + * '[2001:4860:4860::8888]:1053', + * ]); + * ``` + * + * An error will be thrown if an invalid address is provided. + * + * The `dnsPromises.setServers()` method must not be called while a DNS query is in + * progress. + * + * This method works much like [resolve.conf](https://man7.org/linux/man-pages/man5/resolv.conf.5.html). + * That is, if attempting to resolve with the first server provided results in a`NOTFOUND` error, the `resolve()` method will _not_ attempt to resolve with + * subsequent servers provided. Fallback DNS servers will only be used if the + * earlier ones time out or result in some other error. + * @since v10.6.0 + * @param servers array of `RFC 5952` formatted addresses + */ + function setServers(servers: ReadonlyArray): void; + /** + * Set the default value of `verbatim` in `dns.lookup()` and `dnsPromises.lookup()`. The value could be: + * + * * `ipv4first`: sets default `verbatim` `false`. + * * `verbatim`: sets default `verbatim` `true`. + * + * The default is `ipv4first` and `dnsPromises.setDefaultResultOrder()` have + * higher priority than `--dns-result-order`. When using `worker threads`,`dnsPromises.setDefaultResultOrder()` from the main thread won't affect the + * default dns orders in workers. + * @since v16.4.0, v14.18.0 + * @param order must be `'ipv4first'` or `'verbatim'`. + */ + function setDefaultResultOrder(order: 'ipv4first' | 'verbatim'): void; + class Resolver { + constructor(options?: ResolverOptions); + cancel(): void; + getServers: typeof getServers; + resolve: typeof resolve; + resolve4: typeof resolve4; + resolve6: typeof resolve6; + resolveAny: typeof resolveAny; + resolveCname: typeof resolveCname; + resolveMx: typeof resolveMx; + resolveNaptr: typeof resolveNaptr; + resolveNs: typeof resolveNs; + resolvePtr: typeof resolvePtr; + resolveSoa: typeof resolveSoa; + resolveSrv: typeof resolveSrv; + resolveTxt: typeof resolveTxt; + reverse: typeof reverse; + setLocalAddress(ipv4?: string, ipv6?: string): void; + setServers: typeof setServers; + } +} +declare module 'node:dns/promises' { + export * from 'dns/promises'; +} diff --git a/node_modules/@types/node/ts4.8/dom-events.d.ts b/node_modules/@types/node/ts4.8/dom-events.d.ts new file mode 100644 index 0000000..b9c1c3a --- /dev/null +++ b/node_modules/@types/node/ts4.8/dom-events.d.ts @@ -0,0 +1,126 @@ +export {}; // Don't export anything! + +//// DOM-like Events +// NB: The Event / EventTarget / EventListener implementations below were copied +// from lib.dom.d.ts, then edited to reflect Node's documentation at +// https://nodejs.org/api/events.html#class-eventtarget. +// Please read that link to understand important implementation differences. + +// This conditional type will be the existing global Event in a browser, or +// the copy below in a Node environment. +type __Event = typeof globalThis extends { onmessage: any, Event: any } +? {} +: { + /** This is not used in Node.js and is provided purely for completeness. */ + readonly bubbles: boolean; + /** Alias for event.stopPropagation(). This is not used in Node.js and is provided purely for completeness. */ + cancelBubble: () => void; + /** True if the event was created with the cancelable option */ + readonly cancelable: boolean; + /** This is not used in Node.js and is provided purely for completeness. */ + readonly composed: boolean; + /** Returns an array containing the current EventTarget as the only entry or empty if the event is not being dispatched. This is not used in Node.js and is provided purely for completeness. */ + composedPath(): [EventTarget?] + /** Alias for event.target. */ + readonly currentTarget: EventTarget | null; + /** Is true if cancelable is true and event.preventDefault() has been called. */ + readonly defaultPrevented: boolean; + /** This is not used in Node.js and is provided purely for completeness. */ + readonly eventPhase: 0 | 2; + /** The `AbortSignal` "abort" event is emitted with `isTrusted` set to `true`. The value is `false` in all other cases. */ + readonly isTrusted: boolean; + /** Sets the `defaultPrevented` property to `true` if `cancelable` is `true`. */ + preventDefault(): void; + /** This is not used in Node.js and is provided purely for completeness. */ + returnValue: boolean; + /** Alias for event.target. */ + readonly srcElement: EventTarget | null; + /** Stops the invocation of event listeners after the current one completes. */ + stopImmediatePropagation(): void; + /** This is not used in Node.js and is provided purely for completeness. */ + stopPropagation(): void; + /** The `EventTarget` dispatching the event */ + readonly target: EventTarget | null; + /** The millisecond timestamp when the Event object was created. */ + readonly timeStamp: number; + /** Returns the type of event, e.g. "click", "hashchange", or "submit". */ + readonly type: string; +}; + +// See comment above explaining conditional type +type __EventTarget = typeof globalThis extends { onmessage: any, EventTarget: any } +? {} +: { + /** + * Adds a new handler for the `type` event. Any given `listener` is added only once per `type` and per `capture` option value. + * + * If the `once` option is true, the `listener` is removed after the next time a `type` event is dispatched. + * + * The `capture` option is not used by Node.js in any functional way other than tracking registered event listeners per the `EventTarget` specification. + * Specifically, the `capture` option is used as part of the key when registering a `listener`. + * Any individual `listener` may be added once with `capture = false`, and once with `capture = true`. + */ + addEventListener( + type: string, + listener: EventListener | EventListenerObject, + options?: AddEventListenerOptions | boolean, + ): void; + /** Dispatches a synthetic event event to target and returns true if either event's cancelable attribute value is false or its preventDefault() method was not invoked, and false otherwise. */ + dispatchEvent(event: Event): boolean; + /** Removes the event listener in target's event listener list with the same type, callback, and options. */ + removeEventListener( + type: string, + listener: EventListener | EventListenerObject, + options?: EventListenerOptions | boolean, + ): void; +}; + +interface EventInit { + bubbles?: boolean; + cancelable?: boolean; + composed?: boolean; +} + +interface EventListenerOptions { + /** Not directly used by Node.js. Added for API completeness. Default: `false`. */ + capture?: boolean; +} + +interface AddEventListenerOptions extends EventListenerOptions { + /** When `true`, the listener is automatically removed when it is first invoked. Default: `false`. */ + once?: boolean; + /** When `true`, serves as a hint that the listener will not call the `Event` object's `preventDefault()` method. Default: false. */ + passive?: boolean; +} + +interface EventListener { + (evt: Event): void; +} + +interface EventListenerObject { + handleEvent(object: Event): void; +} + +import {} from 'events'; // Make this an ambient declaration +declare global { + /** An event which takes place in the DOM. */ + interface Event extends __Event {} + var Event: typeof globalThis extends { onmessage: any, Event: infer T } + ? T + : { + prototype: __Event; + new (type: string, eventInitDict?: EventInit): __Event; + }; + + /** + * EventTarget is a DOM interface implemented by objects that can + * receive events and may have listeners for them. + */ + interface EventTarget extends __EventTarget {} + var EventTarget: typeof globalThis extends { onmessage: any, EventTarget: infer T } + ? T + : { + prototype: __EventTarget; + new (): __EventTarget; + }; +} diff --git a/node_modules/@types/node/ts4.8/domain.d.ts b/node_modules/@types/node/ts4.8/domain.d.ts new file mode 100644 index 0000000..fafe68a --- /dev/null +++ b/node_modules/@types/node/ts4.8/domain.d.ts @@ -0,0 +1,170 @@ +/** + * **This module is pending deprecation.** Once a replacement API has been + * finalized, this module will be fully deprecated. Most developers should + * **not** have cause to use this module. Users who absolutely must have + * the functionality that domains provide may rely on it for the time being + * but should expect to have to migrate to a different solution + * in the future. + * + * Domains provide a way to handle multiple different IO operations as a + * single group. If any of the event emitters or callbacks registered to a + * domain emit an `'error'` event, or throw an error, then the domain object + * will be notified, rather than losing the context of the error in the`process.on('uncaughtException')` handler, or causing the program to + * exit immediately with an error code. + * @deprecated Since v1.4.2 - Deprecated + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/domain.js) + */ +declare module 'domain' { + import EventEmitter = require('node:events'); + /** + * The `Domain` class encapsulates the functionality of routing errors and + * uncaught exceptions to the active `Domain` object. + * + * To handle the errors that it catches, listen to its `'error'` event. + */ + class Domain extends EventEmitter { + /** + * An array of timers and event emitters that have been explicitly added + * to the domain. + */ + members: Array; + /** + * The `enter()` method is plumbing used by the `run()`, `bind()`, and`intercept()` methods to set the active domain. It sets `domain.active` and`process.domain` to the domain, and implicitly + * pushes the domain onto the domain + * stack managed by the domain module (see {@link exit} for details on the + * domain stack). The call to `enter()` delimits the beginning of a chain of + * asynchronous calls and I/O operations bound to a domain. + * + * Calling `enter()` changes only the active domain, and does not alter the domain + * itself. `enter()` and `exit()` can be called an arbitrary number of times on a + * single domain. + */ + enter(): void; + /** + * The `exit()` method exits the current domain, popping it off the domain stack. + * Any time execution is going to switch to the context of a different chain of + * asynchronous calls, it's important to ensure that the current domain is exited. + * The call to `exit()` delimits either the end of or an interruption to the chain + * of asynchronous calls and I/O operations bound to a domain. + * + * If there are multiple, nested domains bound to the current execution context,`exit()` will exit any domains nested within this domain. + * + * Calling `exit()` changes only the active domain, and does not alter the domain + * itself. `enter()` and `exit()` can be called an arbitrary number of times on a + * single domain. + */ + exit(): void; + /** + * Run the supplied function in the context of the domain, implicitly + * binding all event emitters, timers, and lowlevel requests that are + * created in that context. Optionally, arguments can be passed to + * the function. + * + * This is the most basic way to use a domain. + * + * ```js + * const domain = require('domain'); + * const fs = require('fs'); + * const d = domain.create(); + * d.on('error', (er) => { + * console.error('Caught error!', er); + * }); + * d.run(() => { + * process.nextTick(() => { + * setTimeout(() => { // Simulating some various async stuff + * fs.open('non-existent file', 'r', (er, fd) => { + * if (er) throw er; + * // proceed... + * }); + * }, 100); + * }); + * }); + * ``` + * + * In this example, the `d.on('error')` handler will be triggered, rather + * than crashing the program. + */ + run(fn: (...args: any[]) => T, ...args: any[]): T; + /** + * Explicitly adds an emitter to the domain. If any event handlers called by + * the emitter throw an error, or if the emitter emits an `'error'` event, it + * will be routed to the domain's `'error'` event, just like with implicit + * binding. + * + * This also works with timers that are returned from `setInterval()` and `setTimeout()`. If their callback function throws, it will be caught by + * the domain `'error'` handler. + * + * If the Timer or `EventEmitter` was already bound to a domain, it is removed + * from that one, and bound to this one instead. + * @param emitter emitter or timer to be added to the domain + */ + add(emitter: EventEmitter | NodeJS.Timer): void; + /** + * The opposite of {@link add}. Removes domain handling from the + * specified emitter. + * @param emitter emitter or timer to be removed from the domain + */ + remove(emitter: EventEmitter | NodeJS.Timer): void; + /** + * The returned function will be a wrapper around the supplied callback + * function. When the returned function is called, any errors that are + * thrown will be routed to the domain's `'error'` event. + * + * ```js + * const d = domain.create(); + * + * function readSomeFile(filename, cb) { + * fs.readFile(filename, 'utf8', d.bind((er, data) => { + * // If this throws, it will also be passed to the domain. + * return cb(er, data ? JSON.parse(data) : null); + * })); + * } + * + * d.on('error', (er) => { + * // An error occurred somewhere. If we throw it now, it will crash the program + * // with the normal line number and stack message. + * }); + * ``` + * @param callback The callback function + * @return The bound function + */ + bind(callback: T): T; + /** + * This method is almost identical to {@link bind}. However, in + * addition to catching thrown errors, it will also intercept `Error` objects sent as the first argument to the function. + * + * In this way, the common `if (err) return callback(err);` pattern can be replaced + * with a single error handler in a single place. + * + * ```js + * const d = domain.create(); + * + * function readSomeFile(filename, cb) { + * fs.readFile(filename, 'utf8', d.intercept((data) => { + * // Note, the first argument is never passed to the + * // callback since it is assumed to be the 'Error' argument + * // and thus intercepted by the domain. + * + * // If this throws, it will also be passed to the domain + * // so the error-handling logic can be moved to the 'error' + * // event on the domain instead of being repeated throughout + * // the program. + * return cb(null, JSON.parse(data)); + * })); + * } + * + * d.on('error', (er) => { + * // An error occurred somewhere. If we throw it now, it will crash the program + * // with the normal line number and stack message. + * }); + * ``` + * @param callback The callback function + * @return The intercepted function + */ + intercept(callback: T): T; + } + function create(): Domain; +} +declare module 'node:domain' { + export * from 'domain'; +} diff --git a/node_modules/@types/node/ts4.8/events.d.ts b/node_modules/@types/node/ts4.8/events.d.ts new file mode 100644 index 0000000..4633df1 --- /dev/null +++ b/node_modules/@types/node/ts4.8/events.d.ts @@ -0,0 +1,678 @@ +/** + * Much of the Node.js core API is built around an idiomatic asynchronous + * event-driven architecture in which certain kinds of objects (called "emitters") + * emit named events that cause `Function` objects ("listeners") to be called. + * + * For instance: a `net.Server` object emits an event each time a peer + * connects to it; a `fs.ReadStream` emits an event when the file is opened; + * a `stream` emits an event whenever data is available to be read. + * + * All objects that emit events are instances of the `EventEmitter` class. These + * objects expose an `eventEmitter.on()` function that allows one or more + * functions to be attached to named events emitted by the object. Typically, + * event names are camel-cased strings but any valid JavaScript property key + * can be used. + * + * When the `EventEmitter` object emits an event, all of the functions attached + * to that specific event are called _synchronously_. Any values returned by the + * called listeners are _ignored_ and discarded. + * + * The following example shows a simple `EventEmitter` instance with a single + * listener. The `eventEmitter.on()` method is used to register listeners, while + * the `eventEmitter.emit()` method is used to trigger the event. + * + * ```js + * const EventEmitter = require('events'); + * + * class MyEmitter extends EventEmitter {} + * + * const myEmitter = new MyEmitter(); + * myEmitter.on('event', () => { + * console.log('an event occurred!'); + * }); + * myEmitter.emit('event'); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/events.js) + */ +declare module 'events' { + // NOTE: This class is in the docs but is **not actually exported** by Node. + // If https://github.com/nodejs/node/issues/39903 gets resolved and Node + // actually starts exporting the class, uncomment below. + + // import { EventListener, EventListenerObject } from '__dom-events'; + // /** The NodeEventTarget is a Node.js-specific extension to EventTarget that emulates a subset of the EventEmitter API. */ + // interface NodeEventTarget extends EventTarget { + // /** + // * Node.js-specific extension to the `EventTarget` class that emulates the equivalent `EventEmitter` API. + // * The only difference between `addListener()` and `addEventListener()` is that addListener() will return a reference to the EventTarget. + // */ + // addListener(type: string, listener: EventListener | EventListenerObject, options?: { once: boolean }): this; + // /** Node.js-specific extension to the `EventTarget` class that returns an array of event `type` names for which event listeners are registered. */ + // eventNames(): string[]; + // /** Node.js-specific extension to the `EventTarget` class that returns the number of event listeners registered for the `type`. */ + // listenerCount(type: string): number; + // /** Node.js-specific alias for `eventTarget.removeListener()`. */ + // off(type: string, listener: EventListener | EventListenerObject): this; + // /** Node.js-specific alias for `eventTarget.addListener()`. */ + // on(type: string, listener: EventListener | EventListenerObject, options?: { once: boolean }): this; + // /** Node.js-specific extension to the `EventTarget` class that adds a `once` listener for the given event `type`. This is equivalent to calling `on` with the `once` option set to `true`. */ + // once(type: string, listener: EventListener | EventListenerObject): this; + // /** + // * Node.js-specific extension to the `EventTarget` class. + // * If `type` is specified, removes all registered listeners for `type`, + // * otherwise removes all registered listeners. + // */ + // removeAllListeners(type: string): this; + // /** + // * Node.js-specific extension to the `EventTarget` class that removes the listener for the given `type`. + // * The only difference between `removeListener()` and `removeEventListener()` is that `removeListener()` will return a reference to the `EventTarget`. + // */ + // removeListener(type: string, listener: EventListener | EventListenerObject): this; + // } + + interface EventEmitterOptions { + /** + * Enables automatic capturing of promise rejection. + */ + captureRejections?: boolean | undefined; + } + // Any EventTarget with a Node-style `once` function + interface _NodeEventTarget { + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + } + // Any EventTarget with a DOM-style `addEventListener` + interface _DOMEventTarget { + addEventListener( + eventName: string, + listener: (...args: any[]) => void, + opts?: { + once: boolean; + } + ): any; + } + interface StaticEventEmitterOptions { + signal?: AbortSignal | undefined; + } + interface EventEmitter extends NodeJS.EventEmitter {} + /** + * The `EventEmitter` class is defined and exposed by the `events` module: + * + * ```js + * const EventEmitter = require('events'); + * ``` + * + * All `EventEmitter`s emit the event `'newListener'` when new listeners are + * added and `'removeListener'` when existing listeners are removed. + * + * It supports the following option: + * @since v0.1.26 + */ + class EventEmitter { + constructor(options?: EventEmitterOptions); + /** + * Creates a `Promise` that is fulfilled when the `EventEmitter` emits the given + * event or that is rejected if the `EventEmitter` emits `'error'` while waiting. + * The `Promise` will resolve with an array of all the arguments emitted to the + * given event. + * + * This method is intentionally generic and works with the web platform [EventTarget](https://dom.spec.whatwg.org/#interface-eventtarget) interface, which has no special`'error'` event + * semantics and does not listen to the `'error'` event. + * + * ```js + * const { once, EventEmitter } = require('events'); + * + * async function run() { + * const ee = new EventEmitter(); + * + * process.nextTick(() => { + * ee.emit('myevent', 42); + * }); + * + * const [value] = await once(ee, 'myevent'); + * console.log(value); + * + * const err = new Error('kaboom'); + * process.nextTick(() => { + * ee.emit('error', err); + * }); + * + * try { + * await once(ee, 'myevent'); + * } catch (err) { + * console.log('error happened', err); + * } + * } + * + * run(); + * ``` + * + * The special handling of the `'error'` event is only used when `events.once()`is used to wait for another event. If `events.once()` is used to wait for the + * '`error'` event itself, then it is treated as any other kind of event without + * special handling: + * + * ```js + * const { EventEmitter, once } = require('events'); + * + * const ee = new EventEmitter(); + * + * once(ee, 'error') + * .then(([err]) => console.log('ok', err.message)) + * .catch((err) => console.log('error', err.message)); + * + * ee.emit('error', new Error('boom')); + * + * // Prints: ok boom + * ``` + * + * An `AbortSignal` can be used to cancel waiting for the event: + * + * ```js + * const { EventEmitter, once } = require('events'); + * + * const ee = new EventEmitter(); + * const ac = new AbortController(); + * + * async function foo(emitter, event, signal) { + * try { + * await once(emitter, event, { signal }); + * console.log('event emitted!'); + * } catch (error) { + * if (error.name === 'AbortError') { + * console.error('Waiting for the event was canceled!'); + * } else { + * console.error('There was an error', error.message); + * } + * } + * } + * + * foo(ee, 'foo', ac.signal); + * ac.abort(); // Abort waiting for the event + * ee.emit('foo'); // Prints: Waiting for the event was canceled! + * ``` + * @since v11.13.0, v10.16.0 + */ + static once(emitter: _NodeEventTarget, eventName: string | symbol, options?: StaticEventEmitterOptions): Promise; + static once(emitter: _DOMEventTarget, eventName: string, options?: StaticEventEmitterOptions): Promise; + /** + * ```js + * const { on, EventEmitter } = require('events'); + * + * (async () => { + * const ee = new EventEmitter(); + * + * // Emit later on + * process.nextTick(() => { + * ee.emit('foo', 'bar'); + * ee.emit('foo', 42); + * }); + * + * for await (const event of on(ee, 'foo')) { + * // The execution of this inner block is synchronous and it + * // processes one event at a time (even with await). Do not use + * // if concurrent execution is required. + * console.log(event); // prints ['bar'] [42] + * } + * // Unreachable here + * })(); + * ``` + * + * Returns an `AsyncIterator` that iterates `eventName` events. It will throw + * if the `EventEmitter` emits `'error'`. It removes all listeners when + * exiting the loop. The `value` returned by each iteration is an array + * composed of the emitted event arguments. + * + * An `AbortSignal` can be used to cancel waiting on events: + * + * ```js + * const { on, EventEmitter } = require('events'); + * const ac = new AbortController(); + * + * (async () => { + * const ee = new EventEmitter(); + * + * // Emit later on + * process.nextTick(() => { + * ee.emit('foo', 'bar'); + * ee.emit('foo', 42); + * }); + * + * for await (const event of on(ee, 'foo', { signal: ac.signal })) { + * // The execution of this inner block is synchronous and it + * // processes one event at a time (even with await). Do not use + * // if concurrent execution is required. + * console.log(event); // prints ['bar'] [42] + * } + * // Unreachable here + * })(); + * + * process.nextTick(() => ac.abort()); + * ``` + * @since v13.6.0, v12.16.0 + * @param eventName The name of the event being listened for + * @return that iterates `eventName` events emitted by the `emitter` + */ + static on(emitter: NodeJS.EventEmitter, eventName: string, options?: StaticEventEmitterOptions): AsyncIterableIterator; + /** + * A class method that returns the number of listeners for the given `eventName`registered on the given `emitter`. + * + * ```js + * const { EventEmitter, listenerCount } = require('events'); + * const myEmitter = new EventEmitter(); + * myEmitter.on('event', () => {}); + * myEmitter.on('event', () => {}); + * console.log(listenerCount(myEmitter, 'event')); + * // Prints: 2 + * ``` + * @since v0.9.12 + * @deprecated Since v3.2.0 - Use `listenerCount` instead. + * @param emitter The emitter to query + * @param eventName The event name + */ + static listenerCount(emitter: NodeJS.EventEmitter, eventName: string | symbol): number; + /** + * Returns a copy of the array of listeners for the event named `eventName`. + * + * For `EventEmitter`s this behaves exactly the same as calling `.listeners` on + * the emitter. + * + * For `EventTarget`s this is the only way to get the event listeners for the + * event target. This is useful for debugging and diagnostic purposes. + * + * ```js + * const { getEventListeners, EventEmitter } = require('events'); + * + * { + * const ee = new EventEmitter(); + * const listener = () => console.log('Events are fun'); + * ee.on('foo', listener); + * getEventListeners(ee, 'foo'); // [listener] + * } + * { + * const et = new EventTarget(); + * const listener = () => console.log('Events are fun'); + * et.addEventListener('foo', listener); + * getEventListeners(et, 'foo'); // [listener] + * } + * ``` + * @since v15.2.0, v14.17.0 + */ + static getEventListeners(emitter: _DOMEventTarget | NodeJS.EventEmitter, name: string | symbol): Function[]; + /** + * ```js + * const { + * setMaxListeners, + * EventEmitter + * } = require('events'); + * + * const target = new EventTarget(); + * const emitter = new EventEmitter(); + * + * setMaxListeners(5, target, emitter); + * ``` + * @since v15.4.0 + * @param n A non-negative number. The maximum number of listeners per `EventTarget` event. + * @param eventsTargets Zero or more {EventTarget} or {EventEmitter} instances. If none are specified, `n` is set as the default max for all newly created {EventTarget} and {EventEmitter} + * objects. + */ + static setMaxListeners(n?: number, ...eventTargets: Array<_DOMEventTarget | NodeJS.EventEmitter>): void; + /** + * This symbol shall be used to install a listener for only monitoring `'error'` + * events. Listeners installed using this symbol are called before the regular + * `'error'` listeners are called. + * + * Installing a listener using this symbol does not change the behavior once an + * `'error'` event is emitted, therefore the process will still crash if no + * regular `'error'` listener is installed. + */ + static readonly errorMonitor: unique symbol; + static readonly captureRejectionSymbol: unique symbol; + /** + * Sets or gets the default captureRejection value for all emitters. + */ + // TODO: These should be described using static getter/setter pairs: + static captureRejections: boolean; + static defaultMaxListeners: number; + } + import internal = require('node:events'); + namespace EventEmitter { + // Should just be `export { EventEmitter }`, but that doesn't work in TypeScript 3.4 + export { internal as EventEmitter }; + export interface Abortable { + /** + * When provided the corresponding `AbortController` can be used to cancel an asynchronous action. + */ + signal?: AbortSignal | undefined; + } + } + global { + namespace NodeJS { + interface EventEmitter { + /** + * Alias for `emitter.on(eventName, listener)`. + * @since v0.1.26 + */ + addListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + /** + * Adds the `listener` function to the end of the listeners array for the + * event named `eventName`. No checks are made to see if the `listener` has + * already been added. Multiple calls passing the same combination of `eventName`and `listener` will result in the `listener` being added, and called, multiple + * times. + * + * ```js + * server.on('connection', (stream) => { + * console.log('someone connected!'); + * }); + * ``` + * + * Returns a reference to the `EventEmitter`, so that calls can be chained. + * + * By default, event listeners are invoked in the order they are added. The`emitter.prependListener()` method can be used as an alternative to add the + * event listener to the beginning of the listeners array. + * + * ```js + * const myEE = new EventEmitter(); + * myEE.on('foo', () => console.log('a')); + * myEE.prependListener('foo', () => console.log('b')); + * myEE.emit('foo'); + * // Prints: + * // b + * // a + * ``` + * @since v0.1.101 + * @param eventName The name of the event. + * @param listener The callback function + */ + on(eventName: string | symbol, listener: (...args: any[]) => void): this; + /** + * Adds a **one-time**`listener` function for the event named `eventName`. The + * next time `eventName` is triggered, this listener is removed and then invoked. + * + * ```js + * server.once('connection', (stream) => { + * console.log('Ah, we have our first user!'); + * }); + * ``` + * + * Returns a reference to the `EventEmitter`, so that calls can be chained. + * + * By default, event listeners are invoked in the order they are added. The`emitter.prependOnceListener()` method can be used as an alternative to add the + * event listener to the beginning of the listeners array. + * + * ```js + * const myEE = new EventEmitter(); + * myEE.once('foo', () => console.log('a')); + * myEE.prependOnceListener('foo', () => console.log('b')); + * myEE.emit('foo'); + * // Prints: + * // b + * // a + * ``` + * @since v0.3.0 + * @param eventName The name of the event. + * @param listener The callback function + */ + once(eventName: string | symbol, listener: (...args: any[]) => void): this; + /** + * Removes the specified `listener` from the listener array for the event named`eventName`. + * + * ```js + * const callback = (stream) => { + * console.log('someone connected!'); + * }; + * server.on('connection', callback); + * // ... + * server.removeListener('connection', callback); + * ``` + * + * `removeListener()` will remove, at most, one instance of a listener from the + * listener array. If any single listener has been added multiple times to the + * listener array for the specified `eventName`, then `removeListener()` must be + * called multiple times to remove each instance. + * + * Once an event is emitted, all listeners attached to it at the + * time of emitting are called in order. This implies that any`removeListener()` or `removeAllListeners()` calls _after_ emitting and _before_ the last listener finishes execution + * will not remove them from`emit()` in progress. Subsequent events behave as expected. + * + * ```js + * const myEmitter = new MyEmitter(); + * + * const callbackA = () => { + * console.log('A'); + * myEmitter.removeListener('event', callbackB); + * }; + * + * const callbackB = () => { + * console.log('B'); + * }; + * + * myEmitter.on('event', callbackA); + * + * myEmitter.on('event', callbackB); + * + * // callbackA removes listener callbackB but it will still be called. + * // Internal listener array at time of emit [callbackA, callbackB] + * myEmitter.emit('event'); + * // Prints: + * // A + * // B + * + * // callbackB is now removed. + * // Internal listener array [callbackA] + * myEmitter.emit('event'); + * // Prints: + * // A + * ``` + * + * Because listeners are managed using an internal array, calling this will + * change the position indices of any listener registered _after_ the listener + * being removed. This will not impact the order in which listeners are called, + * but it means that any copies of the listener array as returned by + * the `emitter.listeners()` method will need to be recreated. + * + * When a single function has been added as a handler multiple times for a single + * event (as in the example below), `removeListener()` will remove the most + * recently added instance. In the example the `once('ping')`listener is removed: + * + * ```js + * const ee = new EventEmitter(); + * + * function pong() { + * console.log('pong'); + * } + * + * ee.on('ping', pong); + * ee.once('ping', pong); + * ee.removeListener('ping', pong); + * + * ee.emit('ping'); + * ee.emit('ping'); + * ``` + * + * Returns a reference to the `EventEmitter`, so that calls can be chained. + * @since v0.1.26 + */ + removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + /** + * Alias for `emitter.removeListener()`. + * @since v10.0.0 + */ + off(eventName: string | symbol, listener: (...args: any[]) => void): this; + /** + * Removes all listeners, or those of the specified `eventName`. + * + * It is bad practice to remove listeners added elsewhere in the code, + * particularly when the `EventEmitter` instance was created by some other + * component or module (e.g. sockets or file streams). + * + * Returns a reference to the `EventEmitter`, so that calls can be chained. + * @since v0.1.26 + */ + removeAllListeners(event?: string | symbol): this; + /** + * By default `EventEmitter`s will print a warning if more than `10` listeners are + * added for a particular event. This is a useful default that helps finding + * memory leaks. The `emitter.setMaxListeners()` method allows the limit to be + * modified for this specific `EventEmitter` instance. The value can be set to`Infinity` (or `0`) to indicate an unlimited number of listeners. + * + * Returns a reference to the `EventEmitter`, so that calls can be chained. + * @since v0.3.5 + */ + setMaxListeners(n: number): this; + /** + * Returns the current max listener value for the `EventEmitter` which is either + * set by `emitter.setMaxListeners(n)` or defaults to {@link defaultMaxListeners}. + * @since v1.0.0 + */ + getMaxListeners(): number; + /** + * Returns a copy of the array of listeners for the event named `eventName`. + * + * ```js + * server.on('connection', (stream) => { + * console.log('someone connected!'); + * }); + * console.log(util.inspect(server.listeners('connection'))); + * // Prints: [ [Function] ] + * ``` + * @since v0.1.26 + */ + listeners(eventName: string | symbol): Function[]; + /** + * Returns a copy of the array of listeners for the event named `eventName`, + * including any wrappers (such as those created by `.once()`). + * + * ```js + * const emitter = new EventEmitter(); + * emitter.once('log', () => console.log('log once')); + * + * // Returns a new Array with a function `onceWrapper` which has a property + * // `listener` which contains the original listener bound above + * const listeners = emitter.rawListeners('log'); + * const logFnWrapper = listeners[0]; + * + * // Logs "log once" to the console and does not unbind the `once` event + * logFnWrapper.listener(); + * + * // Logs "log once" to the console and removes the listener + * logFnWrapper(); + * + * emitter.on('log', () => console.log('log persistently')); + * // Will return a new Array with a single function bound by `.on()` above + * const newListeners = emitter.rawListeners('log'); + * + * // Logs "log persistently" twice + * newListeners[0](); + * emitter.emit('log'); + * ``` + * @since v9.4.0 + */ + rawListeners(eventName: string | symbol): Function[]; + /** + * Synchronously calls each of the listeners registered for the event named`eventName`, in the order they were registered, passing the supplied arguments + * to each. + * + * Returns `true` if the event had listeners, `false` otherwise. + * + * ```js + * const EventEmitter = require('events'); + * const myEmitter = new EventEmitter(); + * + * // First listener + * myEmitter.on('event', function firstListener() { + * console.log('Helloooo! first listener'); + * }); + * // Second listener + * myEmitter.on('event', function secondListener(arg1, arg2) { + * console.log(`event with parameters ${arg1}, ${arg2} in second listener`); + * }); + * // Third listener + * myEmitter.on('event', function thirdListener(...args) { + * const parameters = args.join(', '); + * console.log(`event with parameters ${parameters} in third listener`); + * }); + * + * console.log(myEmitter.listeners('event')); + * + * myEmitter.emit('event', 1, 2, 3, 4, 5); + * + * // Prints: + * // [ + * // [Function: firstListener], + * // [Function: secondListener], + * // [Function: thirdListener] + * // ] + * // Helloooo! first listener + * // event with parameters 1, 2 in second listener + * // event with parameters 1, 2, 3, 4, 5 in third listener + * ``` + * @since v0.1.26 + */ + emit(eventName: string | symbol, ...args: any[]): boolean; + /** + * Returns the number of listeners listening to the event named `eventName`. + * @since v3.2.0 + * @param eventName The name of the event being listened for + */ + listenerCount(eventName: string | symbol): number; + /** + * Adds the `listener` function to the _beginning_ of the listeners array for the + * event named `eventName`. No checks are made to see if the `listener` has + * already been added. Multiple calls passing the same combination of `eventName`and `listener` will result in the `listener` being added, and called, multiple + * times. + * + * ```js + * server.prependListener('connection', (stream) => { + * console.log('someone connected!'); + * }); + * ``` + * + * Returns a reference to the `EventEmitter`, so that calls can be chained. + * @since v6.0.0 + * @param eventName The name of the event. + * @param listener The callback function + */ + prependListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + /** + * Adds a **one-time**`listener` function for the event named `eventName` to the _beginning_ of the listeners array. The next time `eventName` is triggered, this + * listener is removed, and then invoked. + * + * ```js + * server.prependOnceListener('connection', (stream) => { + * console.log('Ah, we have our first user!'); + * }); + * ``` + * + * Returns a reference to the `EventEmitter`, so that calls can be chained. + * @since v6.0.0 + * @param eventName The name of the event. + * @param listener The callback function + */ + prependOnceListener(eventName: string | symbol, listener: (...args: any[]) => void): this; + /** + * Returns an array listing the events for which the emitter has registered + * listeners. The values in the array are strings or `Symbol`s. + * + * ```js + * const EventEmitter = require('events'); + * const myEE = new EventEmitter(); + * myEE.on('foo', () => {}); + * myEE.on('bar', () => {}); + * + * const sym = Symbol('symbol'); + * myEE.on(sym, () => {}); + * + * console.log(myEE.eventNames()); + * // Prints: [ 'foo', 'bar', Symbol(symbol) ] + * ``` + * @since v6.0.0 + */ + eventNames(): Array; + } + } + } + export = EventEmitter; +} +declare module 'node:events' { + import events = require('events'); + export = events; +} diff --git a/node_modules/@types/node/ts4.8/fs.d.ts b/node_modules/@types/node/ts4.8/fs.d.ts new file mode 100644 index 0000000..75c53fb --- /dev/null +++ b/node_modules/@types/node/ts4.8/fs.d.ts @@ -0,0 +1,3872 @@ +/** + * The `fs` module enables interacting with the file system in a + * way modeled on standard POSIX functions. + * + * To use the promise-based APIs: + * + * ```js + * import * as fs from 'fs/promises'; + * ``` + * + * To use the callback and sync APIs: + * + * ```js + * import * as fs from 'fs'; + * ``` + * + * All file system operations have synchronous, callback, and promise-based + * forms, and are accessible using both CommonJS syntax and ES6 Modules (ESM). + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/fs.js) + */ +declare module 'fs' { + import * as stream from 'node:stream'; + import { Abortable, EventEmitter } from 'node:events'; + import { URL } from 'node:url'; + import * as promises from 'node:fs/promises'; + export { promises }; + /** + * Valid types for path values in "fs". + */ + export type PathLike = string | Buffer | URL; + export type PathOrFileDescriptor = PathLike | number; + export type TimeLike = string | number | Date; + export type NoParamCallback = (err: NodeJS.ErrnoException | null) => void; + export type BufferEncodingOption = + | 'buffer' + | { + encoding: 'buffer'; + }; + export interface ObjectEncodingOptions { + encoding?: BufferEncoding | null | undefined; + } + export type EncodingOption = ObjectEncodingOptions | BufferEncoding | undefined | null; + export type OpenMode = number | string; + export type Mode = number | string; + export interface StatsBase { + isFile(): boolean; + isDirectory(): boolean; + isBlockDevice(): boolean; + isCharacterDevice(): boolean; + isSymbolicLink(): boolean; + isFIFO(): boolean; + isSocket(): boolean; + dev: T; + ino: T; + mode: T; + nlink: T; + uid: T; + gid: T; + rdev: T; + size: T; + blksize: T; + blocks: T; + atimeMs: T; + mtimeMs: T; + ctimeMs: T; + birthtimeMs: T; + atime: Date; + mtime: Date; + ctime: Date; + birthtime: Date; + } + export interface Stats extends StatsBase {} + /** + * A `fs.Stats` object provides information about a file. + * + * Objects returned from {@link stat}, {@link lstat} and {@link fstat} and + * their synchronous counterparts are of this type. + * If `bigint` in the `options` passed to those methods is true, the numeric values + * will be `bigint` instead of `number`, and the object will contain additional + * nanosecond-precision properties suffixed with `Ns`. + * + * ```console + * Stats { + * dev: 2114, + * ino: 48064969, + * mode: 33188, + * nlink: 1, + * uid: 85, + * gid: 100, + * rdev: 0, + * size: 527, + * blksize: 4096, + * blocks: 8, + * atimeMs: 1318289051000.1, + * mtimeMs: 1318289051000.1, + * ctimeMs: 1318289051000.1, + * birthtimeMs: 1318289051000.1, + * atime: Mon, 10 Oct 2011 23:24:11 GMT, + * mtime: Mon, 10 Oct 2011 23:24:11 GMT, + * ctime: Mon, 10 Oct 2011 23:24:11 GMT, + * birthtime: Mon, 10 Oct 2011 23:24:11 GMT } + * ``` + * + * `bigint` version: + * + * ```console + * BigIntStats { + * dev: 2114n, + * ino: 48064969n, + * mode: 33188n, + * nlink: 1n, + * uid: 85n, + * gid: 100n, + * rdev: 0n, + * size: 527n, + * blksize: 4096n, + * blocks: 8n, + * atimeMs: 1318289051000n, + * mtimeMs: 1318289051000n, + * ctimeMs: 1318289051000n, + * birthtimeMs: 1318289051000n, + * atimeNs: 1318289051000000000n, + * mtimeNs: 1318289051000000000n, + * ctimeNs: 1318289051000000000n, + * birthtimeNs: 1318289051000000000n, + * atime: Mon, 10 Oct 2011 23:24:11 GMT, + * mtime: Mon, 10 Oct 2011 23:24:11 GMT, + * ctime: Mon, 10 Oct 2011 23:24:11 GMT, + * birthtime: Mon, 10 Oct 2011 23:24:11 GMT } + * ``` + * @since v0.1.21 + */ + export class Stats {} + /** + * A representation of a directory entry, which can be a file or a subdirectory + * within the directory, as returned by reading from an `fs.Dir`. The + * directory entry is a combination of the file name and file type pairs. + * + * Additionally, when {@link readdir} or {@link readdirSync} is called with + * the `withFileTypes` option set to `true`, the resulting array is filled with `fs.Dirent` objects, rather than strings or `Buffer` s. + * @since v10.10.0 + */ + export class Dirent { + /** + * Returns `true` if the `fs.Dirent` object describes a regular file. + * @since v10.10.0 + */ + isFile(): boolean; + /** + * Returns `true` if the `fs.Dirent` object describes a file system + * directory. + * @since v10.10.0 + */ + isDirectory(): boolean; + /** + * Returns `true` if the `fs.Dirent` object describes a block device. + * @since v10.10.0 + */ + isBlockDevice(): boolean; + /** + * Returns `true` if the `fs.Dirent` object describes a character device. + * @since v10.10.0 + */ + isCharacterDevice(): boolean; + /** + * Returns `true` if the `fs.Dirent` object describes a symbolic link. + * @since v10.10.0 + */ + isSymbolicLink(): boolean; + /** + * Returns `true` if the `fs.Dirent` object describes a first-in-first-out + * (FIFO) pipe. + * @since v10.10.0 + */ + isFIFO(): boolean; + /** + * Returns `true` if the `fs.Dirent` object describes a socket. + * @since v10.10.0 + */ + isSocket(): boolean; + /** + * The file name that this `fs.Dirent` object refers to. The type of this + * value is determined by the `options.encoding` passed to {@link readdir} or {@link readdirSync}. + * @since v10.10.0 + */ + name: string; + } + /** + * A class representing a directory stream. + * + * Created by {@link opendir}, {@link opendirSync}, or `fsPromises.opendir()`. + * + * ```js + * import { opendir } from 'fs/promises'; + * + * try { + * const dir = await opendir('./'); + * for await (const dirent of dir) + * console.log(dirent.name); + * } catch (err) { + * console.error(err); + * } + * ``` + * + * When using the async iterator, the `fs.Dir` object will be automatically + * closed after the iterator exits. + * @since v12.12.0 + */ + export class Dir implements AsyncIterable { + /** + * The read-only path of this directory as was provided to {@link opendir},{@link opendirSync}, or `fsPromises.opendir()`. + * @since v12.12.0 + */ + readonly path: string; + /** + * Asynchronously iterates over the directory via `readdir(3)` until all entries have been read. + */ + [Symbol.asyncIterator](): AsyncIterableIterator; + /** + * Asynchronously close the directory's underlying resource handle. + * Subsequent reads will result in errors. + * + * A promise is returned that will be resolved after the resource has been + * closed. + * @since v12.12.0 + */ + close(): Promise; + close(cb: NoParamCallback): void; + /** + * Synchronously close the directory's underlying resource handle. + * Subsequent reads will result in errors. + * @since v12.12.0 + */ + closeSync(): void; + /** + * Asynchronously read the next directory entry via [`readdir(3)`](http://man7.org/linux/man-pages/man3/readdir.3.html) as an `fs.Dirent`. + * + * A promise is returned that will be resolved with an `fs.Dirent`, or `null`if there are no more directory entries to read. + * + * Directory entries returned by this function are in no particular order as + * provided by the operating system's underlying directory mechanisms. + * Entries added or removed while iterating over the directory might not be + * included in the iteration results. + * @since v12.12.0 + * @return containing {fs.Dirent|null} + */ + read(): Promise; + read(cb: (err: NodeJS.ErrnoException | null, dirEnt: Dirent | null) => void): void; + /** + * Synchronously read the next directory entry as an `fs.Dirent`. See the + * POSIX [`readdir(3)`](http://man7.org/linux/man-pages/man3/readdir.3.html) documentation for more detail. + * + * If there are no more directory entries to read, `null` will be returned. + * + * Directory entries returned by this function are in no particular order as + * provided by the operating system's underlying directory mechanisms. + * Entries added or removed while iterating over the directory might not be + * included in the iteration results. + * @since v12.12.0 + */ + readSync(): Dirent | null; + } + /** + * Class: fs.StatWatcher + * @since v14.3.0, v12.20.0 + * Extends `EventEmitter` + * A successful call to {@link watchFile} method will return a new fs.StatWatcher object. + */ + export interface StatWatcher extends EventEmitter { + /** + * When called, requests that the Node.js event loop _not_ exit so long as the `fs.StatWatcher` is active. Calling `watcher.ref()` multiple times will have + * no effect. + * + * By default, all `fs.StatWatcher` objects are "ref'ed", making it normally + * unnecessary to call `watcher.ref()` unless `watcher.unref()` had been + * called previously. + * @since v14.3.0, v12.20.0 + */ + ref(): this; + /** + * When called, the active `fs.StatWatcher` object will not require the Node.js + * event loop to remain active. If there is no other activity keeping the + * event loop running, the process may exit before the `fs.StatWatcher` object's + * callback is invoked. Calling `watcher.unref()` multiple times will have + * no effect. + * @since v14.3.0, v12.20.0 + */ + unref(): this; + } + export interface FSWatcher extends EventEmitter { + /** + * Stop watching for changes on the given `fs.FSWatcher`. Once stopped, the `fs.FSWatcher` object is no longer usable. + * @since v0.5.8 + */ + close(): void; + /** + * events.EventEmitter + * 1. change + * 2. error + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this; + addListener(event: 'error', listener: (error: Error) => void): this; + addListener(event: 'close', listener: () => void): this; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this; + on(event: 'error', listener: (error: Error) => void): this; + on(event: 'close', listener: () => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this; + once(event: 'error', listener: (error: Error) => void): this; + once(event: 'close', listener: () => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this; + prependListener(event: 'error', listener: (error: Error) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'change', listener: (eventType: string, filename: string | Buffer) => void): this; + prependOnceListener(event: 'error', listener: (error: Error) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + } + /** + * Instances of `fs.ReadStream` are created and returned using the {@link createReadStream} function. + * @since v0.1.93 + */ + export class ReadStream extends stream.Readable { + close(callback?: (err?: NodeJS.ErrnoException | null) => void): void; + /** + * The number of bytes that have been read so far. + * @since v6.4.0 + */ + bytesRead: number; + /** + * The path to the file the stream is reading from as specified in the first + * argument to `fs.createReadStream()`. If `path` is passed as a string, then`readStream.path` will be a string. If `path` is passed as a `Buffer`, then`readStream.path` will be a + * `Buffer`. If `fd` is specified, then`readStream.path` will be `undefined`. + * @since v0.1.93 + */ + path: string | Buffer; + /** + * This property is `true` if the underlying file has not been opened yet, + * i.e. before the `'ready'` event is emitted. + * @since v11.2.0, v10.16.0 + */ + pending: boolean; + /** + * events.EventEmitter + * 1. open + * 2. close + * 3. ready + */ + addListener(event: 'close', listener: () => void): this; + addListener(event: 'data', listener: (chunk: Buffer | string) => void): this; + addListener(event: 'end', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'open', listener: (fd: number) => void): this; + addListener(event: 'pause', listener: () => void): this; + addListener(event: 'readable', listener: () => void): this; + addListener(event: 'ready', listener: () => void): this; + addListener(event: 'resume', listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'data', listener: (chunk: Buffer | string) => void): this; + on(event: 'end', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'open', listener: (fd: number) => void): this; + on(event: 'pause', listener: () => void): this; + on(event: 'readable', listener: () => void): this; + on(event: 'ready', listener: () => void): this; + on(event: 'resume', listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'data', listener: (chunk: Buffer | string) => void): this; + once(event: 'end', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'open', listener: (fd: number) => void): this; + once(event: 'pause', listener: () => void): this; + once(event: 'readable', listener: () => void): this; + once(event: 'ready', listener: () => void): this; + once(event: 'resume', listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'data', listener: (chunk: Buffer | string) => void): this; + prependListener(event: 'end', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'open', listener: (fd: number) => void): this; + prependListener(event: 'pause', listener: () => void): this; + prependListener(event: 'readable', listener: () => void): this; + prependListener(event: 'ready', listener: () => void): this; + prependListener(event: 'resume', listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'data', listener: (chunk: Buffer | string) => void): this; + prependOnceListener(event: 'end', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'open', listener: (fd: number) => void): this; + prependOnceListener(event: 'pause', listener: () => void): this; + prependOnceListener(event: 'readable', listener: () => void): this; + prependOnceListener(event: 'ready', listener: () => void): this; + prependOnceListener(event: 'resume', listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + /** + * * Extends `stream.Writable` + * + * Instances of `fs.WriteStream` are created and returned using the {@link createWriteStream} function. + * @since v0.1.93 + */ + export class WriteStream extends stream.Writable { + /** + * Closes `writeStream`. Optionally accepts a + * callback that will be executed once the `writeStream`is closed. + * @since v0.9.4 + */ + close(callback?: (err?: NodeJS.ErrnoException | null) => void): void; + /** + * The number of bytes written so far. Does not include data that is still queued + * for writing. + * @since v0.4.7 + */ + bytesWritten: number; + /** + * The path to the file the stream is writing to as specified in the first + * argument to {@link createWriteStream}. If `path` is passed as a string, then`writeStream.path` will be a string. If `path` is passed as a `Buffer`, then`writeStream.path` will be a + * `Buffer`. + * @since v0.1.93 + */ + path: string | Buffer; + /** + * This property is `true` if the underlying file has not been opened yet, + * i.e. before the `'ready'` event is emitted. + * @since v11.2.0 + */ + pending: boolean; + /** + * events.EventEmitter + * 1. open + * 2. close + * 3. ready + */ + addListener(event: 'close', listener: () => void): this; + addListener(event: 'drain', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'finish', listener: () => void): this; + addListener(event: 'open', listener: (fd: number) => void): this; + addListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + addListener(event: 'ready', listener: () => void): this; + addListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'drain', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'finish', listener: () => void): this; + on(event: 'open', listener: (fd: number) => void): this; + on(event: 'pipe', listener: (src: stream.Readable) => void): this; + on(event: 'ready', listener: () => void): this; + on(event: 'unpipe', listener: (src: stream.Readable) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'drain', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'finish', listener: () => void): this; + once(event: 'open', listener: (fd: number) => void): this; + once(event: 'pipe', listener: (src: stream.Readable) => void): this; + once(event: 'ready', listener: () => void): this; + once(event: 'unpipe', listener: (src: stream.Readable) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'drain', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'finish', listener: () => void): this; + prependListener(event: 'open', listener: (fd: number) => void): this; + prependListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + prependListener(event: 'ready', listener: () => void): this; + prependListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'drain', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'finish', listener: () => void): this; + prependOnceListener(event: 'open', listener: (fd: number) => void): this; + prependOnceListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + prependOnceListener(event: 'ready', listener: () => void): this; + prependOnceListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + /** + * Asynchronously rename file at `oldPath` to the pathname provided + * as `newPath`. In the case that `newPath` already exists, it will + * be overwritten. If there is a directory at `newPath`, an error will + * be raised instead. No arguments other than a possible exception are + * given to the completion callback. + * + * See also: [`rename(2)`](http://man7.org/linux/man-pages/man2/rename.2.html). + * + * ```js + * import { rename } from 'fs'; + * + * rename('oldFile.txt', 'newFile.txt', (err) => { + * if (err) throw err; + * console.log('Rename complete!'); + * }); + * ``` + * @since v0.0.2 + */ + export function rename(oldPath: PathLike, newPath: PathLike, callback: NoParamCallback): void; + export namespace rename { + /** + * Asynchronous rename(2) - Change the name or location of a file or directory. + * @param oldPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function __promisify__(oldPath: PathLike, newPath: PathLike): Promise; + } + /** + * Renames the file from `oldPath` to `newPath`. Returns `undefined`. + * + * See the POSIX [`rename(2)`](http://man7.org/linux/man-pages/man2/rename.2.html) documentation for more details. + * @since v0.1.21 + */ + export function renameSync(oldPath: PathLike, newPath: PathLike): void; + /** + * Truncates the file. No arguments other than a possible exception are + * given to the completion callback. A file descriptor can also be passed as the + * first argument. In this case, `fs.ftruncate()` is called. + * + * ```js + * import { truncate } from 'fs'; + * // Assuming that 'path/file.txt' is a regular file. + * truncate('path/file.txt', (err) => { + * if (err) throw err; + * console.log('path/file.txt was truncated'); + * }); + * ``` + * + * Passing a file descriptor is deprecated and may result in an error being thrown + * in the future. + * + * See the POSIX [`truncate(2)`](http://man7.org/linux/man-pages/man2/truncate.2.html) documentation for more details. + * @since v0.8.6 + * @param [len=0] + */ + export function truncate(path: PathLike, len: number | undefined | null, callback: NoParamCallback): void; + /** + * Asynchronous truncate(2) - Truncate a file to a specified length. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function truncate(path: PathLike, callback: NoParamCallback): void; + export namespace truncate { + /** + * Asynchronous truncate(2) - Truncate a file to a specified length. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param len If not specified, defaults to `0`. + */ + function __promisify__(path: PathLike, len?: number | null): Promise; + } + /** + * Truncates the file. Returns `undefined`. A file descriptor can also be + * passed as the first argument. In this case, `fs.ftruncateSync()` is called. + * + * Passing a file descriptor is deprecated and may result in an error being thrown + * in the future. + * @since v0.8.6 + * @param [len=0] + */ + export function truncateSync(path: PathLike, len?: number | null): void; + /** + * Truncates the file descriptor. No arguments other than a possible exception are + * given to the completion callback. + * + * See the POSIX [`ftruncate(2)`](http://man7.org/linux/man-pages/man2/ftruncate.2.html) documentation for more detail. + * + * If the file referred to by the file descriptor was larger than `len` bytes, only + * the first `len` bytes will be retained in the file. + * + * For example, the following program retains only the first four bytes of the + * file: + * + * ```js + * import { open, close, ftruncate } from 'fs'; + * + * function closeFd(fd) { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * + * open('temp.txt', 'r+', (err, fd) => { + * if (err) throw err; + * + * try { + * ftruncate(fd, 4, (err) => { + * closeFd(fd); + * if (err) throw err; + * }); + * } catch (err) { + * closeFd(fd); + * if (err) throw err; + * } + * }); + * ``` + * + * If the file previously was shorter than `len` bytes, it is extended, and the + * extended part is filled with null bytes (`'\0'`): + * + * If `len` is negative then `0` will be used. + * @since v0.8.6 + * @param [len=0] + */ + export function ftruncate(fd: number, len: number | undefined | null, callback: NoParamCallback): void; + /** + * Asynchronous ftruncate(2) - Truncate a file to a specified length. + * @param fd A file descriptor. + */ + export function ftruncate(fd: number, callback: NoParamCallback): void; + export namespace ftruncate { + /** + * Asynchronous ftruncate(2) - Truncate a file to a specified length. + * @param fd A file descriptor. + * @param len If not specified, defaults to `0`. + */ + function __promisify__(fd: number, len?: number | null): Promise; + } + /** + * Truncates the file descriptor. Returns `undefined`. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link ftruncate}. + * @since v0.8.6 + * @param [len=0] + */ + export function ftruncateSync(fd: number, len?: number | null): void; + /** + * Asynchronously changes owner and group of a file. No arguments other than a + * possible exception are given to the completion callback. + * + * See the POSIX [`chown(2)`](http://man7.org/linux/man-pages/man2/chown.2.html) documentation for more detail. + * @since v0.1.97 + */ + export function chown(path: PathLike, uid: number, gid: number, callback: NoParamCallback): void; + export namespace chown { + /** + * Asynchronous chown(2) - Change ownership of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(path: PathLike, uid: number, gid: number): Promise; + } + /** + * Synchronously changes owner and group of a file. Returns `undefined`. + * This is the synchronous version of {@link chown}. + * + * See the POSIX [`chown(2)`](http://man7.org/linux/man-pages/man2/chown.2.html) documentation for more detail. + * @since v0.1.97 + */ + export function chownSync(path: PathLike, uid: number, gid: number): void; + /** + * Sets the owner of the file. No arguments other than a possible exception are + * given to the completion callback. + * + * See the POSIX [`fchown(2)`](http://man7.org/linux/man-pages/man2/fchown.2.html) documentation for more detail. + * @since v0.4.7 + */ + export function fchown(fd: number, uid: number, gid: number, callback: NoParamCallback): void; + export namespace fchown { + /** + * Asynchronous fchown(2) - Change ownership of a file. + * @param fd A file descriptor. + */ + function __promisify__(fd: number, uid: number, gid: number): Promise; + } + /** + * Sets the owner of the file. Returns `undefined`. + * + * See the POSIX [`fchown(2)`](http://man7.org/linux/man-pages/man2/fchown.2.html) documentation for more detail. + * @since v0.4.7 + * @param uid The file's new owner's user id. + * @param gid The file's new group's group id. + */ + export function fchownSync(fd: number, uid: number, gid: number): void; + /** + * Set the owner of the symbolic link. No arguments other than a possible + * exception are given to the completion callback. + * + * See the POSIX [`lchown(2)`](http://man7.org/linux/man-pages/man2/lchown.2.html) documentation for more detail. + */ + export function lchown(path: PathLike, uid: number, gid: number, callback: NoParamCallback): void; + export namespace lchown { + /** + * Asynchronous lchown(2) - Change ownership of a file. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(path: PathLike, uid: number, gid: number): Promise; + } + /** + * Set the owner for the path. Returns `undefined`. + * + * See the POSIX [`lchown(2)`](http://man7.org/linux/man-pages/man2/lchown.2.html) documentation for more details. + * @param uid The file's new owner's user id. + * @param gid The file's new group's group id. + */ + export function lchownSync(path: PathLike, uid: number, gid: number): void; + /** + * Changes the access and modification times of a file in the same way as {@link utimes}, with the difference that if the path refers to a symbolic + * link, then the link is not dereferenced: instead, the timestamps of the + * symbolic link itself are changed. + * + * No arguments other than a possible exception are given to the completion + * callback. + * @since v14.5.0, v12.19.0 + */ + export function lutimes(path: PathLike, atime: TimeLike, mtime: TimeLike, callback: NoParamCallback): void; + export namespace lutimes { + /** + * Changes the access and modification times of a file in the same way as `fsPromises.utimes()`, + * with the difference that if the path refers to a symbolic link, then the link is not + * dereferenced: instead, the timestamps of the symbolic link itself are changed. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function __promisify__(path: PathLike, atime: TimeLike, mtime: TimeLike): Promise; + } + /** + * Change the file system timestamps of the symbolic link referenced by `path`. + * Returns `undefined`, or throws an exception when parameters are incorrect or + * the operation fails. This is the synchronous version of {@link lutimes}. + * @since v14.5.0, v12.19.0 + */ + export function lutimesSync(path: PathLike, atime: TimeLike, mtime: TimeLike): void; + /** + * Asynchronously changes the permissions of a file. No arguments other than a + * possible exception are given to the completion callback. + * + * See the POSIX [`chmod(2)`](http://man7.org/linux/man-pages/man2/chmod.2.html) documentation for more detail. + * + * ```js + * import { chmod } from 'fs'; + * + * chmod('my_file.txt', 0o775, (err) => { + * if (err) throw err; + * console.log('The permissions for file "my_file.txt" have been changed!'); + * }); + * ``` + * @since v0.1.30 + */ + export function chmod(path: PathLike, mode: Mode, callback: NoParamCallback): void; + export namespace chmod { + /** + * Asynchronous chmod(2) - Change permissions of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function __promisify__(path: PathLike, mode: Mode): Promise; + } + /** + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link chmod}. + * + * See the POSIX [`chmod(2)`](http://man7.org/linux/man-pages/man2/chmod.2.html) documentation for more detail. + * @since v0.6.7 + */ + export function chmodSync(path: PathLike, mode: Mode): void; + /** + * Sets the permissions on the file. No arguments other than a possible exception + * are given to the completion callback. + * + * See the POSIX [`fchmod(2)`](http://man7.org/linux/man-pages/man2/fchmod.2.html) documentation for more detail. + * @since v0.4.7 + */ + export function fchmod(fd: number, mode: Mode, callback: NoParamCallback): void; + export namespace fchmod { + /** + * Asynchronous fchmod(2) - Change permissions of a file. + * @param fd A file descriptor. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function __promisify__(fd: number, mode: Mode): Promise; + } + /** + * Sets the permissions on the file. Returns `undefined`. + * + * See the POSIX [`fchmod(2)`](http://man7.org/linux/man-pages/man2/fchmod.2.html) documentation for more detail. + * @since v0.4.7 + */ + export function fchmodSync(fd: number, mode: Mode): void; + /** + * Changes the permissions on a symbolic link. No arguments other than a possible + * exception are given to the completion callback. + * + * This method is only implemented on macOS. + * + * See the POSIX [`lchmod(2)`](https://www.freebsd.org/cgi/man.cgi?query=lchmod&sektion=2) documentation for more detail. + * @deprecated Since v0.4.7 + */ + export function lchmod(path: PathLike, mode: Mode, callback: NoParamCallback): void; + /** @deprecated */ + export namespace lchmod { + /** + * Asynchronous lchmod(2) - Change permissions of a file. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. + */ + function __promisify__(path: PathLike, mode: Mode): Promise; + } + /** + * Changes the permissions on a symbolic link. Returns `undefined`. + * + * This method is only implemented on macOS. + * + * See the POSIX [`lchmod(2)`](https://www.freebsd.org/cgi/man.cgi?query=lchmod&sektion=2) documentation for more detail. + * @deprecated Since v0.4.7 + */ + export function lchmodSync(path: PathLike, mode: Mode): void; + /** + * Asynchronous [`stat(2)`](http://man7.org/linux/man-pages/man2/stat.2.html). The callback gets two arguments `(err, stats)` where`stats` is an `fs.Stats` object. + * + * In case of an error, the `err.code` will be one of `Common System Errors`. + * + * Using `fs.stat()` to check for the existence of a file before calling`fs.open()`, `fs.readFile()` or `fs.writeFile()` is not recommended. + * Instead, user code should open/read/write the file directly and handle the + * error raised if the file is not available. + * + * To check if a file exists without manipulating it afterwards, {@link access} is recommended. + * + * For example, given the following directory structure: + * + * ```text + * - txtDir + * -- file.txt + * - app.js + * ``` + * + * The next program will check for the stats of the given paths: + * + * ```js + * import { stat } from 'fs'; + * + * const pathsToCheck = ['./txtDir', './txtDir/file.txt']; + * + * for (let i = 0; i < pathsToCheck.length; i++) { + * stat(pathsToCheck[i], (err, stats) => { + * console.log(stats.isDirectory()); + * console.log(stats); + * }); + * } + * ``` + * + * The resulting output will resemble: + * + * ```console + * true + * Stats { + * dev: 16777220, + * mode: 16877, + * nlink: 3, + * uid: 501, + * gid: 20, + * rdev: 0, + * blksize: 4096, + * ino: 14214262, + * size: 96, + * blocks: 0, + * atimeMs: 1561174653071.963, + * mtimeMs: 1561174614583.3518, + * ctimeMs: 1561174626623.5366, + * birthtimeMs: 1561174126937.2893, + * atime: 2019-06-22T03:37:33.072Z, + * mtime: 2019-06-22T03:36:54.583Z, + * ctime: 2019-06-22T03:37:06.624Z, + * birthtime: 2019-06-22T03:28:46.937Z + * } + * false + * Stats { + * dev: 16777220, + * mode: 33188, + * nlink: 1, + * uid: 501, + * gid: 20, + * rdev: 0, + * blksize: 4096, + * ino: 14214074, + * size: 8, + * blocks: 8, + * atimeMs: 1561174616618.8555, + * mtimeMs: 1561174614584, + * ctimeMs: 1561174614583.8145, + * birthtimeMs: 1561174007710.7478, + * atime: 2019-06-22T03:36:56.619Z, + * mtime: 2019-06-22T03:36:54.584Z, + * ctime: 2019-06-22T03:36:54.584Z, + * birthtime: 2019-06-22T03:26:47.711Z + * } + * ``` + * @since v0.0.2 + */ + export function stat(path: PathLike, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void; + export function stat( + path: PathLike, + options: + | (StatOptions & { + bigint?: false | undefined; + }) + | undefined, + callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void + ): void; + export function stat( + path: PathLike, + options: StatOptions & { + bigint: true; + }, + callback: (err: NodeJS.ErrnoException | null, stats: BigIntStats) => void + ): void; + export function stat(path: PathLike, options: StatOptions | undefined, callback: (err: NodeJS.ErrnoException | null, stats: Stats | BigIntStats) => void): void; + export namespace stat { + /** + * Asynchronous stat(2) - Get file status. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__( + path: PathLike, + options?: StatOptions & { + bigint?: false | undefined; + } + ): Promise; + function __promisify__( + path: PathLike, + options: StatOptions & { + bigint: true; + } + ): Promise; + function __promisify__(path: PathLike, options?: StatOptions): Promise; + } + export interface StatSyncFn extends Function { + (path: PathLike, options?: undefined): Stats; + ( + path: PathLike, + options?: StatSyncOptions & { + bigint?: false | undefined; + throwIfNoEntry: false; + } + ): Stats | undefined; + ( + path: PathLike, + options: StatSyncOptions & { + bigint: true; + throwIfNoEntry: false; + } + ): BigIntStats | undefined; + ( + path: PathLike, + options?: StatSyncOptions & { + bigint?: false | undefined; + } + ): Stats; + ( + path: PathLike, + options: StatSyncOptions & { + bigint: true; + } + ): BigIntStats; + ( + path: PathLike, + options: StatSyncOptions & { + bigint: boolean; + throwIfNoEntry?: false | undefined; + } + ): Stats | BigIntStats; + (path: PathLike, options?: StatSyncOptions): Stats | BigIntStats | undefined; + } + /** + * Synchronous stat(2) - Get file status. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export const statSync: StatSyncFn; + /** + * Invokes the callback with the `fs.Stats` for the file descriptor. + * + * See the POSIX [`fstat(2)`](http://man7.org/linux/man-pages/man2/fstat.2.html) documentation for more detail. + * @since v0.1.95 + */ + export function fstat(fd: number, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void; + export function fstat( + fd: number, + options: + | (StatOptions & { + bigint?: false | undefined; + }) + | undefined, + callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void + ): void; + export function fstat( + fd: number, + options: StatOptions & { + bigint: true; + }, + callback: (err: NodeJS.ErrnoException | null, stats: BigIntStats) => void + ): void; + export function fstat(fd: number, options: StatOptions | undefined, callback: (err: NodeJS.ErrnoException | null, stats: Stats | BigIntStats) => void): void; + export namespace fstat { + /** + * Asynchronous fstat(2) - Get file status. + * @param fd A file descriptor. + */ + function __promisify__( + fd: number, + options?: StatOptions & { + bigint?: false | undefined; + } + ): Promise; + function __promisify__( + fd: number, + options: StatOptions & { + bigint: true; + } + ): Promise; + function __promisify__(fd: number, options?: StatOptions): Promise; + } + /** + * Retrieves the `fs.Stats` for the file descriptor. + * + * See the POSIX [`fstat(2)`](http://man7.org/linux/man-pages/man2/fstat.2.html) documentation for more detail. + * @since v0.1.95 + */ + export function fstatSync( + fd: number, + options?: StatOptions & { + bigint?: false | undefined; + } + ): Stats; + export function fstatSync( + fd: number, + options: StatOptions & { + bigint: true; + } + ): BigIntStats; + export function fstatSync(fd: number, options?: StatOptions): Stats | BigIntStats; + /** + * Retrieves the `fs.Stats` for the symbolic link referred to by the path. + * The callback gets two arguments `(err, stats)` where `stats` is a `fs.Stats` object. `lstat()` is identical to `stat()`, except that if `path` is a symbolic + * link, then the link itself is stat-ed, not the file that it refers to. + * + * See the POSIX [`lstat(2)`](http://man7.org/linux/man-pages/man2/lstat.2.html) documentation for more details. + * @since v0.1.30 + */ + export function lstat(path: PathLike, callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void): void; + export function lstat( + path: PathLike, + options: + | (StatOptions & { + bigint?: false | undefined; + }) + | undefined, + callback: (err: NodeJS.ErrnoException | null, stats: Stats) => void + ): void; + export function lstat( + path: PathLike, + options: StatOptions & { + bigint: true; + }, + callback: (err: NodeJS.ErrnoException | null, stats: BigIntStats) => void + ): void; + export function lstat(path: PathLike, options: StatOptions | undefined, callback: (err: NodeJS.ErrnoException | null, stats: Stats | BigIntStats) => void): void; + export namespace lstat { + /** + * Asynchronous lstat(2) - Get file status. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__( + path: PathLike, + options?: StatOptions & { + bigint?: false | undefined; + } + ): Promise; + function __promisify__( + path: PathLike, + options: StatOptions & { + bigint: true; + } + ): Promise; + function __promisify__(path: PathLike, options?: StatOptions): Promise; + } + /** + * Synchronous lstat(2) - Get file status. Does not dereference symbolic links. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export const lstatSync: StatSyncFn; + /** + * Creates a new link from the `existingPath` to the `newPath`. See the POSIX [`link(2)`](http://man7.org/linux/man-pages/man2/link.2.html) documentation for more detail. No arguments other than + * a possible + * exception are given to the completion callback. + * @since v0.1.31 + */ + export function link(existingPath: PathLike, newPath: PathLike, callback: NoParamCallback): void; + export namespace link { + /** + * Asynchronous link(2) - Create a new link (also known as a hard link) to an existing file. + * @param existingPath A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param newPath A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(existingPath: PathLike, newPath: PathLike): Promise; + } + /** + * Creates a new link from the `existingPath` to the `newPath`. See the POSIX [`link(2)`](http://man7.org/linux/man-pages/man2/link.2.html) documentation for more detail. Returns `undefined`. + * @since v0.1.31 + */ + export function linkSync(existingPath: PathLike, newPath: PathLike): void; + /** + * Creates the link called `path` pointing to `target`. No arguments other than a + * possible exception are given to the completion callback. + * + * See the POSIX [`symlink(2)`](http://man7.org/linux/man-pages/man2/symlink.2.html) documentation for more details. + * + * The `type` argument is only available on Windows and ignored on other platforms. + * It can be set to `'dir'`, `'file'`, or `'junction'`. If the `type` argument is + * not set, Node.js will autodetect `target` type and use `'file'` or `'dir'`. If + * the `target` does not exist, `'file'` will be used. Windows junction points + * require the destination path to be absolute. When using `'junction'`, the`target` argument will automatically be normalized to absolute path. + * + * Relative targets are relative to the link’s parent directory. + * + * ```js + * import { symlink } from 'fs'; + * + * symlink('./mew', './mewtwo', callback); + * ``` + * + * The above example creates a symbolic link `mewtwo` which points to `mew` in the + * same directory: + * + * ```bash + * $ tree . + * . + * ├── mew + * └── mewtwo -> ./mew + * ``` + * @since v0.1.31 + */ + export function symlink(target: PathLike, path: PathLike, type: symlink.Type | undefined | null, callback: NoParamCallback): void; + /** + * Asynchronous symlink(2) - Create a new symbolic link to an existing file. + * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol. + * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol. + */ + export function symlink(target: PathLike, path: PathLike, callback: NoParamCallback): void; + export namespace symlink { + /** + * Asynchronous symlink(2) - Create a new symbolic link to an existing file. + * @param target A path to an existing file. If a URL is provided, it must use the `file:` protocol. + * @param path A path to the new symlink. If a URL is provided, it must use the `file:` protocol. + * @param type May be set to `'dir'`, `'file'`, or `'junction'` (default is `'file'`) and is only available on Windows (ignored on other platforms). + * When using `'junction'`, the `target` argument will automatically be normalized to an absolute path. + */ + function __promisify__(target: PathLike, path: PathLike, type?: string | null): Promise; + type Type = 'dir' | 'file' | 'junction'; + } + /** + * Returns `undefined`. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link symlink}. + * @since v0.1.31 + */ + export function symlinkSync(target: PathLike, path: PathLike, type?: symlink.Type | null): void; + /** + * Reads the contents of the symbolic link referred to by `path`. The callback gets + * two arguments `(err, linkString)`. + * + * See the POSIX [`readlink(2)`](http://man7.org/linux/man-pages/man2/readlink.2.html) documentation for more details. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the link path passed to the callback. If the `encoding` is set to `'buffer'`, + * the link path returned will be passed as a `Buffer` object. + * @since v0.1.31 + */ + export function readlink(path: PathLike, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, linkString: string) => void): void; + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readlink(path: PathLike, options: BufferEncodingOption, callback: (err: NodeJS.ErrnoException | null, linkString: Buffer) => void): void; + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readlink(path: PathLike, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, linkString: string | Buffer) => void): void; + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function readlink(path: PathLike, callback: (err: NodeJS.ErrnoException | null, linkString: string) => void): void; + export namespace readlink { + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options?: EncodingOption): Promise; + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options: BufferEncodingOption): Promise; + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options?: EncodingOption): Promise; + } + /** + * Returns the symbolic link's string value. + * + * See the POSIX [`readlink(2)`](http://man7.org/linux/man-pages/man2/readlink.2.html) documentation for more details. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the link path returned. If the `encoding` is set to `'buffer'`, + * the link path returned will be passed as a `Buffer` object. + * @since v0.1.31 + */ + export function readlinkSync(path: PathLike, options?: EncodingOption): string; + /** + * Synchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readlinkSync(path: PathLike, options: BufferEncodingOption): Buffer; + /** + * Synchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readlinkSync(path: PathLike, options?: EncodingOption): string | Buffer; + /** + * Asynchronously computes the canonical pathname by resolving `.`, `..` and + * symbolic links. + * + * A canonical pathname is not necessarily unique. Hard links and bind mounts can + * expose a file system entity through many pathnames. + * + * This function behaves like [`realpath(3)`](http://man7.org/linux/man-pages/man3/realpath.3.html), with some exceptions: + * + * 1. No case conversion is performed on case-insensitive file systems. + * 2. The maximum number of symbolic links is platform-independent and generally + * (much) higher than what the native [`realpath(3)`](http://man7.org/linux/man-pages/man3/realpath.3.html) implementation supports. + * + * The `callback` gets two arguments `(err, resolvedPath)`. May use `process.cwd`to resolve relative paths. + * + * Only paths that can be converted to UTF8 strings are supported. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the path passed to the callback. If the `encoding` is set to `'buffer'`, + * the path returned will be passed as a `Buffer` object. + * + * If `path` resolves to a socket or a pipe, the function will return a system + * dependent name for that object. + * @since v0.1.31 + */ + export function realpath(path: PathLike, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void): void; + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function realpath(path: PathLike, options: BufferEncodingOption, callback: (err: NodeJS.ErrnoException | null, resolvedPath: Buffer) => void): void; + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function realpath(path: PathLike, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string | Buffer) => void): void; + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function realpath(path: PathLike, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void): void; + export namespace realpath { + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options?: EncodingOption): Promise; + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options: BufferEncodingOption): Promise; + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(path: PathLike, options?: EncodingOption): Promise; + /** + * Asynchronous [`realpath(3)`](http://man7.org/linux/man-pages/man3/realpath.3.html). + * + * The `callback` gets two arguments `(err, resolvedPath)`. + * + * Only paths that can be converted to UTF8 strings are supported. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the path passed to the callback. If the `encoding` is set to `'buffer'`, + * the path returned will be passed as a `Buffer` object. + * + * On Linux, when Node.js is linked against musl libc, the procfs file system must + * be mounted on `/proc` in order for this function to work. Glibc does not have + * this restriction. + * @since v9.2.0 + */ + function native(path: PathLike, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void): void; + function native(path: PathLike, options: BufferEncodingOption, callback: (err: NodeJS.ErrnoException | null, resolvedPath: Buffer) => void): void; + function native(path: PathLike, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string | Buffer) => void): void; + function native(path: PathLike, callback: (err: NodeJS.ErrnoException | null, resolvedPath: string) => void): void; + } + /** + * Returns the resolved pathname. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link realpath}. + * @since v0.1.31 + */ + export function realpathSync(path: PathLike, options?: EncodingOption): string; + /** + * Synchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function realpathSync(path: PathLike, options: BufferEncodingOption): Buffer; + /** + * Synchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function realpathSync(path: PathLike, options?: EncodingOption): string | Buffer; + export namespace realpathSync { + function native(path: PathLike, options?: EncodingOption): string; + function native(path: PathLike, options: BufferEncodingOption): Buffer; + function native(path: PathLike, options?: EncodingOption): string | Buffer; + } + /** + * Asynchronously removes a file or symbolic link. No arguments other than a + * possible exception are given to the completion callback. + * + * ```js + * import { unlink } from 'fs'; + * // Assuming that 'path/file.txt' is a regular file. + * unlink('path/file.txt', (err) => { + * if (err) throw err; + * console.log('path/file.txt was deleted'); + * }); + * ``` + * + * `fs.unlink()` will not work on a directory, empty or otherwise. To remove a + * directory, use {@link rmdir}. + * + * See the POSIX [`unlink(2)`](http://man7.org/linux/man-pages/man2/unlink.2.html) documentation for more details. + * @since v0.0.2 + */ + export function unlink(path: PathLike, callback: NoParamCallback): void; + export namespace unlink { + /** + * Asynchronous unlink(2) - delete a name and possibly the file it refers to. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(path: PathLike): Promise; + } + /** + * Synchronous [`unlink(2)`](http://man7.org/linux/man-pages/man2/unlink.2.html). Returns `undefined`. + * @since v0.1.21 + */ + export function unlinkSync(path: PathLike): void; + export interface RmDirOptions { + /** + * If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or + * `EPERM` error is encountered, Node.js will retry the operation with a linear + * backoff wait of `retryDelay` ms longer on each try. This option represents the + * number of retries. This option is ignored if the `recursive` option is not + * `true`. + * @default 0 + */ + maxRetries?: number | undefined; + /** + * @deprecated since v14.14.0 In future versions of Node.js and will trigger a warning + * `fs.rmdir(path, { recursive: true })` will throw if `path` does not exist or is a file. + * Use `fs.rm(path, { recursive: true, force: true })` instead. + * + * If `true`, perform a recursive directory removal. In + * recursive mode, operations are retried on failure. + * @default false + */ + recursive?: boolean | undefined; + /** + * The amount of time in milliseconds to wait between retries. + * This option is ignored if the `recursive` option is not `true`. + * @default 100 + */ + retryDelay?: number | undefined; + } + /** + * Asynchronous [`rmdir(2)`](http://man7.org/linux/man-pages/man2/rmdir.2.html). No arguments other than a possible exception are given + * to the completion callback. + * + * Using `fs.rmdir()` on a file (not a directory) results in an `ENOENT` error on + * Windows and an `ENOTDIR` error on POSIX. + * + * To get a behavior similar to the `rm -rf` Unix command, use {@link rm} with options `{ recursive: true, force: true }`. + * @since v0.0.2 + */ + export function rmdir(path: PathLike, callback: NoParamCallback): void; + export function rmdir(path: PathLike, options: RmDirOptions, callback: NoParamCallback): void; + export namespace rmdir { + /** + * Asynchronous rmdir(2) - delete a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + function __promisify__(path: PathLike, options?: RmDirOptions): Promise; + } + /** + * Synchronous [`rmdir(2)`](http://man7.org/linux/man-pages/man2/rmdir.2.html). Returns `undefined`. + * + * Using `fs.rmdirSync()` on a file (not a directory) results in an `ENOENT` error + * on Windows and an `ENOTDIR` error on POSIX. + * + * To get a behavior similar to the `rm -rf` Unix command, use {@link rmSync} with options `{ recursive: true, force: true }`. + * @since v0.1.21 + */ + export function rmdirSync(path: PathLike, options?: RmDirOptions): void; + export interface RmOptions { + /** + * When `true`, exceptions will be ignored if `path` does not exist. + * @default false + */ + force?: boolean | undefined; + /** + * If an `EBUSY`, `EMFILE`, `ENFILE`, `ENOTEMPTY`, or + * `EPERM` error is encountered, Node.js will retry the operation with a linear + * backoff wait of `retryDelay` ms longer on each try. This option represents the + * number of retries. This option is ignored if the `recursive` option is not + * `true`. + * @default 0 + */ + maxRetries?: number | undefined; + /** + * If `true`, perform a recursive directory removal. In + * recursive mode, operations are retried on failure. + * @default false + */ + recursive?: boolean | undefined; + /** + * The amount of time in milliseconds to wait between retries. + * This option is ignored if the `recursive` option is not `true`. + * @default 100 + */ + retryDelay?: number | undefined; + } + /** + * Asynchronously removes files and directories (modeled on the standard POSIX `rm`utility). No arguments other than a possible exception are given to the + * completion callback. + * @since v14.14.0 + */ + export function rm(path: PathLike, callback: NoParamCallback): void; + export function rm(path: PathLike, options: RmOptions, callback: NoParamCallback): void; + export namespace rm { + /** + * Asynchronously removes files and directories (modeled on the standard POSIX `rm` utility). + */ + function __promisify__(path: PathLike, options?: RmOptions): Promise; + } + /** + * Synchronously removes files and directories (modeled on the standard POSIX `rm`utility). Returns `undefined`. + * @since v14.14.0 + */ + export function rmSync(path: PathLike, options?: RmOptions): void; + export interface MakeDirectoryOptions { + /** + * Indicates whether parent folders should be created. + * If a folder was created, the path to the first created folder will be returned. + * @default false + */ + recursive?: boolean | undefined; + /** + * A file mode. If a string is passed, it is parsed as an octal integer. If not specified + * @default 0o777 + */ + mode?: Mode | undefined; + } + /** + * Asynchronously creates a directory. + * + * The callback is given a possible exception and, if `recursive` is `true`, the + * first directory path created, `(err[, path])`.`path` can still be `undefined` when `recursive` is `true`, if no directory was + * created. + * + * The optional `options` argument can be an integer specifying `mode` (permission + * and sticky bits), or an object with a `mode` property and a `recursive`property indicating whether parent directories should be created. Calling`fs.mkdir()` when `path` is a directory that + * exists results in an error only + * when `recursive` is false. + * + * ```js + * import { mkdir } from 'fs'; + * + * // Creates /tmp/a/apple, regardless of whether `/tmp` and /tmp/a exist. + * mkdir('/tmp/a/apple', { recursive: true }, (err) => { + * if (err) throw err; + * }); + * ``` + * + * On Windows, using `fs.mkdir()` on the root directory even with recursion will + * result in an error: + * + * ```js + * import { mkdir } from 'fs'; + * + * mkdir('/', { recursive: true }, (err) => { + * // => [Error: EPERM: operation not permitted, mkdir 'C:\'] + * }); + * ``` + * + * See the POSIX [`mkdir(2)`](http://man7.org/linux/man-pages/man2/mkdir.2.html) documentation for more details. + * @since v0.1.8 + */ + export function mkdir( + path: PathLike, + options: MakeDirectoryOptions & { + recursive: true; + }, + callback: (err: NodeJS.ErrnoException | null, path?: string) => void + ): void; + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + export function mkdir( + path: PathLike, + options: + | Mode + | (MakeDirectoryOptions & { + recursive?: false | undefined; + }) + | null + | undefined, + callback: NoParamCallback + ): void; + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + export function mkdir(path: PathLike, options: Mode | MakeDirectoryOptions | null | undefined, callback: (err: NodeJS.ErrnoException | null, path?: string) => void): void; + /** + * Asynchronous mkdir(2) - create a directory with a mode of `0o777`. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function mkdir(path: PathLike, callback: NoParamCallback): void; + export namespace mkdir { + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function __promisify__( + path: PathLike, + options: MakeDirectoryOptions & { + recursive: true; + } + ): Promise; + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function __promisify__( + path: PathLike, + options?: + | Mode + | (MakeDirectoryOptions & { + recursive?: false | undefined; + }) + | null + ): Promise; + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function __promisify__(path: PathLike, options?: Mode | MakeDirectoryOptions | null): Promise; + } + /** + * Synchronously creates a directory. Returns `undefined`, or if `recursive` is`true`, the first directory path created. + * This is the synchronous version of {@link mkdir}. + * + * See the POSIX [`mkdir(2)`](http://man7.org/linux/man-pages/man2/mkdir.2.html) documentation for more details. + * @since v0.1.21 + */ + export function mkdirSync( + path: PathLike, + options: MakeDirectoryOptions & { + recursive: true; + } + ): string | undefined; + /** + * Synchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + export function mkdirSync( + path: PathLike, + options?: + | Mode + | (MakeDirectoryOptions & { + recursive?: false | undefined; + }) + | null + ): void; + /** + * Synchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + export function mkdirSync(path: PathLike, options?: Mode | MakeDirectoryOptions | null): string | undefined; + /** + * Creates a unique temporary directory. + * + * Generates six random characters to be appended behind a required`prefix` to create a unique temporary directory. Due to platform + * inconsistencies, avoid trailing `X` characters in `prefix`. Some platforms, + * notably the BSDs, can return more than six random characters, and replace + * trailing `X` characters in `prefix` with random characters. + * + * The created directory path is passed as a string to the callback's second + * parameter. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use. + * + * ```js + * import { mkdtemp } from 'fs'; + * + * mkdtemp(path.join(os.tmpdir(), 'foo-'), (err, directory) => { + * if (err) throw err; + * console.log(directory); + * // Prints: /tmp/foo-itXde2 or C:\Users\...\AppData\Local\Temp\foo-itXde2 + * }); + * ``` + * + * The `fs.mkdtemp()` method will append the six randomly selected characters + * directly to the `prefix` string. For instance, given a directory `/tmp`, if the + * intention is to create a temporary directory _within_`/tmp`, the `prefix`must end with a trailing platform-specific path separator + * (`require('path').sep`). + * + * ```js + * import { tmpdir } from 'os'; + * import { mkdtemp } from 'fs'; + * + * // The parent directory for the new temporary directory + * const tmpDir = tmpdir(); + * + * // This method is *INCORRECT*: + * mkdtemp(tmpDir, (err, directory) => { + * if (err) throw err; + * console.log(directory); + * // Will print something similar to `/tmpabc123`. + * // A new temporary directory is created at the file system root + * // rather than *within* the /tmp directory. + * }); + * + * // This method is *CORRECT*: + * import { sep } from 'path'; + * mkdtemp(`${tmpDir}${sep}`, (err, directory) => { + * if (err) throw err; + * console.log(directory); + * // Will print something similar to `/tmp/abc123`. + * // A new temporary directory is created within + * // the /tmp directory. + * }); + * ``` + * @since v5.10.0 + */ + export function mkdtemp(prefix: string, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, folder: string) => void): void; + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function mkdtemp( + prefix: string, + options: + | 'buffer' + | { + encoding: 'buffer'; + }, + callback: (err: NodeJS.ErrnoException | null, folder: Buffer) => void + ): void; + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function mkdtemp(prefix: string, options: EncodingOption, callback: (err: NodeJS.ErrnoException | null, folder: string | Buffer) => void): void; + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + */ + export function mkdtemp(prefix: string, callback: (err: NodeJS.ErrnoException | null, folder: string) => void): void; + export namespace mkdtemp { + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(prefix: string, options?: EncodingOption): Promise; + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(prefix: string, options: BufferEncodingOption): Promise; + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__(prefix: string, options?: EncodingOption): Promise; + } + /** + * Returns the created directory path. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link mkdtemp}. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use. + * @since v5.10.0 + */ + export function mkdtempSync(prefix: string, options?: EncodingOption): string; + /** + * Synchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function mkdtempSync(prefix: string, options: BufferEncodingOption): Buffer; + /** + * Synchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function mkdtempSync(prefix: string, options?: EncodingOption): string | Buffer; + /** + * Reads the contents of a directory. The callback gets two arguments `(err, files)`where `files` is an array of the names of the files in the directory excluding`'.'` and `'..'`. + * + * See the POSIX [`readdir(3)`](http://man7.org/linux/man-pages/man3/readdir.3.html) documentation for more details. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the filenames passed to the callback. If the `encoding` is set to `'buffer'`, + * the filenames returned will be passed as `Buffer` objects. + * + * If `options.withFileTypes` is set to `true`, the `files` array will contain `fs.Dirent` objects. + * @since v0.1.8 + */ + export function readdir( + path: PathLike, + options: + | { + encoding: BufferEncoding | null; + withFileTypes?: false | undefined; + } + | BufferEncoding + | undefined + | null, + callback: (err: NodeJS.ErrnoException | null, files: string[]) => void + ): void; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readdir( + path: PathLike, + options: + | { + encoding: 'buffer'; + withFileTypes?: false | undefined; + } + | 'buffer', + callback: (err: NodeJS.ErrnoException | null, files: Buffer[]) => void + ): void; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readdir( + path: PathLike, + options: + | (ObjectEncodingOptions & { + withFileTypes?: false | undefined; + }) + | BufferEncoding + | undefined + | null, + callback: (err: NodeJS.ErrnoException | null, files: string[] | Buffer[]) => void + ): void; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function readdir(path: PathLike, callback: (err: NodeJS.ErrnoException | null, files: string[]) => void): void; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent. + */ + export function readdir( + path: PathLike, + options: ObjectEncodingOptions & { + withFileTypes: true; + }, + callback: (err: NodeJS.ErrnoException | null, files: Dirent[]) => void + ): void; + export namespace readdir { + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__( + path: PathLike, + options?: + | { + encoding: BufferEncoding | null; + withFileTypes?: false | undefined; + } + | BufferEncoding + | null + ): Promise; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__( + path: PathLike, + options: + | 'buffer' + | { + encoding: 'buffer'; + withFileTypes?: false | undefined; + } + ): Promise; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function __promisify__( + path: PathLike, + options?: + | (ObjectEncodingOptions & { + withFileTypes?: false | undefined; + }) + | BufferEncoding + | null + ): Promise; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent + */ + function __promisify__( + path: PathLike, + options: ObjectEncodingOptions & { + withFileTypes: true; + } + ): Promise; + } + /** + * Reads the contents of the directory. + * + * See the POSIX [`readdir(3)`](http://man7.org/linux/man-pages/man3/readdir.3.html) documentation for more details. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the filenames returned. If the `encoding` is set to `'buffer'`, + * the filenames returned will be passed as `Buffer` objects. + * + * If `options.withFileTypes` is set to `true`, the result will contain `fs.Dirent` objects. + * @since v0.1.21 + */ + export function readdirSync( + path: PathLike, + options?: + | { + encoding: BufferEncoding | null; + withFileTypes?: false | undefined; + } + | BufferEncoding + | null + ): string[]; + /** + * Synchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readdirSync( + path: PathLike, + options: + | { + encoding: 'buffer'; + withFileTypes?: false | undefined; + } + | 'buffer' + ): Buffer[]; + /** + * Synchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + export function readdirSync( + path: PathLike, + options?: + | (ObjectEncodingOptions & { + withFileTypes?: false | undefined; + }) + | BufferEncoding + | null + ): string[] | Buffer[]; + /** + * Synchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent. + */ + export function readdirSync( + path: PathLike, + options: ObjectEncodingOptions & { + withFileTypes: true; + } + ): Dirent[]; + /** + * Closes the file descriptor. No arguments other than a possible exception are + * given to the completion callback. + * + * Calling `fs.close()` on any file descriptor (`fd`) that is currently in use + * through any other `fs` operation may lead to undefined behavior. + * + * See the POSIX [`close(2)`](http://man7.org/linux/man-pages/man2/close.2.html) documentation for more detail. + * @since v0.0.2 + */ + export function close(fd: number, callback?: NoParamCallback): void; + export namespace close { + /** + * Asynchronous close(2) - close a file descriptor. + * @param fd A file descriptor. + */ + function __promisify__(fd: number): Promise; + } + /** + * Closes the file descriptor. Returns `undefined`. + * + * Calling `fs.closeSync()` on any file descriptor (`fd`) that is currently in use + * through any other `fs` operation may lead to undefined behavior. + * + * See the POSIX [`close(2)`](http://man7.org/linux/man-pages/man2/close.2.html) documentation for more detail. + * @since v0.1.21 + */ + export function closeSync(fd: number): void; + /** + * Asynchronous file open. See the POSIX [`open(2)`](http://man7.org/linux/man-pages/man2/open.2.html) documentation for more details. + * + * `mode` sets the file mode (permission and sticky bits), but only if the file was + * created. On Windows, only the write permission can be manipulated; see {@link chmod}. + * + * The callback gets two arguments `(err, fd)`. + * + * Some characters (`< > : " / \ | ? *`) are reserved under Windows as documented + * by [Naming Files, Paths, and Namespaces](https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file). Under NTFS, if the filename contains + * a colon, Node.js will open a file system stream, as described by [this MSDN page](https://docs.microsoft.com/en-us/windows/desktop/FileIO/using-streams). + * + * Functions based on `fs.open()` exhibit this behavior as well:`fs.writeFile()`, `fs.readFile()`, etc. + * @since v0.0.2 + * @param [flags='r'] See `support of file system `flags``. + * @param [mode=0o666] + */ + export function open(path: PathLike, flags: OpenMode | undefined, mode: Mode | undefined | null, callback: (err: NodeJS.ErrnoException | null, fd: number) => void): void; + /** + * Asynchronous open(2) - open and possibly create a file. If the file is created, its mode will be `0o666`. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param [flags='r'] See `support of file system `flags``. + */ + export function open(path: PathLike, flags: OpenMode | undefined, callback: (err: NodeJS.ErrnoException | null, fd: number) => void): void; + /** + * Asynchronous open(2) - open and possibly create a file. If the file is created, its mode will be `0o666`. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + */ + export function open(path: PathLike, callback: (err: NodeJS.ErrnoException | null, fd: number) => void): void; + + export namespace open { + /** + * Asynchronous open(2) - open and possibly create a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param mode A file mode. If a string is passed, it is parsed as an octal integer. If not supplied, defaults to `0o666`. + */ + function __promisify__(path: PathLike, flags: OpenMode, mode?: Mode | null): Promise; + } + /** + * Returns an integer representing the file descriptor. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link open}. + * @since v0.1.21 + * @param [flags='r'] + * @param [mode=0o666] + */ + export function openSync(path: PathLike, flags: OpenMode, mode?: Mode | null): number; + /** + * Change the file system timestamps of the object referenced by `path`. + * + * The `atime` and `mtime` arguments follow these rules: + * + * * Values can be either numbers representing Unix epoch time in seconds,`Date`s, or a numeric string like `'123456789.0'`. + * * If the value can not be converted to a number, or is `NaN`, `Infinity` or`-Infinity`, an `Error` will be thrown. + * @since v0.4.2 + */ + export function utimes(path: PathLike, atime: TimeLike, mtime: TimeLike, callback: NoParamCallback): void; + export namespace utimes { + /** + * Asynchronously change file timestamps of the file referenced by the supplied path. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function __promisify__(path: PathLike, atime: TimeLike, mtime: TimeLike): Promise; + } + /** + * Returns `undefined`. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link utimes}. + * @since v0.4.2 + */ + export function utimesSync(path: PathLike, atime: TimeLike, mtime: TimeLike): void; + /** + * Change the file system timestamps of the object referenced by the supplied file + * descriptor. See {@link utimes}. + * @since v0.4.2 + */ + export function futimes(fd: number, atime: TimeLike, mtime: TimeLike, callback: NoParamCallback): void; + export namespace futimes { + /** + * Asynchronously change file timestamps of the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param atime The last access time. If a string is provided, it will be coerced to number. + * @param mtime The last modified time. If a string is provided, it will be coerced to number. + */ + function __promisify__(fd: number, atime: TimeLike, mtime: TimeLike): Promise; + } + /** + * Synchronous version of {@link futimes}. Returns `undefined`. + * @since v0.4.2 + */ + export function futimesSync(fd: number, atime: TimeLike, mtime: TimeLike): void; + /** + * Request that all data for the open file descriptor is flushed to the storage + * device. The specific implementation is operating system and device specific. + * Refer to the POSIX [`fsync(2)`](http://man7.org/linux/man-pages/man2/fsync.2.html) documentation for more detail. No arguments other + * than a possible exception are given to the completion callback. + * @since v0.1.96 + */ + export function fsync(fd: number, callback: NoParamCallback): void; + export namespace fsync { + /** + * Asynchronous fsync(2) - synchronize a file's in-core state with the underlying storage device. + * @param fd A file descriptor. + */ + function __promisify__(fd: number): Promise; + } + /** + * Request that all data for the open file descriptor is flushed to the storage + * device. The specific implementation is operating system and device specific. + * Refer to the POSIX [`fsync(2)`](http://man7.org/linux/man-pages/man2/fsync.2.html) documentation for more detail. Returns `undefined`. + * @since v0.1.96 + */ + export function fsyncSync(fd: number): void; + /** + * Write `buffer` to the file specified by `fd`. + * + * `offset` determines the part of the buffer to be written, and `length` is + * an integer specifying the number of bytes to write. + * + * `position` refers to the offset from the beginning of the file where this data + * should be written. If `typeof position !== 'number'`, the data will be written + * at the current position. See [`pwrite(2)`](http://man7.org/linux/man-pages/man2/pwrite.2.html). + * + * The callback will be given three arguments `(err, bytesWritten, buffer)` where`bytesWritten` specifies how many _bytes_ were written from `buffer`. + * + * If this method is invoked as its `util.promisify()` ed version, it returns + * a promise for an `Object` with `bytesWritten` and `buffer` properties. + * + * It is unsafe to use `fs.write()` multiple times on the same file without waiting + * for the callback. For this scenario, {@link createWriteStream} is + * recommended. + * + * On Linux, positional writes don't work when the file is opened in append mode. + * The kernel ignores the position argument and always appends the data to + * the end of the file. + * @since v0.0.2 + */ + export function write( + fd: number, + buffer: TBuffer, + offset: number | undefined | null, + length: number | undefined | null, + position: number | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void + ): void; + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. + */ + export function write( + fd: number, + buffer: TBuffer, + offset: number | undefined | null, + length: number | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void + ): void; + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + */ + export function write( + fd: number, + buffer: TBuffer, + offset: number | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void + ): void; + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + */ + export function write(fd: number, buffer: TBuffer, callback: (err: NodeJS.ErrnoException | null, written: number, buffer: TBuffer) => void): void; + /** + * Asynchronously writes `string` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param string A string to write. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + * @param encoding The expected string encoding. + */ + export function write( + fd: number, + string: string, + position: number | undefined | null, + encoding: BufferEncoding | undefined | null, + callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void + ): void; + /** + * Asynchronously writes `string` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param string A string to write. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + */ + export function write(fd: number, string: string, position: number | undefined | null, callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void): void; + /** + * Asynchronously writes `string` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param string A string to write. + */ + export function write(fd: number, string: string, callback: (err: NodeJS.ErrnoException | null, written: number, str: string) => void): void; + export namespace write { + /** + * Asynchronously writes `buffer` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param offset The part of the buffer to be written. If not supplied, defaults to `0`. + * @param length The number of bytes to write. If not supplied, defaults to `buffer.length - offset`. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + */ + function __promisify__( + fd: number, + buffer?: TBuffer, + offset?: number, + length?: number, + position?: number | null + ): Promise<{ + bytesWritten: number; + buffer: TBuffer; + }>; + /** + * Asynchronously writes `string` to the file referenced by the supplied file descriptor. + * @param fd A file descriptor. + * @param string A string to write. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + * @param encoding The expected string encoding. + */ + function __promisify__( + fd: number, + string: string, + position?: number | null, + encoding?: BufferEncoding | null + ): Promise<{ + bytesWritten: number; + buffer: string; + }>; + } + /** + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link write}. + * @since v0.1.21 + * @return The number of bytes written. + */ + export function writeSync(fd: number, buffer: NodeJS.ArrayBufferView, offset?: number | null, length?: number | null, position?: number | null): number; + /** + * Synchronously writes `string` to the file referenced by the supplied file descriptor, returning the number of bytes written. + * @param fd A file descriptor. + * @param string A string to write. + * @param position The offset from the beginning of the file where this data should be written. If not supplied, defaults to the current position. + * @param encoding The expected string encoding. + */ + export function writeSync(fd: number, string: string, position?: number | null, encoding?: BufferEncoding | null): number; + export type ReadPosition = number | bigint; + export interface ReadSyncOptions { + /** + * @default 0 + */ + offset?: number | undefined; + /** + * @default `length of buffer` + */ + length?: number | undefined; + /** + * @default null + */ + position?: ReadPosition | null | undefined; + } + export interface ReadAsyncOptions extends ReadSyncOptions { + buffer?: TBuffer; + } + /** + * Read data from the file specified by `fd`. + * + * The callback is given the three arguments, `(err, bytesRead, buffer)`. + * + * If the file is not modified concurrently, the end-of-file is reached when the + * number of bytes read is zero. + * + * If this method is invoked as its `util.promisify()` ed version, it returns + * a promise for an `Object` with `bytesRead` and `buffer` properties. + * @since v0.0.2 + * @param buffer The buffer that the data will be written to. + * @param offset The position in `buffer` to write the data to. + * @param length The number of bytes to read. + * @param position Specifies where to begin reading from in the file. If `position` is `null` or `-1 `, data will be read from the current file position, and the file position will be updated. If + * `position` is an integer, the file position will be unchanged. + */ + export function read( + fd: number, + buffer: TBuffer, + offset: number, + length: number, + position: ReadPosition | null, + callback: (err: NodeJS.ErrnoException | null, bytesRead: number, buffer: TBuffer) => void + ): void; + /** + * Similar to the above `fs.read` function, this version takes an optional `options` object. + * If not otherwise specified in an `options` object, + * `buffer` defaults to `Buffer.alloc(16384)`, + * `offset` defaults to `0`, + * `length` defaults to `buffer.byteLength`, `- offset` as of Node 17.6.0 + * `position` defaults to `null` + * @since v12.17.0, 13.11.0 + */ + export function read( + fd: number, + options: ReadAsyncOptions, + callback: (err: NodeJS.ErrnoException | null, bytesRead: number, buffer: TBuffer) => void + ): void; + export function read(fd: number, callback: (err: NodeJS.ErrnoException | null, bytesRead: number, buffer: NodeJS.ArrayBufferView) => void): void; + export namespace read { + /** + * @param fd A file descriptor. + * @param buffer The buffer that the data will be written to. + * @param offset The offset in the buffer at which to start writing. + * @param length The number of bytes to read. + * @param position The offset from the beginning of the file from which data should be read. If `null`, data will be read from the current position. + */ + function __promisify__( + fd: number, + buffer: TBuffer, + offset: number, + length: number, + position: number | null + ): Promise<{ + bytesRead: number; + buffer: TBuffer; + }>; + function __promisify__( + fd: number, + options: ReadAsyncOptions + ): Promise<{ + bytesRead: number; + buffer: TBuffer; + }>; + function __promisify__(fd: number): Promise<{ + bytesRead: number; + buffer: NodeJS.ArrayBufferView; + }>; + } + /** + * Returns the number of `bytesRead`. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link read}. + * @since v0.1.21 + */ + export function readSync(fd: number, buffer: NodeJS.ArrayBufferView, offset: number, length: number, position: ReadPosition | null): number; + /** + * Similar to the above `fs.readSync` function, this version takes an optional `options` object. + * If no `options` object is specified, it will default with the above values. + */ + export function readSync(fd: number, buffer: NodeJS.ArrayBufferView, opts?: ReadSyncOptions): number; + /** + * Asynchronously reads the entire contents of a file. + * + * ```js + * import { readFile } from 'fs'; + * + * readFile('/etc/passwd', (err, data) => { + * if (err) throw err; + * console.log(data); + * }); + * ``` + * + * The callback is passed two arguments `(err, data)`, where `data` is the + * contents of the file. + * + * If no encoding is specified, then the raw buffer is returned. + * + * If `options` is a string, then it specifies the encoding: + * + * ```js + * import { readFile } from 'fs'; + * + * readFile('/etc/passwd', 'utf8', callback); + * ``` + * + * When the path is a directory, the behavior of `fs.readFile()` and {@link readFileSync} is platform-specific. On macOS, Linux, and Windows, an + * error will be returned. On FreeBSD, a representation of the directory's contents + * will be returned. + * + * ```js + * import { readFile } from 'fs'; + * + * // macOS, Linux, and Windows + * readFile('', (err, data) => { + * // => [Error: EISDIR: illegal operation on a directory, read ] + * }); + * + * // FreeBSD + * readFile('', (err, data) => { + * // => null, + * }); + * ``` + * + * It is possible to abort an ongoing request using an `AbortSignal`. If a + * request is aborted the callback is called with an `AbortError`: + * + * ```js + * import { readFile } from 'fs'; + * + * const controller = new AbortController(); + * const signal = controller.signal; + * readFile(fileInfo[0].name, { signal }, (err, buf) => { + * // ... + * }); + * // When you want to abort the request + * controller.abort(); + * ``` + * + * The `fs.readFile()` function buffers the entire file. To minimize memory costs, + * when possible prefer streaming via `fs.createReadStream()`. + * + * Aborting an ongoing request does not abort individual operating + * system requests but rather the internal buffering `fs.readFile` performs. + * @since v0.1.29 + * @param path filename or file descriptor + */ + export function readFile( + path: PathOrFileDescriptor, + options: + | ({ + encoding?: null | undefined; + flag?: string | undefined; + } & Abortable) + | undefined + | null, + callback: (err: NodeJS.ErrnoException | null, data: Buffer) => void + ): void; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + export function readFile( + path: PathOrFileDescriptor, + options: + | ({ + encoding: BufferEncoding; + flag?: string | undefined; + } & Abortable) + | BufferEncoding, + callback: (err: NodeJS.ErrnoException | null, data: string) => void + ): void; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + export function readFile( + path: PathOrFileDescriptor, + options: + | (ObjectEncodingOptions & { + flag?: string | undefined; + } & Abortable) + | BufferEncoding + | undefined + | null, + callback: (err: NodeJS.ErrnoException | null, data: string | Buffer) => void + ): void; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + */ + export function readFile(path: PathOrFileDescriptor, callback: (err: NodeJS.ErrnoException | null, data: Buffer) => void): void; + export namespace readFile { + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function __promisify__( + path: PathOrFileDescriptor, + options?: { + encoding?: null | undefined; + flag?: string | undefined; + } | null + ): Promise; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function __promisify__( + path: PathOrFileDescriptor, + options: + | { + encoding: BufferEncoding; + flag?: string | undefined; + } + | BufferEncoding + ): Promise; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function __promisify__( + path: PathOrFileDescriptor, + options?: + | (ObjectEncodingOptions & { + flag?: string | undefined; + }) + | BufferEncoding + | null + ): Promise; + } + /** + * Returns the contents of the `path`. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link readFile}. + * + * If the `encoding` option is specified then this function returns a + * string. Otherwise it returns a buffer. + * + * Similar to {@link readFile}, when the path is a directory, the behavior of`fs.readFileSync()` is platform-specific. + * + * ```js + * import { readFileSync } from 'fs'; + * + * // macOS, Linux, and Windows + * readFileSync(''); + * // => [Error: EISDIR: illegal operation on a directory, read ] + * + * // FreeBSD + * readFileSync(''); // => + * ``` + * @since v0.1.8 + * @param path filename or file descriptor + */ + export function readFileSync( + path: PathOrFileDescriptor, + options?: { + encoding?: null | undefined; + flag?: string | undefined; + } | null + ): Buffer; + /** + * Synchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + export function readFileSync( + path: PathOrFileDescriptor, + options: + | { + encoding: BufferEncoding; + flag?: string | undefined; + } + | BufferEncoding + ): string; + /** + * Synchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param options Either the encoding for the result, or an object that contains the encoding and an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + export function readFileSync( + path: PathOrFileDescriptor, + options?: + | (ObjectEncodingOptions & { + flag?: string | undefined; + }) + | BufferEncoding + | null + ): string | Buffer; + export type WriteFileOptions = + | (ObjectEncodingOptions & + Abortable & { + mode?: Mode | undefined; + flag?: string | undefined; + }) + | BufferEncoding + | null; + /** + * When `file` is a filename, asynchronously writes data to the file, replacing the + * file if it already exists. `data` can be a string or a buffer. + * + * When `file` is a file descriptor, the behavior is similar to calling`fs.write()` directly (which is recommended). See the notes below on using + * a file descriptor. + * + * The `encoding` option is ignored if `data` is a buffer. + * + * The `mode` option only affects the newly created file. See {@link open} for more details. + * + * ```js + * import { writeFile } from 'fs'; + * import { Buffer } from 'buffer'; + * + * const data = new Uint8Array(Buffer.from('Hello Node.js')); + * writeFile('message.txt', data, (err) => { + * if (err) throw err; + * console.log('The file has been saved!'); + * }); + * ``` + * + * If `options` is a string, then it specifies the encoding: + * + * ```js + * import { writeFile } from 'fs'; + * + * writeFile('message.txt', 'Hello Node.js', 'utf8', callback); + * ``` + * + * It is unsafe to use `fs.writeFile()` multiple times on the same file without + * waiting for the callback. For this scenario, {@link createWriteStream} is + * recommended. + * + * Similarly to `fs.readFile` \- `fs.writeFile` is a convenience method that + * performs multiple `write` calls internally to write the buffer passed to it. + * For performance sensitive code consider using {@link createWriteStream}. + * + * It is possible to use an `AbortSignal` to cancel an `fs.writeFile()`. + * Cancelation is "best effort", and some amount of data is likely still + * to be written. + * + * ```js + * import { writeFile } from 'fs'; + * import { Buffer } from 'buffer'; + * + * const controller = new AbortController(); + * const { signal } = controller; + * const data = new Uint8Array(Buffer.from('Hello Node.js')); + * writeFile('message.txt', data, { signal }, (err) => { + * // When a request is aborted - the callback is called with an AbortError + * }); + * // When the request should be aborted + * controller.abort(); + * ``` + * + * Aborting an ongoing request does not abort individual operating + * system requests but rather the internal buffering `fs.writeFile` performs. + * @since v0.1.29 + * @param file filename or file descriptor + */ + export function writeFile(file: PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, options: WriteFileOptions, callback: NoParamCallback): void; + /** + * Asynchronously writes data to a file, replacing the file if it already exists. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + */ + export function writeFile(path: PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, callback: NoParamCallback): void; + export namespace writeFile { + /** + * Asynchronously writes data to a file, replacing the file if it already exists. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'w'` is used. + */ + function __promisify__(path: PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, options?: WriteFileOptions): Promise; + } + /** + * Returns `undefined`. + * + * The `mode` option only affects the newly created file. See {@link open} for more details. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link writeFile}. + * @since v0.1.29 + * @param file filename or file descriptor + */ + export function writeFileSync(file: PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, options?: WriteFileOptions): void; + /** + * Asynchronously append data to a file, creating the file if it does not yet + * exist. `data` can be a string or a `Buffer`. + * + * The `mode` option only affects the newly created file. See {@link open} for more details. + * + * ```js + * import { appendFile } from 'fs'; + * + * appendFile('message.txt', 'data to append', (err) => { + * if (err) throw err; + * console.log('The "data to append" was appended to file!'); + * }); + * ``` + * + * If `options` is a string, then it specifies the encoding: + * + * ```js + * import { appendFile } from 'fs'; + * + * appendFile('message.txt', 'data to append', 'utf8', callback); + * ``` + * + * The `path` may be specified as a numeric file descriptor that has been opened + * for appending (using `fs.open()` or `fs.openSync()`). The file descriptor will + * not be closed automatically. + * + * ```js + * import { open, close, appendFile } from 'fs'; + * + * function closeFd(fd) { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * + * open('message.txt', 'a', (err, fd) => { + * if (err) throw err; + * + * try { + * appendFile(fd, 'data to append', 'utf8', (err) => { + * closeFd(fd); + * if (err) throw err; + * }); + * } catch (err) { + * closeFd(fd); + * throw err; + * } + * }); + * ``` + * @since v0.6.7 + * @param path filename or file descriptor + */ + export function appendFile(path: PathOrFileDescriptor, data: string | Uint8Array, options: WriteFileOptions, callback: NoParamCallback): void; + /** + * Asynchronously append data to a file, creating the file if it does not exist. + * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + */ + export function appendFile(file: PathOrFileDescriptor, data: string | Uint8Array, callback: NoParamCallback): void; + export namespace appendFile { + /** + * Asynchronously append data to a file, creating the file if it does not exist. + * @param file A path to a file. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + * If a file descriptor is provided, the underlying file will _not_ be closed automatically. + * @param data The data to write. If something other than a Buffer or Uint8Array is provided, the value is coerced to a string. + * @param options Either the encoding for the file, or an object optionally specifying the encoding, file mode, and flag. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `mode` is not supplied, the default of `0o666` is used. + * If `mode` is a string, it is parsed as an octal integer. + * If `flag` is not supplied, the default of `'a'` is used. + */ + function __promisify__(file: PathOrFileDescriptor, data: string | Uint8Array, options?: WriteFileOptions): Promise; + } + /** + * Synchronously append data to a file, creating the file if it does not yet + * exist. `data` can be a string or a `Buffer`. + * + * The `mode` option only affects the newly created file. See {@link open} for more details. + * + * ```js + * import { appendFileSync } from 'fs'; + * + * try { + * appendFileSync('message.txt', 'data to append'); + * console.log('The "data to append" was appended to file!'); + * } catch (err) { + * // Handle the error + * } + * ``` + * + * If `options` is a string, then it specifies the encoding: + * + * ```js + * import { appendFileSync } from 'fs'; + * + * appendFileSync('message.txt', 'data to append', 'utf8'); + * ``` + * + * The `path` may be specified as a numeric file descriptor that has been opened + * for appending (using `fs.open()` or `fs.openSync()`). The file descriptor will + * not be closed automatically. + * + * ```js + * import { openSync, closeSync, appendFileSync } from 'fs'; + * + * let fd; + * + * try { + * fd = openSync('message.txt', 'a'); + * appendFileSync(fd, 'data to append', 'utf8'); + * } catch (err) { + * // Handle the error + * } finally { + * if (fd !== undefined) + * closeSync(fd); + * } + * ``` + * @since v0.6.7 + * @param path filename or file descriptor + */ + export function appendFileSync(path: PathOrFileDescriptor, data: string | Uint8Array, options?: WriteFileOptions): void; + /** + * Watch for changes on `filename`. The callback `listener` will be called each + * time the file is accessed. + * + * The `options` argument may be omitted. If provided, it should be an object. The`options` object may contain a boolean named `persistent` that indicates + * whether the process should continue to run as long as files are being watched. + * The `options` object may specify an `interval` property indicating how often the + * target should be polled in milliseconds. + * + * The `listener` gets two arguments the current stat object and the previous + * stat object: + * + * ```js + * import { watchFile } from 'fs'; + * + * watchFile('message.text', (curr, prev) => { + * console.log(`the current mtime is: ${curr.mtime}`); + * console.log(`the previous mtime was: ${prev.mtime}`); + * }); + * ``` + * + * These stat objects are instances of `fs.Stat`. If the `bigint` option is `true`, + * the numeric values in these objects are specified as `BigInt`s. + * + * To be notified when the file was modified, not just accessed, it is necessary + * to compare `curr.mtimeMs` and `prev.mtimeMs`. + * + * When an `fs.watchFile` operation results in an `ENOENT` error, it + * will invoke the listener once, with all the fields zeroed (or, for dates, the + * Unix Epoch). If the file is created later on, the listener will be called + * again, with the latest stat objects. This is a change in functionality since + * v0.10. + * + * Using {@link watch} is more efficient than `fs.watchFile` and`fs.unwatchFile`. `fs.watch` should be used instead of `fs.watchFile` and`fs.unwatchFile` when possible. + * + * When a file being watched by `fs.watchFile()` disappears and reappears, + * then the contents of `previous` in the second callback event (the file's + * reappearance) will be the same as the contents of `previous` in the first + * callback event (its disappearance). + * + * This happens when: + * + * * the file is deleted, followed by a restore + * * the file is renamed and then renamed a second time back to its original name + * @since v0.1.31 + */ + export interface WatchFileOptions { + bigint?: boolean | undefined; + persistent?: boolean | undefined; + interval?: number | undefined; + } + /** + * Watch for changes on `filename`. The callback `listener` will be called each + * time the file is accessed. + * + * The `options` argument may be omitted. If provided, it should be an object. The`options` object may contain a boolean named `persistent` that indicates + * whether the process should continue to run as long as files are being watched. + * The `options` object may specify an `interval` property indicating how often the + * target should be polled in milliseconds. + * + * The `listener` gets two arguments the current stat object and the previous + * stat object: + * + * ```js + * import { watchFile } from 'fs'; + * + * watchFile('message.text', (curr, prev) => { + * console.log(`the current mtime is: ${curr.mtime}`); + * console.log(`the previous mtime was: ${prev.mtime}`); + * }); + * ``` + * + * These stat objects are instances of `fs.Stat`. If the `bigint` option is `true`, + * the numeric values in these objects are specified as `BigInt`s. + * + * To be notified when the file was modified, not just accessed, it is necessary + * to compare `curr.mtimeMs` and `prev.mtimeMs`. + * + * When an `fs.watchFile` operation results in an `ENOENT` error, it + * will invoke the listener once, with all the fields zeroed (or, for dates, the + * Unix Epoch). If the file is created later on, the listener will be called + * again, with the latest stat objects. This is a change in functionality since + * v0.10. + * + * Using {@link watch} is more efficient than `fs.watchFile` and`fs.unwatchFile`. `fs.watch` should be used instead of `fs.watchFile` and`fs.unwatchFile` when possible. + * + * When a file being watched by `fs.watchFile()` disappears and reappears, + * then the contents of `previous` in the second callback event (the file's + * reappearance) will be the same as the contents of `previous` in the first + * callback event (its disappearance). + * + * This happens when: + * + * * the file is deleted, followed by a restore + * * the file is renamed and then renamed a second time back to its original name + * @since v0.1.31 + */ + export function watchFile( + filename: PathLike, + options: + | (WatchFileOptions & { + bigint?: false | undefined; + }) + | undefined, + listener: (curr: Stats, prev: Stats) => void + ): StatWatcher; + export function watchFile( + filename: PathLike, + options: + | (WatchFileOptions & { + bigint: true; + }) + | undefined, + listener: (curr: BigIntStats, prev: BigIntStats) => void + ): StatWatcher; + /** + * Watch for changes on `filename`. The callback `listener` will be called each time the file is accessed. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + */ + export function watchFile(filename: PathLike, listener: (curr: Stats, prev: Stats) => void): StatWatcher; + /** + * Stop watching for changes on `filename`. If `listener` is specified, only that + * particular listener is removed. Otherwise, _all_ listeners are removed, + * effectively stopping watching of `filename`. + * + * Calling `fs.unwatchFile()` with a filename that is not being watched is a + * no-op, not an error. + * + * Using {@link watch} is more efficient than `fs.watchFile()` and`fs.unwatchFile()`. `fs.watch()` should be used instead of `fs.watchFile()`and `fs.unwatchFile()` when possible. + * @since v0.1.31 + * @param listener Optional, a listener previously attached using `fs.watchFile()` + */ + export function unwatchFile(filename: PathLike, listener?: (curr: Stats, prev: Stats) => void): void; + export interface WatchOptions extends Abortable { + encoding?: BufferEncoding | 'buffer' | undefined; + persistent?: boolean | undefined; + recursive?: boolean | undefined; + } + export type WatchEventType = 'rename' | 'change'; + export type WatchListener = (event: WatchEventType, filename: T) => void; + /** + * Watch for changes on `filename`, where `filename` is either a file or a + * directory. + * + * The second argument is optional. If `options` is provided as a string, it + * specifies the `encoding`. Otherwise `options` should be passed as an object. + * + * The listener callback gets two arguments `(eventType, filename)`. `eventType`is either `'rename'` or `'change'`, and `filename` is the name of the file + * which triggered the event. + * + * On most platforms, `'rename'` is emitted whenever a filename appears or + * disappears in the directory. + * + * The listener callback is attached to the `'change'` event fired by `fs.FSWatcher`, but it is not the same thing as the `'change'` value of`eventType`. + * + * If a `signal` is passed, aborting the corresponding AbortController will close + * the returned `fs.FSWatcher`. + * @since v0.5.10 + * @param listener + */ + export function watch( + filename: PathLike, + options: + | (WatchOptions & { + encoding: 'buffer'; + }) + | 'buffer', + listener?: WatchListener + ): FSWatcher; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + export function watch(filename: PathLike, options?: WatchOptions | BufferEncoding | null, listener?: WatchListener): FSWatcher; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + export function watch(filename: PathLike, options: WatchOptions | string, listener?: WatchListener): FSWatcher; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + */ + export function watch(filename: PathLike, listener?: WatchListener): FSWatcher; + /** + * Test whether or not the given path exists by checking with the file system. + * Then call the `callback` argument with either true or false: + * + * ```js + * import { exists } from 'fs'; + * + * exists('/etc/passwd', (e) => { + * console.log(e ? 'it exists' : 'no passwd!'); + * }); + * ``` + * + * **The parameters for this callback are not consistent with other Node.js** + * **callbacks.** Normally, the first parameter to a Node.js callback is an `err`parameter, optionally followed by other parameters. The `fs.exists()` callback + * has only one boolean parameter. This is one reason `fs.access()` is recommended + * instead of `fs.exists()`. + * + * Using `fs.exists()` to check for the existence of a file before calling`fs.open()`, `fs.readFile()` or `fs.writeFile()` is not recommended. Doing + * so introduces a race condition, since other processes may change the file's + * state between the two calls. Instead, user code should open/read/write the + * file directly and handle the error raised if the file does not exist. + * + * **write (NOT RECOMMENDED)** + * + * ```js + * import { exists, open, close } from 'fs'; + * + * exists('myfile', (e) => { + * if (e) { + * console.error('myfile already exists'); + * } else { + * open('myfile', 'wx', (err, fd) => { + * if (err) throw err; + * + * try { + * writeMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * } + * }); + * ``` + * + * **write (RECOMMENDED)** + * + * ```js + * import { open, close } from 'fs'; + * open('myfile', 'wx', (err, fd) => { + * if (err) { + * if (err.code === 'EEXIST') { + * console.error('myfile already exists'); + * return; + * } + * + * throw err; + * } + * + * try { + * writeMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * ``` + * + * **read (NOT RECOMMENDED)** + * + * ```js + * import { open, close, exists } from 'fs'; + * + * exists('myfile', (e) => { + * if (e) { + * open('myfile', 'r', (err, fd) => { + * if (err) throw err; + * + * try { + * readMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * } else { + * console.error('myfile does not exist'); + * } + * }); + * ``` + * + * **read (RECOMMENDED)** + * + * ```js + * import { open, close } from 'fs'; + * + * open('myfile', 'r', (err, fd) => { + * if (err) { + * if (err.code === 'ENOENT') { + * console.error('myfile does not exist'); + * return; + * } + * + * throw err; + * } + * + * try { + * readMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * ``` + * + * The "not recommended" examples above check for existence and then use the + * file; the "recommended" examples are better because they use the file directly + * and handle the error, if any. + * + * In general, check for the existence of a file only if the file won’t be + * used directly, for example when its existence is a signal from another + * process. + * @since v0.0.2 + * @deprecated Since v1.0.0 - Use {@link stat} or {@link access} instead. + */ + export function exists(path: PathLike, callback: (exists: boolean) => void): void; + /** @deprecated */ + export namespace exists { + /** + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function __promisify__(path: PathLike): Promise; + } + /** + * Returns `true` if the path exists, `false` otherwise. + * + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link exists}. + * + * `fs.exists()` is deprecated, but `fs.existsSync()` is not. The `callback`parameter to `fs.exists()` accepts parameters that are inconsistent with other + * Node.js callbacks. `fs.existsSync()` does not use a callback. + * + * ```js + * import { existsSync } from 'fs'; + * + * if (existsSync('/etc/passwd')) + * console.log('The path exists.'); + * ``` + * @since v0.1.21 + */ + export function existsSync(path: PathLike): boolean; + export namespace constants { + // File Access Constants + /** Constant for fs.access(). File is visible to the calling process. */ + const F_OK: number; + /** Constant for fs.access(). File can be read by the calling process. */ + const R_OK: number; + /** Constant for fs.access(). File can be written by the calling process. */ + const W_OK: number; + /** Constant for fs.access(). File can be executed by the calling process. */ + const X_OK: number; + // File Copy Constants + /** Constant for fs.copyFile. Flag indicating the destination file should not be overwritten if it already exists. */ + const COPYFILE_EXCL: number; + /** + * Constant for fs.copyFile. copy operation will attempt to create a copy-on-write reflink. + * If the underlying platform does not support copy-on-write, then a fallback copy mechanism is used. + */ + const COPYFILE_FICLONE: number; + /** + * Constant for fs.copyFile. Copy operation will attempt to create a copy-on-write reflink. + * If the underlying platform does not support copy-on-write, then the operation will fail with an error. + */ + const COPYFILE_FICLONE_FORCE: number; + // File Open Constants + /** Constant for fs.open(). Flag indicating to open a file for read-only access. */ + const O_RDONLY: number; + /** Constant for fs.open(). Flag indicating to open a file for write-only access. */ + const O_WRONLY: number; + /** Constant for fs.open(). Flag indicating to open a file for read-write access. */ + const O_RDWR: number; + /** Constant for fs.open(). Flag indicating to create the file if it does not already exist. */ + const O_CREAT: number; + /** Constant for fs.open(). Flag indicating that opening a file should fail if the O_CREAT flag is set and the file already exists. */ + const O_EXCL: number; + /** + * Constant for fs.open(). Flag indicating that if path identifies a terminal device, + * opening the path shall not cause that terminal to become the controlling terminal for the process + * (if the process does not already have one). + */ + const O_NOCTTY: number; + /** Constant for fs.open(). Flag indicating that if the file exists and is a regular file, and the file is opened successfully for write access, its length shall be truncated to zero. */ + const O_TRUNC: number; + /** Constant for fs.open(). Flag indicating that data will be appended to the end of the file. */ + const O_APPEND: number; + /** Constant for fs.open(). Flag indicating that the open should fail if the path is not a directory. */ + const O_DIRECTORY: number; + /** + * constant for fs.open(). + * Flag indicating reading accesses to the file system will no longer result in + * an update to the atime information associated with the file. + * This flag is available on Linux operating systems only. + */ + const O_NOATIME: number; + /** Constant for fs.open(). Flag indicating that the open should fail if the path is a symbolic link. */ + const O_NOFOLLOW: number; + /** Constant for fs.open(). Flag indicating that the file is opened for synchronous I/O. */ + const O_SYNC: number; + /** Constant for fs.open(). Flag indicating that the file is opened for synchronous I/O with write operations waiting for data integrity. */ + const O_DSYNC: number; + /** Constant for fs.open(). Flag indicating to open the symbolic link itself rather than the resource it is pointing to. */ + const O_SYMLINK: number; + /** Constant for fs.open(). When set, an attempt will be made to minimize caching effects of file I/O. */ + const O_DIRECT: number; + /** Constant for fs.open(). Flag indicating to open the file in nonblocking mode when possible. */ + const O_NONBLOCK: number; + // File Type Constants + /** Constant for fs.Stats mode property for determining a file's type. Bit mask used to extract the file type code. */ + const S_IFMT: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a regular file. */ + const S_IFREG: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a directory. */ + const S_IFDIR: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a character-oriented device file. */ + const S_IFCHR: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a block-oriented device file. */ + const S_IFBLK: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a FIFO/pipe. */ + const S_IFIFO: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a symbolic link. */ + const S_IFLNK: number; + /** Constant for fs.Stats mode property for determining a file's type. File type constant for a socket. */ + const S_IFSOCK: number; + // File Mode Constants + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by owner. */ + const S_IRWXU: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by owner. */ + const S_IRUSR: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by owner. */ + const S_IWUSR: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by owner. */ + const S_IXUSR: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by group. */ + const S_IRWXG: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by group. */ + const S_IRGRP: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by group. */ + const S_IWGRP: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by group. */ + const S_IXGRP: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable, writable and executable by others. */ + const S_IRWXO: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating readable by others. */ + const S_IROTH: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating writable by others. */ + const S_IWOTH: number; + /** Constant for fs.Stats mode property for determining access permissions for a file. File mode indicating executable by others. */ + const S_IXOTH: number; + /** + * When set, a memory file mapping is used to access the file. This flag + * is available on Windows operating systems only. On other operating systems, + * this flag is ignored. + */ + const UV_FS_O_FILEMAP: number; + } + /** + * Tests a user's permissions for the file or directory specified by `path`. + * The `mode` argument is an optional integer that specifies the accessibility + * checks to be performed. `mode` should be either the value `fs.constants.F_OK`or a mask consisting of the bitwise OR of any of `fs.constants.R_OK`,`fs.constants.W_OK`, and `fs.constants.X_OK` + * (e.g.`fs.constants.W_OK | fs.constants.R_OK`). Check `File access constants` for + * possible values of `mode`. + * + * The final argument, `callback`, is a callback function that is invoked with + * a possible error argument. If any of the accessibility checks fail, the error + * argument will be an `Error` object. The following examples check if`package.json` exists, and if it is readable or writable. + * + * ```js + * import { access, constants } from 'fs'; + * + * const file = 'package.json'; + * + * // Check if the file exists in the current directory. + * access(file, constants.F_OK, (err) => { + * console.log(`${file} ${err ? 'does not exist' : 'exists'}`); + * }); + * + * // Check if the file is readable. + * access(file, constants.R_OK, (err) => { + * console.log(`${file} ${err ? 'is not readable' : 'is readable'}`); + * }); + * + * // Check if the file is writable. + * access(file, constants.W_OK, (err) => { + * console.log(`${file} ${err ? 'is not writable' : 'is writable'}`); + * }); + * + * // Check if the file is readable and writable. + * access(file, constants.R_OK | constants.W_OK, (err) => { + * console.log(`${file} ${err ? 'is not' : 'is'} readable and writable`); + * }); + * ``` + * + * Do not use `fs.access()` to check for the accessibility of a file before calling`fs.open()`, `fs.readFile()` or `fs.writeFile()`. Doing + * so introduces a race condition, since other processes may change the file's + * state between the two calls. Instead, user code should open/read/write the + * file directly and handle the error raised if the file is not accessible. + * + * **write (NOT RECOMMENDED)** + * + * ```js + * import { access, open, close } from 'fs'; + * + * access('myfile', (err) => { + * if (!err) { + * console.error('myfile already exists'); + * return; + * } + * + * open('myfile', 'wx', (err, fd) => { + * if (err) throw err; + * + * try { + * writeMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * }); + * ``` + * + * **write (RECOMMENDED)** + * + * ```js + * import { open, close } from 'fs'; + * + * open('myfile', 'wx', (err, fd) => { + * if (err) { + * if (err.code === 'EEXIST') { + * console.error('myfile already exists'); + * return; + * } + * + * throw err; + * } + * + * try { + * writeMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * ``` + * + * **read (NOT RECOMMENDED)** + * + * ```js + * import { access, open, close } from 'fs'; + * access('myfile', (err) => { + * if (err) { + * if (err.code === 'ENOENT') { + * console.error('myfile does not exist'); + * return; + * } + * + * throw err; + * } + * + * open('myfile', 'r', (err, fd) => { + * if (err) throw err; + * + * try { + * readMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * }); + * ``` + * + * **read (RECOMMENDED)** + * + * ```js + * import { open, close } from 'fs'; + * + * open('myfile', 'r', (err, fd) => { + * if (err) { + * if (err.code === 'ENOENT') { + * console.error('myfile does not exist'); + * return; + * } + * + * throw err; + * } + * + * try { + * readMyData(fd); + * } finally { + * close(fd, (err) => { + * if (err) throw err; + * }); + * } + * }); + * ``` + * + * The "not recommended" examples above check for accessibility and then use the + * file; the "recommended" examples are better because they use the file directly + * and handle the error, if any. + * + * In general, check for the accessibility of a file only if the file will not be + * used directly, for example when its accessibility is a signal from another + * process. + * + * On Windows, access-control policies (ACLs) on a directory may limit access to + * a file or directory. The `fs.access()` function, however, does not check the + * ACL and therefore may report that a path is accessible even if the ACL restricts + * the user from reading or writing to it. + * @since v0.11.15 + * @param [mode=fs.constants.F_OK] + */ + export function access(path: PathLike, mode: number | undefined, callback: NoParamCallback): void; + /** + * Asynchronously tests a user's permissions for the file specified by path. + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + */ + export function access(path: PathLike, callback: NoParamCallback): void; + export namespace access { + /** + * Asynchronously tests a user's permissions for the file specified by path. + * @param path A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * URL support is _experimental_. + */ + function __promisify__(path: PathLike, mode?: number): Promise; + } + /** + * Synchronously tests a user's permissions for the file or directory specified + * by `path`. The `mode` argument is an optional integer that specifies the + * accessibility checks to be performed. `mode` should be either the value`fs.constants.F_OK` or a mask consisting of the bitwise OR of any of`fs.constants.R_OK`, `fs.constants.W_OK`, and + * `fs.constants.X_OK` (e.g.`fs.constants.W_OK | fs.constants.R_OK`). Check `File access constants` for + * possible values of `mode`. + * + * If any of the accessibility checks fail, an `Error` will be thrown. Otherwise, + * the method will return `undefined`. + * + * ```js + * import { accessSync, constants } from 'fs'; + * + * try { + * accessSync('etc/passwd', constants.R_OK | constants.W_OK); + * console.log('can read/write'); + * } catch (err) { + * console.error('no access!'); + * } + * ``` + * @since v0.11.15 + * @param [mode=fs.constants.F_OK] + */ + export function accessSync(path: PathLike, mode?: number): void; + interface StreamOptions { + flags?: string | undefined; + encoding?: BufferEncoding | undefined; + fd?: number | promises.FileHandle | undefined; + mode?: number | undefined; + autoClose?: boolean | undefined; + /** + * @default false + */ + emitClose?: boolean | undefined; + start?: number | undefined; + highWaterMark?: number | undefined; + } + interface ReadStreamOptions extends StreamOptions { + end?: number | undefined; + } + /** + * Unlike the 16 kb default `highWaterMark` for a `stream.Readable`, the stream + * returned by this method has a default `highWaterMark` of 64 kb. + * + * `options` can include `start` and `end` values to read a range of bytes from + * the file instead of the entire file. Both `start` and `end` are inclusive and + * start counting at 0, allowed values are in the + * \[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\] range. If `fd` is specified and `start` is + * omitted or `undefined`, `fs.createReadStream()` reads sequentially from the + * current file position. The `encoding` can be any one of those accepted by `Buffer`. + * + * If `fd` is specified, `ReadStream` will ignore the `path` argument and will use + * the specified file descriptor. This means that no `'open'` event will be + * emitted. `fd` should be blocking; non-blocking `fd`s should be passed to `net.Socket`. + * + * If `fd` points to a character device that only supports blocking reads + * (such as keyboard or sound card), read operations do not finish until data is + * available. This can prevent the process from exiting and the stream from + * closing naturally. + * + * By default, the stream will emit a `'close'` event after it has been + * destroyed. Set the `emitClose` option to `false` to change this behavior. + * + * By providing the `fs` option, it is possible to override the corresponding `fs`implementations for `open`, `read`, and `close`. When providing the `fs` option, + * an override for `read` is required. If no `fd` is provided, an override for`open` is also required. If `autoClose` is `true`, an override for `close` is + * also required. + * + * ```js + * import { createReadStream } from 'fs'; + * + * // Create a stream from some character device. + * const stream = createReadStream('/dev/input/event0'); + * setTimeout(() => { + * stream.close(); // This may not close the stream. + * // Artificially marking end-of-stream, as if the underlying resource had + * // indicated end-of-file by itself, allows the stream to close. + * // This does not cancel pending read operations, and if there is such an + * // operation, the process may still not be able to exit successfully + * // until it finishes. + * stream.push(null); + * stream.read(0); + * }, 100); + * ``` + * + * If `autoClose` is false, then the file descriptor won't be closed, even if + * there's an error. It is the application's responsibility to close it and make + * sure there's no file descriptor leak. If `autoClose` is set to true (default + * behavior), on `'error'` or `'end'` the file descriptor will be closed + * automatically. + * + * `mode` sets the file mode (permission and sticky bits), but only if the + * file was created. + * + * An example to read the last 10 bytes of a file which is 100 bytes long: + * + * ```js + * import { createReadStream } from 'fs'; + * + * createReadStream('sample.txt', { start: 90, end: 99 }); + * ``` + * + * If `options` is a string, then it specifies the encoding. + * @since v0.1.31 + */ + export function createReadStream(path: PathLike, options?: BufferEncoding | ReadStreamOptions): ReadStream; + /** + * `options` may also include a `start` option to allow writing data at some + * position past the beginning of the file, allowed values are in the + * \[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\] range. Modifying a file rather than + * replacing it may require the `flags` option to be set to `r+` rather than the + * default `w`. The `encoding` can be any one of those accepted by `Buffer`. + * + * If `autoClose` is set to true (default behavior) on `'error'` or `'finish'`the file descriptor will be closed automatically. If `autoClose` is false, + * then the file descriptor won't be closed, even if there's an error. + * It is the application's responsibility to close it and make sure there's no + * file descriptor leak. + * + * By default, the stream will emit a `'close'` event after it has been + * destroyed. Set the `emitClose` option to `false` to change this behavior. + * + * By providing the `fs` option it is possible to override the corresponding `fs`implementations for `open`, `write`, `writev` and `close`. Overriding `write()`without `writev()` can reduce + * performance as some optimizations (`_writev()`) + * will be disabled. When providing the `fs` option, overrides for at least one of`write` and `writev` are required. If no `fd` option is supplied, an override + * for `open` is also required. If `autoClose` is `true`, an override for `close`is also required. + * + * Like `fs.ReadStream`, if `fd` is specified, `fs.WriteStream` will ignore the`path` argument and will use the specified file descriptor. This means that no`'open'` event will be + * emitted. `fd` should be blocking; non-blocking `fd`s + * should be passed to `net.Socket`. + * + * If `options` is a string, then it specifies the encoding. + * @since v0.1.31 + */ + export function createWriteStream(path: PathLike, options?: BufferEncoding | StreamOptions): WriteStream; + /** + * Forces all currently queued I/O operations associated with the file to the + * operating system's synchronized I/O completion state. Refer to the POSIX [`fdatasync(2)`](http://man7.org/linux/man-pages/man2/fdatasync.2.html) documentation for details. No arguments other + * than a possible + * exception are given to the completion callback. + * @since v0.1.96 + */ + export function fdatasync(fd: number, callback: NoParamCallback): void; + export namespace fdatasync { + /** + * Asynchronous fdatasync(2) - synchronize a file's in-core state with storage device. + * @param fd A file descriptor. + */ + function __promisify__(fd: number): Promise; + } + /** + * Forces all currently queued I/O operations associated with the file to the + * operating system's synchronized I/O completion state. Refer to the POSIX [`fdatasync(2)`](http://man7.org/linux/man-pages/man2/fdatasync.2.html) documentation for details. Returns `undefined`. + * @since v0.1.96 + */ + export function fdatasyncSync(fd: number): void; + /** + * Asynchronously copies `src` to `dest`. By default, `dest` is overwritten if it + * already exists. No arguments other than a possible exception are given to the + * callback function. Node.js makes no guarantees about the atomicity of the copy + * operation. If an error occurs after the destination file has been opened for + * writing, Node.js will attempt to remove the destination. + * + * `mode` is an optional integer that specifies the behavior + * of the copy operation. It is possible to create a mask consisting of the bitwise + * OR of two or more values (e.g.`fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE`). + * + * * `fs.constants.COPYFILE_EXCL`: The copy operation will fail if `dest` already + * exists. + * * `fs.constants.COPYFILE_FICLONE`: The copy operation will attempt to create a + * copy-on-write reflink. If the platform does not support copy-on-write, then a + * fallback copy mechanism is used. + * * `fs.constants.COPYFILE_FICLONE_FORCE`: The copy operation will attempt to + * create a copy-on-write reflink. If the platform does not support + * copy-on-write, then the operation will fail. + * + * ```js + * import { copyFile, constants } from 'fs'; + * + * function callback(err) { + * if (err) throw err; + * console.log('source.txt was copied to destination.txt'); + * } + * + * // destination.txt will be created or overwritten by default. + * copyFile('source.txt', 'destination.txt', callback); + * + * // By using COPYFILE_EXCL, the operation will fail if destination.txt exists. + * copyFile('source.txt', 'destination.txt', constants.COPYFILE_EXCL, callback); + * ``` + * @since v8.5.0 + * @param src source filename to copy + * @param dest destination filename of the copy operation + * @param [mode=0] modifiers for copy operation. + */ + export function copyFile(src: PathLike, dest: PathLike, callback: NoParamCallback): void; + export function copyFile(src: PathLike, dest: PathLike, mode: number, callback: NoParamCallback): void; + export namespace copyFile { + function __promisify__(src: PathLike, dst: PathLike, mode?: number): Promise; + } + /** + * Synchronously copies `src` to `dest`. By default, `dest` is overwritten if it + * already exists. Returns `undefined`. Node.js makes no guarantees about the + * atomicity of the copy operation. If an error occurs after the destination file + * has been opened for writing, Node.js will attempt to remove the destination. + * + * `mode` is an optional integer that specifies the behavior + * of the copy operation. It is possible to create a mask consisting of the bitwise + * OR of two or more values (e.g.`fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE`). + * + * * `fs.constants.COPYFILE_EXCL`: The copy operation will fail if `dest` already + * exists. + * * `fs.constants.COPYFILE_FICLONE`: The copy operation will attempt to create a + * copy-on-write reflink. If the platform does not support copy-on-write, then a + * fallback copy mechanism is used. + * * `fs.constants.COPYFILE_FICLONE_FORCE`: The copy operation will attempt to + * create a copy-on-write reflink. If the platform does not support + * copy-on-write, then the operation will fail. + * + * ```js + * import { copyFileSync, constants } from 'fs'; + * + * // destination.txt will be created or overwritten by default. + * copyFileSync('source.txt', 'destination.txt'); + * console.log('source.txt was copied to destination.txt'); + * + * // By using COPYFILE_EXCL, the operation will fail if destination.txt exists. + * copyFileSync('source.txt', 'destination.txt', constants.COPYFILE_EXCL); + * ``` + * @since v8.5.0 + * @param src source filename to copy + * @param dest destination filename of the copy operation + * @param [mode=0] modifiers for copy operation. + */ + export function copyFileSync(src: PathLike, dest: PathLike, mode?: number): void; + /** + * Write an array of `ArrayBufferView`s to the file specified by `fd` using`writev()`. + * + * `position` is the offset from the beginning of the file where this data + * should be written. If `typeof position !== 'number'`, the data will be written + * at the current position. + * + * The callback will be given three arguments: `err`, `bytesWritten`, and`buffers`. `bytesWritten` is how many bytes were written from `buffers`. + * + * If this method is `util.promisify()` ed, it returns a promise for an`Object` with `bytesWritten` and `buffers` properties. + * + * It is unsafe to use `fs.writev()` multiple times on the same file without + * waiting for the callback. For this scenario, use {@link createWriteStream}. + * + * On Linux, positional writes don't work when the file is opened in append mode. + * The kernel ignores the position argument and always appends the data to + * the end of the file. + * @since v12.9.0 + */ + export function writev(fd: number, buffers: ReadonlyArray, cb: (err: NodeJS.ErrnoException | null, bytesWritten: number, buffers: NodeJS.ArrayBufferView[]) => void): void; + export function writev( + fd: number, + buffers: ReadonlyArray, + position: number, + cb: (err: NodeJS.ErrnoException | null, bytesWritten: number, buffers: NodeJS.ArrayBufferView[]) => void + ): void; + export interface WriteVResult { + bytesWritten: number; + buffers: NodeJS.ArrayBufferView[]; + } + export namespace writev { + function __promisify__(fd: number, buffers: ReadonlyArray, position?: number): Promise; + } + /** + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link writev}. + * @since v12.9.0 + * @return The number of bytes written. + */ + export function writevSync(fd: number, buffers: ReadonlyArray, position?: number): number; + /** + * Read from a file specified by `fd` and write to an array of `ArrayBufferView`s + * using `readv()`. + * + * `position` is the offset from the beginning of the file from where data + * should be read. If `typeof position !== 'number'`, the data will be read + * from the current position. + * + * The callback will be given three arguments: `err`, `bytesRead`, and`buffers`. `bytesRead` is how many bytes were read from the file. + * + * If this method is invoked as its `util.promisify()` ed version, it returns + * a promise for an `Object` with `bytesRead` and `buffers` properties. + * @since v13.13.0, v12.17.0 + */ + export function readv(fd: number, buffers: ReadonlyArray, cb: (err: NodeJS.ErrnoException | null, bytesRead: number, buffers: NodeJS.ArrayBufferView[]) => void): void; + export function readv( + fd: number, + buffers: ReadonlyArray, + position: number, + cb: (err: NodeJS.ErrnoException | null, bytesRead: number, buffers: NodeJS.ArrayBufferView[]) => void + ): void; + export interface ReadVResult { + bytesRead: number; + buffers: NodeJS.ArrayBufferView[]; + } + export namespace readv { + function __promisify__(fd: number, buffers: ReadonlyArray, position?: number): Promise; + } + /** + * For detailed information, see the documentation of the asynchronous version of + * this API: {@link readv}. + * @since v13.13.0, v12.17.0 + * @return The number of bytes read. + */ + export function readvSync(fd: number, buffers: ReadonlyArray, position?: number): number; + export interface OpenDirOptions { + encoding?: BufferEncoding | undefined; + /** + * Number of directory entries that are buffered + * internally when reading from the directory. Higher values lead to better + * performance but higher memory usage. + * @default 32 + */ + bufferSize?: number | undefined; + } + /** + * Synchronously open a directory. See [`opendir(3)`](http://man7.org/linux/man-pages/man3/opendir.3.html). + * + * Creates an `fs.Dir`, which contains all further functions for reading from + * and cleaning up the directory. + * + * The `encoding` option sets the encoding for the `path` while opening the + * directory and subsequent read operations. + * @since v12.12.0 + */ + export function opendirSync(path: PathLike, options?: OpenDirOptions): Dir; + /** + * Asynchronously open a directory. See the POSIX [`opendir(3)`](http://man7.org/linux/man-pages/man3/opendir.3.html) documentation for + * more details. + * + * Creates an `fs.Dir`, which contains all further functions for reading from + * and cleaning up the directory. + * + * The `encoding` option sets the encoding for the `path` while opening the + * directory and subsequent read operations. + * @since v12.12.0 + */ + export function opendir(path: PathLike, cb: (err: NodeJS.ErrnoException | null, dir: Dir) => void): void; + export function opendir(path: PathLike, options: OpenDirOptions, cb: (err: NodeJS.ErrnoException | null, dir: Dir) => void): void; + export namespace opendir { + function __promisify__(path: PathLike, options?: OpenDirOptions): Promise; + } + export interface BigIntStats extends StatsBase { + atimeNs: bigint; + mtimeNs: bigint; + ctimeNs: bigint; + birthtimeNs: bigint; + } + export interface BigIntOptions { + bigint: true; + } + export interface StatOptions { + bigint?: boolean | undefined; + } + export interface StatSyncOptions extends StatOptions { + throwIfNoEntry?: boolean | undefined; + } + interface CopyOptionsBase { + /** + * Dereference symlinks + * @default false + */ + dereference?: boolean; + /** + * When `force` is `false`, and the destination + * exists, throw an error. + * @default false + */ + errorOnExist?: boolean; + /** + * Overwrite existing file or directory. _The copy + * operation will ignore errors if you set this to false and the destination + * exists. Use the `errorOnExist` option to change this behavior. + * @default true + */ + force?: boolean; + /** + * When `true` timestamps from `src` will + * be preserved. + * @default false + */ + preserveTimestamps?: boolean; + /** + * Copy directories recursively. + * @default false + */ + recursive?: boolean; + /** + * When true, path resolution for symlinks will be skipped + * @default false + */ + verbatimSymlinks?: boolean; + } + export interface CopyOptions extends CopyOptionsBase { + /** + * Function to filter copied files/directories. Return + * `true` to copy the item, `false` to ignore it. + */ + filter?(source: string, destination: string): boolean | Promise; + } + export interface CopySyncOptions extends CopyOptionsBase { + /** + * Function to filter copied files/directories. Return + * `true` to copy the item, `false` to ignore it. + */ + filter?(source: string, destination: string): boolean; + } + /** + * Asynchronously copies the entire directory structure from `src` to `dest`, + * including subdirectories and files. + * + * When copying a directory to another directory, globs are not supported and + * behavior is similar to `cp dir1/ dir2/`. + * @since v16.7.0 + * @experimental + * @param src source path to copy. + * @param dest destination path to copy to. + */ + export function cp(source: string | URL, destination: string | URL, callback: (err: NodeJS.ErrnoException | null) => void): void; + export function cp(source: string | URL, destination: string | URL, opts: CopyOptions, callback: (err: NodeJS.ErrnoException | null) => void): void; + /** + * Synchronously copies the entire directory structure from `src` to `dest`, + * including subdirectories and files. + * + * When copying a directory to another directory, globs are not supported and + * behavior is similar to `cp dir1/ dir2/`. + * @since v16.7.0 + * @experimental + * @param src source path to copy. + * @param dest destination path to copy to. + */ + export function cpSync(source: string | URL, destination: string | URL, opts?: CopySyncOptions): void; +} +declare module 'node:fs' { + export * from 'fs'; +} diff --git a/node_modules/@types/node/ts4.8/fs/promises.d.ts b/node_modules/@types/node/ts4.8/fs/promises.d.ts new file mode 100644 index 0000000..aca2fd5 --- /dev/null +++ b/node_modules/@types/node/ts4.8/fs/promises.d.ts @@ -0,0 +1,1138 @@ +/** + * The `fs/promises` API provides asynchronous file system methods that return + * promises. + * + * The promise APIs use the underlying Node.js threadpool to perform file + * system operations off the event loop thread. These operations are not + * synchronized or threadsafe. Care must be taken when performing multiple + * concurrent modifications on the same file or data corruption may occur. + * @since v10.0.0 + */ +declare module 'fs/promises' { + import { Abortable } from 'node:events'; + import { Stream } from 'node:stream'; + import { ReadableStream } from 'node:stream/web'; + import { + BigIntStats, + BufferEncodingOption, + constants as fsConstants, + CopyOptions, + Dir, + Dirent, + MakeDirectoryOptions, + Mode, + ObjectEncodingOptions, + OpenDirOptions, + OpenMode, + PathLike, + ReadStream, + ReadVResult, + RmDirOptions, + RmOptions, + StatOptions, + Stats, + TimeLike, + WatchEventType, + WatchOptions, + WriteStream, + WriteVResult, + } from 'node:fs'; + import { Interface as ReadlineInterface } from 'node:readline'; + + interface FileChangeInfo { + eventType: WatchEventType; + filename: T; + } + interface FlagAndOpenMode { + mode?: Mode | undefined; + flag?: OpenMode | undefined; + } + interface FileReadResult { + bytesRead: number; + buffer: T; + } + interface FileReadOptions { + /** + * @default `Buffer.alloc(0xffff)` + */ + buffer?: T; + /** + * @default 0 + */ + offset?: number | null; + /** + * @default `buffer.byteLength` + */ + length?: number | null; + position?: number | null; + } + interface CreateReadStreamOptions { + encoding?: BufferEncoding | null | undefined; + autoClose?: boolean | undefined; + emitClose?: boolean | undefined; + start?: number | undefined; + end?: number | undefined; + highWaterMark?: number | undefined; + } + interface CreateWriteStreamOptions { + encoding?: BufferEncoding | null | undefined; + autoClose?: boolean | undefined; + emitClose?: boolean | undefined; + start?: number | undefined; + } + // TODO: Add `EventEmitter` close + interface FileHandle { + /** + * The numeric file descriptor managed by the {FileHandle} object. + * @since v10.0.0 + */ + readonly fd: number; + /** + * Alias of `filehandle.writeFile()`. + * + * When operating on file handles, the mode cannot be changed from what it was set + * to with `fsPromises.open()`. Therefore, this is equivalent to `filehandle.writeFile()`. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + appendFile(data: string | Uint8Array, options?: (ObjectEncodingOptions & FlagAndOpenMode) | BufferEncoding | null): Promise; + /** + * Changes the ownership of the file. A wrapper for [`chown(2)`](http://man7.org/linux/man-pages/man2/chown.2.html). + * @since v10.0.0 + * @param uid The file's new owner's user id. + * @param gid The file's new group's group id. + * @return Fulfills with `undefined` upon success. + */ + chown(uid: number, gid: number): Promise; + /** + * Modifies the permissions on the file. See [`chmod(2)`](http://man7.org/linux/man-pages/man2/chmod.2.html). + * @since v10.0.0 + * @param mode the file mode bit mask. + * @return Fulfills with `undefined` upon success. + */ + chmod(mode: Mode): Promise; + /** + * Unlike the 16 kb default `highWaterMark` for a `stream.Readable`, the stream + * returned by this method has a default `highWaterMark` of 64 kb. + * + * `options` can include `start` and `end` values to read a range of bytes from + * the file instead of the entire file. Both `start` and `end` are inclusive and + * start counting at 0, allowed values are in the + * \[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\] range. If `start` is + * omitted or `undefined`, `filehandle.createReadStream()` reads sequentially from + * the current file position. The `encoding` can be any one of those accepted by `Buffer`. + * + * If the `FileHandle` points to a character device that only supports blocking + * reads (such as keyboard or sound card), read operations do not finish until data + * is available. This can prevent the process from exiting and the stream from + * closing naturally. + * + * By default, the stream will emit a `'close'` event after it has been + * destroyed. Set the `emitClose` option to `false` to change this behavior. + * + * ```js + * import { open } from 'fs/promises'; + * + * const fd = await open('/dev/input/event0'); + * // Create a stream from some character device. + * const stream = fd.createReadStream(); + * setTimeout(() => { + * stream.close(); // This may not close the stream. + * // Artificially marking end-of-stream, as if the underlying resource had + * // indicated end-of-file by itself, allows the stream to close. + * // This does not cancel pending read operations, and if there is such an + * // operation, the process may still not be able to exit successfully + * // until it finishes. + * stream.push(null); + * stream.read(0); + * }, 100); + * ``` + * + * If `autoClose` is false, then the file descriptor won't be closed, even if + * there's an error. It is the application's responsibility to close it and make + * sure there's no file descriptor leak. If `autoClose` is set to true (default + * behavior), on `'error'` or `'end'` the file descriptor will be closed + * automatically. + * + * An example to read the last 10 bytes of a file which is 100 bytes long: + * + * ```js + * import { open } from 'fs/promises'; + * + * const fd = await open('sample.txt'); + * fd.createReadStream({ start: 90, end: 99 }); + * ``` + * @since v16.11.0 + */ + createReadStream(options?: CreateReadStreamOptions): ReadStream; + /** + * `options` may also include a `start` option to allow writing data at some + * position past the beginning of the file, allowed values are in the + * \[0, [`Number.MAX_SAFE_INTEGER`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER)\] range. Modifying a file rather than + * replacing it may require the `flags` `open` option to be set to `r+` rather than + * the default `r`. The `encoding` can be any one of those accepted by `Buffer`. + * + * If `autoClose` is set to true (default behavior) on `'error'` or `'finish'`the file descriptor will be closed automatically. If `autoClose` is false, + * then the file descriptor won't be closed, even if there's an error. + * It is the application's responsibility to close it and make sure there's no + * file descriptor leak. + * + * By default, the stream will emit a `'close'` event after it has been + * destroyed. Set the `emitClose` option to `false` to change this behavior. + * @since v16.11.0 + */ + createWriteStream(options?: CreateWriteStreamOptions): WriteStream; + /** + * Forces all currently queued I/O operations associated with the file to the + * operating system's synchronized I/O completion state. Refer to the POSIX [`fdatasync(2)`](http://man7.org/linux/man-pages/man2/fdatasync.2.html) documentation for details. + * + * Unlike `filehandle.sync` this method does not flush modified metadata. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + datasync(): Promise; + /** + * Request that all data for the open file descriptor is flushed to the storage + * device. The specific implementation is operating system and device specific. + * Refer to the POSIX [`fsync(2)`](http://man7.org/linux/man-pages/man2/fsync.2.html) documentation for more detail. + * @since v10.0.0 + * @return Fufills with `undefined` upon success. + */ + sync(): Promise; + /** + * Reads data from the file and stores that in the given buffer. + * + * If the file is not modified concurrently, the end-of-file is reached when the + * number of bytes read is zero. + * @since v10.0.0 + * @param buffer A buffer that will be filled with the file data read. + * @param offset The location in the buffer at which to start filling. + * @param length The number of bytes to read. + * @param position The location where to begin reading data from the file. If `null`, data will be read from the current file position, and the position will be updated. If `position` is an + * integer, the current file position will remain unchanged. + * @return Fulfills upon success with an object with two properties: + */ + read(buffer: T, offset?: number | null, length?: number | null, position?: number | null): Promise>; + read(options?: FileReadOptions): Promise>; + /** + * Returns a `ReadableStream` that may be used to read the files data. + * + * An error will be thrown if this method is called more than once or is called after the `FileHandle` is closed + * or closing. + * + * ```js + * import { open } from 'node:fs/promises'; + * + * const file = await open('./some/file/to/read'); + * + * for await (const chunk of file.readableWebStream()) + * console.log(chunk); + * + * await file.close(); + * ``` + * + * While the `ReadableStream` will read the file to completion, it will not close the `FileHandle` automatically. User code must still call the `fileHandle.close()` method. + * + * @since v17.0.0 + * @experimental + */ + readableWebStream(): ReadableStream; + /** + * Asynchronously reads the entire contents of a file. + * + * If `options` is a string, then it specifies the `encoding`. + * + * The `FileHandle` has to support reading. + * + * If one or more `filehandle.read()` calls are made on a file handle and then a`filehandle.readFile()` call is made, the data will be read from the current + * position till the end of the file. It doesn't always read from the beginning + * of the file. + * @since v10.0.0 + * @return Fulfills upon a successful read with the contents of the file. If no encoding is specified (using `options.encoding`), the data is returned as a {Buffer} object. Otherwise, the + * data will be a string. + */ + readFile( + options?: { + encoding?: null | undefined; + flag?: OpenMode | undefined; + } | null + ): Promise; + /** + * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically. + * The `FileHandle` must have been opened for reading. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + readFile( + options: + | { + encoding: BufferEncoding; + flag?: OpenMode | undefined; + } + | BufferEncoding + ): Promise; + /** + * Asynchronously reads the entire contents of a file. The underlying file will _not_ be closed automatically. + * The `FileHandle` must have been opened for reading. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + readFile( + options?: + | (ObjectEncodingOptions & { + flag?: OpenMode | undefined; + }) + | BufferEncoding + | null + ): Promise; + /** + * Convenience method to create a `readline` interface and stream over the file. For example: + * + * ```js + * import { open } from 'node:fs/promises'; + * + * const file = await open('./some/file/to/read'); + * + * for await (const line of file.readLines()) { + * console.log(line); + * } + * ``` + * + * @since v18.11.0 + * @param options See `filehandle.createReadStream()` for the options. + */ + readLines(options?: CreateReadStreamOptions): ReadlineInterface; + /** + * @since v10.0.0 + * @return Fulfills with an {fs.Stats} for the file. + */ + stat( + opts?: StatOptions & { + bigint?: false | undefined; + } + ): Promise; + stat( + opts: StatOptions & { + bigint: true; + } + ): Promise; + stat(opts?: StatOptions): Promise; + /** + * Truncates the file. + * + * If the file was larger than `len` bytes, only the first `len` bytes will be + * retained in the file. + * + * The following example retains only the first four bytes of the file: + * + * ```js + * import { open } from 'fs/promises'; + * + * let filehandle = null; + * try { + * filehandle = await open('temp.txt', 'r+'); + * await filehandle.truncate(4); + * } finally { + * await filehandle?.close(); + * } + * ``` + * + * If the file previously was shorter than `len` bytes, it is extended, and the + * extended part is filled with null bytes (`'\0'`): + * + * If `len` is negative then `0` will be used. + * @since v10.0.0 + * @param [len=0] + * @return Fulfills with `undefined` upon success. + */ + truncate(len?: number): Promise; + /** + * Change the file system timestamps of the object referenced by the `FileHandle` then resolves the promise with no arguments upon success. + * @since v10.0.0 + */ + utimes(atime: TimeLike, mtime: TimeLike): Promise; + /** + * Asynchronously writes data to a file, replacing the file if it already exists.`data` can be a string, a buffer, an + * [AsyncIterable](https://tc39.github.io/ecma262/#sec-asynciterable-interface) or + * [Iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol) object. + * The promise is resolved with no arguments upon success. + * + * If `options` is a string, then it specifies the `encoding`. + * + * The `FileHandle` has to support writing. + * + * It is unsafe to use `filehandle.writeFile()` multiple times on the same file + * without waiting for the promise to be resolved (or rejected). + * + * If one or more `filehandle.write()` calls are made on a file handle and then a`filehandle.writeFile()` call is made, the data will be written from the + * current position till the end of the file. It doesn't always write from the + * beginning of the file. + * @since v10.0.0 + */ + writeFile(data: string | Uint8Array, options?: (ObjectEncodingOptions & FlagAndOpenMode & Abortable) | BufferEncoding | null): Promise; + /** + * Write `buffer` to the file. + * + * The promise is resolved with an object containing two properties: + * + * It is unsafe to use `filehandle.write()` multiple times on the same file + * without waiting for the promise to be resolved (or rejected). For this + * scenario, use `filehandle.createWriteStream()`. + * + * On Linux, positional writes do not work when the file is opened in append mode. + * The kernel ignores the position argument and always appends the data to + * the end of the file. + * @since v10.0.0 + * @param [offset=0] The start position from within `buffer` where the data to write begins. + * @param [length=buffer.byteLength - offset] The number of bytes from `buffer` to write. + * @param position The offset from the beginning of the file where the data from `buffer` should be written. If `position` is not a `number`, the data will be written at the current position. + * See the POSIX pwrite(2) documentation for more detail. + */ + write( + buffer: TBuffer, + offset?: number | null, + length?: number | null, + position?: number | null + ): Promise<{ + bytesWritten: number; + buffer: TBuffer; + }>; + write( + data: string, + position?: number | null, + encoding?: BufferEncoding | null + ): Promise<{ + bytesWritten: number; + buffer: string; + }>; + /** + * Write an array of [ArrayBufferView](https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView) s to the file. + * + * The promise is resolved with an object containing a two properties: + * + * It is unsafe to call `writev()` multiple times on the same file without waiting + * for the promise to be resolved (or rejected). + * + * On Linux, positional writes don't work when the file is opened in append mode. + * The kernel ignores the position argument and always appends the data to + * the end of the file. + * @since v12.9.0 + * @param position The offset from the beginning of the file where the data from `buffers` should be written. If `position` is not a `number`, the data will be written at the current + * position. + */ + writev(buffers: ReadonlyArray, position?: number): Promise; + /** + * Read from a file and write to an array of [ArrayBufferView](https://developer.mozilla.org/en-US/docs/Web/API/ArrayBufferView) s + * @since v13.13.0, v12.17.0 + * @param position The offset from the beginning of the file where the data should be read from. If `position` is not a `number`, the data will be read from the current position. + * @return Fulfills upon success an object containing two properties: + */ + readv(buffers: ReadonlyArray, position?: number): Promise; + /** + * Closes the file handle after waiting for any pending operation on the handle to + * complete. + * + * ```js + * import { open } from 'fs/promises'; + * + * let filehandle; + * try { + * filehandle = await open('thefile.txt', 'r'); + * } finally { + * await filehandle?.close(); + * } + * ``` + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + close(): Promise; + } + + const constants: typeof fsConstants; + + /** + * Tests a user's permissions for the file or directory specified by `path`. + * The `mode` argument is an optional integer that specifies the accessibility + * checks to be performed. `mode` should be either the value `fs.constants.F_OK`or a mask consisting of the bitwise OR of any of `fs.constants.R_OK`,`fs.constants.W_OK`, and `fs.constants.X_OK` + * (e.g.`fs.constants.W_OK | fs.constants.R_OK`). Check `File access constants` for + * possible values of `mode`. + * + * If the accessibility check is successful, the promise is resolved with no + * value. If any of the accessibility checks fail, the promise is rejected + * with an [Error](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) object. The following example checks if the file`/etc/passwd` can be read and + * written by the current process. + * + * ```js + * import { access } from 'fs/promises'; + * import { constants } from 'fs'; + * + * try { + * await access('/etc/passwd', constants.R_OK | constants.W_OK); + * console.log('can access'); + * } catch { + * console.error('cannot access'); + * } + * ``` + * + * Using `fsPromises.access()` to check for the accessibility of a file before + * calling `fsPromises.open()` is not recommended. Doing so introduces a race + * condition, since other processes may change the file's state between the two + * calls. Instead, user code should open/read/write the file directly and handle + * the error raised if the file is not accessible. + * @since v10.0.0 + * @param [mode=fs.constants.F_OK] + * @return Fulfills with `undefined` upon success. + */ + function access(path: PathLike, mode?: number): Promise; + /** + * Asynchronously copies `src` to `dest`. By default, `dest` is overwritten if it + * already exists. + * + * No guarantees are made about the atomicity of the copy operation. If an + * error occurs after the destination file has been opened for writing, an attempt + * will be made to remove the destination. + * + * ```js + * import { constants } from 'fs'; + * import { copyFile } from 'fs/promises'; + * + * try { + * await copyFile('source.txt', 'destination.txt'); + * console.log('source.txt was copied to destination.txt'); + * } catch { + * console.log('The file could not be copied'); + * } + * + * // By using COPYFILE_EXCL, the operation will fail if destination.txt exists. + * try { + * await copyFile('source.txt', 'destination.txt', constants.COPYFILE_EXCL); + * console.log('source.txt was copied to destination.txt'); + * } catch { + * console.log('The file could not be copied'); + * } + * ``` + * @since v10.0.0 + * @param src source filename to copy + * @param dest destination filename of the copy operation + * @param [mode=0] Optional modifiers that specify the behavior of the copy operation. It is possible to create a mask consisting of the bitwise OR of two or more values (e.g. + * `fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE`) + * @return Fulfills with `undefined` upon success. + */ + function copyFile(src: PathLike, dest: PathLike, mode?: number): Promise; + /** + * Opens a `FileHandle`. + * + * Refer to the POSIX [`open(2)`](http://man7.org/linux/man-pages/man2/open.2.html) documentation for more detail. + * + * Some characters (`< > : " / \ | ? *`) are reserved under Windows as documented + * by [Naming Files, Paths, and Namespaces](https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file). Under NTFS, if the filename contains + * a colon, Node.js will open a file system stream, as described by [this MSDN page](https://docs.microsoft.com/en-us/windows/desktop/FileIO/using-streams). + * @since v10.0.0 + * @param [flags='r'] See `support of file system `flags``. + * @param [mode=0o666] Sets the file mode (permission and sticky bits) if the file is created. + * @return Fulfills with a {FileHandle} object. + */ + function open(path: PathLike, flags?: string | number, mode?: Mode): Promise; + /** + * Renames `oldPath` to `newPath`. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function rename(oldPath: PathLike, newPath: PathLike): Promise; + /** + * Truncates (shortens or extends the length) of the content at `path` to `len`bytes. + * @since v10.0.0 + * @param [len=0] + * @return Fulfills with `undefined` upon success. + */ + function truncate(path: PathLike, len?: number): Promise; + /** + * Removes the directory identified by `path`. + * + * Using `fsPromises.rmdir()` on a file (not a directory) results in the + * promise being rejected with an `ENOENT` error on Windows and an `ENOTDIR`error on POSIX. + * + * To get a behavior similar to the `rm -rf` Unix command, use `fsPromises.rm()` with options `{ recursive: true, force: true }`. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function rmdir(path: PathLike, options?: RmDirOptions): Promise; + /** + * Removes files and directories (modeled on the standard POSIX `rm` utility). + * @since v14.14.0 + * @return Fulfills with `undefined` upon success. + */ + function rm(path: PathLike, options?: RmOptions): Promise; + /** + * Asynchronously creates a directory. + * + * The optional `options` argument can be an integer specifying `mode` (permission + * and sticky bits), or an object with a `mode` property and a `recursive`property indicating whether parent directories should be created. Calling`fsPromises.mkdir()` when `path` is a directory + * that exists results in a + * rejection only when `recursive` is false. + * @since v10.0.0 + * @return Upon success, fulfills with `undefined` if `recursive` is `false`, or the first directory path created if `recursive` is `true`. + */ + function mkdir( + path: PathLike, + options: MakeDirectoryOptions & { + recursive: true; + } + ): Promise; + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function mkdir( + path: PathLike, + options?: + | Mode + | (MakeDirectoryOptions & { + recursive?: false | undefined; + }) + | null + ): Promise; + /** + * Asynchronous mkdir(2) - create a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options Either the file mode, or an object optionally specifying the file mode and whether parent folders + * should be created. If a string is passed, it is parsed as an octal integer. If not specified, defaults to `0o777`. + */ + function mkdir(path: PathLike, options?: Mode | MakeDirectoryOptions | null): Promise; + /** + * Reads the contents of a directory. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the filenames. If the `encoding` is set to `'buffer'`, the filenames returned + * will be passed as `Buffer` objects. + * + * If `options.withFileTypes` is set to `true`, the resolved array will contain `fs.Dirent` objects. + * + * ```js + * import { readdir } from 'fs/promises'; + * + * try { + * const files = await readdir(path); + * for (const file of files) + * console.log(file); + * } catch (err) { + * console.error(err); + * } + * ``` + * @since v10.0.0 + * @return Fulfills with an array of the names of the files in the directory excluding `'.'` and `'..'`. + */ + function readdir( + path: PathLike, + options?: + | (ObjectEncodingOptions & { + withFileTypes?: false | undefined; + }) + | BufferEncoding + | null + ): Promise; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdir( + path: PathLike, + options: + | { + encoding: 'buffer'; + withFileTypes?: false | undefined; + } + | 'buffer' + ): Promise; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readdir( + path: PathLike, + options?: + | (ObjectEncodingOptions & { + withFileTypes?: false | undefined; + }) + | BufferEncoding + | null + ): Promise; + /** + * Asynchronous readdir(3) - read a directory. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options If called with `withFileTypes: true` the result data will be an array of Dirent. + */ + function readdir( + path: PathLike, + options: ObjectEncodingOptions & { + withFileTypes: true; + } + ): Promise; + /** + * Reads the contents of the symbolic link referred to by `path`. See the POSIX [`readlink(2)`](http://man7.org/linux/man-pages/man2/readlink.2.html) documentation for more detail. The promise is + * resolved with the`linkString` upon success. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the link path returned. If the `encoding` is set to `'buffer'`, the link path + * returned will be passed as a `Buffer` object. + * @since v10.0.0 + * @return Fulfills with the `linkString` upon success. + */ + function readlink(path: PathLike, options?: ObjectEncodingOptions | BufferEncoding | null): Promise; + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readlink(path: PathLike, options: BufferEncodingOption): Promise; + /** + * Asynchronous readlink(2) - read value of a symbolic link. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function readlink(path: PathLike, options?: ObjectEncodingOptions | string | null): Promise; + /** + * Creates a symbolic link. + * + * The `type` argument is only used on Windows platforms and can be one of `'dir'`,`'file'`, or `'junction'`. Windows junction points require the destination path + * to be absolute. When using `'junction'`, the `target` argument will + * automatically be normalized to absolute path. + * @since v10.0.0 + * @param [type='file'] + * @return Fulfills with `undefined` upon success. + */ + function symlink(target: PathLike, path: PathLike, type?: string | null): Promise; + /** + * Equivalent to `fsPromises.stat()` unless `path` refers to a symbolic link, + * in which case the link itself is stat-ed, not the file that it refers to. + * Refer to the POSIX [`lstat(2)`](http://man7.org/linux/man-pages/man2/lstat.2.html) document for more detail. + * @since v10.0.0 + * @return Fulfills with the {fs.Stats} object for the given symbolic link `path`. + */ + function lstat( + path: PathLike, + opts?: StatOptions & { + bigint?: false | undefined; + } + ): Promise; + function lstat( + path: PathLike, + opts: StatOptions & { + bigint: true; + } + ): Promise; + function lstat(path: PathLike, opts?: StatOptions): Promise; + /** + * @since v10.0.0 + * @return Fulfills with the {fs.Stats} object for the given `path`. + */ + function stat( + path: PathLike, + opts?: StatOptions & { + bigint?: false | undefined; + } + ): Promise; + function stat( + path: PathLike, + opts: StatOptions & { + bigint: true; + } + ): Promise; + function stat(path: PathLike, opts?: StatOptions): Promise; + /** + * Creates a new link from the `existingPath` to the `newPath`. See the POSIX [`link(2)`](http://man7.org/linux/man-pages/man2/link.2.html) documentation for more detail. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function link(existingPath: PathLike, newPath: PathLike): Promise; + /** + * If `path` refers to a symbolic link, then the link is removed without affecting + * the file or directory to which that link refers. If the `path` refers to a file + * path that is not a symbolic link, the file is deleted. See the POSIX [`unlink(2)`](http://man7.org/linux/man-pages/man2/unlink.2.html) documentation for more detail. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function unlink(path: PathLike): Promise; + /** + * Changes the permissions of a file. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function chmod(path: PathLike, mode: Mode): Promise; + /** + * Changes the permissions on a symbolic link. + * + * This method is only implemented on macOS. + * @deprecated Since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function lchmod(path: PathLike, mode: Mode): Promise; + /** + * Changes the ownership on a symbolic link. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function lchown(path: PathLike, uid: number, gid: number): Promise; + /** + * Changes the access and modification times of a file in the same way as `fsPromises.utimes()`, with the difference that if the path refers to a + * symbolic link, then the link is not dereferenced: instead, the timestamps of + * the symbolic link itself are changed. + * @since v14.5.0, v12.19.0 + * @return Fulfills with `undefined` upon success. + */ + function lutimes(path: PathLike, atime: TimeLike, mtime: TimeLike): Promise; + /** + * Changes the ownership of a file. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function chown(path: PathLike, uid: number, gid: number): Promise; + /** + * Change the file system timestamps of the object referenced by `path`. + * + * The `atime` and `mtime` arguments follow these rules: + * + * * Values can be either numbers representing Unix epoch time, `Date`s, or a + * numeric string like `'123456789.0'`. + * * If the value can not be converted to a number, or is `NaN`, `Infinity` or`-Infinity`, an `Error` will be thrown. + * @since v10.0.0 + * @return Fulfills with `undefined` upon success. + */ + function utimes(path: PathLike, atime: TimeLike, mtime: TimeLike): Promise; + /** + * Determines the actual location of `path` using the same semantics as the`fs.realpath.native()` function. + * + * Only paths that can be converted to UTF8 strings are supported. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use for + * the path. If the `encoding` is set to `'buffer'`, the path returned will be + * passed as a `Buffer` object. + * + * On Linux, when Node.js is linked against musl libc, the procfs file system must + * be mounted on `/proc` in order for this function to work. Glibc does not have + * this restriction. + * @since v10.0.0 + * @return Fulfills with the resolved path upon success. + */ + function realpath(path: PathLike, options?: ObjectEncodingOptions | BufferEncoding | null): Promise; + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function realpath(path: PathLike, options: BufferEncodingOption): Promise; + /** + * Asynchronous realpath(3) - return the canonicalized absolute pathname. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function realpath(path: PathLike, options?: ObjectEncodingOptions | BufferEncoding | null): Promise; + /** + * Creates a unique temporary directory. A unique directory name is generated by + * appending six random characters to the end of the provided `prefix`. Due to + * platform inconsistencies, avoid trailing `X` characters in `prefix`. Some + * platforms, notably the BSDs, can return more than six random characters, and + * replace trailing `X` characters in `prefix` with random characters. + * + * The optional `options` argument can be a string specifying an encoding, or an + * object with an `encoding` property specifying the character encoding to use. + * + * ```js + * import { mkdtemp } from 'fs/promises'; + * + * try { + * await mkdtemp(path.join(os.tmpdir(), 'foo-')); + * } catch (err) { + * console.error(err); + * } + * ``` + * + * The `fsPromises.mkdtemp()` method will append the six randomly selected + * characters directly to the `prefix` string. For instance, given a directory`/tmp`, if the intention is to create a temporary directory _within_`/tmp`, the`prefix` must end with a trailing + * platform-specific path separator + * (`require('path').sep`). + * @since v10.0.0 + * @return Fulfills with a string containing the filesystem path of the newly created temporary directory. + */ + function mkdtemp(prefix: string, options?: ObjectEncodingOptions | BufferEncoding | null): Promise; + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function mkdtemp(prefix: string, options: BufferEncodingOption): Promise; + /** + * Asynchronously creates a unique temporary directory. + * Generates six random characters to be appended behind a required `prefix` to create a unique temporary directory. + * @param options The encoding (or an object specifying the encoding), used as the encoding of the result. If not provided, `'utf8'` is used. + */ + function mkdtemp(prefix: string, options?: ObjectEncodingOptions | BufferEncoding | null): Promise; + /** + * Asynchronously writes data to a file, replacing the file if it already exists.`data` can be a string, a buffer, an + * [AsyncIterable](https://tc39.github.io/ecma262/#sec-asynciterable-interface) or + * [Iterable](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol) object. + * + * The `encoding` option is ignored if `data` is a buffer. + * + * If `options` is a string, then it specifies the encoding. + * + * The `mode` option only affects the newly created file. See `fs.open()` for more details. + * + * Any specified `FileHandle` has to support writing. + * + * It is unsafe to use `fsPromises.writeFile()` multiple times on the same file + * without waiting for the promise to be settled. + * + * Similarly to `fsPromises.readFile` \- `fsPromises.writeFile` is a convenience + * method that performs multiple `write` calls internally to write the buffer + * passed to it. For performance sensitive code consider using `fs.createWriteStream()` or `filehandle.createWriteStream()`. + * + * It is possible to use an `AbortSignal` to cancel an `fsPromises.writeFile()`. + * Cancelation is "best effort", and some amount of data is likely still + * to be written. + * + * ```js + * import { writeFile } from 'fs/promises'; + * import { Buffer } from 'buffer'; + * + * try { + * const controller = new AbortController(); + * const { signal } = controller; + * const data = new Uint8Array(Buffer.from('Hello Node.js')); + * const promise = writeFile('message.txt', data, { signal }); + * + * // Abort the request before the promise settles. + * controller.abort(); + * + * await promise; + * } catch (err) { + * // When a request is aborted - err is an AbortError + * console.error(err); + * } + * ``` + * + * Aborting an ongoing request does not abort individual operating + * system requests but rather the internal buffering `fs.writeFile` performs. + * @since v10.0.0 + * @param file filename or `FileHandle` + * @return Fulfills with `undefined` upon success. + */ + function writeFile( + file: PathLike | FileHandle, + data: string | NodeJS.ArrayBufferView | Iterable | AsyncIterable | Stream, + options?: + | (ObjectEncodingOptions & { + mode?: Mode | undefined; + flag?: OpenMode | undefined; + } & Abortable) + | BufferEncoding + | null + ): Promise; + /** + * Asynchronously append data to a file, creating the file if it does not yet + * exist. `data` can be a string or a `Buffer`. + * + * If `options` is a string, then it specifies the `encoding`. + * + * The `mode` option only affects the newly created file. See `fs.open()` for more details. + * + * The `path` may be specified as a `FileHandle` that has been opened + * for appending (using `fsPromises.open()`). + * @since v10.0.0 + * @param path filename or {FileHandle} + * @return Fulfills with `undefined` upon success. + */ + function appendFile(path: PathLike | FileHandle, data: string | Uint8Array, options?: (ObjectEncodingOptions & FlagAndOpenMode) | BufferEncoding | null): Promise; + /** + * Asynchronously reads the entire contents of a file. + * + * If no encoding is specified (using `options.encoding`), the data is returned + * as a `Buffer` object. Otherwise, the data will be a string. + * + * If `options` is a string, then it specifies the encoding. + * + * When the `path` is a directory, the behavior of `fsPromises.readFile()` is + * platform-specific. On macOS, Linux, and Windows, the promise will be rejected + * with an error. On FreeBSD, a representation of the directory's contents will be + * returned. + * + * It is possible to abort an ongoing `readFile` using an `AbortSignal`. If a + * request is aborted the promise returned is rejected with an `AbortError`: + * + * ```js + * import { readFile } from 'fs/promises'; + * + * try { + * const controller = new AbortController(); + * const { signal } = controller; + * const promise = readFile(fileName, { signal }); + * + * // Abort the request before the promise settles. + * controller.abort(); + * + * await promise; + * } catch (err) { + * // When a request is aborted - err is an AbortError + * console.error(err); + * } + * ``` + * + * Aborting an ongoing request does not abort individual operating + * system requests but rather the internal buffering `fs.readFile` performs. + * + * Any specified `FileHandle` has to support reading. + * @since v10.0.0 + * @param path filename or `FileHandle` + * @return Fulfills with the contents of the file. + */ + function readFile( + path: PathLike | FileHandle, + options?: + | ({ + encoding?: null | undefined; + flag?: OpenMode | undefined; + } & Abortable) + | null + ): Promise; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFile( + path: PathLike | FileHandle, + options: + | ({ + encoding: BufferEncoding; + flag?: OpenMode | undefined; + } & Abortable) + | BufferEncoding + ): Promise; + /** + * Asynchronously reads the entire contents of a file. + * @param path A path to a file. If a URL is provided, it must use the `file:` protocol. + * If a `FileHandle` is provided, the underlying file will _not_ be closed automatically. + * @param options An object that may contain an optional flag. + * If a flag is not provided, it defaults to `'r'`. + */ + function readFile( + path: PathLike | FileHandle, + options?: + | (ObjectEncodingOptions & + Abortable & { + flag?: OpenMode | undefined; + }) + | BufferEncoding + | null + ): Promise; + /** + * Asynchronously open a directory for iterative scanning. See the POSIX [`opendir(3)`](http://man7.org/linux/man-pages/man3/opendir.3.html) documentation for more detail. + * + * Creates an `fs.Dir`, which contains all further functions for reading from + * and cleaning up the directory. + * + * The `encoding` option sets the encoding for the `path` while opening the + * directory and subsequent read operations. + * + * Example using async iteration: + * + * ```js + * import { opendir } from 'fs/promises'; + * + * try { + * const dir = await opendir('./'); + * for await (const dirent of dir) + * console.log(dirent.name); + * } catch (err) { + * console.error(err); + * } + * ``` + * + * When using the async iterator, the `fs.Dir` object will be automatically + * closed after the iterator exits. + * @since v12.12.0 + * @return Fulfills with an {fs.Dir}. + */ + function opendir(path: PathLike, options?: OpenDirOptions): Promise; + /** + * Returns an async iterator that watches for changes on `filename`, where `filename`is either a file or a directory. + * + * ```js + * const { watch } = require('fs/promises'); + * + * const ac = new AbortController(); + * const { signal } = ac; + * setTimeout(() => ac.abort(), 10000); + * + * (async () => { + * try { + * const watcher = watch(__filename, { signal }); + * for await (const event of watcher) + * console.log(event); + * } catch (err) { + * if (err.name === 'AbortError') + * return; + * throw err; + * } + * })(); + * ``` + * + * On most platforms, `'rename'` is emitted whenever a filename appears or + * disappears in the directory. + * + * All the `caveats` for `fs.watch()` also apply to `fsPromises.watch()`. + * @since v15.9.0, v14.18.0 + * @return of objects with the properties: + */ + function watch( + filename: PathLike, + options: + | (WatchOptions & { + encoding: 'buffer'; + }) + | 'buffer' + ): AsyncIterable>; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + function watch(filename: PathLike, options?: WatchOptions | BufferEncoding): AsyncIterable>; + /** + * Watch for changes on `filename`, where `filename` is either a file or a directory, returning an `FSWatcher`. + * @param filename A path to a file or directory. If a URL is provided, it must use the `file:` protocol. + * @param options Either the encoding for the filename provided to the listener, or an object optionally specifying encoding, persistent, and recursive options. + * If `encoding` is not supplied, the default of `'utf8'` is used. + * If `persistent` is not supplied, the default of `true` is used. + * If `recursive` is not supplied, the default of `false` is used. + */ + function watch(filename: PathLike, options: WatchOptions | string): AsyncIterable> | AsyncIterable>; + /** + * Asynchronously copies the entire directory structure from `src` to `dest`, + * including subdirectories and files. + * + * When copying a directory to another directory, globs are not supported and + * behavior is similar to `cp dir1/ dir2/`. + * @since v16.7.0 + * @experimental + * @param src source path to copy. + * @param dest destination path to copy to. + * @return Fulfills with `undefined` upon success. + */ + function cp(source: string | URL, destination: string | URL, opts?: CopyOptions): Promise; +} +declare module 'node:fs/promises' { + export * from 'fs/promises'; +} diff --git a/node_modules/@types/node/ts4.8/globals.d.ts b/node_modules/@types/node/ts4.8/globals.d.ts new file mode 100644 index 0000000..f401d95 --- /dev/null +++ b/node_modules/@types/node/ts4.8/globals.d.ts @@ -0,0 +1,294 @@ +// Declare "static" methods in Error +interface ErrorConstructor { + /** Create .stack property on a target object */ + captureStackTrace(targetObject: object, constructorOpt?: Function): void; + + /** + * Optional override for formatting stack traces + * + * @see https://v8.dev/docs/stack-trace-api#customizing-stack-traces + */ + prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined; + + stackTraceLimit: number; +} + +/*-----------------------------------------------* + * * + * GLOBAL * + * * + ------------------------------------------------*/ + +// For backwards compability +interface NodeRequire extends NodeJS.Require { } +interface RequireResolve extends NodeJS.RequireResolve { } +interface NodeModule extends NodeJS.Module { } + +declare var process: NodeJS.Process; +declare var console: Console; + +declare var __filename: string; +declare var __dirname: string; + +declare var require: NodeRequire; +declare var module: NodeModule; + +// Same as module.exports +declare var exports: any; + +/** + * Only available if `--expose-gc` is passed to the process. + */ +declare var gc: undefined | (() => void); + +//#region borrowed +// from https://github.com/microsoft/TypeScript/blob/38da7c600c83e7b31193a62495239a0fe478cb67/lib/lib.webworker.d.ts#L633 until moved to separate lib +/** A controller object that allows you to abort one or more DOM requests as and when desired. */ +interface AbortController { + /** + * Returns the AbortSignal object associated with this object. + */ + + readonly signal: AbortSignal; + /** + * Invoking this method will set this object's AbortSignal's aborted flag and signal to any observers that the associated activity is to be aborted. + */ + abort(): void; +} + +/** A signal object that allows you to communicate with a DOM request (such as a Fetch) and abort it if required via an AbortController object. */ +interface AbortSignal extends EventTarget { + /** + * Returns true if this AbortSignal's AbortController has signaled to abort, and false otherwise. + */ + readonly aborted: boolean; +} + +declare var AbortController: { + prototype: AbortController; + new(): AbortController; +}; + +declare var AbortSignal: { + prototype: AbortSignal; + new(): AbortSignal; + // TODO: Add abort() static +}; +//#endregion borrowed + +//#region ArrayLike.at() +interface RelativeIndexable { + /** + * Takes an integer value and returns the item at that index, + * allowing for positive and negative integers. + * Negative integers count back from the last item in the array. + */ + at(index: number): T | undefined; +} +interface String extends RelativeIndexable {} +interface Array extends RelativeIndexable {} +interface Int8Array extends RelativeIndexable {} +interface Uint8Array extends RelativeIndexable {} +interface Uint8ClampedArray extends RelativeIndexable {} +interface Int16Array extends RelativeIndexable {} +interface Uint16Array extends RelativeIndexable {} +interface Int32Array extends RelativeIndexable {} +interface Uint32Array extends RelativeIndexable {} +interface Float32Array extends RelativeIndexable {} +interface Float64Array extends RelativeIndexable {} +interface BigInt64Array extends RelativeIndexable {} +interface BigUint64Array extends RelativeIndexable {} +//#endregion ArrayLike.at() end + +/** + * @since v17.0.0 + * + * Creates a deep clone of an object. + */ +declare function structuredClone( + value: T, + transfer?: { transfer: ReadonlyArray }, +): T; + +/*----------------------------------------------* +* * +* GLOBAL INTERFACES * +* * +*-----------------------------------------------*/ +declare namespace NodeJS { + interface CallSite { + /** + * Value of "this" + */ + getThis(): unknown; + + /** + * 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; + + /** + * Current function + */ + getFunction(): Function | undefined; + + /** + * 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; + + /** + * Name of the property [of "this" or one of its prototypes] that holds + * the current function + */ + getMethodName(): string | null; + + /** + * Name of the script [if this function was defined in a script] + */ + getFileName(): string | null; + + /** + * Current line number [if this function was defined in a script] + */ + getLineNumber(): number | null; + + /** + * Current column number [if this function was defined in a script] + */ + getColumnNumber(): number | null; + + /** + * A call site object representing the location where eval was called + * [if this function was created using a call to eval] + */ + getEvalOrigin(): string | undefined; + + /** + * Is this a toplevel invocation, that is, is "this" the global object? + */ + isToplevel(): boolean; + + /** + * Does this call take place in code defined by a call to eval? + */ + isEval(): boolean; + + /** + * Is this call in native V8 code? + */ + isNative(): boolean; + + /** + * Is this a constructor call? + */ + isConstructor(): boolean; + } + + interface ErrnoException extends Error { + errno?: number | undefined; + code?: string | undefined; + path?: string | undefined; + syscall?: string | undefined; + } + + interface ReadableStream extends EventEmitter { + readable: boolean; + read(size?: number): string | Buffer; + setEncoding(encoding: BufferEncoding): this; + pause(): this; + resume(): this; + isPaused(): boolean; + pipe(destination: T, options?: { end?: boolean | undefined; }): T; + unpipe(destination?: WritableStream): this; + unshift(chunk: string | Uint8Array, encoding?: BufferEncoding): void; + wrap(oldStream: ReadableStream): this; + [Symbol.asyncIterator](): AsyncIterableIterator; + } + + interface WritableStream extends EventEmitter { + writable: boolean; + write(buffer: Uint8Array | string, cb?: (err?: Error | null) => void): boolean; + write(str: string, encoding?: BufferEncoding, cb?: (err?: Error | null) => void): boolean; + end(cb?: () => void): this; + end(data: string | Uint8Array, cb?: () => void): this; + end(str: string, encoding?: BufferEncoding, cb?: () => void): this; + } + + interface ReadWriteStream extends ReadableStream, WritableStream { } + + interface RefCounted { + ref(): this; + unref(): this; + } + + type TypedArray = + | Uint8Array + | Uint8ClampedArray + | Uint16Array + | Uint32Array + | Int8Array + | Int16Array + | Int32Array + | BigUint64Array + | BigInt64Array + | Float32Array + | Float64Array; + type ArrayBufferView = TypedArray | DataView; + + interface Require { + (id: string): any; + resolve: RequireResolve; + cache: Dict; + /** + * @deprecated + */ + extensions: RequireExtensions; + main: Module | undefined; + } + + interface RequireResolve { + (id: string, options?: { paths?: string[] | undefined; }): string; + paths(request: string): string[] | null; + } + + interface RequireExtensions extends Dict<(m: Module, filename: string) => any> { + '.js': (m: Module, filename: string) => any; + '.json': (m: Module, filename: string) => any; + '.node': (m: Module, filename: string) => any; + } + interface Module { + /** + * `true` if the module is running during the Node.js preload + */ + isPreloading: boolean; + exports: any; + require: Require; + id: string; + filename: string; + loaded: boolean; + /** @deprecated since v14.6.0 Please use `require.main` and `module.children` instead. */ + parent: Module | null | undefined; + children: Module[]; + /** + * @since v11.14.0 + * + * The directory name of the module. This is usually the same as the path.dirname() of the module.id. + */ + path: string; + paths: string[]; + } + + interface Dict { + [key: string]: T | undefined; + } + + interface ReadOnlyDict { + readonly [key: string]: T | undefined; + } +} diff --git a/node_modules/@types/node/ts4.8/globals.global.d.ts b/node_modules/@types/node/ts4.8/globals.global.d.ts new file mode 100644 index 0000000..ef1198c --- /dev/null +++ b/node_modules/@types/node/ts4.8/globals.global.d.ts @@ -0,0 +1 @@ +declare var global: typeof globalThis; diff --git a/node_modules/@types/node/ts4.8/http.d.ts b/node_modules/@types/node/ts4.8/http.d.ts new file mode 100644 index 0000000..e14de6c --- /dev/null +++ b/node_modules/@types/node/ts4.8/http.d.ts @@ -0,0 +1,1651 @@ +/** + * To use the HTTP server and client one must `require('http')`. + * + * The HTTP interfaces in Node.js are designed to support many features + * of the protocol which have been traditionally difficult to use. + * In particular, large, possibly chunk-encoded, messages. The interface is + * careful to never buffer entire requests or responses, so the + * user is able to stream data. + * + * HTTP message headers are represented by an object like this: + * + * ```js + * { 'content-length': '123', + * 'content-type': 'text/plain', + * 'connection': 'keep-alive', + * 'host': 'example.com', + * 'accept': '*' } + * ``` + * + * Keys are lowercased. Values are not modified. + * + * In order to support the full spectrum of possible HTTP applications, the Node.js + * HTTP API is very low-level. It deals with stream handling and message + * parsing only. It parses a message into headers and body but it does not + * parse the actual headers or the body. + * + * See `message.headers` for details on how duplicate headers are handled. + * + * The raw headers as they were received are retained in the `rawHeaders`property, which is an array of `[key, value, key2, value2, ...]`. For + * example, the previous message header object might have a `rawHeaders`list like the following: + * + * ```js + * [ 'ConTent-Length', '123456', + * 'content-LENGTH', '123', + * 'content-type', 'text/plain', + * 'CONNECTION', 'keep-alive', + * 'Host', 'example.com', + * 'accepT', '*' ] + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/http.js) + */ +declare module 'http' { + import * as stream from 'node:stream'; + import { URL } from 'node:url'; + import { TcpSocketConnectOpts, Socket, Server as NetServer, LookupFunction } from 'node:net'; + import { LookupOptions } from 'node:dns'; + // incoming headers will never contain number + interface IncomingHttpHeaders extends NodeJS.Dict { + accept?: string | undefined; + 'accept-language'?: string | undefined; + 'accept-patch'?: string | undefined; + 'accept-ranges'?: string | undefined; + 'access-control-allow-credentials'?: string | undefined; + 'access-control-allow-headers'?: string | undefined; + 'access-control-allow-methods'?: string | undefined; + 'access-control-allow-origin'?: string | undefined; + 'access-control-expose-headers'?: string | undefined; + 'access-control-max-age'?: string | undefined; + 'access-control-request-headers'?: string | undefined; + 'access-control-request-method'?: string | undefined; + age?: string | undefined; + allow?: string | undefined; + 'alt-svc'?: string | undefined; + authorization?: string | undefined; + 'cache-control'?: string | undefined; + connection?: string | undefined; + 'content-disposition'?: string | undefined; + 'content-encoding'?: string | undefined; + 'content-language'?: string | undefined; + 'content-length'?: string | undefined; + 'content-location'?: string | undefined; + 'content-range'?: string | undefined; + 'content-type'?: string | undefined; + cookie?: string | undefined; + date?: string | undefined; + etag?: string | undefined; + expect?: string | undefined; + expires?: string | undefined; + forwarded?: string | undefined; + from?: string | undefined; + host?: string | undefined; + 'if-match'?: string | undefined; + 'if-modified-since'?: string | undefined; + 'if-none-match'?: string | undefined; + 'if-unmodified-since'?: string | undefined; + 'last-modified'?: string | undefined; + location?: string | undefined; + origin?: string | undefined; + pragma?: string | undefined; + 'proxy-authenticate'?: string | undefined; + 'proxy-authorization'?: string | undefined; + 'public-key-pins'?: string | undefined; + range?: string | undefined; + referer?: string | undefined; + 'retry-after'?: string | undefined; + 'sec-websocket-accept'?: string | undefined; + 'sec-websocket-extensions'?: string | undefined; + 'sec-websocket-key'?: string | undefined; + 'sec-websocket-protocol'?: string | undefined; + 'sec-websocket-version'?: string | undefined; + 'set-cookie'?: string[] | undefined; + 'strict-transport-security'?: string | undefined; + tk?: string | undefined; + trailer?: string | undefined; + 'transfer-encoding'?: string | undefined; + upgrade?: string | undefined; + 'user-agent'?: string | undefined; + vary?: string | undefined; + via?: string | undefined; + warning?: string | undefined; + 'www-authenticate'?: string | undefined; + } + // outgoing headers allows numbers (as they are converted internally to strings) + type OutgoingHttpHeader = number | string | string[]; + interface OutgoingHttpHeaders extends NodeJS.Dict {} + interface ClientRequestArgs { + _defaultAgent?: Agent | undefined; + agent?: Agent | boolean | undefined; + auth?: string | null | undefined; + // https://github.com/nodejs/node/blob/master/lib/_http_client.js#L278 + createConnection?: + | ((options: ClientRequestArgs, oncreate: (err: Error, socket: Socket) => void) => Socket) + | undefined; + defaultPort?: number | string | undefined; + family?: number | undefined; + headers?: OutgoingHttpHeaders | undefined; + hints?: LookupOptions['hints']; + host?: string | null | undefined; + hostname?: string | null | undefined; + insecureHTTPParser?: boolean | undefined; + localAddress?: string | undefined; + localPort?: number | undefined; + lookup?: LookupFunction | undefined; + /** + * @default 16384 + */ + maxHeaderSize?: number | undefined; + method?: string | undefined; + path?: string | null | undefined; + port?: number | string | null | undefined; + protocol?: string | null | undefined; + setHost?: boolean | undefined; + signal?: AbortSignal | undefined; + socketPath?: string | undefined; + timeout?: number | undefined; + uniqueHeaders?: Array | undefined; + } + interface ServerOptions< + Request extends typeof IncomingMessage = typeof IncomingMessage, + Response extends typeof ServerResponse = typeof ServerResponse, + > { + /** + * Specifies the `IncomingMessage` class to be used. Useful for extending the original `IncomingMessage`. + */ + IncomingMessage?: Request | undefined; + /** + * Specifies the `ServerResponse` class to be used. Useful for extending the original `ServerResponse`. + */ + ServerResponse?: Response | undefined; + /** + * Sets the timeout value in milliseconds for receiving the entire request from the client. + * @see Server.requestTimeout for more information. + * @default 300000 + * @since v18.0.0 + */ + requestTimeout?: number | undefined; + /** + * The number of milliseconds of inactivity a server needs to wait for additional incoming data, + * after it has finished writing the last response, before a socket will be destroyed. + * @see Server.keepAliveTimeout for more information. + * @default 5000 + * @since v18.0.0 + */ + keepAliveTimeout?: number | undefined; + /** + * Sets the interval value in milliseconds to check for request and headers timeout in incomplete requests. + * @default 30000 + */ + connectionsCheckingInterval?: number | undefined; + /** + * Use an insecure HTTP parser that accepts invalid HTTP headers when `true`. + * Using the insecure parser should be avoided. + * See --insecure-http-parser for more information. + * @default false + */ + insecureHTTPParser?: boolean | undefined; + /** + * Optionally overrides the value of + * `--max-http-header-size` for requests received by this server, i.e. + * the maximum length of request headers in bytes. + * @default 16384 + * @since v13.3.0 + */ + maxHeaderSize?: number | undefined; + /** + * If set to `true`, it disables the use of Nagle's algorithm immediately after a new incoming connection is received. + * @default true + * @since v16.5.0 + */ + noDelay?: boolean | undefined; + /** + * If set to `true`, it enables keep-alive functionality on the socket immediately after a new incoming connection is received, + * similarly on what is done in `socket.setKeepAlive([enable][, initialDelay])`. + * @default false + * @since v16.5.0 + */ + keepAlive?: boolean | undefined; + /** + * If set to a positive number, it sets the initial delay before the first keepalive probe is sent on an idle socket. + * @default 0 + * @since v16.5.0 + */ + keepAliveInitialDelay?: number | undefined; + /** + * A list of response headers that should be sent only once. + * If the header's value is an array, the items will be joined using `; `. + */ + uniqueHeaders?: Array | undefined; + } + type RequestListener< + Request extends typeof IncomingMessage = typeof IncomingMessage, + Response extends typeof ServerResponse = typeof ServerResponse, + > = (req: InstanceType, res: InstanceType & { req: InstanceType }) => void; + /** + * @since v0.1.17 + */ + class Server< + Request extends typeof IncomingMessage = typeof IncomingMessage, + Response extends typeof ServerResponse = typeof ServerResponse, + > extends NetServer { + constructor(requestListener?: RequestListener); + constructor(options: ServerOptions, requestListener?: RequestListener); + /** + * Sets the timeout value for sockets, and emits a `'timeout'` event on + * the Server object, passing the socket as an argument, if a timeout + * occurs. + * + * If there is a `'timeout'` event listener on the Server object, then it + * will be called with the timed-out socket as an argument. + * + * By default, the Server does not timeout sockets. However, if a callback + * is assigned to the Server's `'timeout'` event, timeouts must be handled + * explicitly. + * @since v0.9.12 + * @param [msecs=0 (no timeout)] + */ + setTimeout(msecs?: number, callback?: () => void): this; + setTimeout(callback: () => void): this; + /** + * Limits maximum incoming headers count. If set to 0, no limit will be applied. + * @since v0.7.0 + */ + maxHeadersCount: number | null; + /** + * The maximum number of requests socket can handle + * before closing keep alive connection. + * + * A value of `0` will disable the limit. + * + * When the limit is reached it will set the `Connection` header value to `close`, + * but will not actually close the connection, subsequent requests sent + * after the limit is reached will get `503 Service Unavailable` as a response. + * @since v16.10.0 + */ + maxRequestsPerSocket: number | null; + /** + * The number of milliseconds of inactivity before a socket is presumed + * to have timed out. + * + * A value of `0` will disable the timeout behavior on incoming connections. + * + * The socket timeout logic is set up on connection, so changing this + * value only affects new connections to the server, not any existing connections. + * @since v0.9.12 + */ + timeout: number; + /** + * Limit the amount of time the parser will wait to receive the complete HTTP + * headers. + * + * If the timeout expires, the server responds with status 408 without + * forwarding the request to the request listener and then closes the connection. + * + * It must be set to a non-zero value (e.g. 120 seconds) to protect against + * potential Denial-of-Service attacks in case the server is deployed without a + * reverse proxy in front. + * @since v11.3.0, v10.14.0 + */ + headersTimeout: number; + /** + * The number of milliseconds of inactivity a server needs to wait for additional + * incoming data, after it has finished writing the last response, before a socket + * will be destroyed. If the server receives new data before the keep-alive + * timeout has fired, it will reset the regular inactivity timeout, i.e.,`server.timeout`. + * + * A value of `0` will disable the keep-alive timeout behavior on incoming + * connections. + * A value of `0` makes the http server behave similarly to Node.js versions prior + * to 8.0.0, which did not have a keep-alive timeout. + * + * The socket timeout logic is set up on connection, so changing this value only + * affects new connections to the server, not any existing connections. + * @since v8.0.0 + */ + keepAliveTimeout: number; + /** + * Sets the timeout value in milliseconds for receiving the entire request from + * the client. + * + * If the timeout expires, the server responds with status 408 without + * forwarding the request to the request listener and then closes the connection. + * + * It must be set to a non-zero value (e.g. 120 seconds) to protect against + * potential Denial-of-Service attacks in case the server is deployed without a + * reverse proxy in front. + * @since v14.11.0 + */ + requestTimeout: number; + /** + * Closes all connections connected to this server. + * @since v18.2.0 + */ + closeAllConnections(): void; + /** + * Closes all connections connected to this server which are not sending a request or waiting for a response. + * @since v18.2.0 + */ + closeIdleConnections(): void; + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'connection', listener: (socket: Socket) => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'listening', listener: () => void): this; + addListener(event: 'checkContinue', listener: RequestListener): this; + addListener(event: 'checkExpectation', listener: RequestListener): this; + addListener(event: 'clientError', listener: (err: Error, socket: stream.Duplex) => void): this; + addListener( + event: 'connect', + listener: (req: InstanceType, socket: stream.Duplex, head: Buffer) => void, + ): this; + addListener(event: 'request', listener: RequestListener): this; + addListener( + event: 'upgrade', + listener: (req: InstanceType, socket: stream.Duplex, head: Buffer) => void, + ): this; + emit(event: string, ...args: any[]): boolean; + emit(event: 'close'): boolean; + emit(event: 'connection', socket: Socket): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'listening'): boolean; + emit( + event: 'checkContinue', + req: InstanceType, + res: InstanceType & { req: InstanceType }, + ): boolean; + emit( + event: 'checkExpectation', + req: InstanceType, + res: InstanceType & { req: InstanceType }, + ): boolean; + emit(event: 'clientError', err: Error, socket: stream.Duplex): boolean; + emit(event: 'connect', req: InstanceType, socket: stream.Duplex, head: Buffer): boolean; + emit( + event: 'request', + req: InstanceType, + res: InstanceType & { req: InstanceType }, + ): boolean; + emit(event: 'upgrade', req: InstanceType, socket: stream.Duplex, head: Buffer): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'connection', listener: (socket: Socket) => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'listening', listener: () => void): this; + on(event: 'checkContinue', listener: RequestListener): this; + on(event: 'checkExpectation', listener: RequestListener): this; + on(event: 'clientError', listener: (err: Error, socket: stream.Duplex) => void): this; + on(event: 'connect', listener: (req: InstanceType, socket: stream.Duplex, head: Buffer) => void): this; + on(event: 'request', listener: RequestListener): this; + on(event: 'upgrade', listener: (req: InstanceType, socket: stream.Duplex, head: Buffer) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'connection', listener: (socket: Socket) => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'listening', listener: () => void): this; + once(event: 'checkContinue', listener: RequestListener): this; + once(event: 'checkExpectation', listener: RequestListener): this; + once(event: 'clientError', listener: (err: Error, socket: stream.Duplex) => void): this; + once( + event: 'connect', + listener: (req: InstanceType, socket: stream.Duplex, head: Buffer) => void, + ): this; + once(event: 'request', listener: RequestListener): this; + once( + event: 'upgrade', + listener: (req: InstanceType, socket: stream.Duplex, head: Buffer) => void, + ): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'connection', listener: (socket: Socket) => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'listening', listener: () => void): this; + prependListener(event: 'checkContinue', listener: RequestListener): this; + prependListener(event: 'checkExpectation', listener: RequestListener): this; + prependListener(event: 'clientError', listener: (err: Error, socket: stream.Duplex) => void): this; + prependListener( + event: 'connect', + listener: (req: InstanceType, socket: stream.Duplex, head: Buffer) => void, + ): this; + prependListener(event: 'request', listener: RequestListener): this; + prependListener( + event: 'upgrade', + listener: (req: InstanceType, socket: stream.Duplex, head: Buffer) => void, + ): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'connection', listener: (socket: Socket) => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'listening', listener: () => void): this; + prependOnceListener(event: 'checkContinue', listener: RequestListener): this; + prependOnceListener(event: 'checkExpectation', listener: RequestListener): this; + prependOnceListener(event: 'clientError', listener: (err: Error, socket: stream.Duplex) => void): this; + prependOnceListener( + event: 'connect', + listener: (req: InstanceType, socket: stream.Duplex, head: Buffer) => void, + ): this; + prependOnceListener(event: 'request', listener: RequestListener): this; + prependOnceListener( + event: 'upgrade', + listener: (req: InstanceType, socket: stream.Duplex, head: Buffer) => void, + ): this; + } + /** + * This class serves as the parent class of {@link ClientRequest} and {@link ServerResponse}. It is an abstract of outgoing message from + * the perspective of the participants of HTTP transaction. + * @since v0.1.17 + */ + class OutgoingMessage extends stream.Writable { + readonly req: Request; + chunkedEncoding: boolean; + shouldKeepAlive: boolean; + useChunkedEncodingByDefault: boolean; + sendDate: boolean; + /** + * @deprecated Use `writableEnded` instead. + */ + finished: boolean; + /** + * Read-only. `true` if the headers were sent, otherwise `false`. + * @since v0.9.3 + */ + readonly headersSent: boolean; + /** + * Aliases of `outgoingMessage.socket` + * @since v0.3.0 + * @deprecated Since v15.12.0,v14.17.1 - Use `socket` instead. + */ + readonly connection: Socket | null; + /** + * Reference to the underlying socket. Usually, users will not want to access + * this property. + * + * After calling `outgoingMessage.end()`, this property will be nulled. + * @since v0.3.0 + */ + readonly socket: Socket | null; + constructor(); + /** + * Once a socket is associated with the message and is connected,`socket.setTimeout()` will be called with `msecs` as the first parameter. + * @since v0.9.12 + * @param callback Optional function to be called when a timeout occurs. Same as binding to the `timeout` event. + */ + setTimeout(msecs: number, callback?: () => void): this; + /** + * Sets a single header value for the header object. + * @since v0.4.0 + * @param name Header name + * @param value Header value + */ + setHeader(name: string, value: number | string | ReadonlyArray): this; + /** + * Gets the value of HTTP header with the given name. If such a name doesn't + * exist in message, it will be `undefined`. + * @since v0.4.0 + * @param name Name of header + */ + getHeader(name: string): number | string | string[] | undefined; + /** + * Returns a shallow copy of the current outgoing headers. Since a shallow + * copy is used, array values may be mutated without additional calls to + * various header-related HTTP module methods. The keys of the returned + * object are the header names and the values are the respective header + * values. All header names are lowercase. + * + * The object returned by the `outgoingMessage.getHeaders()` method does + * not prototypically inherit from the JavaScript Object. This means that + * typical Object methods such as `obj.toString()`, `obj.hasOwnProperty()`, + * and others are not defined and will not work. + * + * ```js + * outgoingMessage.setHeader('Foo', 'bar'); + * outgoingMessage.setHeader('Set-Cookie', ['foo=bar', 'bar=baz']); + * + * const headers = outgoingMessage.getHeaders(); + * // headers === { foo: 'bar', 'set-cookie': ['foo=bar', 'bar=baz'] } + * ``` + * @since v7.7.0 + */ + getHeaders(): OutgoingHttpHeaders; + /** + * Returns an array of names of headers of the outgoing outgoingMessage. All + * names are lowercase. + * @since v7.7.0 + */ + getHeaderNames(): string[]; + /** + * Returns `true` if the header identified by `name` is currently set in the + * outgoing headers. The header name is case-insensitive. + * + * ```js + * const hasContentType = outgoingMessage.hasHeader('content-type'); + * ``` + * @since v7.7.0 + */ + hasHeader(name: string): boolean; + /** + * Removes a header that is queued for implicit sending. + * + * ```js + * outgoingMessage.removeHeader('Content-Encoding'); + * ``` + * @since v0.4.0 + * @param name Header name + */ + removeHeader(name: string): void; + /** + * Adds HTTP trailers (headers but at the end of the message) to the message. + * + * Trailers are **only** be emitted if the message is chunked encoded. If not, + * the trailer will be silently discarded. + * + * HTTP requires the `Trailer` header to be sent to emit trailers, + * with a list of header fields in its value, e.g. + * + * ```js + * message.writeHead(200, { 'Content-Type': 'text/plain', + * 'Trailer': 'Content-MD5' }); + * message.write(fileData); + * message.addTrailers({ 'Content-MD5': '7895bf4b8828b55ceaf47747b4bca667' }); + * message.end(); + * ``` + * + * Attempting to set a header field name or value that contains invalid characters + * will result in a `TypeError` being thrown. + * @since v0.3.0 + */ + addTrailers(headers: OutgoingHttpHeaders | ReadonlyArray<[string, string]>): void; + /** + * Compulsorily flushes the message headers + * + * For efficiency reason, Node.js normally buffers the message headers + * until `outgoingMessage.end()` is called or the first chunk of message data + * is written. It then tries to pack the headers and data into a single TCP + * packet. + * + * It is usually desired (it saves a TCP round-trip), but not when the first + * data is not sent until possibly much later. `outgoingMessage.flushHeaders()`bypasses the optimization and kickstarts the request. + * @since v1.6.0 + */ + flushHeaders(): void; + } + /** + * This object is created internally by an HTTP server, not by the user. It is + * passed as the second parameter to the `'request'` event. + * @since v0.1.17 + */ + class ServerResponse extends OutgoingMessage { + /** + * When using implicit headers (not calling `response.writeHead()` explicitly), + * this property controls the status code that will be sent to the client when + * the headers get flushed. + * + * ```js + * response.statusCode = 404; + * ``` + * + * After response header was sent to the client, this property indicates the + * status code which was sent out. + * @since v0.4.0 + */ + statusCode: number; + /** + * When using implicit headers (not calling `response.writeHead()` explicitly), + * this property controls the status message that will be sent to the client when + * the headers get flushed. If this is left as `undefined` then the standard + * message for the status code will be used. + * + * ```js + * response.statusMessage = 'Not found'; + * ``` + * + * After response header was sent to the client, this property indicates the + * status message which was sent out. + * @since v0.11.8 + */ + statusMessage: string; + constructor(req: Request); + assignSocket(socket: Socket): void; + detachSocket(socket: Socket): void; + /** + * Sends an HTTP/1.1 100 Continue message to the client, indicating that + * the request body should be sent. See the `'checkContinue'` event on`Server`. + * @since v0.3.0 + */ + writeContinue(callback?: () => void): void; + /** + * Sends an HTTP/1.1 103 Early Hints message to the client with a Link header, + * indicating that the user agent can preload/preconnect the linked resources. + * The `hints` is an object containing the values of headers to be sent with + * early hints message. The optional `callback` argument will be called when + * the response message has been written. + * + * Example: + * + * ```js + * const earlyHintsLink = '; rel=preload; as=style'; + * response.writeEarlyHints({ + * 'link': earlyHintsLink, + * }); + * + * const earlyHintsLinks = [ + * '; rel=preload; as=style', + * '; rel=preload; as=script', + * ]; + * response.writeEarlyHints({ + * 'link': earlyHintsLinks, + * 'x-trace-id': 'id for diagnostics' + * }); + * + * const earlyHintsCallback = () => console.log('early hints message sent'); + * response.writeEarlyHints({ + * 'link': earlyHintsLinks + * }, earlyHintsCallback); + * ``` + * + * @since v18.11.0 + * @param hints An object containing the values of headers + * @param callback Will be called when the response message has been written + */ + writeEarlyHints(hints: Record, callback?: () => void): void; + /** + * Sends a response header to the request. The status code is a 3-digit HTTP + * status code, like `404`. The last argument, `headers`, are the response headers. + * Optionally one can give a human-readable `statusMessage` as the second + * argument. + * + * `headers` may be an `Array` where the keys and values are in the same list. + * It is _not_ a list of tuples. So, the even-numbered offsets are key values, + * and the odd-numbered offsets are the associated values. The array is in the same + * format as `request.rawHeaders`. + * + * Returns a reference to the `ServerResponse`, so that calls can be chained. + * + * ```js + * const body = 'hello world'; + * response + * .writeHead(200, { + * 'Content-Length': Buffer.byteLength(body), + * 'Content-Type': 'text/plain' + * }) + * .end(body); + * ``` + * + * This method must only be called once on a message and it must + * be called before `response.end()` is called. + * + * If `response.write()` or `response.end()` are called before calling + * this, the implicit/mutable headers will be calculated and call this function. + * + * When headers have been set with `response.setHeader()`, they will be merged + * with any headers passed to `response.writeHead()`, with the headers passed + * to `response.writeHead()` given precedence. + * + * If this method is called and `response.setHeader()` has not been called, + * it will directly write the supplied header values onto the network channel + * without caching internally, and the `response.getHeader()` on the header + * will not yield the expected result. If progressive population of headers is + * desired with potential future retrieval and modification, use `response.setHeader()` instead. + * + * ```js + * // Returns content-type = text/plain + * const server = http.createServer((req, res) => { + * res.setHeader('Content-Type', 'text/html'); + * res.setHeader('X-Foo', 'bar'); + * res.writeHead(200, { 'Content-Type': 'text/plain' }); + * res.end('ok'); + * }); + * ``` + * + * `Content-Length` is given in bytes, not characters. Use `Buffer.byteLength()` to determine the length of the body in bytes. Node.js + * does not check whether `Content-Length` and the length of the body which has + * been transmitted are equal or not. + * + * Attempting to set a header field name or value that contains invalid characters + * will result in a `TypeError` being thrown. + * @since v0.1.30 + */ + writeHead( + statusCode: number, + statusMessage?: string, + headers?: OutgoingHttpHeaders | OutgoingHttpHeader[], + ): this; + writeHead(statusCode: number, headers?: OutgoingHttpHeaders | OutgoingHttpHeader[]): this; + /** + * Sends an HTTP/1.1 102 Processing message to the client, indicating that + * the request body should be sent. + * @since v10.0.0 + */ + writeProcessing(): void; + } + interface InformationEvent { + statusCode: number; + statusMessage: string; + httpVersion: string; + httpVersionMajor: number; + httpVersionMinor: number; + headers: IncomingHttpHeaders; + rawHeaders: string[]; + } + /** + * This object is created internally and returned from {@link request}. It + * represents an _in-progress_ request whose header has already been queued. The + * header is still mutable using the `setHeader(name, value)`,`getHeader(name)`, `removeHeader(name)` API. The actual header will + * be sent along with the first data chunk or when calling `request.end()`. + * + * To get the response, add a listener for `'response'` to the request object.`'response'` will be emitted from the request object when the response + * headers have been received. The `'response'` event is executed with one + * argument which is an instance of {@link IncomingMessage}. + * + * During the `'response'` event, one can add listeners to the + * response object; particularly to listen for the `'data'` event. + * + * If no `'response'` handler is added, then the response will be + * entirely discarded. However, if a `'response'` event handler is added, + * then the data from the response object **must** be consumed, either by + * calling `response.read()` whenever there is a `'readable'` event, or + * by adding a `'data'` handler, or by calling the `.resume()` method. + * Until the data is consumed, the `'end'` event will not fire. Also, until + * the data is read it will consume memory that can eventually lead to a + * 'process out of memory' error. + * + * For backward compatibility, `res` will only emit `'error'` if there is an`'error'` listener registered. + * + * Node.js does not check whether Content-Length and the length of the + * body which has been transmitted are equal or not. + * @since v0.1.17 + */ + class ClientRequest extends OutgoingMessage { + /** + * The `request.aborted` property will be `true` if the request has + * been aborted. + * @since v0.11.14 + * @deprecated Since v17.0.0,v16.12.0 - Check `destroyed` instead. + */ + aborted: boolean; + /** + * The request host. + * @since v14.5.0, v12.19.0 + */ + host: string; + /** + * The request protocol. + * @since v14.5.0, v12.19.0 + */ + protocol: string; + /** + * When sending request through a keep-alive enabled agent, the underlying socket + * might be reused. But if server closes connection at unfortunate time, client + * may run into a 'ECONNRESET' error. + * + * ```js + * const http = require('http'); + * + * // Server has a 5 seconds keep-alive timeout by default + * http + * .createServer((req, res) => { + * res.write('hello\n'); + * res.end(); + * }) + * .listen(3000); + * + * setInterval(() => { + * // Adapting a keep-alive agent + * http.get('http://localhost:3000', { agent }, (res) => { + * res.on('data', (data) => { + * // Do nothing + * }); + * }); + * }, 5000); // Sending request on 5s interval so it's easy to hit idle timeout + * ``` + * + * By marking a request whether it reused socket or not, we can do + * automatic error retry base on it. + * + * ```js + * const http = require('http'); + * const agent = new http.Agent({ keepAlive: true }); + * + * function retriableRequest() { + * const req = http + * .get('http://localhost:3000', { agent }, (res) => { + * // ... + * }) + * .on('error', (err) => { + * // Check if retry is needed + * if (req.reusedSocket && err.code === 'ECONNRESET') { + * retriableRequest(); + * } + * }); + * } + * + * retriableRequest(); + * ``` + * @since v13.0.0, v12.16.0 + */ + reusedSocket: boolean; + /** + * Limits maximum response headers count. If set to 0, no limit will be applied. + */ + maxHeadersCount: number; + constructor(url: string | URL | ClientRequestArgs, cb?: (res: IncomingMessage) => void); + /** + * The request method. + * @since v0.1.97 + */ + method: string; + /** + * The request path. + * @since v0.4.0 + */ + path: string; + /** + * Marks the request as aborting. Calling this will cause remaining data + * in the response to be dropped and the socket to be destroyed. + * @since v0.3.8 + * @deprecated Since v14.1.0,v13.14.0 - Use `destroy` instead. + */ + abort(): void; + onSocket(socket: Socket): void; + /** + * Once a socket is assigned to this request and is connected `socket.setTimeout()` will be called. + * @since v0.5.9 + * @param timeout Milliseconds before a request times out. + * @param callback Optional function to be called when a timeout occurs. Same as binding to the `'timeout'` event. + */ + setTimeout(timeout: number, callback?: () => void): this; + /** + * Once a socket is assigned to this request and is connected `socket.setNoDelay()` will be called. + * @since v0.5.9 + */ + setNoDelay(noDelay?: boolean): void; + /** + * Once a socket is assigned to this request and is connected `socket.setKeepAlive()` will be called. + * @since v0.5.9 + */ + setSocketKeepAlive(enable?: boolean, initialDelay?: number): void; + /** + * Returns an array containing the unique names of the current outgoing raw + * headers. Header names are returned with their exact casing being set. + * + * ```js + * request.setHeader('Foo', 'bar'); + * request.setHeader('Set-Cookie', ['foo=bar', 'bar=baz']); + * + * const headerNames = request.getRawHeaderNames(); + * // headerNames === ['Foo', 'Set-Cookie'] + * ``` + * @since v15.13.0, v14.17.0 + */ + getRawHeaderNames(): string[]; + /** + * @deprecated + */ + addListener(event: 'abort', listener: () => void): this; + addListener( + event: 'connect', + listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void, + ): this; + addListener(event: 'continue', listener: () => void): this; + addListener(event: 'information', listener: (info: InformationEvent) => void): this; + addListener(event: 'response', listener: (response: IncomingMessage) => void): this; + addListener(event: 'socket', listener: (socket: Socket) => void): this; + addListener(event: 'timeout', listener: () => void): this; + addListener( + event: 'upgrade', + listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void, + ): this; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'drain', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'finish', listener: () => void): this; + addListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + addListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + /** + * @deprecated + */ + on(event: 'abort', listener: () => void): this; + on(event: 'connect', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + on(event: 'continue', listener: () => void): this; + on(event: 'information', listener: (info: InformationEvent) => void): this; + on(event: 'response', listener: (response: IncomingMessage) => void): this; + on(event: 'socket', listener: (socket: Socket) => void): this; + on(event: 'timeout', listener: () => void): this; + on(event: 'upgrade', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'drain', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'finish', listener: () => void): this; + on(event: 'pipe', listener: (src: stream.Readable) => void): this; + on(event: 'unpipe', listener: (src: stream.Readable) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + /** + * @deprecated + */ + once(event: 'abort', listener: () => void): this; + once(event: 'connect', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + once(event: 'continue', listener: () => void): this; + once(event: 'information', listener: (info: InformationEvent) => void): this; + once(event: 'response', listener: (response: IncomingMessage) => void): this; + once(event: 'socket', listener: (socket: Socket) => void): this; + once(event: 'timeout', listener: () => void): this; + once(event: 'upgrade', listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'drain', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'finish', listener: () => void): this; + once(event: 'pipe', listener: (src: stream.Readable) => void): this; + once(event: 'unpipe', listener: (src: stream.Readable) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + /** + * @deprecated + */ + prependListener(event: 'abort', listener: () => void): this; + prependListener( + event: 'connect', + listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void, + ): this; + prependListener(event: 'continue', listener: () => void): this; + prependListener(event: 'information', listener: (info: InformationEvent) => void): this; + prependListener(event: 'response', listener: (response: IncomingMessage) => void): this; + prependListener(event: 'socket', listener: (socket: Socket) => void): this; + prependListener(event: 'timeout', listener: () => void): this; + prependListener( + event: 'upgrade', + listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void, + ): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'drain', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'finish', listener: () => void): this; + prependListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + prependListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + /** + * @deprecated + */ + prependOnceListener(event: 'abort', listener: () => void): this; + prependOnceListener( + event: 'connect', + listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void, + ): this; + prependOnceListener(event: 'continue', listener: () => void): this; + prependOnceListener(event: 'information', listener: (info: InformationEvent) => void): this; + prependOnceListener(event: 'response', listener: (response: IncomingMessage) => void): this; + prependOnceListener(event: 'socket', listener: (socket: Socket) => void): this; + prependOnceListener(event: 'timeout', listener: () => void): this; + prependOnceListener( + event: 'upgrade', + listener: (response: IncomingMessage, socket: Socket, head: Buffer) => void, + ): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'drain', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'finish', listener: () => void): this; + prependOnceListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + prependOnceListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + /** + * An `IncomingMessage` object is created by {@link Server} or {@link ClientRequest} and passed as the first argument to the `'request'` and `'response'` event respectively. It may be used to + * access response + * status, headers and data. + * + * Different from its `socket` value which is a subclass of `stream.Duplex`, the`IncomingMessage` itself extends `stream.Readable` and is created separately to + * parse and emit the incoming HTTP headers and payload, as the underlying socket + * may be reused multiple times in case of keep-alive. + * @since v0.1.17 + */ + class IncomingMessage extends stream.Readable { + constructor(socket: Socket); + /** + * The `message.aborted` property will be `true` if the request has + * been aborted. + * @since v10.1.0 + * @deprecated Since v17.0.0,v16.12.0 - Check `message.destroyed` from stream.Readable. + */ + aborted: boolean; + /** + * In case of server request, the HTTP version sent by the client. In the case of + * client response, the HTTP version of the connected-to server. + * Probably either `'1.1'` or `'1.0'`. + * + * Also `message.httpVersionMajor` is the first integer and`message.httpVersionMinor` is the second. + * @since v0.1.1 + */ + httpVersion: string; + httpVersionMajor: number; + httpVersionMinor: number; + /** + * The `message.complete` property will be `true` if a complete HTTP message has + * been received and successfully parsed. + * + * This property is particularly useful as a means of determining if a client or + * server fully transmitted a message before a connection was terminated: + * + * ```js + * const req = http.request({ + * host: '127.0.0.1', + * port: 8080, + * method: 'POST' + * }, (res) => { + * res.resume(); + * res.on('end', () => { + * if (!res.complete) + * console.error( + * 'The connection was terminated while the message was still being sent'); + * }); + * }); + * ``` + * @since v0.3.0 + */ + complete: boolean; + /** + * Alias for `message.socket`. + * @since v0.1.90 + * @deprecated Since v16.0.0 - Use `socket`. + */ + connection: Socket; + /** + * The `net.Socket` object associated with the connection. + * + * With HTTPS support, use `request.socket.getPeerCertificate()` to obtain the + * client's authentication details. + * + * This property is guaranteed to be an instance of the `net.Socket` class, + * a subclass of `stream.Duplex`, unless the user specified a socket + * type other than `net.Socket` or internally nulled. + * @since v0.3.0 + */ + socket: Socket; + /** + * The request/response headers object. + * + * Key-value pairs of header names and values. Header names are lower-cased. + * + * ```js + * // Prints something like: + * // + * // { 'user-agent': 'curl/7.22.0', + * // host: '127.0.0.1:8000', + * // accept: '*' } + * console.log(request.getHeaders()); + * ``` + * + * Duplicates in raw headers are handled in the following ways, depending on the + * header name: + * + * * Duplicates of `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`, `server`, or `user-agent` are discarded. + * * `set-cookie` is always an array. Duplicates are added to the array. + * * For duplicate `cookie` headers, the values are joined together with '; '. + * * For all other headers, the values are joined together with ', '. + * @since v0.1.5 + */ + headers: IncomingHttpHeaders; + /** + * The raw request/response headers list exactly as they were received. + * + * The keys and values are in the same list. It is _not_ a + * list of tuples. So, the even-numbered offsets are key values, and the + * odd-numbered offsets are the associated values. + * + * Header names are not lowercased, and duplicates are not merged. + * + * ```js + * // Prints something like: + * // + * // [ 'user-agent', + * // 'this is invalid because there can be only one', + * // 'User-Agent', + * // 'curl/7.22.0', + * // 'Host', + * // '127.0.0.1:8000', + * // 'ACCEPT', + * // '*' ] + * console.log(request.rawHeaders); + * ``` + * @since v0.11.6 + */ + rawHeaders: string[]; + /** + * The request/response trailers object. Only populated at the `'end'` event. + * @since v0.3.0 + */ + trailers: NodeJS.Dict; + /** + * The raw request/response trailer keys and values exactly as they were + * received. Only populated at the `'end'` event. + * @since v0.11.6 + */ + rawTrailers: string[]; + /** + * Calls `message.socket.setTimeout(msecs, callback)`. + * @since v0.5.9 + */ + setTimeout(msecs: number, callback?: () => void): this; + /** + * **Only valid for request obtained from {@link Server}.** + * + * The request method as a string. Read only. Examples: `'GET'`, `'DELETE'`. + * @since v0.1.1 + */ + method?: string | undefined; + /** + * **Only valid for request obtained from {@link Server}.** + * + * Request URL string. This contains only the URL that is present in the actual + * HTTP request. Take the following request: + * + * ```http + * GET /status?name=ryan HTTP/1.1 + * Accept: text/plain + * ``` + * + * To parse the URL into its parts: + * + * ```js + * new URL(request.url, `http://${request.getHeaders().host}`); + * ``` + * + * When `request.url` is `'/status?name=ryan'` and`request.getHeaders().host` is `'localhost:3000'`: + * + * ```console + * $ node + * > new URL(request.url, `http://${request.getHeaders().host}`) + * URL { + * href: 'http://localhost:3000/status?name=ryan', + * origin: 'http://localhost:3000', + * protocol: 'http:', + * username: '', + * password: '', + * host: 'localhost:3000', + * hostname: 'localhost', + * port: '3000', + * pathname: '/status', + * search: '?name=ryan', + * searchParams: URLSearchParams { 'name' => 'ryan' }, + * hash: '' + * } + * ``` + * @since v0.1.90 + */ + url?: string | undefined; + /** + * **Only valid for response obtained from {@link ClientRequest}.** + * + * The 3-digit HTTP response status code. E.G. `404`. + * @since v0.1.1 + */ + statusCode?: number | undefined; + /** + * **Only valid for response obtained from {@link ClientRequest}.** + * + * The HTTP response status message (reason phrase). E.G. `OK` or `Internal Server Error`. + * @since v0.11.10 + */ + statusMessage?: string | undefined; + /** + * Calls `destroy()` on the socket that received the `IncomingMessage`. If `error`is provided, an `'error'` event is emitted on the socket and `error` is passed + * as an argument to any listeners on the event. + * @since v0.3.0 + */ + destroy(error?: Error): this; + } + interface AgentOptions extends Partial { + /** + * Keep sockets around in a pool to be used by other requests in the future. Default = false + */ + keepAlive?: boolean | undefined; + /** + * When using HTTP KeepAlive, how often to send TCP KeepAlive packets over sockets being kept alive. Default = 1000. + * Only relevant if keepAlive is set to true. + */ + keepAliveMsecs?: number | undefined; + /** + * Maximum number of sockets to allow per host. Default for Node 0.10 is 5, default for Node 0.12 is Infinity + */ + maxSockets?: number | undefined; + /** + * Maximum number of sockets allowed for all hosts in total. Each request will use a new socket until the maximum is reached. Default: Infinity. + */ + maxTotalSockets?: number | undefined; + /** + * Maximum number of sockets to leave open in a free state. Only relevant if keepAlive is set to true. Default = 256. + */ + maxFreeSockets?: number | undefined; + /** + * Socket timeout in milliseconds. This will set the timeout after the socket is connected. + */ + timeout?: number | undefined; + /** + * Scheduling strategy to apply when picking the next free socket to use. + * @default `lifo` + */ + scheduling?: 'fifo' | 'lifo' | undefined; + } + /** + * An `Agent` is responsible for managing connection persistence + * and reuse for HTTP clients. It maintains a queue of pending requests + * for a given host and port, reusing a single socket connection for each + * until the queue is empty, at which time the socket is either destroyed + * or put into a pool where it is kept to be used again for requests to the + * same host and port. Whether it is destroyed or pooled depends on the`keepAlive` `option`. + * + * Pooled connections have TCP Keep-Alive enabled for them, but servers may + * still close idle connections, in which case they will be removed from the + * pool and a new connection will be made when a new HTTP request is made for + * that host and port. Servers may also refuse to allow multiple requests + * over the same connection, in which case the connection will have to be + * remade for every request and cannot be pooled. The `Agent` will still make + * the requests to that server, but each one will occur over a new connection. + * + * When a connection is closed by the client or the server, it is removed + * from the pool. Any unused sockets in the pool will be unrefed so as not + * to keep the Node.js process running when there are no outstanding requests. + * (see `socket.unref()`). + * + * It is good practice, to `destroy()` an `Agent` instance when it is no + * longer in use, because unused sockets consume OS resources. + * + * Sockets are removed from an agent when the socket emits either + * a `'close'` event or an `'agentRemove'` event. When intending to keep one + * HTTP request open for a long time without keeping it in the agent, something + * like the following may be done: + * + * ```js + * http.get(options, (res) => { + * // Do stuff + * }).on('socket', (socket) => { + * socket.emit('agentRemove'); + * }); + * ``` + * + * An agent may also be used for an individual request. By providing`{agent: false}` as an option to the `http.get()` or `http.request()`functions, a one-time use `Agent` with default options + * will be used + * for the client connection. + * + * `agent:false`: + * + * ```js + * http.get({ + * hostname: 'localhost', + * port: 80, + * path: '/', + * agent: false // Create a new agent just for this one request + * }, (res) => { + * // Do stuff with response + * }); + * ``` + * @since v0.3.4 + */ + class Agent { + /** + * By default set to 256\. For agents with `keepAlive` enabled, this + * sets the maximum number of sockets that will be left open in the free + * state. + * @since v0.11.7 + */ + maxFreeSockets: number; + /** + * By default set to `Infinity`. Determines how many concurrent sockets the agent + * can have open per origin. Origin is the returned value of `agent.getName()`. + * @since v0.3.6 + */ + maxSockets: number; + /** + * By default set to `Infinity`. Determines how many concurrent sockets the agent + * can have open. Unlike `maxSockets`, this parameter applies across all origins. + * @since v14.5.0, v12.19.0 + */ + maxTotalSockets: number; + /** + * An object which contains arrays of sockets currently awaiting use by + * the agent when `keepAlive` is enabled. Do not modify. + * + * Sockets in the `freeSockets` list will be automatically destroyed and + * removed from the array on `'timeout'`. + * @since v0.11.4 + */ + readonly freeSockets: NodeJS.ReadOnlyDict; + /** + * An object which contains arrays of sockets currently in use by the + * agent. Do not modify. + * @since v0.3.6 + */ + readonly sockets: NodeJS.ReadOnlyDict; + /** + * An object which contains queues of requests that have not yet been assigned to + * sockets. Do not modify. + * @since v0.5.9 + */ + readonly requests: NodeJS.ReadOnlyDict; + constructor(opts?: AgentOptions); + /** + * Destroy any sockets that are currently in use by the agent. + * + * It is usually not necessary to do this. However, if using an + * agent with `keepAlive` enabled, then it is best to explicitly shut down + * the agent when it is no longer needed. Otherwise, + * sockets might stay open for quite a long time before the server + * terminates them. + * @since v0.11.4 + */ + destroy(): void; + } + const METHODS: string[]; + const STATUS_CODES: { + [errorCode: number]: string | undefined; + [errorCode: string]: string | undefined; + }; + /** + * Returns a new instance of {@link Server}. + * + * The `requestListener` is a function which is automatically + * added to the `'request'` event. + * @since v0.1.13 + */ + function createServer< + Request extends typeof IncomingMessage = typeof IncomingMessage, + Response extends typeof ServerResponse = typeof ServerResponse, + >(requestListener?: RequestListener): Server; + function createServer< + Request extends typeof IncomingMessage = typeof IncomingMessage, + Response extends typeof ServerResponse = typeof ServerResponse, + >( + options: ServerOptions, + requestListener?: RequestListener, + ): Server; + // although RequestOptions are passed as ClientRequestArgs to ClientRequest directly, + // create interface RequestOptions would make the naming more clear to developers + interface RequestOptions extends ClientRequestArgs {} + /** + * `options` in `socket.connect()` are also supported. + * + * Node.js maintains several connections per server to make HTTP requests. + * This function allows one to transparently issue requests. + * + * `url` can be a string or a `URL` object. If `url` is a + * string, it is automatically parsed with `new URL()`. If it is a `URL` object, it will be automatically converted to an ordinary `options` object. + * + * If both `url` and `options` are specified, the objects are merged, with the`options` properties taking precedence. + * + * The optional `callback` parameter will be added as a one-time listener for + * the `'response'` event. + * + * `http.request()` returns an instance of the {@link ClientRequest} class. The `ClientRequest` instance is a writable stream. If one needs to + * upload a file with a POST request, then write to the `ClientRequest` object. + * + * ```js + * const http = require('http'); + * + * const postData = JSON.stringify({ + * 'msg': 'Hello World!' + * }); + * + * const options = { + * hostname: 'www.google.com', + * port: 80, + * path: '/upload', + * method: 'POST', + * headers: { + * 'Content-Type': 'application/json', + * 'Content-Length': Buffer.byteLength(postData) + * } + * }; + * + * const req = http.request(options, (res) => { + * console.log(`STATUS: ${res.statusCode}`); + * console.log(`HEADERS: ${JSON.stringify(res.headers)}`); + * res.setEncoding('utf8'); + * res.on('data', (chunk) => { + * console.log(`BODY: ${chunk}`); + * }); + * res.on('end', () => { + * console.log('No more data in response.'); + * }); + * }); + * + * req.on('error', (e) => { + * console.error(`problem with request: ${e.message}`); + * }); + * + * // Write data to request body + * req.write(postData); + * req.end(); + * ``` + * + * In the example `req.end()` was called. With `http.request()` one + * must always call `req.end()` to signify the end of the request - + * even if there is no data being written to the request body. + * + * If any error is encountered during the request (be that with DNS resolution, + * TCP level errors, or actual HTTP parse errors) an `'error'` event is emitted + * on the returned request object. As with all `'error'` events, if no listeners + * are registered the error will be thrown. + * + * There are a few special headers that should be noted. + * + * * Sending a 'Connection: keep-alive' will notify Node.js that the connection to + * the server should be persisted until the next request. + * * Sending a 'Content-Length' header will disable the default chunked encoding. + * * Sending an 'Expect' header will immediately send the request headers. + * Usually, when sending 'Expect: 100-continue', both a timeout and a listener + * for the `'continue'` event should be set. See RFC 2616 Section 8.2.3 for more + * information. + * * Sending an Authorization header will override using the `auth` option + * to compute basic authentication. + * + * Example using a `URL` as `options`: + * + * ```js + * const options = new URL('http://abc:xyz@example.com'); + * + * const req = http.request(options, (res) => { + * // ... + * }); + * ``` + * + * In a successful request, the following events will be emitted in the following + * order: + * + * * `'socket'` + * * `'response'` + * * `'data'` any number of times, on the `res` object + * (`'data'` will not be emitted at all if the response body is empty, for + * instance, in most redirects) + * * `'end'` on the `res` object + * * `'close'` + * + * In the case of a connection error, the following events will be emitted: + * + * * `'socket'` + * * `'error'` + * * `'close'` + * + * In the case of a premature connection close before the response is received, + * the following events will be emitted in the following order: + * + * * `'socket'` + * * `'error'` with an error with message `'Error: socket hang up'` and code`'ECONNRESET'` + * * `'close'` + * + * In the case of a premature connection close after the response is received, + * the following events will be emitted in the following order: + * + * * `'socket'` + * * `'response'` + * * `'data'` any number of times, on the `res` object + * * (connection closed here) + * * `'aborted'` on the `res` object + * * `'error'` on the `res` object with an error with message`'Error: aborted'` and code `'ECONNRESET'`. + * * `'close'` + * * `'close'` on the `res` object + * + * If `req.destroy()` is called before a socket is assigned, the following + * events will be emitted in the following order: + * + * * (`req.destroy()` called here) + * * `'error'` with an error with message `'Error: socket hang up'` and code`'ECONNRESET'` + * * `'close'` + * + * If `req.destroy()` is called before the connection succeeds, the following + * events will be emitted in the following order: + * + * * `'socket'` + * * (`req.destroy()` called here) + * * `'error'` with an error with message `'Error: socket hang up'` and code`'ECONNRESET'` + * * `'close'` + * + * If `req.destroy()` is called after the response is received, the following + * events will be emitted in the following order: + * + * * `'socket'` + * * `'response'` + * * `'data'` any number of times, on the `res` object + * * (`req.destroy()` called here) + * * `'aborted'` on the `res` object + * * `'error'` on the `res` object with an error with message`'Error: aborted'` and code `'ECONNRESET'`. + * * `'close'` + * * `'close'` on the `res` object + * + * If `req.abort()` is called before a socket is assigned, the following + * events will be emitted in the following order: + * + * * (`req.abort()` called here) + * * `'abort'` + * * `'close'` + * + * If `req.abort()` is called before the connection succeeds, the following + * events will be emitted in the following order: + * + * * `'socket'` + * * (`req.abort()` called here) + * * `'abort'` + * * `'error'` with an error with message `'Error: socket hang up'` and code`'ECONNRESET'` + * * `'close'` + * + * If `req.abort()` is called after the response is received, the following + * events will be emitted in the following order: + * + * * `'socket'` + * * `'response'` + * * `'data'` any number of times, on the `res` object + * * (`req.abort()` called here) + * * `'abort'` + * * `'aborted'` on the `res` object + * * `'error'` on the `res` object with an error with message`'Error: aborted'` and code `'ECONNRESET'`. + * * `'close'` + * * `'close'` on the `res` object + * + * Setting the `timeout` option or using the `setTimeout()` function will + * not abort the request or do anything besides add a `'timeout'` event. + * + * Passing an `AbortSignal` and then calling `abort` on the corresponding`AbortController` will behave the same way as calling `.destroy()` on the + * request itself. + * @since v0.3.6 + */ + function request(options: RequestOptions | string | URL, callback?: (res: IncomingMessage) => void): ClientRequest; + function request( + url: string | URL, + options: RequestOptions, + callback?: (res: IncomingMessage) => void, + ): ClientRequest; + /** + * Since most requests are GET requests without bodies, Node.js provides this + * convenience method. The only difference between this method and {@link request} is that it sets the method to GET and calls `req.end()`automatically. The callback must take care to consume the + * response + * data for reasons stated in {@link ClientRequest} section. + * + * The `callback` is invoked with a single argument that is an instance of {@link IncomingMessage}. + * + * JSON fetching example: + * + * ```js + * http.get('http://localhost:8000/', (res) => { + * const { statusCode } = res; + * const contentType = res.headers['content-type']; + * + * let error; + * // Any 2xx status code signals a successful response but + * // here we're only checking for 200. + * if (statusCode !== 200) { + * error = new Error('Request Failed.\n' + + * `Status Code: ${statusCode}`); + * } else if (!/^application\/json/.test(contentType)) { + * error = new Error('Invalid content-type.\n' + + * `Expected application/json but received ${contentType}`); + * } + * if (error) { + * console.error(error.message); + * // Consume response data to free up memory + * res.resume(); + * return; + * } + * + * res.setEncoding('utf8'); + * let rawData = ''; + * res.on('data', (chunk) => { rawData += chunk; }); + * res.on('end', () => { + * try { + * const parsedData = JSON.parse(rawData); + * console.log(parsedData); + * } catch (e) { + * console.error(e.message); + * } + * }); + * }).on('error', (e) => { + * console.error(`Got error: ${e.message}`); + * }); + * + * // Create a local server to receive data from + * const server = http.createServer((req, res) => { + * res.writeHead(200, { 'Content-Type': 'application/json' }); + * res.end(JSON.stringify({ + * data: 'Hello World!' + * })); + * }); + * + * server.listen(8000); + * ``` + * @since v0.3.6 + * @param options Accepts the same `options` as {@link request}, with the `method` always set to `GET`. Properties that are inherited from the prototype are ignored. + */ + function get(options: RequestOptions | string | URL, callback?: (res: IncomingMessage) => void): ClientRequest; + function get(url: string | URL, options: RequestOptions, callback?: (res: IncomingMessage) => void): ClientRequest; + + /** + * Performs the low-level validations on the provided name that are done when `res.setHeader(name, value)` is called. + * Passing illegal value as name will result in a TypeError being thrown, identified by `code: 'ERR_INVALID_HTTP_TOKEN'`. + * @param name Header name + * @since v14.3.0 + */ + function validateHeaderName(name: string): void; + /** + * Performs the low-level validations on the provided value that are done when `res.setHeader(name, value)` is called. + * Passing illegal value as value will result in a TypeError being thrown. + * - Undefined value error is identified by `code: 'ERR_HTTP_INVALID_HEADER_VALUE'`. + * - Invalid value character error is identified by `code: 'ERR_INVALID_CHAR'`. + * @param name Header name + * @param value Header value + * @since v14.3.0 + */ + function validateHeaderValue(name: string, value: string): void; + + /** + * Set the maximum number of idle HTTP parsers. Default: 1000. + * @param count + * @since v18.8.0, v16.18.0 + */ + function setMaxIdleHTTPParsers(count: number): void; + + let globalAgent: Agent; + /** + * Read-only property specifying the maximum allowed size of HTTP headers in bytes. + * Defaults to 16KB. Configurable using the `--max-http-header-size` CLI option. + */ + const maxHeaderSize: number; +} +declare module 'node:http' { + export * from 'http'; +} diff --git a/node_modules/@types/node/ts4.8/http2.d.ts b/node_modules/@types/node/ts4.8/http2.d.ts new file mode 100644 index 0000000..0e36826 --- /dev/null +++ b/node_modules/@types/node/ts4.8/http2.d.ts @@ -0,0 +1,2134 @@ +/** + * The `http2` module provides an implementation of the [HTTP/2](https://tools.ietf.org/html/rfc7540) protocol. It + * can be accessed using: + * + * ```js + * const http2 = require('http2'); + * ``` + * @since v8.4.0 + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/http2.js) + */ +declare module 'http2' { + import EventEmitter = require('node:events'); + import * as fs from 'node:fs'; + import * as net from 'node:net'; + import * as stream from 'node:stream'; + import * as tls from 'node:tls'; + import * as url from 'node:url'; + import { IncomingHttpHeaders as Http1IncomingHttpHeaders, OutgoingHttpHeaders, IncomingMessage, ServerResponse } from 'node:http'; + export { OutgoingHttpHeaders } from 'node:http'; + export interface IncomingHttpStatusHeader { + ':status'?: number | undefined; + } + export interface IncomingHttpHeaders extends Http1IncomingHttpHeaders { + ':path'?: string | undefined; + ':method'?: string | undefined; + ':authority'?: string | undefined; + ':scheme'?: string | undefined; + } + // Http2Stream + export interface StreamPriorityOptions { + exclusive?: boolean | undefined; + parent?: number | undefined; + weight?: number | undefined; + silent?: boolean | undefined; + } + export interface StreamState { + localWindowSize?: number | undefined; + state?: number | undefined; + localClose?: number | undefined; + remoteClose?: number | undefined; + sumDependencyWeight?: number | undefined; + weight?: number | undefined; + } + export interface ServerStreamResponseOptions { + endStream?: boolean | undefined; + waitForTrailers?: boolean | undefined; + } + export interface StatOptions { + offset: number; + length: number; + } + export interface ServerStreamFileResponseOptions { + statCheck?(stats: fs.Stats, headers: OutgoingHttpHeaders, statOptions: StatOptions): void | boolean; + waitForTrailers?: boolean | undefined; + offset?: number | undefined; + length?: number | undefined; + } + export interface ServerStreamFileResponseOptionsWithError extends ServerStreamFileResponseOptions { + onError?(err: NodeJS.ErrnoException): void; + } + export interface Http2Stream extends stream.Duplex { + /** + * Set to `true` if the `Http2Stream` instance was aborted abnormally. When set, + * the `'aborted'` event will have been emitted. + * @since v8.4.0 + */ + readonly aborted: boolean; + /** + * This property shows the number of characters currently buffered to be written. + * See `net.Socket.bufferSize` for details. + * @since v11.2.0, v10.16.0 + */ + readonly bufferSize: number; + /** + * Set to `true` if the `Http2Stream` instance has been closed. + * @since v9.4.0 + */ + readonly closed: boolean; + /** + * Set to `true` if the `Http2Stream` instance has been destroyed and is no longer + * usable. + * @since v8.4.0 + */ + readonly destroyed: boolean; + /** + * Set to `true` if the `END_STREAM` flag was set in the request or response + * HEADERS frame received, indicating that no additional data should be received + * and the readable side of the `Http2Stream` will be closed. + * @since v10.11.0 + */ + readonly endAfterHeaders: boolean; + /** + * The numeric stream identifier of this `Http2Stream` instance. Set to `undefined`if the stream identifier has not yet been assigned. + * @since v8.4.0 + */ + readonly id?: number | undefined; + /** + * Set to `true` if the `Http2Stream` instance has not yet been assigned a + * numeric stream identifier. + * @since v9.4.0 + */ + readonly pending: boolean; + /** + * Set to the `RST_STREAM` `error code` reported when the `Http2Stream` is + * destroyed after either receiving an `RST_STREAM` frame from the connected peer, + * calling `http2stream.close()`, or `http2stream.destroy()`. Will be`undefined` if the `Http2Stream` has not been closed. + * @since v8.4.0 + */ + readonly rstCode: number; + /** + * An object containing the outbound headers sent for this `Http2Stream`. + * @since v9.5.0 + */ + readonly sentHeaders: OutgoingHttpHeaders; + /** + * An array of objects containing the outbound informational (additional) headers + * sent for this `Http2Stream`. + * @since v9.5.0 + */ + readonly sentInfoHeaders?: OutgoingHttpHeaders[] | undefined; + /** + * An object containing the outbound trailers sent for this `HttpStream`. + * @since v9.5.0 + */ + readonly sentTrailers?: OutgoingHttpHeaders | undefined; + /** + * A reference to the `Http2Session` instance that owns this `Http2Stream`. The + * value will be `undefined` after the `Http2Stream` instance is destroyed. + * @since v8.4.0 + */ + readonly session: Http2Session; + /** + * Provides miscellaneous information about the current state of the`Http2Stream`. + * + * A current state of this `Http2Stream`. + * @since v8.4.0 + */ + readonly state: StreamState; + /** + * Closes the `Http2Stream` instance by sending an `RST_STREAM` frame to the + * connected HTTP/2 peer. + * @since v8.4.0 + * @param [code=http2.constants.NGHTTP2_NO_ERROR] Unsigned 32-bit integer identifying the error code. + * @param callback An optional function registered to listen for the `'close'` event. + */ + close(code?: number, callback?: () => void): void; + /** + * Updates the priority for this `Http2Stream` instance. + * @since v8.4.0 + */ + priority(options: StreamPriorityOptions): void; + /** + * ```js + * const http2 = require('http2'); + * const client = http2.connect('http://example.org:8000'); + * const { NGHTTP2_CANCEL } = http2.constants; + * const req = client.request({ ':path': '/' }); + * + * // Cancel the stream if there's no activity after 5 seconds + * req.setTimeout(5000, () => req.close(NGHTTP2_CANCEL)); + * ``` + * @since v8.4.0 + */ + setTimeout(msecs: number, callback?: () => void): void; + /** + * Sends a trailing `HEADERS` frame to the connected HTTP/2 peer. This method + * will cause the `Http2Stream` to be immediately closed and must only be + * called after the `'wantTrailers'` event has been emitted. When sending a + * request or sending a response, the `options.waitForTrailers` option must be set + * in order to keep the `Http2Stream` open after the final `DATA` frame so that + * trailers can be sent. + * + * ```js + * const http2 = require('http2'); + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * stream.respond(undefined, { waitForTrailers: true }); + * stream.on('wantTrailers', () => { + * stream.sendTrailers({ xyz: 'abc' }); + * }); + * stream.end('Hello World'); + * }); + * ``` + * + * The HTTP/1 specification forbids trailers from containing HTTP/2 pseudo-header + * fields (e.g. `':method'`, `':path'`, etc). + * @since v10.0.0 + */ + sendTrailers(headers: OutgoingHttpHeaders): void; + addListener(event: 'aborted', listener: () => void): this; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'data', listener: (chunk: Buffer | string) => void): this; + addListener(event: 'drain', listener: () => void): this; + addListener(event: 'end', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'finish', listener: () => void): this; + addListener(event: 'frameError', listener: (frameType: number, errorCode: number) => void): this; + addListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + addListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + addListener(event: 'streamClosed', listener: (code: number) => void): this; + addListener(event: 'timeout', listener: () => void): this; + addListener(event: 'trailers', listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; + addListener(event: 'wantTrailers', listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'aborted'): boolean; + emit(event: 'close'): boolean; + emit(event: 'data', chunk: Buffer | string): boolean; + emit(event: 'drain'): boolean; + emit(event: 'end'): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'finish'): boolean; + emit(event: 'frameError', frameType: number, errorCode: number): boolean; + emit(event: 'pipe', src: stream.Readable): boolean; + emit(event: 'unpipe', src: stream.Readable): boolean; + emit(event: 'streamClosed', code: number): boolean; + emit(event: 'timeout'): boolean; + emit(event: 'trailers', trailers: IncomingHttpHeaders, flags: number): boolean; + emit(event: 'wantTrailers'): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'aborted', listener: () => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'data', listener: (chunk: Buffer | string) => void): this; + on(event: 'drain', listener: () => void): this; + on(event: 'end', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'finish', listener: () => void): this; + on(event: 'frameError', listener: (frameType: number, errorCode: number) => void): this; + on(event: 'pipe', listener: (src: stream.Readable) => void): this; + on(event: 'unpipe', listener: (src: stream.Readable) => void): this; + on(event: 'streamClosed', listener: (code: number) => void): this; + on(event: 'timeout', listener: () => void): this; + on(event: 'trailers', listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; + on(event: 'wantTrailers', listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'aborted', listener: () => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'data', listener: (chunk: Buffer | string) => void): this; + once(event: 'drain', listener: () => void): this; + once(event: 'end', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'finish', listener: () => void): this; + once(event: 'frameError', listener: (frameType: number, errorCode: number) => void): this; + once(event: 'pipe', listener: (src: stream.Readable) => void): this; + once(event: 'unpipe', listener: (src: stream.Readable) => void): this; + once(event: 'streamClosed', listener: (code: number) => void): this; + once(event: 'timeout', listener: () => void): this; + once(event: 'trailers', listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; + once(event: 'wantTrailers', listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'aborted', listener: () => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'data', listener: (chunk: Buffer | string) => void): this; + prependListener(event: 'drain', listener: () => void): this; + prependListener(event: 'end', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'finish', listener: () => void): this; + prependListener(event: 'frameError', listener: (frameType: number, errorCode: number) => void): this; + prependListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + prependListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + prependListener(event: 'streamClosed', listener: (code: number) => void): this; + prependListener(event: 'timeout', listener: () => void): this; + prependListener(event: 'trailers', listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; + prependListener(event: 'wantTrailers', listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'aborted', listener: () => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'data', listener: (chunk: Buffer | string) => void): this; + prependOnceListener(event: 'drain', listener: () => void): this; + prependOnceListener(event: 'end', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'finish', listener: () => void): this; + prependOnceListener(event: 'frameError', listener: (frameType: number, errorCode: number) => void): this; + prependOnceListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + prependOnceListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + prependOnceListener(event: 'streamClosed', listener: (code: number) => void): this; + prependOnceListener(event: 'timeout', listener: () => void): this; + prependOnceListener(event: 'trailers', listener: (trailers: IncomingHttpHeaders, flags: number) => void): this; + prependOnceListener(event: 'wantTrailers', listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + export interface ClientHttp2Stream extends Http2Stream { + addListener(event: 'continue', listener: () => {}): this; + addListener(event: 'headers', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + addListener(event: 'push', listener: (headers: IncomingHttpHeaders, flags: number) => void): this; + addListener(event: 'response', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'continue'): boolean; + emit(event: 'headers', headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean; + emit(event: 'push', headers: IncomingHttpHeaders, flags: number): boolean; + emit(event: 'response', headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'continue', listener: () => {}): this; + on(event: 'headers', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + on(event: 'push', listener: (headers: IncomingHttpHeaders, flags: number) => void): this; + on(event: 'response', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'continue', listener: () => {}): this; + once(event: 'headers', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + once(event: 'push', listener: (headers: IncomingHttpHeaders, flags: number) => void): this; + once(event: 'response', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'continue', listener: () => {}): this; + prependListener(event: 'headers', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependListener(event: 'push', listener: (headers: IncomingHttpHeaders, flags: number) => void): this; + prependListener(event: 'response', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'continue', listener: () => {}): this; + prependOnceListener(event: 'headers', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependOnceListener(event: 'push', listener: (headers: IncomingHttpHeaders, flags: number) => void): this; + prependOnceListener(event: 'response', listener: (headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + export interface ServerHttp2Stream extends Http2Stream { + /** + * True if headers were sent, false otherwise (read-only). + * @since v8.4.0 + */ + readonly headersSent: boolean; + /** + * Read-only property mapped to the `SETTINGS_ENABLE_PUSH` flag of the remote + * client's most recent `SETTINGS` frame. Will be `true` if the remote peer + * accepts push streams, `false` otherwise. Settings are the same for every`Http2Stream` in the same `Http2Session`. + * @since v8.4.0 + */ + readonly pushAllowed: boolean; + /** + * Sends an additional informational `HEADERS` frame to the connected HTTP/2 peer. + * @since v8.4.0 + */ + additionalHeaders(headers: OutgoingHttpHeaders): void; + /** + * Initiates a push stream. The callback is invoked with the new `Http2Stream`instance created for the push stream passed as the second argument, or an`Error` passed as the first argument. + * + * ```js + * const http2 = require('http2'); + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * stream.respond({ ':status': 200 }); + * stream.pushStream({ ':path': '/' }, (err, pushStream, headers) => { + * if (err) throw err; + * pushStream.respond({ ':status': 200 }); + * pushStream.end('some pushed data'); + * }); + * stream.end('some data'); + * }); + * ``` + * + * Setting the weight of a push stream is not allowed in the `HEADERS` frame. Pass + * a `weight` value to `http2stream.priority` with the `silent` option set to`true` to enable server-side bandwidth balancing between concurrent streams. + * + * Calling `http2stream.pushStream()` from within a pushed stream is not permitted + * and will throw an error. + * @since v8.4.0 + * @param callback Callback that is called once the push stream has been initiated. + */ + pushStream(headers: OutgoingHttpHeaders, callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void): void; + pushStream(headers: OutgoingHttpHeaders, options?: StreamPriorityOptions, callback?: (err: Error | null, pushStream: ServerHttp2Stream, headers: OutgoingHttpHeaders) => void): void; + /** + * ```js + * const http2 = require('http2'); + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * stream.respond({ ':status': 200 }); + * stream.end('some data'); + * }); + * ``` + * + * When the `options.waitForTrailers` option is set, the `'wantTrailers'` event + * will be emitted immediately after queuing the last chunk of payload data to be + * sent. The `http2stream.sendTrailers()` method can then be used to sent trailing + * header fields to the peer. + * + * When `options.waitForTrailers` is set, the `Http2Stream` will not automatically + * close when the final `DATA` frame is transmitted. User code must call either`http2stream.sendTrailers()` or `http2stream.close()` to close the`Http2Stream`. + * + * ```js + * const http2 = require('http2'); + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * stream.respond({ ':status': 200 }, { waitForTrailers: true }); + * stream.on('wantTrailers', () => { + * stream.sendTrailers({ ABC: 'some value to send' }); + * }); + * stream.end('some data'); + * }); + * ``` + * @since v8.4.0 + */ + respond(headers?: OutgoingHttpHeaders, options?: ServerStreamResponseOptions): void; + /** + * Initiates a response whose data is read from the given file descriptor. No + * validation is performed on the given file descriptor. If an error occurs while + * attempting to read data using the file descriptor, the `Http2Stream` will be + * closed using an `RST_STREAM` frame using the standard `INTERNAL_ERROR` code. + * + * When used, the `Http2Stream` object's `Duplex` interface will be closed + * automatically. + * + * ```js + * const http2 = require('http2'); + * const fs = require('fs'); + * + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * const fd = fs.openSync('/some/file', 'r'); + * + * const stat = fs.fstatSync(fd); + * const headers = { + * 'content-length': stat.size, + * 'last-modified': stat.mtime.toUTCString(), + * 'content-type': 'text/plain; charset=utf-8' + * }; + * stream.respondWithFD(fd, headers); + * stream.on('close', () => fs.closeSync(fd)); + * }); + * ``` + * + * The optional `options.statCheck` function may be specified to give user code + * an opportunity to set additional content headers based on the `fs.Stat` details + * of the given fd. If the `statCheck` function is provided, the`http2stream.respondWithFD()` method will perform an `fs.fstat()` call to + * collect details on the provided file descriptor. + * + * The `offset` and `length` options may be used to limit the response to a + * specific range subset. This can be used, for instance, to support HTTP Range + * requests. + * + * The file descriptor or `FileHandle` is not closed when the stream is closed, + * so it will need to be closed manually once it is no longer needed. + * Using the same file descriptor concurrently for multiple streams + * is not supported and may result in data loss. Re-using a file descriptor + * after a stream has finished is supported. + * + * When the `options.waitForTrailers` option is set, the `'wantTrailers'` event + * will be emitted immediately after queuing the last chunk of payload data to be + * sent. The `http2stream.sendTrailers()` method can then be used to sent trailing + * header fields to the peer. + * + * When `options.waitForTrailers` is set, the `Http2Stream` will not automatically + * close when the final `DATA` frame is transmitted. User code _must_ call either`http2stream.sendTrailers()` or `http2stream.close()` to close the`Http2Stream`. + * + * ```js + * const http2 = require('http2'); + * const fs = require('fs'); + * + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * const fd = fs.openSync('/some/file', 'r'); + * + * const stat = fs.fstatSync(fd); + * const headers = { + * 'content-length': stat.size, + * 'last-modified': stat.mtime.toUTCString(), + * 'content-type': 'text/plain; charset=utf-8' + * }; + * stream.respondWithFD(fd, headers, { waitForTrailers: true }); + * stream.on('wantTrailers', () => { + * stream.sendTrailers({ ABC: 'some value to send' }); + * }); + * + * stream.on('close', () => fs.closeSync(fd)); + * }); + * ``` + * @since v8.4.0 + * @param fd A readable file descriptor. + */ + respondWithFD(fd: number | fs.promises.FileHandle, headers?: OutgoingHttpHeaders, options?: ServerStreamFileResponseOptions): void; + /** + * Sends a regular file as the response. The `path` must specify a regular file + * or an `'error'` event will be emitted on the `Http2Stream` object. + * + * When used, the `Http2Stream` object's `Duplex` interface will be closed + * automatically. + * + * The optional `options.statCheck` function may be specified to give user code + * an opportunity to set additional content headers based on the `fs.Stat` details + * of the given file: + * + * If an error occurs while attempting to read the file data, the `Http2Stream`will be closed using an `RST_STREAM` frame using the standard `INTERNAL_ERROR`code. If the `onError` callback is + * defined, then it will be called. Otherwise + * the stream will be destroyed. + * + * Example using a file path: + * + * ```js + * const http2 = require('http2'); + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * function statCheck(stat, headers) { + * headers['last-modified'] = stat.mtime.toUTCString(); + * } + * + * function onError(err) { + * // stream.respond() can throw if the stream has been destroyed by + * // the other side. + * try { + * if (err.code === 'ENOENT') { + * stream.respond({ ':status': 404 }); + * } else { + * stream.respond({ ':status': 500 }); + * } + * } catch (err) { + * // Perform actual error handling. + * console.log(err); + * } + * stream.end(); + * } + * + * stream.respondWithFile('/some/file', + * { 'content-type': 'text/plain; charset=utf-8' }, + * { statCheck, onError }); + * }); + * ``` + * + * The `options.statCheck` function may also be used to cancel the send operation + * by returning `false`. For instance, a conditional request may check the stat + * results to determine if the file has been modified to return an appropriate`304` response: + * + * ```js + * const http2 = require('http2'); + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * function statCheck(stat, headers) { + * // Check the stat here... + * stream.respond({ ':status': 304 }); + * return false; // Cancel the send operation + * } + * stream.respondWithFile('/some/file', + * { 'content-type': 'text/plain; charset=utf-8' }, + * { statCheck }); + * }); + * ``` + * + * The `content-length` header field will be automatically set. + * + * The `offset` and `length` options may be used to limit the response to a + * specific range subset. This can be used, for instance, to support HTTP Range + * requests. + * + * The `options.onError` function may also be used to handle all the errors + * that could happen before the delivery of the file is initiated. The + * default behavior is to destroy the stream. + * + * When the `options.waitForTrailers` option is set, the `'wantTrailers'` event + * will be emitted immediately after queuing the last chunk of payload data to be + * sent. The `http2stream.sendTrailers()` method can then be used to sent trailing + * header fields to the peer. + * + * When `options.waitForTrailers` is set, the `Http2Stream` will not automatically + * close when the final `DATA` frame is transmitted. User code must call either`http2stream.sendTrailers()` or `http2stream.close()` to close the`Http2Stream`. + * + * ```js + * const http2 = require('http2'); + * const server = http2.createServer(); + * server.on('stream', (stream) => { + * stream.respondWithFile('/some/file', + * { 'content-type': 'text/plain; charset=utf-8' }, + * { waitForTrailers: true }); + * stream.on('wantTrailers', () => { + * stream.sendTrailers({ ABC: 'some value to send' }); + * }); + * }); + * ``` + * @since v8.4.0 + */ + respondWithFile(path: string, headers?: OutgoingHttpHeaders, options?: ServerStreamFileResponseOptionsWithError): void; + } + // Http2Session + export interface Settings { + headerTableSize?: number | undefined; + enablePush?: boolean | undefined; + initialWindowSize?: number | undefined; + maxFrameSize?: number | undefined; + maxConcurrentStreams?: number | undefined; + maxHeaderListSize?: number | undefined; + enableConnectProtocol?: boolean | undefined; + } + export interface ClientSessionRequestOptions { + endStream?: boolean | undefined; + exclusive?: boolean | undefined; + parent?: number | undefined; + weight?: number | undefined; + waitForTrailers?: boolean | undefined; + signal?: AbortSignal | undefined; + } + export interface SessionState { + effectiveLocalWindowSize?: number | undefined; + effectiveRecvDataLength?: number | undefined; + nextStreamID?: number | undefined; + localWindowSize?: number | undefined; + lastProcStreamID?: number | undefined; + remoteWindowSize?: number | undefined; + outboundQueueSize?: number | undefined; + deflateDynamicTableSize?: number | undefined; + inflateDynamicTableSize?: number | undefined; + } + export interface Http2Session extends EventEmitter { + /** + * Value will be `undefined` if the `Http2Session` is not yet connected to a + * socket, `h2c` if the `Http2Session` is not connected to a `TLSSocket`, or + * will return the value of the connected `TLSSocket`'s own `alpnProtocol`property. + * @since v9.4.0 + */ + readonly alpnProtocol?: string | undefined; + /** + * Will be `true` if this `Http2Session` instance has been closed, otherwise`false`. + * @since v9.4.0 + */ + readonly closed: boolean; + /** + * Will be `true` if this `Http2Session` instance is still connecting, will be set + * to `false` before emitting `connect` event and/or calling the `http2.connect`callback. + * @since v10.0.0 + */ + readonly connecting: boolean; + /** + * Will be `true` if this `Http2Session` instance has been destroyed and must no + * longer be used, otherwise `false`. + * @since v8.4.0 + */ + readonly destroyed: boolean; + /** + * Value is `undefined` if the `Http2Session` session socket has not yet been + * connected, `true` if the `Http2Session` is connected with a `TLSSocket`, + * and `false` if the `Http2Session` is connected to any other kind of socket + * or stream. + * @since v9.4.0 + */ + readonly encrypted?: boolean | undefined; + /** + * A prototype-less object describing the current local settings of this`Http2Session`. The local settings are local to _this_`Http2Session` instance. + * @since v8.4.0 + */ + readonly localSettings: Settings; + /** + * If the `Http2Session` is connected to a `TLSSocket`, the `originSet` property + * will return an `Array` of origins for which the `Http2Session` may be + * considered authoritative. + * + * The `originSet` property is only available when using a secure TLS connection. + * @since v9.4.0 + */ + readonly originSet?: string[] | undefined; + /** + * Indicates whether the `Http2Session` is currently waiting for acknowledgment of + * a sent `SETTINGS` frame. Will be `true` after calling the`http2session.settings()` method. Will be `false` once all sent `SETTINGS`frames have been acknowledged. + * @since v8.4.0 + */ + readonly pendingSettingsAck: boolean; + /** + * A prototype-less object describing the current remote settings of this`Http2Session`. The remote settings are set by the _connected_ HTTP/2 peer. + * @since v8.4.0 + */ + readonly remoteSettings: Settings; + /** + * Returns a `Proxy` object that acts as a `net.Socket` (or `tls.TLSSocket`) but + * limits available methods to ones safe to use with HTTP/2. + * + * `destroy`, `emit`, `end`, `pause`, `read`, `resume`, and `write` will throw + * an error with code `ERR_HTTP2_NO_SOCKET_MANIPULATION`. See `Http2Session and Sockets` for more information. + * + * `setTimeout` method will be called on this `Http2Session`. + * + * All other interactions will be routed directly to the socket. + * @since v8.4.0 + */ + readonly socket: net.Socket | tls.TLSSocket; + /** + * Provides miscellaneous information about the current state of the`Http2Session`. + * + * An object describing the current status of this `Http2Session`. + * @since v8.4.0 + */ + readonly state: SessionState; + /** + * The `http2session.type` will be equal to`http2.constants.NGHTTP2_SESSION_SERVER` if this `Http2Session` instance is a + * server, and `http2.constants.NGHTTP2_SESSION_CLIENT` if the instance is a + * client. + * @since v8.4.0 + */ + readonly type: number; + /** + * Gracefully closes the `Http2Session`, allowing any existing streams to + * complete on their own and preventing new `Http2Stream` instances from being + * created. Once closed, `http2session.destroy()`_might_ be called if there + * are no open `Http2Stream` instances. + * + * If specified, the `callback` function is registered as a handler for the`'close'` event. + * @since v9.4.0 + */ + close(callback?: () => void): void; + /** + * Immediately terminates the `Http2Session` and the associated `net.Socket` or`tls.TLSSocket`. + * + * Once destroyed, the `Http2Session` will emit the `'close'` event. If `error`is not undefined, an `'error'` event will be emitted immediately before the`'close'` event. + * + * If there are any remaining open `Http2Streams` associated with the`Http2Session`, those will also be destroyed. + * @since v8.4.0 + * @param error An `Error` object if the `Http2Session` is being destroyed due to an error. + * @param code The HTTP/2 error code to send in the final `GOAWAY` frame. If unspecified, and `error` is not undefined, the default is `INTERNAL_ERROR`, otherwise defaults to `NO_ERROR`. + */ + destroy(error?: Error, code?: number): void; + /** + * Transmits a `GOAWAY` frame to the connected peer _without_ shutting down the`Http2Session`. + * @since v9.4.0 + * @param code An HTTP/2 error code + * @param lastStreamID The numeric ID of the last processed `Http2Stream` + * @param opaqueData A `TypedArray` or `DataView` instance containing additional data to be carried within the `GOAWAY` frame. + */ + goaway(code?: number, lastStreamID?: number, opaqueData?: NodeJS.ArrayBufferView): void; + /** + * Sends a `PING` frame to the connected HTTP/2 peer. A `callback` function must + * be provided. The method will return `true` if the `PING` was sent, `false`otherwise. + * + * The maximum number of outstanding (unacknowledged) pings is determined by the`maxOutstandingPings` configuration option. The default maximum is 10. + * + * If provided, the `payload` must be a `Buffer`, `TypedArray`, or `DataView`containing 8 bytes of data that will be transmitted with the `PING` and + * returned with the ping acknowledgment. + * + * The callback will be invoked with three arguments: an error argument that will + * be `null` if the `PING` was successfully acknowledged, a `duration` argument + * that reports the number of milliseconds elapsed since the ping was sent and the + * acknowledgment was received, and a `Buffer` containing the 8-byte `PING`payload. + * + * ```js + * session.ping(Buffer.from('abcdefgh'), (err, duration, payload) => { + * if (!err) { + * console.log(`Ping acknowledged in ${duration} milliseconds`); + * console.log(`With payload '${payload.toString()}'`); + * } + * }); + * ``` + * + * If the `payload` argument is not specified, the default payload will be the + * 64-bit timestamp (little endian) marking the start of the `PING` duration. + * @since v8.9.3 + * @param payload Optional ping payload. + */ + ping(callback: (err: Error | null, duration: number, payload: Buffer) => void): boolean; + ping(payload: NodeJS.ArrayBufferView, callback: (err: Error | null, duration: number, payload: Buffer) => void): boolean; + /** + * Calls `ref()` on this `Http2Session`instance's underlying `net.Socket`. + * @since v9.4.0 + */ + ref(): void; + /** + * Sets the local endpoint's window size. + * The `windowSize` is the total window size to set, not + * the delta. + * + * ```js + * const http2 = require('http2'); + * + * const server = http2.createServer(); + * const expectedWindowSize = 2 ** 20; + * server.on('connect', (session) => { + * + * // Set local window size to be 2 ** 20 + * session.setLocalWindowSize(expectedWindowSize); + * }); + * ``` + * @since v15.3.0, v14.18.0 + */ + setLocalWindowSize(windowSize: number): void; + /** + * Used to set a callback function that is called when there is no activity on + * the `Http2Session` after `msecs` milliseconds. The given `callback` is + * registered as a listener on the `'timeout'` event. + * @since v8.4.0 + */ + setTimeout(msecs: number, callback?: () => void): void; + /** + * Updates the current local settings for this `Http2Session` and sends a new`SETTINGS` frame to the connected HTTP/2 peer. + * + * Once called, the `http2session.pendingSettingsAck` property will be `true`while the session is waiting for the remote peer to acknowledge the new + * settings. + * + * The new settings will not become effective until the `SETTINGS` acknowledgment + * is received and the `'localSettings'` event is emitted. It is possible to send + * multiple `SETTINGS` frames while acknowledgment is still pending. + * @since v8.4.0 + * @param callback Callback that is called once the session is connected or right away if the session is already connected. + */ + settings(settings: Settings, callback?: (err: Error | null, settings: Settings, duration: number) => void): void; + /** + * Calls `unref()` on this `Http2Session`instance's underlying `net.Socket`. + * @since v9.4.0 + */ + unref(): void; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'frameError', listener: (frameType: number, errorCode: number, streamID: number) => void): this; + addListener(event: 'goaway', listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; + addListener(event: 'localSettings', listener: (settings: Settings) => void): this; + addListener(event: 'ping', listener: () => void): this; + addListener(event: 'remoteSettings', listener: (settings: Settings) => void): this; + addListener(event: 'timeout', listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'close'): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'frameError', frameType: number, errorCode: number, streamID: number): boolean; + emit(event: 'goaway', errorCode: number, lastStreamID: number, opaqueData: Buffer): boolean; + emit(event: 'localSettings', settings: Settings): boolean; + emit(event: 'ping'): boolean; + emit(event: 'remoteSettings', settings: Settings): boolean; + emit(event: 'timeout'): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'close', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'frameError', listener: (frameType: number, errorCode: number, streamID: number) => void): this; + on(event: 'goaway', listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; + on(event: 'localSettings', listener: (settings: Settings) => void): this; + on(event: 'ping', listener: () => void): this; + on(event: 'remoteSettings', listener: (settings: Settings) => void): this; + on(event: 'timeout', listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'frameError', listener: (frameType: number, errorCode: number, streamID: number) => void): this; + once(event: 'goaway', listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; + once(event: 'localSettings', listener: (settings: Settings) => void): this; + once(event: 'ping', listener: () => void): this; + once(event: 'remoteSettings', listener: (settings: Settings) => void): this; + once(event: 'timeout', listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'frameError', listener: (frameType: number, errorCode: number, streamID: number) => void): this; + prependListener(event: 'goaway', listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; + prependListener(event: 'localSettings', listener: (settings: Settings) => void): this; + prependListener(event: 'ping', listener: () => void): this; + prependListener(event: 'remoteSettings', listener: (settings: Settings) => void): this; + prependListener(event: 'timeout', listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'frameError', listener: (frameType: number, errorCode: number, streamID: number) => void): this; + prependOnceListener(event: 'goaway', listener: (errorCode: number, lastStreamID: number, opaqueData: Buffer) => void): this; + prependOnceListener(event: 'localSettings', listener: (settings: Settings) => void): this; + prependOnceListener(event: 'ping', listener: () => void): this; + prependOnceListener(event: 'remoteSettings', listener: (settings: Settings) => void): this; + prependOnceListener(event: 'timeout', listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + export interface ClientHttp2Session extends Http2Session { + /** + * For HTTP/2 Client `Http2Session` instances only, the `http2session.request()`creates and returns an `Http2Stream` instance that can be used to send an + * HTTP/2 request to the connected server. + * + * When a `ClientHttp2Session` is first created, the socket may not yet be + * connected. if `clienthttp2session.request()` is called during this time, the + * actual request will be deferred until the socket is ready to go. + * If the `session` is closed before the actual request be executed, an`ERR_HTTP2_GOAWAY_SESSION` is thrown. + * + * This method is only available if `http2session.type` is equal to`http2.constants.NGHTTP2_SESSION_CLIENT`. + * + * ```js + * const http2 = require('http2'); + * const clientSession = http2.connect('https://localhost:1234'); + * const { + * HTTP2_HEADER_PATH, + * HTTP2_HEADER_STATUS + * } = http2.constants; + * + * const req = clientSession.request({ [HTTP2_HEADER_PATH]: '/' }); + * req.on('response', (headers) => { + * console.log(headers[HTTP2_HEADER_STATUS]); + * req.on('data', (chunk) => { // .. }); + * req.on('end', () => { // .. }); + * }); + * ``` + * + * When the `options.waitForTrailers` option is set, the `'wantTrailers'` event + * is emitted immediately after queuing the last chunk of payload data to be sent. + * The `http2stream.sendTrailers()` method can then be called to send trailing + * headers to the peer. + * + * When `options.waitForTrailers` is set, the `Http2Stream` will not automatically + * close when the final `DATA` frame is transmitted. User code must call either`http2stream.sendTrailers()` or `http2stream.close()` to close the`Http2Stream`. + * + * When `options.signal` is set with an `AbortSignal` and then `abort` on the + * corresponding `AbortController` is called, the request will emit an `'error'`event with an `AbortError` error. + * + * The `:method` and `:path` pseudo-headers are not specified within `headers`, + * they respectively default to: + * + * * `:method` \= `'GET'` + * * `:path` \= `/` + * @since v8.4.0 + */ + request(headers?: OutgoingHttpHeaders, options?: ClientSessionRequestOptions): ClientHttp2Stream; + addListener(event: 'altsvc', listener: (alt: string, origin: string, stream: number) => void): this; + addListener(event: 'origin', listener: (origins: string[]) => void): this; + addListener(event: 'connect', listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + addListener(event: 'stream', listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'altsvc', alt: string, origin: string, stream: number): boolean; + emit(event: 'origin', origins: ReadonlyArray): boolean; + emit(event: 'connect', session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket): boolean; + emit(event: 'stream', stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'altsvc', listener: (alt: string, origin: string, stream: number) => void): this; + on(event: 'origin', listener: (origins: string[]) => void): this; + on(event: 'connect', listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + on(event: 'stream', listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'altsvc', listener: (alt: string, origin: string, stream: number) => void): this; + once(event: 'origin', listener: (origins: string[]) => void): this; + once(event: 'connect', listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + once(event: 'stream', listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'altsvc', listener: (alt: string, origin: string, stream: number) => void): this; + prependListener(event: 'origin', listener: (origins: string[]) => void): this; + prependListener(event: 'connect', listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + prependListener(event: 'stream', listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'altsvc', listener: (alt: string, origin: string, stream: number) => void): this; + prependOnceListener(event: 'origin', listener: (origins: string[]) => void): this; + prependOnceListener(event: 'connect', listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + prependOnceListener(event: 'stream', listener: (stream: ClientHttp2Stream, headers: IncomingHttpHeaders & IncomingHttpStatusHeader, flags: number) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + export interface AlternativeServiceOptions { + origin: number | string | url.URL; + } + export interface ServerHttp2Session extends Http2Session { + readonly server: Http2Server | Http2SecureServer; + /** + * Submits an `ALTSVC` frame (as defined by [RFC 7838](https://tools.ietf.org/html/rfc7838)) to the connected client. + * + * ```js + * const http2 = require('http2'); + * + * const server = http2.createServer(); + * server.on('session', (session) => { + * // Set altsvc for origin https://example.org:80 + * session.altsvc('h2=":8000"', 'https://example.org:80'); + * }); + * + * server.on('stream', (stream) => { + * // Set altsvc for a specific stream + * stream.session.altsvc('h2=":8000"', stream.id); + * }); + * ``` + * + * Sending an `ALTSVC` frame with a specific stream ID indicates that the alternate + * service is associated with the origin of the given `Http2Stream`. + * + * The `alt` and origin string _must_ contain only ASCII bytes and are + * strictly interpreted as a sequence of ASCII bytes. The special value `'clear'`may be passed to clear any previously set alternative service for a given + * domain. + * + * When a string is passed for the `originOrStream` argument, it will be parsed as + * a URL and the origin will be derived. For instance, the origin for the + * HTTP URL `'https://example.org/foo/bar'` is the ASCII string`'https://example.org'`. An error will be thrown if either the given string + * cannot be parsed as a URL or if a valid origin cannot be derived. + * + * A `URL` object, or any object with an `origin` property, may be passed as`originOrStream`, in which case the value of the `origin` property will be + * used. The value of the `origin` property _must_ be a properly serialized + * ASCII origin. + * @since v9.4.0 + * @param alt A description of the alternative service configuration as defined by `RFC 7838`. + * @param originOrStream Either a URL string specifying the origin (or an `Object` with an `origin` property) or the numeric identifier of an active `Http2Stream` as given by the + * `http2stream.id` property. + */ + altsvc(alt: string, originOrStream: number | string | url.URL | AlternativeServiceOptions): void; + /** + * Submits an `ORIGIN` frame (as defined by [RFC 8336](https://tools.ietf.org/html/rfc8336)) to the connected client + * to advertise the set of origins for which the server is capable of providing + * authoritative responses. + * + * ```js + * const http2 = require('http2'); + * const options = getSecureOptionsSomehow(); + * const server = http2.createSecureServer(options); + * server.on('stream', (stream) => { + * stream.respond(); + * stream.end('ok'); + * }); + * server.on('session', (session) => { + * session.origin('https://example.com', 'https://example.org'); + * }); + * ``` + * + * When a string is passed as an `origin`, it will be parsed as a URL and the + * origin will be derived. For instance, the origin for the HTTP URL`'https://example.org/foo/bar'` is the ASCII string`'https://example.org'`. An error will be thrown if either the given + * string + * cannot be parsed as a URL or if a valid origin cannot be derived. + * + * A `URL` object, or any object with an `origin` property, may be passed as + * an `origin`, in which case the value of the `origin` property will be + * used. The value of the `origin` property _must_ be a properly serialized + * ASCII origin. + * + * Alternatively, the `origins` option may be used when creating a new HTTP/2 + * server using the `http2.createSecureServer()` method: + * + * ```js + * const http2 = require('http2'); + * const options = getSecureOptionsSomehow(); + * options.origins = ['https://example.com', 'https://example.org']; + * const server = http2.createSecureServer(options); + * server.on('stream', (stream) => { + * stream.respond(); + * stream.end('ok'); + * }); + * ``` + * @since v10.12.0 + * @param origins One or more URL Strings passed as separate arguments. + */ + origin( + ...origins: Array< + | string + | url.URL + | { + origin: string; + } + > + ): void; + addListener(event: 'connect', listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + addListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'connect', session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket): boolean; + emit(event: 'stream', stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'connect', listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + on(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'connect', listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + once(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'connect', listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + prependListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'connect', listener: (session: ServerHttp2Session, socket: net.Socket | tls.TLSSocket) => void): this; + prependOnceListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + // Http2Server + export interface SessionOptions { + maxDeflateDynamicTableSize?: number | undefined; + maxSessionMemory?: number | undefined; + maxHeaderListPairs?: number | undefined; + maxOutstandingPings?: number | undefined; + maxSendHeaderBlockLength?: number | undefined; + paddingStrategy?: number | undefined; + peerMaxConcurrentStreams?: number | undefined; + settings?: Settings | undefined; + /** + * Specifies a timeout in milliseconds that + * a server should wait when an [`'unknownProtocol'`][] is emitted. If the + * socket has not been destroyed by that time the server will destroy it. + * @default 100000 + */ + unknownProtocolTimeout?: number | undefined; + selectPadding?(frameLen: number, maxFrameLen: number): number; + createConnection?(authority: url.URL, option: SessionOptions): stream.Duplex; + } + export interface ClientSessionOptions extends SessionOptions { + maxReservedRemoteStreams?: number | undefined; + createConnection?: ((authority: url.URL, option: SessionOptions) => stream.Duplex) | undefined; + protocol?: 'http:' | 'https:' | undefined; + } + export interface ServerSessionOptions extends SessionOptions { + Http1IncomingMessage?: typeof IncomingMessage | undefined; + Http1ServerResponse?: typeof ServerResponse | undefined; + Http2ServerRequest?: typeof Http2ServerRequest | undefined; + Http2ServerResponse?: typeof Http2ServerResponse | undefined; + } + export interface SecureClientSessionOptions extends ClientSessionOptions, tls.ConnectionOptions {} + export interface SecureServerSessionOptions extends ServerSessionOptions, tls.TlsOptions {} + export interface ServerOptions extends ServerSessionOptions {} + export interface SecureServerOptions extends SecureServerSessionOptions { + allowHTTP1?: boolean | undefined; + origins?: string[] | undefined; + } + interface HTTP2ServerCommon { + setTimeout(msec?: number, callback?: () => void): this; + /** + * Throws ERR_HTTP2_INVALID_SETTING_VALUE for invalid settings values. + * Throws ERR_INVALID_ARG_TYPE for invalid settings argument. + */ + updateSettings(settings: Settings): void; + } + export interface Http2Server extends net.Server, HTTP2ServerCommon { + addListener(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + addListener(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + addListener(event: 'session', listener: (session: ServerHttp2Session) => void): this; + addListener(event: 'sessionError', listener: (err: Error) => void): this; + addListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + addListener(event: 'timeout', listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'checkContinue', request: Http2ServerRequest, response: Http2ServerResponse): boolean; + emit(event: 'request', request: Http2ServerRequest, response: Http2ServerResponse): boolean; + emit(event: 'session', session: ServerHttp2Session): boolean; + emit(event: 'sessionError', err: Error): boolean; + emit(event: 'stream', stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean; + emit(event: 'timeout'): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + on(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + on(event: 'session', listener: (session: ServerHttp2Session) => void): this; + on(event: 'sessionError', listener: (err: Error) => void): this; + on(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + on(event: 'timeout', listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + once(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + once(event: 'session', listener: (session: ServerHttp2Session) => void): this; + once(event: 'sessionError', listener: (err: Error) => void): this; + once(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + once(event: 'timeout', listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependListener(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependListener(event: 'session', listener: (session: ServerHttp2Session) => void): this; + prependListener(event: 'sessionError', listener: (err: Error) => void): this; + prependListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependListener(event: 'timeout', listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependOnceListener(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependOnceListener(event: 'session', listener: (session: ServerHttp2Session) => void): this; + prependOnceListener(event: 'sessionError', listener: (err: Error) => void): this; + prependOnceListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependOnceListener(event: 'timeout', listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + export interface Http2SecureServer extends tls.Server, HTTP2ServerCommon { + addListener(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + addListener(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + addListener(event: 'session', listener: (session: ServerHttp2Session) => void): this; + addListener(event: 'sessionError', listener: (err: Error) => void): this; + addListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + addListener(event: 'timeout', listener: () => void): this; + addListener(event: 'unknownProtocol', listener: (socket: tls.TLSSocket) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'checkContinue', request: Http2ServerRequest, response: Http2ServerResponse): boolean; + emit(event: 'request', request: Http2ServerRequest, response: Http2ServerResponse): boolean; + emit(event: 'session', session: ServerHttp2Session): boolean; + emit(event: 'sessionError', err: Error): boolean; + emit(event: 'stream', stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number): boolean; + emit(event: 'timeout'): boolean; + emit(event: 'unknownProtocol', socket: tls.TLSSocket): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + on(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + on(event: 'session', listener: (session: ServerHttp2Session) => void): this; + on(event: 'sessionError', listener: (err: Error) => void): this; + on(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + on(event: 'timeout', listener: () => void): this; + on(event: 'unknownProtocol', listener: (socket: tls.TLSSocket) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + once(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + once(event: 'session', listener: (session: ServerHttp2Session) => void): this; + once(event: 'sessionError', listener: (err: Error) => void): this; + once(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + once(event: 'timeout', listener: () => void): this; + once(event: 'unknownProtocol', listener: (socket: tls.TLSSocket) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependListener(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependListener(event: 'session', listener: (session: ServerHttp2Session) => void): this; + prependListener(event: 'sessionError', listener: (err: Error) => void): this; + prependListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependListener(event: 'timeout', listener: () => void): this; + prependListener(event: 'unknownProtocol', listener: (socket: tls.TLSSocket) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'checkContinue', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependOnceListener(event: 'request', listener: (request: Http2ServerRequest, response: Http2ServerResponse) => void): this; + prependOnceListener(event: 'session', listener: (session: ServerHttp2Session) => void): this; + prependOnceListener(event: 'sessionError', listener: (err: Error) => void): this; + prependOnceListener(event: 'stream', listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void): this; + prependOnceListener(event: 'timeout', listener: () => void): this; + prependOnceListener(event: 'unknownProtocol', listener: (socket: tls.TLSSocket) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + /** + * A `Http2ServerRequest` object is created by {@link Server} or {@link SecureServer} and passed as the first argument to the `'request'` event. It may be used to access a request status, + * headers, and + * data. + * @since v8.4.0 + */ + export class Http2ServerRequest extends stream.Readable { + constructor(stream: ServerHttp2Stream, headers: IncomingHttpHeaders, options: stream.ReadableOptions, rawHeaders: ReadonlyArray); + /** + * The `request.aborted` property will be `true` if the request has + * been aborted. + * @since v10.1.0 + */ + readonly aborted: boolean; + /** + * The request authority pseudo header field. Because HTTP/2 allows requests + * to set either `:authority` or `host`, this value is derived from`req.headers[':authority']` if present. Otherwise, it is derived from`req.headers['host']`. + * @since v8.4.0 + */ + readonly authority: string; + /** + * See `request.socket`. + * @since v8.4.0 + * @deprecated Since v13.0.0 - Use `socket`. + */ + readonly connection: net.Socket | tls.TLSSocket; + /** + * The `request.complete` property will be `true` if the request has + * been completed, aborted, or destroyed. + * @since v12.10.0 + */ + readonly complete: boolean; + /** + * The request/response headers object. + * + * Key-value pairs of header names and values. Header names are lower-cased. + * + * ```js + * // Prints something like: + * // + * // { 'user-agent': 'curl/7.22.0', + * // host: '127.0.0.1:8000', + * // accept: '*' } + * console.log(request.headers); + * ``` + * + * See `HTTP/2 Headers Object`. + * + * In HTTP/2, the request path, host name, protocol, and method are represented as + * special headers prefixed with the `:` character (e.g. `':path'`). These special + * headers will be included in the `request.headers` object. Care must be taken not + * to inadvertently modify these special headers or errors may occur. For instance, + * removing all headers from the request will cause errors to occur: + * + * ```js + * removeAllHeaders(request.headers); + * assert(request.url); // Fails because the :path header has been removed + * ``` + * @since v8.4.0 + */ + readonly headers: IncomingHttpHeaders; + /** + * In case of server request, the HTTP version sent by the client. In the case of + * client response, the HTTP version of the connected-to server. Returns`'2.0'`. + * + * Also `message.httpVersionMajor` is the first integer and`message.httpVersionMinor` is the second. + * @since v8.4.0 + */ + readonly httpVersion: string; + readonly httpVersionMinor: number; + readonly httpVersionMajor: number; + /** + * The request method as a string. Read-only. Examples: `'GET'`, `'DELETE'`. + * @since v8.4.0 + */ + readonly method: string; + /** + * The raw request/response headers list exactly as they were received. + * + * The keys and values are in the same list. It is _not_ a + * list of tuples. So, the even-numbered offsets are key values, and the + * odd-numbered offsets are the associated values. + * + * Header names are not lowercased, and duplicates are not merged. + * + * ```js + * // Prints something like: + * // + * // [ 'user-agent', + * // 'this is invalid because there can be only one', + * // 'User-Agent', + * // 'curl/7.22.0', + * // 'Host', + * // '127.0.0.1:8000', + * // 'ACCEPT', + * // '*' ] + * console.log(request.rawHeaders); + * ``` + * @since v8.4.0 + */ + readonly rawHeaders: string[]; + /** + * The raw request/response trailer keys and values exactly as they were + * received. Only populated at the `'end'` event. + * @since v8.4.0 + */ + readonly rawTrailers: string[]; + /** + * The request scheme pseudo header field indicating the scheme + * portion of the target URL. + * @since v8.4.0 + */ + readonly scheme: string; + /** + * Returns a `Proxy` object that acts as a `net.Socket` (or `tls.TLSSocket`) but + * applies getters, setters, and methods based on HTTP/2 logic. + * + * `destroyed`, `readable`, and `writable` properties will be retrieved from and + * set on `request.stream`. + * + * `destroy`, `emit`, `end`, `on` and `once` methods will be called on`request.stream`. + * + * `setTimeout` method will be called on `request.stream.session`. + * + * `pause`, `read`, `resume`, and `write` will throw an error with code`ERR_HTTP2_NO_SOCKET_MANIPULATION`. See `Http2Session and Sockets` for + * more information. + * + * All other interactions will be routed directly to the socket. With TLS support, + * use `request.socket.getPeerCertificate()` to obtain the client's + * authentication details. + * @since v8.4.0 + */ + readonly socket: net.Socket | tls.TLSSocket; + /** + * The `Http2Stream` object backing the request. + * @since v8.4.0 + */ + readonly stream: ServerHttp2Stream; + /** + * The request/response trailers object. Only populated at the `'end'` event. + * @since v8.4.0 + */ + readonly trailers: IncomingHttpHeaders; + /** + * Request URL string. This contains only the URL that is present in the actual + * HTTP request. If the request is: + * + * ```http + * GET /status?name=ryan HTTP/1.1 + * Accept: text/plain + * ``` + * + * Then `request.url` will be: + * + * ```js + * '/status?name=ryan' + * ``` + * + * To parse the url into its parts, `new URL()` can be used: + * + * ```console + * $ node + * > new URL('/status?name=ryan', 'http://example.com') + * URL { + * href: 'http://example.com/status?name=ryan', + * origin: 'http://example.com', + * protocol: 'http:', + * username: '', + * password: '', + * host: 'example.com', + * hostname: 'example.com', + * port: '', + * pathname: '/status', + * search: '?name=ryan', + * searchParams: URLSearchParams { 'name' => 'ryan' }, + * hash: '' + * } + * ``` + * @since v8.4.0 + */ + url: string; + /** + * Sets the `Http2Stream`'s timeout value to `msecs`. If a callback is + * provided, then it is added as a listener on the `'timeout'` event on + * the response object. + * + * If no `'timeout'` listener is added to the request, the response, or + * the server, then `Http2Stream` s are destroyed when they time out. If a + * handler is assigned to the request, the response, or the server's `'timeout'`events, timed out sockets must be handled explicitly. + * @since v8.4.0 + */ + setTimeout(msecs: number, callback?: () => void): void; + read(size?: number): Buffer | string | null; + addListener(event: 'aborted', listener: (hadError: boolean, code: number) => void): this; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'data', listener: (chunk: Buffer | string) => void): this; + addListener(event: 'end', listener: () => void): this; + addListener(event: 'readable', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'aborted', hadError: boolean, code: number): boolean; + emit(event: 'close'): boolean; + emit(event: 'data', chunk: Buffer | string): boolean; + emit(event: 'end'): boolean; + emit(event: 'readable'): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'aborted', listener: (hadError: boolean, code: number) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'data', listener: (chunk: Buffer | string) => void): this; + on(event: 'end', listener: () => void): this; + on(event: 'readable', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'aborted', listener: (hadError: boolean, code: number) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'data', listener: (chunk: Buffer | string) => void): this; + once(event: 'end', listener: () => void): this; + once(event: 'readable', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'aborted', listener: (hadError: boolean, code: number) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'data', listener: (chunk: Buffer | string) => void): this; + prependListener(event: 'end', listener: () => void): this; + prependListener(event: 'readable', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'aborted', listener: (hadError: boolean, code: number) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'data', listener: (chunk: Buffer | string) => void): this; + prependOnceListener(event: 'end', listener: () => void): this; + prependOnceListener(event: 'readable', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + /** + * This object is created internally by an HTTP server, not by the user. It is + * passed as the second parameter to the `'request'` event. + * @since v8.4.0 + */ + export class Http2ServerResponse extends stream.Writable { + constructor(stream: ServerHttp2Stream); + /** + * See `response.socket`. + * @since v8.4.0 + * @deprecated Since v13.0.0 - Use `socket`. + */ + readonly connection: net.Socket | tls.TLSSocket; + /** + * Boolean value that indicates whether the response has completed. Starts + * as `false`. After `response.end()` executes, the value will be `true`. + * @since v8.4.0 + * @deprecated Since v13.4.0,v12.16.0 - Use `writableEnded`. + */ + readonly finished: boolean; + /** + * True if headers were sent, false otherwise (read-only). + * @since v8.4.0 + */ + readonly headersSent: boolean; + /** + * A reference to the original HTTP2 request object. + * @since v15.7.0 + */ + readonly req: Http2ServerRequest; + /** + * Returns a `Proxy` object that acts as a `net.Socket` (or `tls.TLSSocket`) but + * applies getters, setters, and methods based on HTTP/2 logic. + * + * `destroyed`, `readable`, and `writable` properties will be retrieved from and + * set on `response.stream`. + * + * `destroy`, `emit`, `end`, `on` and `once` methods will be called on`response.stream`. + * + * `setTimeout` method will be called on `response.stream.session`. + * + * `pause`, `read`, `resume`, and `write` will throw an error with code`ERR_HTTP2_NO_SOCKET_MANIPULATION`. See `Http2Session and Sockets` for + * more information. + * + * All other interactions will be routed directly to the socket. + * + * ```js + * const http2 = require('http2'); + * const server = http2.createServer((req, res) => { + * const ip = req.socket.remoteAddress; + * const port = req.socket.remotePort; + * res.end(`Your IP address is ${ip} and your source port is ${port}.`); + * }).listen(3000); + * ``` + * @since v8.4.0 + */ + readonly socket: net.Socket | tls.TLSSocket; + /** + * The `Http2Stream` object backing the response. + * @since v8.4.0 + */ + readonly stream: ServerHttp2Stream; + /** + * When true, the Date header will be automatically generated and sent in + * the response if it is not already present in the headers. Defaults to true. + * + * This should only be disabled for testing; HTTP requires the Date header + * in responses. + * @since v8.4.0 + */ + sendDate: boolean; + /** + * When using implicit headers (not calling `response.writeHead()` explicitly), + * this property controls the status code that will be sent to the client when + * the headers get flushed. + * + * ```js + * response.statusCode = 404; + * ``` + * + * After response header was sent to the client, this property indicates the + * status code which was sent out. + * @since v8.4.0 + */ + statusCode: number; + /** + * Status message is not supported by HTTP/2 (RFC 7540 8.1.2.4). It returns + * an empty string. + * @since v8.4.0 + */ + statusMessage: ''; + /** + * This method adds HTTP trailing headers (a header but at the end of the + * message) to the response. + * + * Attempting to set a header field name or value that contains invalid characters + * will result in a `TypeError` being thrown. + * @since v8.4.0 + */ + addTrailers(trailers: OutgoingHttpHeaders): void; + /** + * This method signals to the server that all of the response headers and body + * have been sent; that server should consider this message complete. + * The method, `response.end()`, MUST be called on each response. + * + * If `data` is specified, it is equivalent to calling `response.write(data, encoding)` followed by `response.end(callback)`. + * + * If `callback` is specified, it will be called when the response stream + * is finished. + * @since v8.4.0 + */ + end(callback?: () => void): this; + end(data: string | Uint8Array, callback?: () => void): this; + end(data: string | Uint8Array, encoding: BufferEncoding, callback?: () => void): this; + /** + * Reads out a header that has already been queued but not sent to the client. + * The name is case-insensitive. + * + * ```js + * const contentType = response.getHeader('content-type'); + * ``` + * @since v8.4.0 + */ + getHeader(name: string): string; + /** + * Returns an array containing the unique names of the current outgoing headers. + * All header names are lowercase. + * + * ```js + * response.setHeader('Foo', 'bar'); + * response.setHeader('Set-Cookie', ['foo=bar', 'bar=baz']); + * + * const headerNames = response.getHeaderNames(); + * // headerNames === ['foo', 'set-cookie'] + * ``` + * @since v8.4.0 + */ + getHeaderNames(): string[]; + /** + * Returns a shallow copy of the current outgoing headers. Since a shallow copy + * is used, array values may be mutated without additional calls to various + * header-related http module methods. The keys of the returned object are the + * header names and the values are the respective header values. All header names + * are lowercase. + * + * The object returned by the `response.getHeaders()` method _does not_prototypically inherit from the JavaScript `Object`. This means that typical`Object` methods such as `obj.toString()`, + * `obj.hasOwnProperty()`, and others + * are not defined and _will not work_. + * + * ```js + * response.setHeader('Foo', 'bar'); + * response.setHeader('Set-Cookie', ['foo=bar', 'bar=baz']); + * + * const headers = response.getHeaders(); + * // headers === { foo: 'bar', 'set-cookie': ['foo=bar', 'bar=baz'] } + * ``` + * @since v8.4.0 + */ + getHeaders(): OutgoingHttpHeaders; + /** + * Returns `true` if the header identified by `name` is currently set in the + * outgoing headers. The header name matching is case-insensitive. + * + * ```js + * const hasContentType = response.hasHeader('content-type'); + * ``` + * @since v8.4.0 + */ + hasHeader(name: string): boolean; + /** + * Removes a header that has been queued for implicit sending. + * + * ```js + * response.removeHeader('Content-Encoding'); + * ``` + * @since v8.4.0 + */ + removeHeader(name: string): void; + /** + * Sets a single header value for implicit headers. If this header already exists + * in the to-be-sent headers, its value will be replaced. Use an array of strings + * here to send multiple headers with the same name. + * + * ```js + * response.setHeader('Content-Type', 'text/html; charset=utf-8'); + * ``` + * + * or + * + * ```js + * response.setHeader('Set-Cookie', ['type=ninja', 'language=javascript']); + * ``` + * + * Attempting to set a header field name or value that contains invalid characters + * will result in a `TypeError` being thrown. + * + * When headers have been set with `response.setHeader()`, they will be merged + * with any headers passed to `response.writeHead()`, with the headers passed + * to `response.writeHead()` given precedence. + * + * ```js + * // Returns content-type = text/plain + * const server = http2.createServer((req, res) => { + * res.setHeader('Content-Type', 'text/html; charset=utf-8'); + * res.setHeader('X-Foo', 'bar'); + * res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' }); + * res.end('ok'); + * }); + * ``` + * @since v8.4.0 + */ + setHeader(name: string, value: number | string | ReadonlyArray): void; + /** + * Sets the `Http2Stream`'s timeout value to `msecs`. If a callback is + * provided, then it is added as a listener on the `'timeout'` event on + * the response object. + * + * If no `'timeout'` listener is added to the request, the response, or + * the server, then `Http2Stream` s are destroyed when they time out. If a + * handler is assigned to the request, the response, or the server's `'timeout'`events, timed out sockets must be handled explicitly. + * @since v8.4.0 + */ + setTimeout(msecs: number, callback?: () => void): void; + /** + * If this method is called and `response.writeHead()` has not been called, + * it will switch to implicit header mode and flush the implicit headers. + * + * This sends a chunk of the response body. This method may + * be called multiple times to provide successive parts of the body. + * + * In the `http` module, the response body is omitted when the + * request is a HEAD request. Similarly, the `204` and `304` responses _must not_ include a message body. + * + * `chunk` can be a string or a buffer. If `chunk` is a string, + * the second parameter specifies how to encode it into a byte stream. + * By default the `encoding` is `'utf8'`. `callback` will be called when this chunk + * of data is flushed. + * + * This is the raw HTTP body and has nothing to do with higher-level multi-part + * body encodings that may be used. + * + * The first time `response.write()` is called, it will send the buffered + * header information and the first chunk of the body to the client. The second + * time `response.write()` is called, Node.js assumes data will be streamed, + * and sends the new data separately. That is, the response is buffered up to the + * first chunk of the body. + * + * Returns `true` if the entire data was flushed successfully to the kernel + * buffer. Returns `false` if all or part of the data was queued in user memory.`'drain'` will be emitted when the buffer is free again. + * @since v8.4.0 + */ + write(chunk: string | Uint8Array, callback?: (err: Error) => void): boolean; + write(chunk: string | Uint8Array, encoding: BufferEncoding, callback?: (err: Error) => void): boolean; + /** + * Sends a status `100 Continue` to the client, indicating that the request body + * should be sent. See the `'checkContinue'` event on `Http2Server` and`Http2SecureServer`. + * @since v8.4.0 + */ + writeContinue(): void; + /** + * Sends a status `103 Early Hints` to the client with a Link header, + * indicating that the user agent can preload/preconnect the linked resources. + * The `hints` is an object containing the values of headers to be sent with + * early hints message. + * + * Example: + * + * ```js + * const earlyHintsLink = '; rel=preload; as=style'; + * response.writeEarlyHints({ + * 'link': earlyHintsLink, + * }); + * + * const earlyHintsLinks = [ + * '; rel=preload; as=style', + * '; rel=preload; as=script', + * ]; + * response.writeEarlyHints({ + * 'link': earlyHintsLinks, + * 'x-trace-id': 'id for diagnostics' + * }); + * ``` + * + * @since v18.11.0 + * @param hints An object containing the values of headers + */ + writeEarlyHints(hints: Record): void; + /** + * Sends a response header to the request. The status code is a 3-digit HTTP + * status code, like `404`. The last argument, `headers`, are the response headers. + * + * Returns a reference to the `Http2ServerResponse`, so that calls can be chained. + * + * For compatibility with `HTTP/1`, a human-readable `statusMessage` may be + * passed as the second argument. However, because the `statusMessage` has no + * meaning within HTTP/2, the argument will have no effect and a process warning + * will be emitted. + * + * ```js + * const body = 'hello world'; + * response.writeHead(200, { + * 'Content-Length': Buffer.byteLength(body), + * 'Content-Type': 'text/plain; charset=utf-8', + * }); + * ``` + * + * `Content-Length` is given in bytes not characters. The`Buffer.byteLength()` API may be used to determine the number of bytes in a + * given encoding. On outbound messages, Node.js does not check if Content-Length + * and the length of the body being transmitted are equal or not. However, when + * receiving messages, Node.js will automatically reject messages when the`Content-Length` does not match the actual payload size. + * + * This method may be called at most one time on a message before `response.end()` is called. + * + * If `response.write()` or `response.end()` are called before calling + * this, the implicit/mutable headers will be calculated and call this function. + * + * When headers have been set with `response.setHeader()`, they will be merged + * with any headers passed to `response.writeHead()`, with the headers passed + * to `response.writeHead()` given precedence. + * + * ```js + * // Returns content-type = text/plain + * const server = http2.createServer((req, res) => { + * res.setHeader('Content-Type', 'text/html; charset=utf-8'); + * res.setHeader('X-Foo', 'bar'); + * res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' }); + * res.end('ok'); + * }); + * ``` + * + * Attempting to set a header field name or value that contains invalid characters + * will result in a `TypeError` being thrown. + * @since v8.4.0 + */ + writeHead(statusCode: number, headers?: OutgoingHttpHeaders): this; + writeHead(statusCode: number, statusMessage: string, headers?: OutgoingHttpHeaders): this; + /** + * Call `http2stream.pushStream()` with the given headers, and wrap the + * given `Http2Stream` on a newly created `Http2ServerResponse` as the callback + * parameter if successful. When `Http2ServerRequest` is closed, the callback is + * called with an error `ERR_HTTP2_INVALID_STREAM`. + * @since v8.4.0 + * @param headers An object describing the headers + * @param callback Called once `http2stream.pushStream()` is finished, or either when the attempt to create the pushed `Http2Stream` has failed or has been rejected, or the state of + * `Http2ServerRequest` is closed prior to calling the `http2stream.pushStream()` method + */ + createPushResponse(headers: OutgoingHttpHeaders, callback: (err: Error | null, res: Http2ServerResponse) => void): void; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'drain', listener: () => void): this; + addListener(event: 'error', listener: (error: Error) => void): this; + addListener(event: 'finish', listener: () => void): this; + addListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + addListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'close'): boolean; + emit(event: 'drain'): boolean; + emit(event: 'error', error: Error): boolean; + emit(event: 'finish'): boolean; + emit(event: 'pipe', src: stream.Readable): boolean; + emit(event: 'unpipe', src: stream.Readable): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'close', listener: () => void): this; + on(event: 'drain', listener: () => void): this; + on(event: 'error', listener: (error: Error) => void): this; + on(event: 'finish', listener: () => void): this; + on(event: 'pipe', listener: (src: stream.Readable) => void): this; + on(event: 'unpipe', listener: (src: stream.Readable) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'drain', listener: () => void): this; + once(event: 'error', listener: (error: Error) => void): this; + once(event: 'finish', listener: () => void): this; + once(event: 'pipe', listener: (src: stream.Readable) => void): this; + once(event: 'unpipe', listener: (src: stream.Readable) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'drain', listener: () => void): this; + prependListener(event: 'error', listener: (error: Error) => void): this; + prependListener(event: 'finish', listener: () => void): this; + prependListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + prependListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'drain', listener: () => void): this; + prependOnceListener(event: 'error', listener: (error: Error) => void): this; + prependOnceListener(event: 'finish', listener: () => void): this; + prependOnceListener(event: 'pipe', listener: (src: stream.Readable) => void): this; + prependOnceListener(event: 'unpipe', listener: (src: stream.Readable) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + export namespace constants { + const NGHTTP2_SESSION_SERVER: number; + const NGHTTP2_SESSION_CLIENT: number; + const NGHTTP2_STREAM_STATE_IDLE: number; + const NGHTTP2_STREAM_STATE_OPEN: number; + const NGHTTP2_STREAM_STATE_RESERVED_LOCAL: number; + const NGHTTP2_STREAM_STATE_RESERVED_REMOTE: number; + const NGHTTP2_STREAM_STATE_HALF_CLOSED_LOCAL: number; + const NGHTTP2_STREAM_STATE_HALF_CLOSED_REMOTE: number; + const NGHTTP2_STREAM_STATE_CLOSED: number; + const NGHTTP2_NO_ERROR: number; + const NGHTTP2_PROTOCOL_ERROR: number; + const NGHTTP2_INTERNAL_ERROR: number; + const NGHTTP2_FLOW_CONTROL_ERROR: number; + const NGHTTP2_SETTINGS_TIMEOUT: number; + const NGHTTP2_STREAM_CLOSED: number; + const NGHTTP2_FRAME_SIZE_ERROR: number; + const NGHTTP2_REFUSED_STREAM: number; + const NGHTTP2_CANCEL: number; + const NGHTTP2_COMPRESSION_ERROR: number; + const NGHTTP2_CONNECT_ERROR: number; + const NGHTTP2_ENHANCE_YOUR_CALM: number; + const NGHTTP2_INADEQUATE_SECURITY: number; + const NGHTTP2_HTTP_1_1_REQUIRED: number; + const NGHTTP2_ERR_FRAME_SIZE_ERROR: number; + const NGHTTP2_FLAG_NONE: number; + const NGHTTP2_FLAG_END_STREAM: number; + const NGHTTP2_FLAG_END_HEADERS: number; + const NGHTTP2_FLAG_ACK: number; + const NGHTTP2_FLAG_PADDED: number; + const NGHTTP2_FLAG_PRIORITY: number; + const DEFAULT_SETTINGS_HEADER_TABLE_SIZE: number; + const DEFAULT_SETTINGS_ENABLE_PUSH: number; + const DEFAULT_SETTINGS_INITIAL_WINDOW_SIZE: number; + const DEFAULT_SETTINGS_MAX_FRAME_SIZE: number; + const MAX_MAX_FRAME_SIZE: number; + const MIN_MAX_FRAME_SIZE: number; + const MAX_INITIAL_WINDOW_SIZE: number; + const NGHTTP2_DEFAULT_WEIGHT: number; + const NGHTTP2_SETTINGS_HEADER_TABLE_SIZE: number; + const NGHTTP2_SETTINGS_ENABLE_PUSH: number; + const NGHTTP2_SETTINGS_MAX_CONCURRENT_STREAMS: number; + const NGHTTP2_SETTINGS_INITIAL_WINDOW_SIZE: number; + const NGHTTP2_SETTINGS_MAX_FRAME_SIZE: number; + const NGHTTP2_SETTINGS_MAX_HEADER_LIST_SIZE: number; + const PADDING_STRATEGY_NONE: number; + const PADDING_STRATEGY_MAX: number; + const PADDING_STRATEGY_CALLBACK: number; + const HTTP2_HEADER_STATUS: string; + const HTTP2_HEADER_METHOD: string; + const HTTP2_HEADER_AUTHORITY: string; + const HTTP2_HEADER_SCHEME: string; + const HTTP2_HEADER_PATH: string; + const HTTP2_HEADER_ACCEPT_CHARSET: string; + const HTTP2_HEADER_ACCEPT_ENCODING: string; + const HTTP2_HEADER_ACCEPT_LANGUAGE: string; + const HTTP2_HEADER_ACCEPT_RANGES: string; + const HTTP2_HEADER_ACCEPT: string; + const HTTP2_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN: string; + const HTTP2_HEADER_AGE: string; + const HTTP2_HEADER_ALLOW: string; + const HTTP2_HEADER_AUTHORIZATION: string; + const HTTP2_HEADER_CACHE_CONTROL: string; + const HTTP2_HEADER_CONNECTION: string; + const HTTP2_HEADER_CONTENT_DISPOSITION: string; + const HTTP2_HEADER_CONTENT_ENCODING: string; + const HTTP2_HEADER_CONTENT_LANGUAGE: string; + const HTTP2_HEADER_CONTENT_LENGTH: string; + const HTTP2_HEADER_CONTENT_LOCATION: string; + const HTTP2_HEADER_CONTENT_MD5: string; + const HTTP2_HEADER_CONTENT_RANGE: string; + const HTTP2_HEADER_CONTENT_TYPE: string; + const HTTP2_HEADER_COOKIE: string; + const HTTP2_HEADER_DATE: string; + const HTTP2_HEADER_ETAG: string; + const HTTP2_HEADER_EXPECT: string; + const HTTP2_HEADER_EXPIRES: string; + const HTTP2_HEADER_FROM: string; + const HTTP2_HEADER_HOST: string; + const HTTP2_HEADER_IF_MATCH: string; + const HTTP2_HEADER_IF_MODIFIED_SINCE: string; + const HTTP2_HEADER_IF_NONE_MATCH: string; + const HTTP2_HEADER_IF_RANGE: string; + const HTTP2_HEADER_IF_UNMODIFIED_SINCE: string; + const HTTP2_HEADER_LAST_MODIFIED: string; + const HTTP2_HEADER_LINK: string; + const HTTP2_HEADER_LOCATION: string; + const HTTP2_HEADER_MAX_FORWARDS: string; + const HTTP2_HEADER_PREFER: string; + const HTTP2_HEADER_PROXY_AUTHENTICATE: string; + const HTTP2_HEADER_PROXY_AUTHORIZATION: string; + const HTTP2_HEADER_RANGE: string; + const HTTP2_HEADER_REFERER: string; + const HTTP2_HEADER_REFRESH: string; + const HTTP2_HEADER_RETRY_AFTER: string; + const HTTP2_HEADER_SERVER: string; + const HTTP2_HEADER_SET_COOKIE: string; + const HTTP2_HEADER_STRICT_TRANSPORT_SECURITY: string; + const HTTP2_HEADER_TRANSFER_ENCODING: string; + const HTTP2_HEADER_TE: string; + const HTTP2_HEADER_UPGRADE: string; + const HTTP2_HEADER_USER_AGENT: string; + const HTTP2_HEADER_VARY: string; + const HTTP2_HEADER_VIA: string; + const HTTP2_HEADER_WWW_AUTHENTICATE: string; + const HTTP2_HEADER_HTTP2_SETTINGS: string; + const HTTP2_HEADER_KEEP_ALIVE: string; + const HTTP2_HEADER_PROXY_CONNECTION: string; + const HTTP2_METHOD_ACL: string; + const HTTP2_METHOD_BASELINE_CONTROL: string; + const HTTP2_METHOD_BIND: string; + const HTTP2_METHOD_CHECKIN: string; + const HTTP2_METHOD_CHECKOUT: string; + const HTTP2_METHOD_CONNECT: string; + const HTTP2_METHOD_COPY: string; + const HTTP2_METHOD_DELETE: string; + const HTTP2_METHOD_GET: string; + const HTTP2_METHOD_HEAD: string; + const HTTP2_METHOD_LABEL: string; + const HTTP2_METHOD_LINK: string; + const HTTP2_METHOD_LOCK: string; + const HTTP2_METHOD_MERGE: string; + const HTTP2_METHOD_MKACTIVITY: string; + const HTTP2_METHOD_MKCALENDAR: string; + const HTTP2_METHOD_MKCOL: string; + const HTTP2_METHOD_MKREDIRECTREF: string; + const HTTP2_METHOD_MKWORKSPACE: string; + const HTTP2_METHOD_MOVE: string; + const HTTP2_METHOD_OPTIONS: string; + const HTTP2_METHOD_ORDERPATCH: string; + const HTTP2_METHOD_PATCH: string; + const HTTP2_METHOD_POST: string; + const HTTP2_METHOD_PRI: string; + const HTTP2_METHOD_PROPFIND: string; + const HTTP2_METHOD_PROPPATCH: string; + const HTTP2_METHOD_PUT: string; + const HTTP2_METHOD_REBIND: string; + const HTTP2_METHOD_REPORT: string; + const HTTP2_METHOD_SEARCH: string; + const HTTP2_METHOD_TRACE: string; + const HTTP2_METHOD_UNBIND: string; + const HTTP2_METHOD_UNCHECKOUT: string; + const HTTP2_METHOD_UNLINK: string; + const HTTP2_METHOD_UNLOCK: string; + const HTTP2_METHOD_UPDATE: string; + const HTTP2_METHOD_UPDATEREDIRECTREF: string; + const HTTP2_METHOD_VERSION_CONTROL: string; + const HTTP_STATUS_CONTINUE: number; + const HTTP_STATUS_SWITCHING_PROTOCOLS: number; + const HTTP_STATUS_PROCESSING: number; + const HTTP_STATUS_OK: number; + const HTTP_STATUS_CREATED: number; + const HTTP_STATUS_ACCEPTED: number; + const HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION: number; + const HTTP_STATUS_NO_CONTENT: number; + const HTTP_STATUS_RESET_CONTENT: number; + const HTTP_STATUS_PARTIAL_CONTENT: number; + const HTTP_STATUS_MULTI_STATUS: number; + const HTTP_STATUS_ALREADY_REPORTED: number; + const HTTP_STATUS_IM_USED: number; + const HTTP_STATUS_MULTIPLE_CHOICES: number; + const HTTP_STATUS_MOVED_PERMANENTLY: number; + const HTTP_STATUS_FOUND: number; + const HTTP_STATUS_SEE_OTHER: number; + const HTTP_STATUS_NOT_MODIFIED: number; + const HTTP_STATUS_USE_PROXY: number; + const HTTP_STATUS_TEMPORARY_REDIRECT: number; + const HTTP_STATUS_PERMANENT_REDIRECT: number; + const HTTP_STATUS_BAD_REQUEST: number; + const HTTP_STATUS_UNAUTHORIZED: number; + const HTTP_STATUS_PAYMENT_REQUIRED: number; + const HTTP_STATUS_FORBIDDEN: number; + const HTTP_STATUS_NOT_FOUND: number; + const HTTP_STATUS_METHOD_NOT_ALLOWED: number; + const HTTP_STATUS_NOT_ACCEPTABLE: number; + const HTTP_STATUS_PROXY_AUTHENTICATION_REQUIRED: number; + const HTTP_STATUS_REQUEST_TIMEOUT: number; + const HTTP_STATUS_CONFLICT: number; + const HTTP_STATUS_GONE: number; + const HTTP_STATUS_LENGTH_REQUIRED: number; + const HTTP_STATUS_PRECONDITION_FAILED: number; + const HTTP_STATUS_PAYLOAD_TOO_LARGE: number; + const HTTP_STATUS_URI_TOO_LONG: number; + const HTTP_STATUS_UNSUPPORTED_MEDIA_TYPE: number; + const HTTP_STATUS_RANGE_NOT_SATISFIABLE: number; + const HTTP_STATUS_EXPECTATION_FAILED: number; + const HTTP_STATUS_TEAPOT: number; + const HTTP_STATUS_MISDIRECTED_REQUEST: number; + const HTTP_STATUS_UNPROCESSABLE_ENTITY: number; + const HTTP_STATUS_LOCKED: number; + const HTTP_STATUS_FAILED_DEPENDENCY: number; + const HTTP_STATUS_UNORDERED_COLLECTION: number; + const HTTP_STATUS_UPGRADE_REQUIRED: number; + const HTTP_STATUS_PRECONDITION_REQUIRED: number; + const HTTP_STATUS_TOO_MANY_REQUESTS: number; + const HTTP_STATUS_REQUEST_HEADER_FIELDS_TOO_LARGE: number; + const HTTP_STATUS_UNAVAILABLE_FOR_LEGAL_REASONS: number; + const HTTP_STATUS_INTERNAL_SERVER_ERROR: number; + const HTTP_STATUS_NOT_IMPLEMENTED: number; + const HTTP_STATUS_BAD_GATEWAY: number; + const HTTP_STATUS_SERVICE_UNAVAILABLE: number; + const HTTP_STATUS_GATEWAY_TIMEOUT: number; + const HTTP_STATUS_HTTP_VERSION_NOT_SUPPORTED: number; + const HTTP_STATUS_VARIANT_ALSO_NEGOTIATES: number; + const HTTP_STATUS_INSUFFICIENT_STORAGE: number; + const HTTP_STATUS_LOOP_DETECTED: number; + const HTTP_STATUS_BANDWIDTH_LIMIT_EXCEEDED: number; + const HTTP_STATUS_NOT_EXTENDED: number; + const HTTP_STATUS_NETWORK_AUTHENTICATION_REQUIRED: number; + } + /** + * This symbol can be set as a property on the HTTP/2 headers object with + * an array value in order to provide a list of headers considered sensitive. + */ + export const sensitiveHeaders: symbol; + /** + * Returns an object containing the default settings for an `Http2Session`instance. This method returns a new object instance every time it is called + * so instances returned may be safely modified for use. + * @since v8.4.0 + */ + export function getDefaultSettings(): Settings; + /** + * Returns a `Buffer` instance containing serialized representation of the given + * HTTP/2 settings as specified in the [HTTP/2](https://tools.ietf.org/html/rfc7540) specification. This is intended + * for use with the `HTTP2-Settings` header field. + * + * ```js + * const http2 = require('http2'); + * + * const packed = http2.getPackedSettings({ enablePush: false }); + * + * console.log(packed.toString('base64')); + * // Prints: AAIAAAAA + * ``` + * @since v8.4.0 + */ + export function getPackedSettings(settings: Settings): Buffer; + /** + * Returns a `HTTP/2 Settings Object` containing the deserialized settings from + * the given `Buffer` as generated by `http2.getPackedSettings()`. + * @since v8.4.0 + * @param buf The packed settings. + */ + export function getUnpackedSettings(buf: Uint8Array): Settings; + /** + * Returns a `net.Server` instance that creates and manages `Http2Session`instances. + * + * Since there are no browsers known that support [unencrypted HTTP/2](https://http2.github.io/faq/#does-http2-require-encryption), the use of {@link createSecureServer} is necessary when + * communicating + * with browser clients. + * + * ```js + * const http2 = require('http2'); + * + * // Create an unencrypted HTTP/2 server. + * // Since there are no browsers known that support + * // unencrypted HTTP/2, the use of `http2.createSecureServer()` + * // is necessary when communicating with browser clients. + * const server = http2.createServer(); + * + * server.on('stream', (stream, headers) => { + * stream.respond({ + * 'content-type': 'text/html; charset=utf-8', + * ':status': 200 + * }); + * stream.end('

Hello World

'); + * }); + * + * server.listen(80); + * ``` + * @since v8.4.0 + * @param onRequestHandler See `Compatibility API` + */ + export function createServer(onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2Server; + export function createServer(options: ServerOptions, onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2Server; + /** + * Returns a `tls.Server` instance that creates and manages `Http2Session`instances. + * + * ```js + * const http2 = require('http2'); + * const fs = require('fs'); + * + * const options = { + * key: fs.readFileSync('server-key.pem'), + * cert: fs.readFileSync('server-cert.pem') + * }; + * + * // Create a secure HTTP/2 server + * const server = http2.createSecureServer(options); + * + * server.on('stream', (stream, headers) => { + * stream.respond({ + * 'content-type': 'text/html; charset=utf-8', + * ':status': 200 + * }); + * stream.end('

Hello World

'); + * }); + * + * server.listen(80); + * ``` + * @since v8.4.0 + * @param onRequestHandler See `Compatibility API` + */ + export function createSecureServer(onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2SecureServer; + export function createSecureServer(options: SecureServerOptions, onRequestHandler?: (request: Http2ServerRequest, response: Http2ServerResponse) => void): Http2SecureServer; + /** + * Returns a `ClientHttp2Session` instance. + * + * ```js + * const http2 = require('http2'); + * const client = http2.connect('https://localhost:1234'); + * + * // Use the client + * + * client.close(); + * ``` + * @since v8.4.0 + * @param authority The remote HTTP/2 server to connect to. This must be in the form of a minimal, valid URL with the `http://` or `https://` prefix, host name, and IP port (if a non-default port + * is used). Userinfo (user ID and password), path, querystring, and fragment details in the URL will be ignored. + * @param listener Will be registered as a one-time listener of the {@link 'connect'} event. + */ + export function connect(authority: string | url.URL, listener: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void): ClientHttp2Session; + export function connect( + authority: string | url.URL, + options?: ClientSessionOptions | SecureClientSessionOptions, + listener?: (session: ClientHttp2Session, socket: net.Socket | tls.TLSSocket) => void + ): ClientHttp2Session; +} +declare module 'node:http2' { + export * from 'http2'; +} diff --git a/node_modules/@types/node/ts4.8/https.d.ts b/node_modules/@types/node/ts4.8/https.d.ts new file mode 100644 index 0000000..bda367d --- /dev/null +++ b/node_modules/@types/node/ts4.8/https.d.ts @@ -0,0 +1,542 @@ +/** + * HTTPS is the HTTP protocol over TLS/SSL. In Node.js this is implemented as a + * separate module. + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/https.js) + */ +declare module 'https' { + import { Duplex } from 'node:stream'; + import * as tls from 'node:tls'; + import * as http from 'node:http'; + import { URL } from 'node:url'; + type ServerOptions< + Request extends typeof http.IncomingMessage = typeof http.IncomingMessage, + Response extends typeof http.ServerResponse = typeof http.ServerResponse, + > = tls.SecureContextOptions & tls.TlsOptions & http.ServerOptions; + type RequestOptions = http.RequestOptions & + tls.SecureContextOptions & { + checkServerIdentity?: typeof tls.checkServerIdentity | undefined; + rejectUnauthorized?: boolean | undefined; // Defaults to true + servername?: string | undefined; // SNI TLS Extension + }; + interface AgentOptions extends http.AgentOptions, tls.ConnectionOptions { + rejectUnauthorized?: boolean | undefined; + maxCachedSessions?: number | undefined; + } + /** + * An `Agent` object for HTTPS similar to `http.Agent`. See {@link request} for more information. + * @since v0.4.5 + */ + class Agent extends http.Agent { + constructor(options?: AgentOptions); + options: AgentOptions; + } + interface Server< + Request extends typeof http.IncomingMessage = typeof http.IncomingMessage, + Response extends typeof http.ServerResponse = typeof http.ServerResponse, + > extends http.Server {} + /** + * See `http.Server` for more information. + * @since v0.3.4 + */ + class Server< + Request extends typeof http.IncomingMessage = typeof http.IncomingMessage, + Response extends typeof http.ServerResponse = typeof http.ServerResponse, + > extends tls.Server { + constructor(requestListener?: http.RequestListener); + constructor( + options: ServerOptions, + requestListener?: http.RequestListener, + ); + /** + * Closes all connections connected to this server. + * @since v18.2.0 + */ + closeAllConnections(): void; + /** + * Closes all connections connected to this server which are not sending a request or waiting for a response. + * @since v18.2.0 + */ + closeIdleConnections(): void; + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'keylog', listener: (line: Buffer, tlsSocket: tls.TLSSocket) => void): this; + addListener( + event: 'newSession', + listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void, + ): this; + addListener( + event: 'OCSPRequest', + listener: ( + certificate: Buffer, + issuer: Buffer, + callback: (err: Error | null, resp: Buffer) => void, + ) => void, + ): this; + addListener( + event: 'resumeSession', + listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void, + ): this; + addListener(event: 'secureConnection', listener: (tlsSocket: tls.TLSSocket) => void): this; + addListener(event: 'tlsClientError', listener: (err: Error, tlsSocket: tls.TLSSocket) => void): this; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'connection', listener: (socket: Duplex) => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'listening', listener: () => void): this; + addListener(event: 'checkContinue', listener: http.RequestListener): this; + addListener(event: 'checkExpectation', listener: http.RequestListener): this; + addListener(event: 'clientError', listener: (err: Error, socket: Duplex) => void): this; + addListener( + event: 'connect', + listener: (req: InstanceType, socket: Duplex, head: Buffer) => void, + ): this; + addListener(event: 'request', listener: http.RequestListener): this; + addListener( + event: 'upgrade', + listener: (req: InstanceType, socket: Duplex, head: Buffer) => void, + ): this; + emit(event: string, ...args: any[]): boolean; + emit(event: 'keylog', line: Buffer, tlsSocket: tls.TLSSocket): boolean; + emit( + event: 'newSession', + sessionId: Buffer, + sessionData: Buffer, + callback: (err: Error, resp: Buffer) => void, + ): boolean; + emit( + event: 'OCSPRequest', + certificate: Buffer, + issuer: Buffer, + callback: (err: Error | null, resp: Buffer) => void, + ): boolean; + emit(event: 'resumeSession', sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void): boolean; + emit(event: 'secureConnection', tlsSocket: tls.TLSSocket): boolean; + emit(event: 'tlsClientError', err: Error, tlsSocket: tls.TLSSocket): boolean; + emit(event: 'close'): boolean; + emit(event: 'connection', socket: Duplex): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'listening'): boolean; + emit( + event: 'checkContinue', + req: InstanceType, + res: InstanceType & { req: InstanceType }, + ): boolean; + emit( + event: 'checkExpectation', + req: InstanceType, + res: InstanceType & { req: InstanceType }, + ): boolean; + emit(event: 'clientError', err: Error, socket: Duplex): boolean; + emit(event: 'connect', req: InstanceType, socket: Duplex, head: Buffer): boolean; + emit( + event: 'request', + req: InstanceType, + res: InstanceType & { req: InstanceType }, + ): boolean; + emit(event: 'upgrade', req: InstanceType, socket: Duplex, head: Buffer): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'keylog', listener: (line: Buffer, tlsSocket: tls.TLSSocket) => void): this; + on( + event: 'newSession', + listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void, + ): this; + on( + event: 'OCSPRequest', + listener: ( + certificate: Buffer, + issuer: Buffer, + callback: (err: Error | null, resp: Buffer) => void, + ) => void, + ): this; + on( + event: 'resumeSession', + listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void, + ): this; + on(event: 'secureConnection', listener: (tlsSocket: tls.TLSSocket) => void): this; + on(event: 'tlsClientError', listener: (err: Error, tlsSocket: tls.TLSSocket) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'connection', listener: (socket: Duplex) => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'listening', listener: () => void): this; + on(event: 'checkContinue', listener: http.RequestListener): this; + on(event: 'checkExpectation', listener: http.RequestListener): this; + on(event: 'clientError', listener: (err: Error, socket: Duplex) => void): this; + on(event: 'connect', listener: (req: InstanceType, socket: Duplex, head: Buffer) => void): this; + on(event: 'request', listener: http.RequestListener): this; + on(event: 'upgrade', listener: (req: InstanceType, socket: Duplex, head: Buffer) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'keylog', listener: (line: Buffer, tlsSocket: tls.TLSSocket) => void): this; + once( + event: 'newSession', + listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void, + ): this; + once( + event: 'OCSPRequest', + listener: ( + certificate: Buffer, + issuer: Buffer, + callback: (err: Error | null, resp: Buffer) => void, + ) => void, + ): this; + once( + event: 'resumeSession', + listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void, + ): this; + once(event: 'secureConnection', listener: (tlsSocket: tls.TLSSocket) => void): this; + once(event: 'tlsClientError', listener: (err: Error, tlsSocket: tls.TLSSocket) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'connection', listener: (socket: Duplex) => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'listening', listener: () => void): this; + once(event: 'checkContinue', listener: http.RequestListener): this; + once(event: 'checkExpectation', listener: http.RequestListener): this; + once(event: 'clientError', listener: (err: Error, socket: Duplex) => void): this; + once(event: 'connect', listener: (req: InstanceType, socket: Duplex, head: Buffer) => void): this; + once(event: 'request', listener: http.RequestListener): this; + once(event: 'upgrade', listener: (req: InstanceType, socket: Duplex, head: Buffer) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'keylog', listener: (line: Buffer, tlsSocket: tls.TLSSocket) => void): this; + prependListener( + event: 'newSession', + listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void, + ): this; + prependListener( + event: 'OCSPRequest', + listener: ( + certificate: Buffer, + issuer: Buffer, + callback: (err: Error | null, resp: Buffer) => void, + ) => void, + ): this; + prependListener( + event: 'resumeSession', + listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void, + ): this; + prependListener(event: 'secureConnection', listener: (tlsSocket: tls.TLSSocket) => void): this; + prependListener(event: 'tlsClientError', listener: (err: Error, tlsSocket: tls.TLSSocket) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'connection', listener: (socket: Duplex) => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'listening', listener: () => void): this; + prependListener(event: 'checkContinue', listener: http.RequestListener): this; + prependListener(event: 'checkExpectation', listener: http.RequestListener): this; + prependListener(event: 'clientError', listener: (err: Error, socket: Duplex) => void): this; + prependListener( + event: 'connect', + listener: (req: InstanceType, socket: Duplex, head: Buffer) => void, + ): this; + prependListener(event: 'request', listener: http.RequestListener): this; + prependListener( + event: 'upgrade', + listener: (req: InstanceType, socket: Duplex, head: Buffer) => void, + ): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'keylog', listener: (line: Buffer, tlsSocket: tls.TLSSocket) => void): this; + prependOnceListener( + event: 'newSession', + listener: (sessionId: Buffer, sessionData: Buffer, callback: (err: Error, resp: Buffer) => void) => void, + ): this; + prependOnceListener( + event: 'OCSPRequest', + listener: ( + certificate: Buffer, + issuer: Buffer, + callback: (err: Error | null, resp: Buffer) => void, + ) => void, + ): this; + prependOnceListener( + event: 'resumeSession', + listener: (sessionId: Buffer, callback: (err: Error, sessionData: Buffer) => void) => void, + ): this; + prependOnceListener(event: 'secureConnection', listener: (tlsSocket: tls.TLSSocket) => void): this; + prependOnceListener(event: 'tlsClientError', listener: (err: Error, tlsSocket: tls.TLSSocket) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'connection', listener: (socket: Duplex) => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'listening', listener: () => void): this; + prependOnceListener(event: 'checkContinue', listener: http.RequestListener): this; + prependOnceListener(event: 'checkExpectation', listener: http.RequestListener): this; + prependOnceListener(event: 'clientError', listener: (err: Error, socket: Duplex) => void): this; + prependOnceListener( + event: 'connect', + listener: (req: InstanceType, socket: Duplex, head: Buffer) => void, + ): this; + prependOnceListener(event: 'request', listener: http.RequestListener): this; + prependOnceListener( + event: 'upgrade', + listener: (req: InstanceType, socket: Duplex, head: Buffer) => void, + ): this; + } + /** + * ```js + * // curl -k https://localhost:8000/ + * const https = require('https'); + * const fs = require('fs'); + * + * const options = { + * key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), + * cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem') + * }; + * + * https.createServer(options, (req, res) => { + * res.writeHead(200); + * res.end('hello world\n'); + * }).listen(8000); + * ``` + * + * Or + * + * ```js + * const https = require('https'); + * const fs = require('fs'); + * + * const options = { + * pfx: fs.readFileSync('test/fixtures/test_cert.pfx'), + * passphrase: 'sample' + * }; + * + * https.createServer(options, (req, res) => { + * res.writeHead(200); + * res.end('hello world\n'); + * }).listen(8000); + * ``` + * @since v0.3.4 + * @param options Accepts `options` from `createServer`, `createSecureContext` and `createServer`. + * @param requestListener A listener to be added to the `'request'` event. + */ + function createServer< + Request extends typeof http.IncomingMessage = typeof http.IncomingMessage, + Response extends typeof http.ServerResponse = typeof http.ServerResponse, + >(requestListener?: http.RequestListener): Server; + function createServer< + Request extends typeof http.IncomingMessage = typeof http.IncomingMessage, + Response extends typeof http.ServerResponse = typeof http.ServerResponse, + >( + options: ServerOptions, + requestListener?: http.RequestListener, + ): Server; + /** + * Makes a request to a secure web server. + * + * The following additional `options` from `tls.connect()` are also accepted:`ca`, `cert`, `ciphers`, `clientCertEngine`, `crl`, `dhparam`, `ecdhCurve`,`honorCipherOrder`, `key`, `passphrase`, + * `pfx`, `rejectUnauthorized`,`secureOptions`, `secureProtocol`, `servername`, `sessionIdContext`,`highWaterMark`. + * + * `options` can be an object, a string, or a `URL` object. If `options` is a + * string, it is automatically parsed with `new URL()`. If it is a `URL` object, it will be automatically converted to an ordinary `options` object. + * + * `https.request()` returns an instance of the `http.ClientRequest` class. The `ClientRequest` instance is a writable stream. If one needs to + * upload a file with a POST request, then write to the `ClientRequest` object. + * + * ```js + * const https = require('https'); + * + * const options = { + * hostname: 'encrypted.google.com', + * port: 443, + * path: '/', + * method: 'GET' + * }; + * + * const req = https.request(options, (res) => { + * console.log('statusCode:', res.statusCode); + * console.log('headers:', res.headers); + * + * res.on('data', (d) => { + * process.stdout.write(d); + * }); + * }); + * + * req.on('error', (e) => { + * console.error(e); + * }); + * req.end(); + * ``` + * + * Example using options from `tls.connect()`: + * + * ```js + * const options = { + * hostname: 'encrypted.google.com', + * port: 443, + * path: '/', + * method: 'GET', + * key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), + * cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem') + * }; + * options.agent = new https.Agent(options); + * + * const req = https.request(options, (res) => { + * // ... + * }); + * ``` + * + * Alternatively, opt out of connection pooling by not using an `Agent`. + * + * ```js + * const options = { + * hostname: 'encrypted.google.com', + * port: 443, + * path: '/', + * method: 'GET', + * key: fs.readFileSync('test/fixtures/keys/agent2-key.pem'), + * cert: fs.readFileSync('test/fixtures/keys/agent2-cert.pem'), + * agent: false + * }; + * + * const req = https.request(options, (res) => { + * // ... + * }); + * ``` + * + * Example using a `URL` as `options`: + * + * ```js + * const options = new URL('https://abc:xyz@example.com'); + * + * const req = https.request(options, (res) => { + * // ... + * }); + * ``` + * + * Example pinning on certificate fingerprint, or the public key (similar to`pin-sha256`): + * + * ```js + * const tls = require('tls'); + * const https = require('https'); + * const crypto = require('crypto'); + * + * function sha256(s) { + * return crypto.createHash('sha256').update(s).digest('base64'); + * } + * const options = { + * hostname: 'github.com', + * port: 443, + * path: '/', + * method: 'GET', + * checkServerIdentity: function(host, cert) { + * // Make sure the certificate is issued to the host we are connected to + * const err = tls.checkServerIdentity(host, cert); + * if (err) { + * return err; + * } + * + * // Pin the public key, similar to HPKP pin-sha25 pinning + * const pubkey256 = 'pL1+qb9HTMRZJmuC/bB/ZI9d302BYrrqiVuRyW+DGrU='; + * if (sha256(cert.pubkey) !== pubkey256) { + * const msg = 'Certificate verification error: ' + + * `The public key of '${cert.subject.CN}' ` + + * 'does not match our pinned fingerprint'; + * return new Error(msg); + * } + * + * // Pin the exact certificate, rather than the pub key + * const cert256 = '25:FE:39:32:D9:63:8C:8A:FC:A1:9A:29:87:' + + * 'D8:3E:4C:1D:98:DB:71:E4:1A:48:03:98:EA:22:6A:BD:8B:93:16'; + * if (cert.fingerprint256 !== cert256) { + * const msg = 'Certificate verification error: ' + + * `The certificate of '${cert.subject.CN}' ` + + * 'does not match our pinned fingerprint'; + * return new Error(msg); + * } + * + * // This loop is informational only. + * // Print the certificate and public key fingerprints of all certs in the + * // chain. Its common to pin the public key of the issuer on the public + * // internet, while pinning the public key of the service in sensitive + * // environments. + * do { + * console.log('Subject Common Name:', cert.subject.CN); + * console.log(' Certificate SHA256 fingerprint:', cert.fingerprint256); + * + * hash = crypto.createHash('sha256'); + * console.log(' Public key ping-sha256:', sha256(cert.pubkey)); + * + * lastprint256 = cert.fingerprint256; + * cert = cert.issuerCertificate; + * } while (cert.fingerprint256 !== lastprint256); + * + * }, + * }; + * + * options.agent = new https.Agent(options); + * const req = https.request(options, (res) => { + * console.log('All OK. Server matched our pinned cert or public key'); + * console.log('statusCode:', res.statusCode); + * // Print the HPKP values + * console.log('headers:', res.headers['public-key-pins']); + * + * res.on('data', (d) => {}); + * }); + * + * req.on('error', (e) => { + * console.error(e.message); + * }); + * req.end(); + * ``` + * + * Outputs for example: + * + * ```text + * Subject Common Name: github.com + * Certificate SHA256 fingerprint: 25:FE:39:32:D9:63:8C:8A:FC:A1:9A:29:87:D8:3E:4C:1D:98:DB:71:E4:1A:48:03:98:EA:22:6A:BD:8B:93:16 + * Public key ping-sha256: pL1+qb9HTMRZJmuC/bB/ZI9d302BYrrqiVuRyW+DGrU= + * Subject Common Name: DigiCert SHA2 Extended Validation Server CA + * Certificate SHA256 fingerprint: 40:3E:06:2A:26:53:05:91:13:28:5B:AF:80:A0:D4:AE:42:2C:84:8C:9F:78:FA:D0:1F:C9:4B:C5:B8:7F:EF:1A + * Public key ping-sha256: RRM1dGqnDFsCJXBTHky16vi1obOlCgFFn/yOhI/y+ho= + * Subject Common Name: DigiCert High Assurance EV Root CA + * Certificate SHA256 fingerprint: 74:31:E5:F4:C3:C1:CE:46:90:77:4F:0B:61:E0:54:40:88:3B:A9:A0:1E:D0:0B:A6:AB:D7:80:6E:D3:B1:18:CF + * Public key ping-sha256: WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18= + * All OK. Server matched our pinned cert or public key + * statusCode: 200 + * headers: max-age=0; pin-sha256="WoiWRyIOVNa9ihaBciRSC7XHjliYS9VwUGOIud4PB18="; pin-sha256="RRM1dGqnDFsCJXBTHky16vi1obOlCgFFn/yOhI/y+ho="; + * pin-sha256="k2v657xBsOVe1PQRwOsHsw3bsGT2VzIqz5K+59sNQws="; pin-sha256="K87oWBWM9UZfyddvDfoxL+8lpNyoUB2ptGtn0fv6G2Q="; pin-sha256="IQBnNBEiFuhj+8x6X8XLgh01V9Ic5/V3IRQLNFFc7v4="; + * pin-sha256="iie1VXtL7HzAMF+/PVPR9xzT80kQxdZeJ+zduCB3uj0="; pin-sha256="LvRiGEjRqfzurezaWuj8Wie2gyHMrW5Q06LspMnox7A="; includeSubDomains + * ``` + * @since v0.3.6 + * @param options Accepts all `options` from `request`, with some differences in default values: + */ + function request( + options: RequestOptions | string | URL, + callback?: (res: http.IncomingMessage) => void, + ): http.ClientRequest; + function request( + url: string | URL, + options: RequestOptions, + callback?: (res: http.IncomingMessage) => void, + ): http.ClientRequest; + /** + * Like `http.get()` but for HTTPS. + * + * `options` can be an object, a string, or a `URL` object. If `options` is a + * string, it is automatically parsed with `new URL()`. If it is a `URL` object, it will be automatically converted to an ordinary `options` object. + * + * ```js + * const https = require('https'); + * + * https.get('https://encrypted.google.com/', (res) => { + * console.log('statusCode:', res.statusCode); + * console.log('headers:', res.headers); + * + * res.on('data', (d) => { + * process.stdout.write(d); + * }); + * + * }).on('error', (e) => { + * console.error(e); + * }); + * ``` + * @since v0.3.6 + * @param options Accepts the same `options` as {@link request}, with the `method` always set to `GET`. + */ + function get( + options: RequestOptions | string | URL, + callback?: (res: http.IncomingMessage) => void, + ): http.ClientRequest; + function get( + url: string | URL, + options: RequestOptions, + callback?: (res: http.IncomingMessage) => void, + ): http.ClientRequest; + let globalAgent: Agent; +} +declare module 'node:https' { + export * from 'https'; +} diff --git a/node_modules/@types/node/ts4.8/index.d.ts b/node_modules/@types/node/ts4.8/index.d.ts new file mode 100644 index 0000000..7c8b38c --- /dev/null +++ b/node_modules/@types/node/ts4.8/index.d.ts @@ -0,0 +1,88 @@ +/** + * License for programmatically and manually incorporated + * documentation aka. `JSDoc` from https://github.com/nodejs/node/tree/master/doc + * + * Copyright Node.js contributors. All rights reserved. + * 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. + */ + +// NOTE: These definitions support NodeJS and TypeScript 4.8 and earlier. + +// Reference required types from the default lib: +/// +/// +/// +/// + +// Base definitions for all NodeJS modules that are not specific to any version of TypeScript: +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// +/// + +/// diff --git a/node_modules/@types/node/ts4.8/inspector.d.ts b/node_modules/@types/node/ts4.8/inspector.d.ts new file mode 100644 index 0000000..eba0b55 --- /dev/null +++ b/node_modules/@types/node/ts4.8/inspector.d.ts @@ -0,0 +1,2741 @@ +// eslint-disable-next-line dt-header +// Type definitions for inspector + +// These definitions are auto-generated. +// Please see https://github.com/DefinitelyTyped/DefinitelyTyped/pull/19330 +// for more information. + +// tslint:disable:max-line-length + +/** + * The `inspector` module provides an API for interacting with the V8 inspector. + * + * It can be accessed using: + * + * ```js + * const inspector = require('inspector'); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/inspector.js) + */ +declare module 'inspector' { + import EventEmitter = require('node:events'); + interface InspectorNotification { + method: string; + params: T; + } + namespace Schema { + /** + * Description of the protocol domain. + */ + interface Domain { + /** + * Domain name. + */ + name: string; + /** + * Domain version. + */ + version: string; + } + interface GetDomainsReturnType { + /** + * List of supported domains. + */ + domains: Domain[]; + } + } + namespace Runtime { + /** + * Unique script identifier. + */ + type ScriptId = string; + /** + * Unique object identifier. + */ + type RemoteObjectId = string; + /** + * Primitive value which cannot be JSON-stringified. + */ + type UnserializableValue = string; + /** + * Mirror object referencing original JavaScript object. + */ + interface RemoteObject { + /** + * Object type. + */ + type: string; + /** + * Object subtype hint. Specified for object type values only. + */ + subtype?: string | undefined; + /** + * Object class (constructor) name. Specified for object type values only. + */ + className?: string | undefined; + /** + * Remote object value in case of primitive values or JSON values (if it was requested). + */ + value?: any; + /** + * Primitive value which can not be JSON-stringified does not have value, but gets this property. + */ + unserializableValue?: UnserializableValue | undefined; + /** + * String representation of the object. + */ + description?: string | undefined; + /** + * Unique object identifier (for non-primitive values). + */ + objectId?: RemoteObjectId | undefined; + /** + * Preview containing abbreviated property values. Specified for object type values only. + * @experimental + */ + preview?: ObjectPreview | undefined; + /** + * @experimental + */ + customPreview?: CustomPreview | undefined; + } + /** + * @experimental + */ + interface CustomPreview { + header: string; + hasBody: boolean; + formatterObjectId: RemoteObjectId; + bindRemoteObjectFunctionId: RemoteObjectId; + configObjectId?: RemoteObjectId | undefined; + } + /** + * Object containing abbreviated remote object value. + * @experimental + */ + interface ObjectPreview { + /** + * Object type. + */ + type: string; + /** + * Object subtype hint. Specified for object type values only. + */ + subtype?: string | undefined; + /** + * String representation of the object. + */ + description?: string | undefined; + /** + * True iff some of the properties or entries of the original object did not fit. + */ + overflow: boolean; + /** + * List of the properties. + */ + properties: PropertyPreview[]; + /** + * List of the entries. Specified for map and set subtype values only. + */ + entries?: EntryPreview[] | undefined; + } + /** + * @experimental + */ + interface PropertyPreview { + /** + * Property name. + */ + name: string; + /** + * Object type. Accessor means that the property itself is an accessor property. + */ + type: string; + /** + * User-friendly property value string. + */ + value?: string | undefined; + /** + * Nested value preview. + */ + valuePreview?: ObjectPreview | undefined; + /** + * Object subtype hint. Specified for object type values only. + */ + subtype?: string | undefined; + } + /** + * @experimental + */ + interface EntryPreview { + /** + * Preview of the key. Specified for map-like collection entries. + */ + key?: ObjectPreview | undefined; + /** + * Preview of the value. + */ + value: ObjectPreview; + } + /** + * Object property descriptor. + */ + interface PropertyDescriptor { + /** + * Property name or symbol description. + */ + name: string; + /** + * The value associated with the property. + */ + value?: RemoteObject | undefined; + /** + * True if the value associated with the property may be changed (data descriptors only). + */ + writable?: boolean | undefined; + /** + * A function which serves as a getter for the property, or undefined if there is no getter (accessor descriptors only). + */ + get?: RemoteObject | undefined; + /** + * A function which serves as a setter for the property, or undefined if there is no setter (accessor descriptors only). + */ + set?: RemoteObject | undefined; + /** + * True if the type of this property descriptor may be changed and if the property may be deleted from the corresponding object. + */ + configurable: boolean; + /** + * True if this property shows up during enumeration of the properties on the corresponding object. + */ + enumerable: boolean; + /** + * True if the result was thrown during the evaluation. + */ + wasThrown?: boolean | undefined; + /** + * True if the property is owned for the object. + */ + isOwn?: boolean | undefined; + /** + * Property symbol object, if the property is of the symbol type. + */ + symbol?: RemoteObject | undefined; + } + /** + * Object internal property descriptor. This property isn't normally visible in JavaScript code. + */ + interface InternalPropertyDescriptor { + /** + * Conventional property name. + */ + name: string; + /** + * The value associated with the property. + */ + value?: RemoteObject | undefined; + } + /** + * Represents function call argument. Either remote object id objectId, primitive value, unserializable primitive value or neither of (for undefined) them should be specified. + */ + interface CallArgument { + /** + * Primitive value or serializable javascript object. + */ + value?: any; + /** + * Primitive value which can not be JSON-stringified. + */ + unserializableValue?: UnserializableValue | undefined; + /** + * Remote object handle. + */ + objectId?: RemoteObjectId | undefined; + } + /** + * Id of an execution context. + */ + type ExecutionContextId = number; + /** + * Description of an isolated world. + */ + interface ExecutionContextDescription { + /** + * Unique id of the execution context. It can be used to specify in which execution context script evaluation should be performed. + */ + id: ExecutionContextId; + /** + * Execution context origin. + */ + origin: string; + /** + * Human readable name describing given context. + */ + name: string; + /** + * Embedder-specific auxiliary data. + */ + auxData?: {} | undefined; + } + /** + * Detailed information about exception (or error) that was thrown during script compilation or execution. + */ + interface ExceptionDetails { + /** + * Exception id. + */ + exceptionId: number; + /** + * Exception text, which should be used together with exception object when available. + */ + text: string; + /** + * Line number of the exception location (0-based). + */ + lineNumber: number; + /** + * Column number of the exception location (0-based). + */ + columnNumber: number; + /** + * Script ID of the exception location. + */ + scriptId?: ScriptId | undefined; + /** + * URL of the exception location, to be used when the script was not reported. + */ + url?: string | undefined; + /** + * JavaScript stack trace if available. + */ + stackTrace?: StackTrace | undefined; + /** + * Exception object if available. + */ + exception?: RemoteObject | undefined; + /** + * Identifier of the context where exception happened. + */ + executionContextId?: ExecutionContextId | undefined; + } + /** + * Number of milliseconds since epoch. + */ + type Timestamp = number; + /** + * Stack entry for runtime errors and assertions. + */ + interface CallFrame { + /** + * JavaScript function name. + */ + functionName: string; + /** + * JavaScript script id. + */ + scriptId: ScriptId; + /** + * JavaScript script name or url. + */ + url: string; + /** + * JavaScript script line number (0-based). + */ + lineNumber: number; + /** + * JavaScript script column number (0-based). + */ + columnNumber: number; + } + /** + * Call frames for assertions or error messages. + */ + interface StackTrace { + /** + * String label of this stack trace. For async traces this may be a name of the function that initiated the async call. + */ + description?: string | undefined; + /** + * JavaScript function name. + */ + callFrames: CallFrame[]; + /** + * Asynchronous JavaScript stack trace that preceded this stack, if available. + */ + parent?: StackTrace | undefined; + /** + * Asynchronous JavaScript stack trace that preceded this stack, if available. + * @experimental + */ + parentId?: StackTraceId | undefined; + } + /** + * Unique identifier of current debugger. + * @experimental + */ + type UniqueDebuggerId = string; + /** + * If debuggerId is set stack trace comes from another debugger and can be resolved there. This allows to track cross-debugger calls. See Runtime.StackTrace and Debugger.paused for usages. + * @experimental + */ + interface StackTraceId { + id: string; + debuggerId?: UniqueDebuggerId | undefined; + } + interface EvaluateParameterType { + /** + * Expression to evaluate. + */ + expression: string; + /** + * Symbolic group name that can be used to release multiple objects. + */ + objectGroup?: string | undefined; + /** + * Determines whether Command Line API should be available during the evaluation. + */ + includeCommandLineAPI?: boolean | undefined; + /** + * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. + */ + silent?: boolean | undefined; + /** + * Specifies in which execution context to perform evaluation. If the parameter is omitted the evaluation will be performed in the context of the inspected page. + */ + contextId?: ExecutionContextId | undefined; + /** + * Whether the result is expected to be a JSON object that should be sent by value. + */ + returnByValue?: boolean | undefined; + /** + * Whether preview should be generated for the result. + * @experimental + */ + generatePreview?: boolean | undefined; + /** + * Whether execution should be treated as initiated by user in the UI. + */ + userGesture?: boolean | undefined; + /** + * Whether execution should await for resulting value and return once awaited promise is resolved. + */ + awaitPromise?: boolean | undefined; + } + interface AwaitPromiseParameterType { + /** + * Identifier of the promise. + */ + promiseObjectId: RemoteObjectId; + /** + * Whether the result is expected to be a JSON object that should be sent by value. + */ + returnByValue?: boolean | undefined; + /** + * Whether preview should be generated for the result. + */ + generatePreview?: boolean | undefined; + } + interface CallFunctionOnParameterType { + /** + * Declaration of the function to call. + */ + functionDeclaration: string; + /** + * Identifier of the object to call function on. Either objectId or executionContextId should be specified. + */ + objectId?: RemoteObjectId | undefined; + /** + * Call arguments. All call arguments must belong to the same JavaScript world as the target object. + */ + arguments?: CallArgument[] | undefined; + /** + * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. + */ + silent?: boolean | undefined; + /** + * Whether the result is expected to be a JSON object which should be sent by value. + */ + returnByValue?: boolean | undefined; + /** + * Whether preview should be generated for the result. + * @experimental + */ + generatePreview?: boolean | undefined; + /** + * Whether execution should be treated as initiated by user in the UI. + */ + userGesture?: boolean | undefined; + /** + * Whether execution should await for resulting value and return once awaited promise is resolved. + */ + awaitPromise?: boolean | undefined; + /** + * Specifies execution context which global object will be used to call function on. Either executionContextId or objectId should be specified. + */ + executionContextId?: ExecutionContextId | undefined; + /** + * Symbolic group name that can be used to release multiple objects. If objectGroup is not specified and objectId is, objectGroup will be inherited from object. + */ + objectGroup?: string | undefined; + } + interface GetPropertiesParameterType { + /** + * Identifier of the object to return properties for. + */ + objectId: RemoteObjectId; + /** + * If true, returns properties belonging only to the element itself, not to its prototype chain. + */ + ownProperties?: boolean | undefined; + /** + * If true, returns accessor properties (with getter/setter) only; internal properties are not returned either. + * @experimental + */ + accessorPropertiesOnly?: boolean | undefined; + /** + * Whether preview should be generated for the results. + * @experimental + */ + generatePreview?: boolean | undefined; + } + interface ReleaseObjectParameterType { + /** + * Identifier of the object to release. + */ + objectId: RemoteObjectId; + } + interface ReleaseObjectGroupParameterType { + /** + * Symbolic object group name. + */ + objectGroup: string; + } + interface SetCustomObjectFormatterEnabledParameterType { + enabled: boolean; + } + interface CompileScriptParameterType { + /** + * Expression to compile. + */ + expression: string; + /** + * Source url to be set for the script. + */ + sourceURL: string; + /** + * Specifies whether the compiled script should be persisted. + */ + persistScript: boolean; + /** + * Specifies in which execution context to perform script run. If the parameter is omitted the evaluation will be performed in the context of the inspected page. + */ + executionContextId?: ExecutionContextId | undefined; + } + interface RunScriptParameterType { + /** + * Id of the script to run. + */ + scriptId: ScriptId; + /** + * Specifies in which execution context to perform script run. If the parameter is omitted the evaluation will be performed in the context of the inspected page. + */ + executionContextId?: ExecutionContextId | undefined; + /** + * Symbolic group name that can be used to release multiple objects. + */ + objectGroup?: string | undefined; + /** + * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. + */ + silent?: boolean | undefined; + /** + * Determines whether Command Line API should be available during the evaluation. + */ + includeCommandLineAPI?: boolean | undefined; + /** + * Whether the result is expected to be a JSON object which should be sent by value. + */ + returnByValue?: boolean | undefined; + /** + * Whether preview should be generated for the result. + */ + generatePreview?: boolean | undefined; + /** + * Whether execution should await for resulting value and return once awaited promise is resolved. + */ + awaitPromise?: boolean | undefined; + } + interface QueryObjectsParameterType { + /** + * Identifier of the prototype to return objects for. + */ + prototypeObjectId: RemoteObjectId; + } + interface GlobalLexicalScopeNamesParameterType { + /** + * Specifies in which execution context to lookup global scope variables. + */ + executionContextId?: ExecutionContextId | undefined; + } + interface EvaluateReturnType { + /** + * Evaluation result. + */ + result: RemoteObject; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails | undefined; + } + interface AwaitPromiseReturnType { + /** + * Promise result. Will contain rejected value if promise was rejected. + */ + result: RemoteObject; + /** + * Exception details if stack strace is available. + */ + exceptionDetails?: ExceptionDetails | undefined; + } + interface CallFunctionOnReturnType { + /** + * Call result. + */ + result: RemoteObject; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails | undefined; + } + interface GetPropertiesReturnType { + /** + * Object properties. + */ + result: PropertyDescriptor[]; + /** + * Internal object properties (only of the element itself). + */ + internalProperties?: InternalPropertyDescriptor[] | undefined; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails | undefined; + } + interface CompileScriptReturnType { + /** + * Id of the script. + */ + scriptId?: ScriptId | undefined; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails | undefined; + } + interface RunScriptReturnType { + /** + * Run result. + */ + result: RemoteObject; + /** + * Exception details. + */ + exceptionDetails?: ExceptionDetails | undefined; + } + interface QueryObjectsReturnType { + /** + * Array with objects. + */ + objects: RemoteObject; + } + interface GlobalLexicalScopeNamesReturnType { + names: string[]; + } + interface ExecutionContextCreatedEventDataType { + /** + * A newly created execution context. + */ + context: ExecutionContextDescription; + } + interface ExecutionContextDestroyedEventDataType { + /** + * Id of the destroyed context + */ + executionContextId: ExecutionContextId; + } + interface ExceptionThrownEventDataType { + /** + * Timestamp of the exception. + */ + timestamp: Timestamp; + exceptionDetails: ExceptionDetails; + } + interface ExceptionRevokedEventDataType { + /** + * Reason describing why exception was revoked. + */ + reason: string; + /** + * The id of revoked exception, as reported in exceptionThrown. + */ + exceptionId: number; + } + interface ConsoleAPICalledEventDataType { + /** + * Type of the call. + */ + type: string; + /** + * Call arguments. + */ + args: RemoteObject[]; + /** + * Identifier of the context where the call was made. + */ + executionContextId: ExecutionContextId; + /** + * Call timestamp. + */ + timestamp: Timestamp; + /** + * Stack trace captured when the call was made. + */ + stackTrace?: StackTrace | undefined; + /** + * Console context descriptor for calls on non-default console context (not console.*): 'anonymous#unique-logger-id' for call on unnamed context, 'name#unique-logger-id' for call on named context. + * @experimental + */ + context?: string | undefined; + } + interface InspectRequestedEventDataType { + object: RemoteObject; + hints: {}; + } + } + namespace Debugger { + /** + * Breakpoint identifier. + */ + type BreakpointId = string; + /** + * Call frame identifier. + */ + type CallFrameId = string; + /** + * Location in the source code. + */ + interface Location { + /** + * Script identifier as reported in the Debugger.scriptParsed. + */ + scriptId: Runtime.ScriptId; + /** + * Line number in the script (0-based). + */ + lineNumber: number; + /** + * Column number in the script (0-based). + */ + columnNumber?: number | undefined; + } + /** + * Location in the source code. + * @experimental + */ + interface ScriptPosition { + lineNumber: number; + columnNumber: number; + } + /** + * JavaScript call frame. Array of call frames form the call stack. + */ + interface CallFrame { + /** + * Call frame identifier. This identifier is only valid while the virtual machine is paused. + */ + callFrameId: CallFrameId; + /** + * Name of the JavaScript function called on this call frame. + */ + functionName: string; + /** + * Location in the source code. + */ + functionLocation?: Location | undefined; + /** + * Location in the source code. + */ + location: Location; + /** + * JavaScript script name or url. + */ + url: string; + /** + * Scope chain for this call frame. + */ + scopeChain: Scope[]; + /** + * this object for this call frame. + */ + this: Runtime.RemoteObject; + /** + * The value being returned, if the function is at return point. + */ + returnValue?: Runtime.RemoteObject | undefined; + } + /** + * Scope description. + */ + interface Scope { + /** + * Scope type. + */ + type: string; + /** + * Object representing the scope. For global and with scopes it represents the actual object; for the rest of the scopes, it is artificial transient object enumerating scope variables as its properties. + */ + object: Runtime.RemoteObject; + name?: string | undefined; + /** + * Location in the source code where scope starts + */ + startLocation?: Location | undefined; + /** + * Location in the source code where scope ends + */ + endLocation?: Location | undefined; + } + /** + * Search match for resource. + */ + interface SearchMatch { + /** + * Line number in resource content. + */ + lineNumber: number; + /** + * Line with match content. + */ + lineContent: string; + } + interface BreakLocation { + /** + * Script identifier as reported in the Debugger.scriptParsed. + */ + scriptId: Runtime.ScriptId; + /** + * Line number in the script (0-based). + */ + lineNumber: number; + /** + * Column number in the script (0-based). + */ + columnNumber?: number | undefined; + type?: string | undefined; + } + interface SetBreakpointsActiveParameterType { + /** + * New value for breakpoints active state. + */ + active: boolean; + } + interface SetSkipAllPausesParameterType { + /** + * New value for skip pauses state. + */ + skip: boolean; + } + interface SetBreakpointByUrlParameterType { + /** + * Line number to set breakpoint at. + */ + lineNumber: number; + /** + * URL of the resources to set breakpoint on. + */ + url?: string | undefined; + /** + * Regex pattern for the URLs of the resources to set breakpoints on. Either url or urlRegex must be specified. + */ + urlRegex?: string | undefined; + /** + * Script hash of the resources to set breakpoint on. + */ + scriptHash?: string | undefined; + /** + * Offset in the line to set breakpoint at. + */ + columnNumber?: number | undefined; + /** + * Expression to use as a breakpoint condition. When specified, debugger will only stop on the breakpoint if this expression evaluates to true. + */ + condition?: string | undefined; + } + interface SetBreakpointParameterType { + /** + * Location to set breakpoint in. + */ + location: Location; + /** + * Expression to use as a breakpoint condition. When specified, debugger will only stop on the breakpoint if this expression evaluates to true. + */ + condition?: string | undefined; + } + interface RemoveBreakpointParameterType { + breakpointId: BreakpointId; + } + interface GetPossibleBreakpointsParameterType { + /** + * Start of range to search possible breakpoint locations in. + */ + start: Location; + /** + * End of range to search possible breakpoint locations in (excluding). When not specified, end of scripts is used as end of range. + */ + end?: Location | undefined; + /** + * Only consider locations which are in the same (non-nested) function as start. + */ + restrictToFunction?: boolean | undefined; + } + interface ContinueToLocationParameterType { + /** + * Location to continue to. + */ + location: Location; + targetCallFrames?: string | undefined; + } + interface PauseOnAsyncCallParameterType { + /** + * Debugger will pause when async call with given stack trace is started. + */ + parentStackTraceId: Runtime.StackTraceId; + } + interface StepIntoParameterType { + /** + * Debugger will issue additional Debugger.paused notification if any async task is scheduled before next pause. + * @experimental + */ + breakOnAsyncCall?: boolean | undefined; + } + interface GetStackTraceParameterType { + stackTraceId: Runtime.StackTraceId; + } + interface SearchInContentParameterType { + /** + * Id of the script to search in. + */ + scriptId: Runtime.ScriptId; + /** + * String to search for. + */ + query: string; + /** + * If true, search is case sensitive. + */ + caseSensitive?: boolean | undefined; + /** + * If true, treats string parameter as regex. + */ + isRegex?: boolean | undefined; + } + interface SetScriptSourceParameterType { + /** + * Id of the script to edit. + */ + scriptId: Runtime.ScriptId; + /** + * New content of the script. + */ + scriptSource: string; + /** + * If true the change will not actually be applied. Dry run may be used to get result description without actually modifying the code. + */ + dryRun?: boolean | undefined; + } + interface RestartFrameParameterType { + /** + * Call frame identifier to evaluate on. + */ + callFrameId: CallFrameId; + } + interface GetScriptSourceParameterType { + /** + * Id of the script to get source for. + */ + scriptId: Runtime.ScriptId; + } + interface SetPauseOnExceptionsParameterType { + /** + * Pause on exceptions mode. + */ + state: string; + } + interface EvaluateOnCallFrameParameterType { + /** + * Call frame identifier to evaluate on. + */ + callFrameId: CallFrameId; + /** + * Expression to evaluate. + */ + expression: string; + /** + * String object group name to put result into (allows rapid releasing resulting object handles using releaseObjectGroup). + */ + objectGroup?: string | undefined; + /** + * Specifies whether command line API should be available to the evaluated expression, defaults to false. + */ + includeCommandLineAPI?: boolean | undefined; + /** + * In silent mode exceptions thrown during evaluation are not reported and do not pause execution. Overrides setPauseOnException state. + */ + silent?: boolean | undefined; + /** + * Whether the result is expected to be a JSON object that should be sent by value. + */ + returnByValue?: boolean | undefined; + /** + * Whether preview should be generated for the result. + * @experimental + */ + generatePreview?: boolean | undefined; + /** + * Whether to throw an exception if side effect cannot be ruled out during evaluation. + */ + throwOnSideEffect?: boolean | undefined; + } + interface SetVariableValueParameterType { + /** + * 0-based number of scope as was listed in scope chain. Only 'local', 'closure' and 'catch' scope types are allowed. Other scopes could be manipulated manually. + */ + scopeNumber: number; + /** + * Variable name. + */ + variableName: string; + /** + * New variable value. + */ + newValue: Runtime.CallArgument; + /** + * Id of callframe that holds variable. + */ + callFrameId: CallFrameId; + } + interface SetReturnValueParameterType { + /** + * New return value. + */ + newValue: Runtime.CallArgument; + } + interface SetAsyncCallStackDepthParameterType { + /** + * Maximum depth of async call stacks. Setting to 0 will effectively disable collecting async call stacks (default). + */ + maxDepth: number; + } + interface SetBlackboxPatternsParameterType { + /** + * Array of regexps that will be used to check script url for blackbox state. + */ + patterns: string[]; + } + interface SetBlackboxedRangesParameterType { + /** + * Id of the script. + */ + scriptId: Runtime.ScriptId; + positions: ScriptPosition[]; + } + interface EnableReturnType { + /** + * Unique identifier of the debugger. + * @experimental + */ + debuggerId: Runtime.UniqueDebuggerId; + } + interface SetBreakpointByUrlReturnType { + /** + * Id of the created breakpoint for further reference. + */ + breakpointId: BreakpointId; + /** + * List of the locations this breakpoint resolved into upon addition. + */ + locations: Location[]; + } + interface SetBreakpointReturnType { + /** + * Id of the created breakpoint for further reference. + */ + breakpointId: BreakpointId; + /** + * Location this breakpoint resolved into. + */ + actualLocation: Location; + } + interface GetPossibleBreakpointsReturnType { + /** + * List of the possible breakpoint locations. + */ + locations: BreakLocation[]; + } + interface GetStackTraceReturnType { + stackTrace: Runtime.StackTrace; + } + interface SearchInContentReturnType { + /** + * List of search matches. + */ + result: SearchMatch[]; + } + interface SetScriptSourceReturnType { + /** + * New stack trace in case editing has happened while VM was stopped. + */ + callFrames?: CallFrame[] | undefined; + /** + * Whether current call stack was modified after applying the changes. + */ + stackChanged?: boolean | undefined; + /** + * Async stack trace, if any. + */ + asyncStackTrace?: Runtime.StackTrace | undefined; + /** + * Async stack trace, if any. + * @experimental + */ + asyncStackTraceId?: Runtime.StackTraceId | undefined; + /** + * Exception details if any. + */ + exceptionDetails?: Runtime.ExceptionDetails | undefined; + } + interface RestartFrameReturnType { + /** + * New stack trace. + */ + callFrames: CallFrame[]; + /** + * Async stack trace, if any. + */ + asyncStackTrace?: Runtime.StackTrace | undefined; + /** + * Async stack trace, if any. + * @experimental + */ + asyncStackTraceId?: Runtime.StackTraceId | undefined; + } + interface GetScriptSourceReturnType { + /** + * Script source. + */ + scriptSource: string; + } + interface EvaluateOnCallFrameReturnType { + /** + * Object wrapper for the evaluation result. + */ + result: Runtime.RemoteObject; + /** + * Exception details. + */ + exceptionDetails?: Runtime.ExceptionDetails | undefined; + } + interface ScriptParsedEventDataType { + /** + * Identifier of the script parsed. + */ + scriptId: Runtime.ScriptId; + /** + * URL or name of the script parsed (if any). + */ + url: string; + /** + * Line offset of the script within the resource with given URL (for script tags). + */ + startLine: number; + /** + * Column offset of the script within the resource with given URL. + */ + startColumn: number; + /** + * Last line of the script. + */ + endLine: number; + /** + * Length of the last line of the script. + */ + endColumn: number; + /** + * Specifies script creation context. + */ + executionContextId: Runtime.ExecutionContextId; + /** + * Content hash of the script. + */ + hash: string; + /** + * Embedder-specific auxiliary data. + */ + executionContextAuxData?: {} | undefined; + /** + * True, if this script is generated as a result of the live edit operation. + * @experimental + */ + isLiveEdit?: boolean | undefined; + /** + * URL of source map associated with script (if any). + */ + sourceMapURL?: string | undefined; + /** + * True, if this script has sourceURL. + */ + hasSourceURL?: boolean | undefined; + /** + * True, if this script is ES6 module. + */ + isModule?: boolean | undefined; + /** + * This script length. + */ + length?: number | undefined; + /** + * JavaScript top stack frame of where the script parsed event was triggered if available. + * @experimental + */ + stackTrace?: Runtime.StackTrace | undefined; + } + interface ScriptFailedToParseEventDataType { + /** + * Identifier of the script parsed. + */ + scriptId: Runtime.ScriptId; + /** + * URL or name of the script parsed (if any). + */ + url: string; + /** + * Line offset of the script within the resource with given URL (for script tags). + */ + startLine: number; + /** + * Column offset of the script within the resource with given URL. + */ + startColumn: number; + /** + * Last line of the script. + */ + endLine: number; + /** + * Length of the last line of the script. + */ + endColumn: number; + /** + * Specifies script creation context. + */ + executionContextId: Runtime.ExecutionContextId; + /** + * Content hash of the script. + */ + hash: string; + /** + * Embedder-specific auxiliary data. + */ + executionContextAuxData?: {} | undefined; + /** + * URL of source map associated with script (if any). + */ + sourceMapURL?: string | undefined; + /** + * True, if this script has sourceURL. + */ + hasSourceURL?: boolean | undefined; + /** + * True, if this script is ES6 module. + */ + isModule?: boolean | undefined; + /** + * This script length. + */ + length?: number | undefined; + /** + * JavaScript top stack frame of where the script parsed event was triggered if available. + * @experimental + */ + stackTrace?: Runtime.StackTrace | undefined; + } + interface BreakpointResolvedEventDataType { + /** + * Breakpoint unique identifier. + */ + breakpointId: BreakpointId; + /** + * Actual breakpoint location. + */ + location: Location; + } + interface PausedEventDataType { + /** + * Call stack the virtual machine stopped on. + */ + callFrames: CallFrame[]; + /** + * Pause reason. + */ + reason: string; + /** + * Object containing break-specific auxiliary properties. + */ + data?: {} | undefined; + /** + * Hit breakpoints IDs + */ + hitBreakpoints?: string[] | undefined; + /** + * Async stack trace, if any. + */ + asyncStackTrace?: Runtime.StackTrace | undefined; + /** + * Async stack trace, if any. + * @experimental + */ + asyncStackTraceId?: Runtime.StackTraceId | undefined; + /** + * Just scheduled async call will have this stack trace as parent stack during async execution. This field is available only after Debugger.stepInto call with breakOnAsynCall flag. + * @experimental + */ + asyncCallStackTraceId?: Runtime.StackTraceId | undefined; + } + } + namespace Console { + /** + * Console message. + */ + interface ConsoleMessage { + /** + * Message source. + */ + source: string; + /** + * Message severity. + */ + level: string; + /** + * Message text. + */ + text: string; + /** + * URL of the message origin. + */ + url?: string | undefined; + /** + * Line number in the resource that generated this message (1-based). + */ + line?: number | undefined; + /** + * Column number in the resource that generated this message (1-based). + */ + column?: number | undefined; + } + interface MessageAddedEventDataType { + /** + * Console message that has been added. + */ + message: ConsoleMessage; + } + } + namespace Profiler { + /** + * Profile node. Holds callsite information, execution statistics and child nodes. + */ + interface ProfileNode { + /** + * Unique id of the node. + */ + id: number; + /** + * Function location. + */ + callFrame: Runtime.CallFrame; + /** + * Number of samples where this node was on top of the call stack. + */ + hitCount?: number | undefined; + /** + * Child node ids. + */ + children?: number[] | undefined; + /** + * The reason of being not optimized. The function may be deoptimized or marked as don't optimize. + */ + deoptReason?: string | undefined; + /** + * An array of source position ticks. + */ + positionTicks?: PositionTickInfo[] | undefined; + } + /** + * Profile. + */ + interface Profile { + /** + * The list of profile nodes. First item is the root node. + */ + nodes: ProfileNode[]; + /** + * Profiling start timestamp in microseconds. + */ + startTime: number; + /** + * Profiling end timestamp in microseconds. + */ + endTime: number; + /** + * Ids of samples top nodes. + */ + samples?: number[] | undefined; + /** + * Time intervals between adjacent samples in microseconds. The first delta is relative to the profile startTime. + */ + timeDeltas?: number[] | undefined; + } + /** + * Specifies a number of samples attributed to a certain source position. + */ + interface PositionTickInfo { + /** + * Source line number (1-based). + */ + line: number; + /** + * Number of samples attributed to the source line. + */ + ticks: number; + } + /** + * Coverage data for a source range. + */ + interface CoverageRange { + /** + * JavaScript script source offset for the range start. + */ + startOffset: number; + /** + * JavaScript script source offset for the range end. + */ + endOffset: number; + /** + * Collected execution count of the source range. + */ + count: number; + } + /** + * Coverage data for a JavaScript function. + */ + interface FunctionCoverage { + /** + * JavaScript function name. + */ + functionName: string; + /** + * Source ranges inside the function with coverage data. + */ + ranges: CoverageRange[]; + /** + * Whether coverage data for this function has block granularity. + */ + isBlockCoverage: boolean; + } + /** + * Coverage data for a JavaScript script. + */ + interface ScriptCoverage { + /** + * JavaScript script id. + */ + scriptId: Runtime.ScriptId; + /** + * JavaScript script name or url. + */ + url: string; + /** + * Functions contained in the script that has coverage data. + */ + functions: FunctionCoverage[]; + } + /** + * Describes a type collected during runtime. + * @experimental + */ + interface TypeObject { + /** + * Name of a type collected with type profiling. + */ + name: string; + } + /** + * Source offset and types for a parameter or return value. + * @experimental + */ + interface TypeProfileEntry { + /** + * Source offset of the parameter or end of function for return values. + */ + offset: number; + /** + * The types for this parameter or return value. + */ + types: TypeObject[]; + } + /** + * Type profile data collected during runtime for a JavaScript script. + * @experimental + */ + interface ScriptTypeProfile { + /** + * JavaScript script id. + */ + scriptId: Runtime.ScriptId; + /** + * JavaScript script name or url. + */ + url: string; + /** + * Type profile entries for parameters and return values of the functions in the script. + */ + entries: TypeProfileEntry[]; + } + interface SetSamplingIntervalParameterType { + /** + * New sampling interval in microseconds. + */ + interval: number; + } + interface StartPreciseCoverageParameterType { + /** + * Collect accurate call counts beyond simple 'covered' or 'not covered'. + */ + callCount?: boolean | undefined; + /** + * Collect block-based coverage. + */ + detailed?: boolean | undefined; + } + interface StopReturnType { + /** + * Recorded profile. + */ + profile: Profile; + } + interface TakePreciseCoverageReturnType { + /** + * Coverage data for the current isolate. + */ + result: ScriptCoverage[]; + } + interface GetBestEffortCoverageReturnType { + /** + * Coverage data for the current isolate. + */ + result: ScriptCoverage[]; + } + interface TakeTypeProfileReturnType { + /** + * Type profile for all scripts since startTypeProfile() was turned on. + */ + result: ScriptTypeProfile[]; + } + interface ConsoleProfileStartedEventDataType { + id: string; + /** + * Location of console.profile(). + */ + location: Debugger.Location; + /** + * Profile title passed as an argument to console.profile(). + */ + title?: string | undefined; + } + interface ConsoleProfileFinishedEventDataType { + id: string; + /** + * Location of console.profileEnd(). + */ + location: Debugger.Location; + profile: Profile; + /** + * Profile title passed as an argument to console.profile(). + */ + title?: string | undefined; + } + } + namespace HeapProfiler { + /** + * Heap snapshot object id. + */ + type HeapSnapshotObjectId = string; + /** + * Sampling Heap Profile node. Holds callsite information, allocation statistics and child nodes. + */ + interface SamplingHeapProfileNode { + /** + * Function location. + */ + callFrame: Runtime.CallFrame; + /** + * Allocations size in bytes for the node excluding children. + */ + selfSize: number; + /** + * Child nodes. + */ + children: SamplingHeapProfileNode[]; + } + /** + * Profile. + */ + interface SamplingHeapProfile { + head: SamplingHeapProfileNode; + } + interface StartTrackingHeapObjectsParameterType { + trackAllocations?: boolean | undefined; + } + interface StopTrackingHeapObjectsParameterType { + /** + * If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken when the tracking is stopped. + */ + reportProgress?: boolean | undefined; + } + interface TakeHeapSnapshotParameterType { + /** + * If true 'reportHeapSnapshotProgress' events will be generated while snapshot is being taken. + */ + reportProgress?: boolean | undefined; + } + interface GetObjectByHeapObjectIdParameterType { + objectId: HeapSnapshotObjectId; + /** + * Symbolic group name that can be used to release multiple objects. + */ + objectGroup?: string | undefined; + } + interface AddInspectedHeapObjectParameterType { + /** + * Heap snapshot object id to be accessible by means of $x command line API. + */ + heapObjectId: HeapSnapshotObjectId; + } + interface GetHeapObjectIdParameterType { + /** + * Identifier of the object to get heap object id for. + */ + objectId: Runtime.RemoteObjectId; + } + interface StartSamplingParameterType { + /** + * Average sample interval in bytes. Poisson distribution is used for the intervals. The default value is 32768 bytes. + */ + samplingInterval?: number | undefined; + } + interface GetObjectByHeapObjectIdReturnType { + /** + * Evaluation result. + */ + result: Runtime.RemoteObject; + } + interface GetHeapObjectIdReturnType { + /** + * Id of the heap snapshot object corresponding to the passed remote object id. + */ + heapSnapshotObjectId: HeapSnapshotObjectId; + } + interface StopSamplingReturnType { + /** + * Recorded sampling heap profile. + */ + profile: SamplingHeapProfile; + } + interface GetSamplingProfileReturnType { + /** + * Return the sampling profile being collected. + */ + profile: SamplingHeapProfile; + } + interface AddHeapSnapshotChunkEventDataType { + chunk: string; + } + interface ReportHeapSnapshotProgressEventDataType { + done: number; + total: number; + finished?: boolean | undefined; + } + interface LastSeenObjectIdEventDataType { + lastSeenObjectId: number; + timestamp: number; + } + interface HeapStatsUpdateEventDataType { + /** + * An array of triplets. Each triplet describes a fragment. The first integer is the fragment index, the second integer is a total count of objects for the fragment, the third integer is a total size of the objects for the fragment. + */ + statsUpdate: number[]; + } + } + namespace NodeTracing { + interface TraceConfig { + /** + * Controls how the trace buffer stores data. + */ + recordMode?: string | undefined; + /** + * Included category filters. + */ + includedCategories: string[]; + } + interface StartParameterType { + traceConfig: TraceConfig; + } + interface GetCategoriesReturnType { + /** + * A list of supported tracing categories. + */ + categories: string[]; + } + interface DataCollectedEventDataType { + value: Array<{}>; + } + } + namespace NodeWorker { + type WorkerID = string; + /** + * Unique identifier of attached debugging session. + */ + type SessionID = string; + interface WorkerInfo { + workerId: WorkerID; + type: string; + title: string; + url: string; + } + interface SendMessageToWorkerParameterType { + message: string; + /** + * Identifier of the session. + */ + sessionId: SessionID; + } + interface EnableParameterType { + /** + * Whether to new workers should be paused until the frontend sends `Runtime.runIfWaitingForDebugger` + * message to run them. + */ + waitForDebuggerOnStart: boolean; + } + interface DetachParameterType { + sessionId: SessionID; + } + interface AttachedToWorkerEventDataType { + /** + * Identifier assigned to the session used to send/receive messages. + */ + sessionId: SessionID; + workerInfo: WorkerInfo; + waitingForDebugger: boolean; + } + interface DetachedFromWorkerEventDataType { + /** + * Detached session identifier. + */ + sessionId: SessionID; + } + interface ReceivedMessageFromWorkerEventDataType { + /** + * Identifier of a session which sends a message. + */ + sessionId: SessionID; + message: string; + } + } + namespace NodeRuntime { + interface NotifyWhenWaitingForDisconnectParameterType { + enabled: boolean; + } + } + /** + * The `inspector.Session` is used for dispatching messages to the V8 inspector + * back-end and receiving message responses and notifications. + */ + class Session extends EventEmitter { + /** + * Create a new instance of the inspector.Session class. + * The inspector session needs to be connected through session.connect() before the messages can be dispatched to the inspector backend. + */ + constructor(); + /** + * Connects a session to the inspector back-end. + * @since v8.0.0 + */ + connect(): void; + /** + * Immediately close the session. All pending message callbacks will be called + * with an error. `session.connect()` will need to be called to be able to send + * messages again. Reconnected session will lose all inspector state, such as + * enabled agents or configured breakpoints. + * @since v8.0.0 + */ + disconnect(): void; + /** + * Posts a message to the inspector back-end. `callback` will be notified when + * a response is received. `callback` is a function that accepts two optional + * arguments: error and message-specific result. + * + * ```js + * session.post('Runtime.evaluate', { expression: '2 + 2' }, + * (error, { result }) => console.log(result)); + * // Output: { type: 'number', value: 4, description: '4' } + * ``` + * + * The latest version of the V8 inspector protocol is published on the [Chrome DevTools Protocol Viewer](https://chromedevtools.github.io/devtools-protocol/v8/). + * + * Node.js inspector supports all the Chrome DevTools Protocol domains declared + * by V8\. Chrome DevTools Protocol domain provides an interface for interacting + * with one of the runtime agents used to inspect the application state and listen + * to the run-time events. + * + * ## Example usage + * + * Apart from the debugger, various V8 Profilers are available through the DevTools + * protocol. + * @since v8.0.0 + */ + post(method: string, params?: {}, callback?: (err: Error | null, params?: {}) => void): void; + post(method: string, callback?: (err: Error | null, params?: {}) => void): void; + /** + * Returns supported domains. + */ + post(method: 'Schema.getDomains', callback?: (err: Error | null, params: Schema.GetDomainsReturnType) => void): void; + /** + * Evaluates expression on global object. + */ + post(method: 'Runtime.evaluate', params?: Runtime.EvaluateParameterType, callback?: (err: Error | null, params: Runtime.EvaluateReturnType) => void): void; + post(method: 'Runtime.evaluate', callback?: (err: Error | null, params: Runtime.EvaluateReturnType) => void): void; + /** + * Add handler to promise with given promise object id. + */ + post(method: 'Runtime.awaitPromise', params?: Runtime.AwaitPromiseParameterType, callback?: (err: Error | null, params: Runtime.AwaitPromiseReturnType) => void): void; + post(method: 'Runtime.awaitPromise', callback?: (err: Error | null, params: Runtime.AwaitPromiseReturnType) => void): void; + /** + * Calls function with given declaration on the given object. Object group of the result is inherited from the target object. + */ + post(method: 'Runtime.callFunctionOn', params?: Runtime.CallFunctionOnParameterType, callback?: (err: Error | null, params: Runtime.CallFunctionOnReturnType) => void): void; + post(method: 'Runtime.callFunctionOn', callback?: (err: Error | null, params: Runtime.CallFunctionOnReturnType) => void): void; + /** + * Returns properties of a given object. Object group of the result is inherited from the target object. + */ + post(method: 'Runtime.getProperties', params?: Runtime.GetPropertiesParameterType, callback?: (err: Error | null, params: Runtime.GetPropertiesReturnType) => void): void; + post(method: 'Runtime.getProperties', callback?: (err: Error | null, params: Runtime.GetPropertiesReturnType) => void): void; + /** + * Releases remote object with given id. + */ + post(method: 'Runtime.releaseObject', params?: Runtime.ReleaseObjectParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Runtime.releaseObject', callback?: (err: Error | null) => void): void; + /** + * Releases all remote objects that belong to a given group. + */ + post(method: 'Runtime.releaseObjectGroup', params?: Runtime.ReleaseObjectGroupParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Runtime.releaseObjectGroup', callback?: (err: Error | null) => void): void; + /** + * Tells inspected instance to run if it was waiting for debugger to attach. + */ + post(method: 'Runtime.runIfWaitingForDebugger', callback?: (err: Error | null) => void): void; + /** + * Enables reporting of execution contexts creation by means of executionContextCreated event. When the reporting gets enabled the event will be sent immediately for each existing execution context. + */ + post(method: 'Runtime.enable', callback?: (err: Error | null) => void): void; + /** + * Disables reporting of execution contexts creation. + */ + post(method: 'Runtime.disable', callback?: (err: Error | null) => void): void; + /** + * Discards collected exceptions and console API calls. + */ + post(method: 'Runtime.discardConsoleEntries', callback?: (err: Error | null) => void): void; + /** + * @experimental + */ + post(method: 'Runtime.setCustomObjectFormatterEnabled', params?: Runtime.SetCustomObjectFormatterEnabledParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Runtime.setCustomObjectFormatterEnabled', callback?: (err: Error | null) => void): void; + /** + * Compiles expression. + */ + post(method: 'Runtime.compileScript', params?: Runtime.CompileScriptParameterType, callback?: (err: Error | null, params: Runtime.CompileScriptReturnType) => void): void; + post(method: 'Runtime.compileScript', callback?: (err: Error | null, params: Runtime.CompileScriptReturnType) => void): void; + /** + * Runs script with given id in a given context. + */ + post(method: 'Runtime.runScript', params?: Runtime.RunScriptParameterType, callback?: (err: Error | null, params: Runtime.RunScriptReturnType) => void): void; + post(method: 'Runtime.runScript', callback?: (err: Error | null, params: Runtime.RunScriptReturnType) => void): void; + post(method: 'Runtime.queryObjects', params?: Runtime.QueryObjectsParameterType, callback?: (err: Error | null, params: Runtime.QueryObjectsReturnType) => void): void; + post(method: 'Runtime.queryObjects', callback?: (err: Error | null, params: Runtime.QueryObjectsReturnType) => void): void; + /** + * Returns all let, const and class variables from global scope. + */ + post( + method: 'Runtime.globalLexicalScopeNames', + params?: Runtime.GlobalLexicalScopeNamesParameterType, + callback?: (err: Error | null, params: Runtime.GlobalLexicalScopeNamesReturnType) => void + ): void; + post(method: 'Runtime.globalLexicalScopeNames', callback?: (err: Error | null, params: Runtime.GlobalLexicalScopeNamesReturnType) => void): void; + /** + * Enables debugger for the given page. Clients should not assume that the debugging has been enabled until the result for this command is received. + */ + post(method: 'Debugger.enable', callback?: (err: Error | null, params: Debugger.EnableReturnType) => void): void; + /** + * Disables debugger for given page. + */ + post(method: 'Debugger.disable', callback?: (err: Error | null) => void): void; + /** + * Activates / deactivates all breakpoints on the page. + */ + post(method: 'Debugger.setBreakpointsActive', params?: Debugger.SetBreakpointsActiveParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.setBreakpointsActive', callback?: (err: Error | null) => void): void; + /** + * Makes page not interrupt on any pauses (breakpoint, exception, dom exception etc). + */ + post(method: 'Debugger.setSkipAllPauses', params?: Debugger.SetSkipAllPausesParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.setSkipAllPauses', callback?: (err: Error | null) => void): void; + /** + * Sets JavaScript breakpoint at given location specified either by URL or URL regex. Once this command is issued, all existing parsed scripts will have breakpoints resolved and returned in locations property. Further matching script parsing will result in subsequent breakpointResolved events issued. This logical breakpoint will survive page reloads. + */ + post(method: 'Debugger.setBreakpointByUrl', params?: Debugger.SetBreakpointByUrlParameterType, callback?: (err: Error | null, params: Debugger.SetBreakpointByUrlReturnType) => void): void; + post(method: 'Debugger.setBreakpointByUrl', callback?: (err: Error | null, params: Debugger.SetBreakpointByUrlReturnType) => void): void; + /** + * Sets JavaScript breakpoint at a given location. + */ + post(method: 'Debugger.setBreakpoint', params?: Debugger.SetBreakpointParameterType, callback?: (err: Error | null, params: Debugger.SetBreakpointReturnType) => void): void; + post(method: 'Debugger.setBreakpoint', callback?: (err: Error | null, params: Debugger.SetBreakpointReturnType) => void): void; + /** + * Removes JavaScript breakpoint. + */ + post(method: 'Debugger.removeBreakpoint', params?: Debugger.RemoveBreakpointParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.removeBreakpoint', callback?: (err: Error | null) => void): void; + /** + * Returns possible locations for breakpoint. scriptId in start and end range locations should be the same. + */ + post( + method: 'Debugger.getPossibleBreakpoints', + params?: Debugger.GetPossibleBreakpointsParameterType, + callback?: (err: Error | null, params: Debugger.GetPossibleBreakpointsReturnType) => void + ): void; + post(method: 'Debugger.getPossibleBreakpoints', callback?: (err: Error | null, params: Debugger.GetPossibleBreakpointsReturnType) => void): void; + /** + * Continues execution until specific location is reached. + */ + post(method: 'Debugger.continueToLocation', params?: Debugger.ContinueToLocationParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.continueToLocation', callback?: (err: Error | null) => void): void; + /** + * @experimental + */ + post(method: 'Debugger.pauseOnAsyncCall', params?: Debugger.PauseOnAsyncCallParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.pauseOnAsyncCall', callback?: (err: Error | null) => void): void; + /** + * Steps over the statement. + */ + post(method: 'Debugger.stepOver', callback?: (err: Error | null) => void): void; + /** + * Steps into the function call. + */ + post(method: 'Debugger.stepInto', params?: Debugger.StepIntoParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.stepInto', callback?: (err: Error | null) => void): void; + /** + * Steps out of the function call. + */ + post(method: 'Debugger.stepOut', callback?: (err: Error | null) => void): void; + /** + * Stops on the next JavaScript statement. + */ + post(method: 'Debugger.pause', callback?: (err: Error | null) => void): void; + /** + * This method is deprecated - use Debugger.stepInto with breakOnAsyncCall and Debugger.pauseOnAsyncTask instead. Steps into next scheduled async task if any is scheduled before next pause. Returns success when async task is actually scheduled, returns error if no task were scheduled or another scheduleStepIntoAsync was called. + * @experimental + */ + post(method: 'Debugger.scheduleStepIntoAsync', callback?: (err: Error | null) => void): void; + /** + * Resumes JavaScript execution. + */ + post(method: 'Debugger.resume', callback?: (err: Error | null) => void): void; + /** + * Returns stack trace with given stackTraceId. + * @experimental + */ + post(method: 'Debugger.getStackTrace', params?: Debugger.GetStackTraceParameterType, callback?: (err: Error | null, params: Debugger.GetStackTraceReturnType) => void): void; + post(method: 'Debugger.getStackTrace', callback?: (err: Error | null, params: Debugger.GetStackTraceReturnType) => void): void; + /** + * Searches for given string in script content. + */ + post(method: 'Debugger.searchInContent', params?: Debugger.SearchInContentParameterType, callback?: (err: Error | null, params: Debugger.SearchInContentReturnType) => void): void; + post(method: 'Debugger.searchInContent', callback?: (err: Error | null, params: Debugger.SearchInContentReturnType) => void): void; + /** + * Edits JavaScript source live. + */ + post(method: 'Debugger.setScriptSource', params?: Debugger.SetScriptSourceParameterType, callback?: (err: Error | null, params: Debugger.SetScriptSourceReturnType) => void): void; + post(method: 'Debugger.setScriptSource', callback?: (err: Error | null, params: Debugger.SetScriptSourceReturnType) => void): void; + /** + * Restarts particular call frame from the beginning. + */ + post(method: 'Debugger.restartFrame', params?: Debugger.RestartFrameParameterType, callback?: (err: Error | null, params: Debugger.RestartFrameReturnType) => void): void; + post(method: 'Debugger.restartFrame', callback?: (err: Error | null, params: Debugger.RestartFrameReturnType) => void): void; + /** + * Returns source for the script with given id. + */ + post(method: 'Debugger.getScriptSource', params?: Debugger.GetScriptSourceParameterType, callback?: (err: Error | null, params: Debugger.GetScriptSourceReturnType) => void): void; + post(method: 'Debugger.getScriptSource', callback?: (err: Error | null, params: Debugger.GetScriptSourceReturnType) => void): void; + /** + * Defines pause on exceptions state. Can be set to stop on all exceptions, uncaught exceptions or no exceptions. Initial pause on exceptions state is none. + */ + post(method: 'Debugger.setPauseOnExceptions', params?: Debugger.SetPauseOnExceptionsParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.setPauseOnExceptions', callback?: (err: Error | null) => void): void; + /** + * Evaluates expression on a given call frame. + */ + post(method: 'Debugger.evaluateOnCallFrame', params?: Debugger.EvaluateOnCallFrameParameterType, callback?: (err: Error | null, params: Debugger.EvaluateOnCallFrameReturnType) => void): void; + post(method: 'Debugger.evaluateOnCallFrame', callback?: (err: Error | null, params: Debugger.EvaluateOnCallFrameReturnType) => void): void; + /** + * Changes value of variable in a callframe. Object-based scopes are not supported and must be mutated manually. + */ + post(method: 'Debugger.setVariableValue', params?: Debugger.SetVariableValueParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.setVariableValue', callback?: (err: Error | null) => void): void; + /** + * Changes return value in top frame. Available only at return break position. + * @experimental + */ + post(method: 'Debugger.setReturnValue', params?: Debugger.SetReturnValueParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.setReturnValue', callback?: (err: Error | null) => void): void; + /** + * Enables or disables async call stacks tracking. + */ + post(method: 'Debugger.setAsyncCallStackDepth', params?: Debugger.SetAsyncCallStackDepthParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.setAsyncCallStackDepth', callback?: (err: Error | null) => void): void; + /** + * Replace previous blackbox patterns with passed ones. Forces backend to skip stepping/pausing in scripts with url matching one of the patterns. VM will try to leave blackboxed script by performing 'step in' several times, finally resorting to 'step out' if unsuccessful. + * @experimental + */ + post(method: 'Debugger.setBlackboxPatterns', params?: Debugger.SetBlackboxPatternsParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.setBlackboxPatterns', callback?: (err: Error | null) => void): void; + /** + * Makes backend skip steps in the script in blackboxed ranges. VM will try leave blacklisted scripts by performing 'step in' several times, finally resorting to 'step out' if unsuccessful. Positions array contains positions where blackbox state is changed. First interval isn't blackboxed. Array should be sorted. + * @experimental + */ + post(method: 'Debugger.setBlackboxedRanges', params?: Debugger.SetBlackboxedRangesParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Debugger.setBlackboxedRanges', callback?: (err: Error | null) => void): void; + /** + * Enables console domain, sends the messages collected so far to the client by means of the messageAdded notification. + */ + post(method: 'Console.enable', callback?: (err: Error | null) => void): void; + /** + * Disables console domain, prevents further console messages from being reported to the client. + */ + post(method: 'Console.disable', callback?: (err: Error | null) => void): void; + /** + * Does nothing. + */ + post(method: 'Console.clearMessages', callback?: (err: Error | null) => void): void; + post(method: 'Profiler.enable', callback?: (err: Error | null) => void): void; + post(method: 'Profiler.disable', callback?: (err: Error | null) => void): void; + /** + * Changes CPU profiler sampling interval. Must be called before CPU profiles recording started. + */ + post(method: 'Profiler.setSamplingInterval', params?: Profiler.SetSamplingIntervalParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Profiler.setSamplingInterval', callback?: (err: Error | null) => void): void; + post(method: 'Profiler.start', callback?: (err: Error | null) => void): void; + post(method: 'Profiler.stop', callback?: (err: Error | null, params: Profiler.StopReturnType) => void): void; + /** + * Enable precise code coverage. Coverage data for JavaScript executed before enabling precise code coverage may be incomplete. Enabling prevents running optimized code and resets execution counters. + */ + post(method: 'Profiler.startPreciseCoverage', params?: Profiler.StartPreciseCoverageParameterType, callback?: (err: Error | null) => void): void; + post(method: 'Profiler.startPreciseCoverage', callback?: (err: Error | null) => void): void; + /** + * Disable precise code coverage. Disabling releases unnecessary execution count records and allows executing optimized code. + */ + post(method: 'Profiler.stopPreciseCoverage', callback?: (err: Error | null) => void): void; + /** + * Collect coverage data for the current isolate, and resets execution counters. Precise code coverage needs to have started. + */ + post(method: 'Profiler.takePreciseCoverage', callback?: (err: Error | null, params: Profiler.TakePreciseCoverageReturnType) => void): void; + /** + * Collect coverage data for the current isolate. The coverage data may be incomplete due to garbage collection. + */ + post(method: 'Profiler.getBestEffortCoverage', callback?: (err: Error | null, params: Profiler.GetBestEffortCoverageReturnType) => void): void; + /** + * Enable type profile. + * @experimental + */ + post(method: 'Profiler.startTypeProfile', callback?: (err: Error | null) => void): void; + /** + * Disable type profile. Disabling releases type profile data collected so far. + * @experimental + */ + post(method: 'Profiler.stopTypeProfile', callback?: (err: Error | null) => void): void; + /** + * Collect type profile. + * @experimental + */ + post(method: 'Profiler.takeTypeProfile', callback?: (err: Error | null, params: Profiler.TakeTypeProfileReturnType) => void): void; + post(method: 'HeapProfiler.enable', callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.disable', callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.startTrackingHeapObjects', params?: HeapProfiler.StartTrackingHeapObjectsParameterType, callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.startTrackingHeapObjects', callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.stopTrackingHeapObjects', params?: HeapProfiler.StopTrackingHeapObjectsParameterType, callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.stopTrackingHeapObjects', callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.takeHeapSnapshot', params?: HeapProfiler.TakeHeapSnapshotParameterType, callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.takeHeapSnapshot', callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.collectGarbage', callback?: (err: Error | null) => void): void; + post( + method: 'HeapProfiler.getObjectByHeapObjectId', + params?: HeapProfiler.GetObjectByHeapObjectIdParameterType, + callback?: (err: Error | null, params: HeapProfiler.GetObjectByHeapObjectIdReturnType) => void + ): void; + post(method: 'HeapProfiler.getObjectByHeapObjectId', callback?: (err: Error | null, params: HeapProfiler.GetObjectByHeapObjectIdReturnType) => void): void; + /** + * Enables console to refer to the node with given id via $x (see Command Line API for more details $x functions). + */ + post(method: 'HeapProfiler.addInspectedHeapObject', params?: HeapProfiler.AddInspectedHeapObjectParameterType, callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.addInspectedHeapObject', callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.getHeapObjectId', params?: HeapProfiler.GetHeapObjectIdParameterType, callback?: (err: Error | null, params: HeapProfiler.GetHeapObjectIdReturnType) => void): void; + post(method: 'HeapProfiler.getHeapObjectId', callback?: (err: Error | null, params: HeapProfiler.GetHeapObjectIdReturnType) => void): void; + post(method: 'HeapProfiler.startSampling', params?: HeapProfiler.StartSamplingParameterType, callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.startSampling', callback?: (err: Error | null) => void): void; + post(method: 'HeapProfiler.stopSampling', callback?: (err: Error | null, params: HeapProfiler.StopSamplingReturnType) => void): void; + post(method: 'HeapProfiler.getSamplingProfile', callback?: (err: Error | null, params: HeapProfiler.GetSamplingProfileReturnType) => void): void; + /** + * Gets supported tracing categories. + */ + post(method: 'NodeTracing.getCategories', callback?: (err: Error | null, params: NodeTracing.GetCategoriesReturnType) => void): void; + /** + * Start trace events collection. + */ + post(method: 'NodeTracing.start', params?: NodeTracing.StartParameterType, callback?: (err: Error | null) => void): void; + post(method: 'NodeTracing.start', callback?: (err: Error | null) => void): void; + /** + * Stop trace events collection. Remaining collected events will be sent as a sequence of + * dataCollected events followed by tracingComplete event. + */ + post(method: 'NodeTracing.stop', callback?: (err: Error | null) => void): void; + /** + * Sends protocol message over session with given id. + */ + post(method: 'NodeWorker.sendMessageToWorker', params?: NodeWorker.SendMessageToWorkerParameterType, callback?: (err: Error | null) => void): void; + post(method: 'NodeWorker.sendMessageToWorker', callback?: (err: Error | null) => void): void; + /** + * Instructs the inspector to attach to running workers. Will also attach to new workers + * as they start + */ + post(method: 'NodeWorker.enable', params?: NodeWorker.EnableParameterType, callback?: (err: Error | null) => void): void; + post(method: 'NodeWorker.enable', callback?: (err: Error | null) => void): void; + /** + * Detaches from all running workers and disables attaching to new workers as they are started. + */ + post(method: 'NodeWorker.disable', callback?: (err: Error | null) => void): void; + /** + * Detached from the worker with given sessionId. + */ + post(method: 'NodeWorker.detach', params?: NodeWorker.DetachParameterType, callback?: (err: Error | null) => void): void; + post(method: 'NodeWorker.detach', callback?: (err: Error | null) => void): void; + /** + * Enable the `NodeRuntime.waitingForDisconnect`. + */ + post(method: 'NodeRuntime.notifyWhenWaitingForDisconnect', params?: NodeRuntime.NotifyWhenWaitingForDisconnectParameterType, callback?: (err: Error | null) => void): void; + post(method: 'NodeRuntime.notifyWhenWaitingForDisconnect', callback?: (err: Error | null) => void): void; + // Events + addListener(event: string, listener: (...args: any[]) => void): this; + /** + * Emitted when any notification from the V8 Inspector is received. + */ + addListener(event: 'inspectorNotification', listener: (message: InspectorNotification<{}>) => void): this; + /** + * Issued when new execution context is created. + */ + addListener(event: 'Runtime.executionContextCreated', listener: (message: InspectorNotification) => void): this; + /** + * Issued when execution context is destroyed. + */ + addListener(event: 'Runtime.executionContextDestroyed', listener: (message: InspectorNotification) => void): this; + /** + * Issued when all executionContexts were cleared in browser + */ + addListener(event: 'Runtime.executionContextsCleared', listener: () => void): this; + /** + * Issued when exception was thrown and unhandled. + */ + addListener(event: 'Runtime.exceptionThrown', listener: (message: InspectorNotification) => void): this; + /** + * Issued when unhandled exception was revoked. + */ + addListener(event: 'Runtime.exceptionRevoked', listener: (message: InspectorNotification) => void): this; + /** + * Issued when console API was called. + */ + addListener(event: 'Runtime.consoleAPICalled', listener: (message: InspectorNotification) => void): this; + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + addListener(event: 'Runtime.inspectRequested', listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + addListener(event: 'Debugger.scriptParsed', listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine fails to parse the script. + */ + addListener(event: 'Debugger.scriptFailedToParse', listener: (message: InspectorNotification) => void): this; + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + addListener(event: 'Debugger.breakpointResolved', listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + addListener(event: 'Debugger.paused', listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine resumed execution. + */ + addListener(event: 'Debugger.resumed', listener: () => void): this; + /** + * Issued when new console message is added. + */ + addListener(event: 'Console.messageAdded', listener: (message: InspectorNotification) => void): this; + /** + * Sent when new profile recording is started using console.profile() call. + */ + addListener(event: 'Profiler.consoleProfileStarted', listener: (message: InspectorNotification) => void): this; + addListener(event: 'Profiler.consoleProfileFinished', listener: (message: InspectorNotification) => void): this; + addListener(event: 'HeapProfiler.addHeapSnapshotChunk', listener: (message: InspectorNotification) => void): this; + addListener(event: 'HeapProfiler.resetProfiles', listener: () => void): this; + addListener(event: 'HeapProfiler.reportHeapSnapshotProgress', listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + addListener(event: 'HeapProfiler.lastSeenObjectId', listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + addListener(event: 'HeapProfiler.heapStatsUpdate', listener: (message: InspectorNotification) => void): this; + /** + * Contains an bucket of collected trace events. + */ + addListener(event: 'NodeTracing.dataCollected', listener: (message: InspectorNotification) => void): this; + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + addListener(event: 'NodeTracing.tracingComplete', listener: () => void): this; + /** + * Issued when attached to a worker. + */ + addListener(event: 'NodeWorker.attachedToWorker', listener: (message: InspectorNotification) => void): this; + /** + * Issued when detached from the worker. + */ + addListener(event: 'NodeWorker.detachedFromWorker', listener: (message: InspectorNotification) => void): this; + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + addListener(event: 'NodeWorker.receivedMessageFromWorker', listener: (message: InspectorNotification) => void): this; + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + addListener(event: 'NodeRuntime.waitingForDisconnect', listener: () => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'inspectorNotification', message: InspectorNotification<{}>): boolean; + emit(event: 'Runtime.executionContextCreated', message: InspectorNotification): boolean; + emit(event: 'Runtime.executionContextDestroyed', message: InspectorNotification): boolean; + emit(event: 'Runtime.executionContextsCleared'): boolean; + emit(event: 'Runtime.exceptionThrown', message: InspectorNotification): boolean; + emit(event: 'Runtime.exceptionRevoked', message: InspectorNotification): boolean; + emit(event: 'Runtime.consoleAPICalled', message: InspectorNotification): boolean; + emit(event: 'Runtime.inspectRequested', message: InspectorNotification): boolean; + emit(event: 'Debugger.scriptParsed', message: InspectorNotification): boolean; + emit(event: 'Debugger.scriptFailedToParse', message: InspectorNotification): boolean; + emit(event: 'Debugger.breakpointResolved', message: InspectorNotification): boolean; + emit(event: 'Debugger.paused', message: InspectorNotification): boolean; + emit(event: 'Debugger.resumed'): boolean; + emit(event: 'Console.messageAdded', message: InspectorNotification): boolean; + emit(event: 'Profiler.consoleProfileStarted', message: InspectorNotification): boolean; + emit(event: 'Profiler.consoleProfileFinished', message: InspectorNotification): boolean; + emit(event: 'HeapProfiler.addHeapSnapshotChunk', message: InspectorNotification): boolean; + emit(event: 'HeapProfiler.resetProfiles'): boolean; + emit(event: 'HeapProfiler.reportHeapSnapshotProgress', message: InspectorNotification): boolean; + emit(event: 'HeapProfiler.lastSeenObjectId', message: InspectorNotification): boolean; + emit(event: 'HeapProfiler.heapStatsUpdate', message: InspectorNotification): boolean; + emit(event: 'NodeTracing.dataCollected', message: InspectorNotification): boolean; + emit(event: 'NodeTracing.tracingComplete'): boolean; + emit(event: 'NodeWorker.attachedToWorker', message: InspectorNotification): boolean; + emit(event: 'NodeWorker.detachedFromWorker', message: InspectorNotification): boolean; + emit(event: 'NodeWorker.receivedMessageFromWorker', message: InspectorNotification): boolean; + emit(event: 'NodeRuntime.waitingForDisconnect'): boolean; + on(event: string, listener: (...args: any[]) => void): this; + /** + * Emitted when any notification from the V8 Inspector is received. + */ + on(event: 'inspectorNotification', listener: (message: InspectorNotification<{}>) => void): this; + /** + * Issued when new execution context is created. + */ + on(event: 'Runtime.executionContextCreated', listener: (message: InspectorNotification) => void): this; + /** + * Issued when execution context is destroyed. + */ + on(event: 'Runtime.executionContextDestroyed', listener: (message: InspectorNotification) => void): this; + /** + * Issued when all executionContexts were cleared in browser + */ + on(event: 'Runtime.executionContextsCleared', listener: () => void): this; + /** + * Issued when exception was thrown and unhandled. + */ + on(event: 'Runtime.exceptionThrown', listener: (message: InspectorNotification) => void): this; + /** + * Issued when unhandled exception was revoked. + */ + on(event: 'Runtime.exceptionRevoked', listener: (message: InspectorNotification) => void): this; + /** + * Issued when console API was called. + */ + on(event: 'Runtime.consoleAPICalled', listener: (message: InspectorNotification) => void): this; + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + on(event: 'Runtime.inspectRequested', listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + on(event: 'Debugger.scriptParsed', listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine fails to parse the script. + */ + on(event: 'Debugger.scriptFailedToParse', listener: (message: InspectorNotification) => void): this; + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + on(event: 'Debugger.breakpointResolved', listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + on(event: 'Debugger.paused', listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine resumed execution. + */ + on(event: 'Debugger.resumed', listener: () => void): this; + /** + * Issued when new console message is added. + */ + on(event: 'Console.messageAdded', listener: (message: InspectorNotification) => void): this; + /** + * Sent when new profile recording is started using console.profile() call. + */ + on(event: 'Profiler.consoleProfileStarted', listener: (message: InspectorNotification) => void): this; + on(event: 'Profiler.consoleProfileFinished', listener: (message: InspectorNotification) => void): this; + on(event: 'HeapProfiler.addHeapSnapshotChunk', listener: (message: InspectorNotification) => void): this; + on(event: 'HeapProfiler.resetProfiles', listener: () => void): this; + on(event: 'HeapProfiler.reportHeapSnapshotProgress', listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + on(event: 'HeapProfiler.lastSeenObjectId', listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + on(event: 'HeapProfiler.heapStatsUpdate', listener: (message: InspectorNotification) => void): this; + /** + * Contains an bucket of collected trace events. + */ + on(event: 'NodeTracing.dataCollected', listener: (message: InspectorNotification) => void): this; + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + on(event: 'NodeTracing.tracingComplete', listener: () => void): this; + /** + * Issued when attached to a worker. + */ + on(event: 'NodeWorker.attachedToWorker', listener: (message: InspectorNotification) => void): this; + /** + * Issued when detached from the worker. + */ + on(event: 'NodeWorker.detachedFromWorker', listener: (message: InspectorNotification) => void): this; + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + on(event: 'NodeWorker.receivedMessageFromWorker', listener: (message: InspectorNotification) => void): this; + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + on(event: 'NodeRuntime.waitingForDisconnect', listener: () => void): this; + once(event: string, listener: (...args: any[]) => void): this; + /** + * Emitted when any notification from the V8 Inspector is received. + */ + once(event: 'inspectorNotification', listener: (message: InspectorNotification<{}>) => void): this; + /** + * Issued when new execution context is created. + */ + once(event: 'Runtime.executionContextCreated', listener: (message: InspectorNotification) => void): this; + /** + * Issued when execution context is destroyed. + */ + once(event: 'Runtime.executionContextDestroyed', listener: (message: InspectorNotification) => void): this; + /** + * Issued when all executionContexts were cleared in browser + */ + once(event: 'Runtime.executionContextsCleared', listener: () => void): this; + /** + * Issued when exception was thrown and unhandled. + */ + once(event: 'Runtime.exceptionThrown', listener: (message: InspectorNotification) => void): this; + /** + * Issued when unhandled exception was revoked. + */ + once(event: 'Runtime.exceptionRevoked', listener: (message: InspectorNotification) => void): this; + /** + * Issued when console API was called. + */ + once(event: 'Runtime.consoleAPICalled', listener: (message: InspectorNotification) => void): this; + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + once(event: 'Runtime.inspectRequested', listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + once(event: 'Debugger.scriptParsed', listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine fails to parse the script. + */ + once(event: 'Debugger.scriptFailedToParse', listener: (message: InspectorNotification) => void): this; + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + once(event: 'Debugger.breakpointResolved', listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + once(event: 'Debugger.paused', listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine resumed execution. + */ + once(event: 'Debugger.resumed', listener: () => void): this; + /** + * Issued when new console message is added. + */ + once(event: 'Console.messageAdded', listener: (message: InspectorNotification) => void): this; + /** + * Sent when new profile recording is started using console.profile() call. + */ + once(event: 'Profiler.consoleProfileStarted', listener: (message: InspectorNotification) => void): this; + once(event: 'Profiler.consoleProfileFinished', listener: (message: InspectorNotification) => void): this; + once(event: 'HeapProfiler.addHeapSnapshotChunk', listener: (message: InspectorNotification) => void): this; + once(event: 'HeapProfiler.resetProfiles', listener: () => void): this; + once(event: 'HeapProfiler.reportHeapSnapshotProgress', listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + once(event: 'HeapProfiler.lastSeenObjectId', listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + once(event: 'HeapProfiler.heapStatsUpdate', listener: (message: InspectorNotification) => void): this; + /** + * Contains an bucket of collected trace events. + */ + once(event: 'NodeTracing.dataCollected', listener: (message: InspectorNotification) => void): this; + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + once(event: 'NodeTracing.tracingComplete', listener: () => void): this; + /** + * Issued when attached to a worker. + */ + once(event: 'NodeWorker.attachedToWorker', listener: (message: InspectorNotification) => void): this; + /** + * Issued when detached from the worker. + */ + once(event: 'NodeWorker.detachedFromWorker', listener: (message: InspectorNotification) => void): this; + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + once(event: 'NodeWorker.receivedMessageFromWorker', listener: (message: InspectorNotification) => void): this; + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + once(event: 'NodeRuntime.waitingForDisconnect', listener: () => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + /** + * Emitted when any notification from the V8 Inspector is received. + */ + prependListener(event: 'inspectorNotification', listener: (message: InspectorNotification<{}>) => void): this; + /** + * Issued when new execution context is created. + */ + prependListener(event: 'Runtime.executionContextCreated', listener: (message: InspectorNotification) => void): this; + /** + * Issued when execution context is destroyed. + */ + prependListener(event: 'Runtime.executionContextDestroyed', listener: (message: InspectorNotification) => void): this; + /** + * Issued when all executionContexts were cleared in browser + */ + prependListener(event: 'Runtime.executionContextsCleared', listener: () => void): this; + /** + * Issued when exception was thrown and unhandled. + */ + prependListener(event: 'Runtime.exceptionThrown', listener: (message: InspectorNotification) => void): this; + /** + * Issued when unhandled exception was revoked. + */ + prependListener(event: 'Runtime.exceptionRevoked', listener: (message: InspectorNotification) => void): this; + /** + * Issued when console API was called. + */ + prependListener(event: 'Runtime.consoleAPICalled', listener: (message: InspectorNotification) => void): this; + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + prependListener(event: 'Runtime.inspectRequested', listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + prependListener(event: 'Debugger.scriptParsed', listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine fails to parse the script. + */ + prependListener(event: 'Debugger.scriptFailedToParse', listener: (message: InspectorNotification) => void): this; + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + prependListener(event: 'Debugger.breakpointResolved', listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + prependListener(event: 'Debugger.paused', listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine resumed execution. + */ + prependListener(event: 'Debugger.resumed', listener: () => void): this; + /** + * Issued when new console message is added. + */ + prependListener(event: 'Console.messageAdded', listener: (message: InspectorNotification) => void): this; + /** + * Sent when new profile recording is started using console.profile() call. + */ + prependListener(event: 'Profiler.consoleProfileStarted', listener: (message: InspectorNotification) => void): this; + prependListener(event: 'Profiler.consoleProfileFinished', listener: (message: InspectorNotification) => void): this; + prependListener(event: 'HeapProfiler.addHeapSnapshotChunk', listener: (message: InspectorNotification) => void): this; + prependListener(event: 'HeapProfiler.resetProfiles', listener: () => void): this; + prependListener(event: 'HeapProfiler.reportHeapSnapshotProgress', listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + prependListener(event: 'HeapProfiler.lastSeenObjectId', listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + prependListener(event: 'HeapProfiler.heapStatsUpdate', listener: (message: InspectorNotification) => void): this; + /** + * Contains an bucket of collected trace events. + */ + prependListener(event: 'NodeTracing.dataCollected', listener: (message: InspectorNotification) => void): this; + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + prependListener(event: 'NodeTracing.tracingComplete', listener: () => void): this; + /** + * Issued when attached to a worker. + */ + prependListener(event: 'NodeWorker.attachedToWorker', listener: (message: InspectorNotification) => void): this; + /** + * Issued when detached from the worker. + */ + prependListener(event: 'NodeWorker.detachedFromWorker', listener: (message: InspectorNotification) => void): this; + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + prependListener(event: 'NodeWorker.receivedMessageFromWorker', listener: (message: InspectorNotification) => void): this; + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + prependListener(event: 'NodeRuntime.waitingForDisconnect', listener: () => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + /** + * Emitted when any notification from the V8 Inspector is received. + */ + prependOnceListener(event: 'inspectorNotification', listener: (message: InspectorNotification<{}>) => void): this; + /** + * Issued when new execution context is created. + */ + prependOnceListener(event: 'Runtime.executionContextCreated', listener: (message: InspectorNotification) => void): this; + /** + * Issued when execution context is destroyed. + */ + prependOnceListener(event: 'Runtime.executionContextDestroyed', listener: (message: InspectorNotification) => void): this; + /** + * Issued when all executionContexts were cleared in browser + */ + prependOnceListener(event: 'Runtime.executionContextsCleared', listener: () => void): this; + /** + * Issued when exception was thrown and unhandled. + */ + prependOnceListener(event: 'Runtime.exceptionThrown', listener: (message: InspectorNotification) => void): this; + /** + * Issued when unhandled exception was revoked. + */ + prependOnceListener(event: 'Runtime.exceptionRevoked', listener: (message: InspectorNotification) => void): this; + /** + * Issued when console API was called. + */ + prependOnceListener(event: 'Runtime.consoleAPICalled', listener: (message: InspectorNotification) => void): this; + /** + * Issued when object should be inspected (for example, as a result of inspect() command line API call). + */ + prependOnceListener(event: 'Runtime.inspectRequested', listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine parses script. This event is also fired for all known and uncollected scripts upon enabling debugger. + */ + prependOnceListener(event: 'Debugger.scriptParsed', listener: (message: InspectorNotification) => void): this; + /** + * Fired when virtual machine fails to parse the script. + */ + prependOnceListener(event: 'Debugger.scriptFailedToParse', listener: (message: InspectorNotification) => void): this; + /** + * Fired when breakpoint is resolved to an actual script and location. + */ + prependOnceListener(event: 'Debugger.breakpointResolved', listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine stopped on breakpoint or exception or any other stop criteria. + */ + prependOnceListener(event: 'Debugger.paused', listener: (message: InspectorNotification) => void): this; + /** + * Fired when the virtual machine resumed execution. + */ + prependOnceListener(event: 'Debugger.resumed', listener: () => void): this; + /** + * Issued when new console message is added. + */ + prependOnceListener(event: 'Console.messageAdded', listener: (message: InspectorNotification) => void): this; + /** + * Sent when new profile recording is started using console.profile() call. + */ + prependOnceListener(event: 'Profiler.consoleProfileStarted', listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: 'Profiler.consoleProfileFinished', listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: 'HeapProfiler.addHeapSnapshotChunk', listener: (message: InspectorNotification) => void): this; + prependOnceListener(event: 'HeapProfiler.resetProfiles', listener: () => void): this; + prependOnceListener(event: 'HeapProfiler.reportHeapSnapshotProgress', listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend regularly sends a current value for last seen object id and corresponding timestamp. If the were changes in the heap since last event then one or more heapStatsUpdate events will be sent before a new lastSeenObjectId event. + */ + prependOnceListener(event: 'HeapProfiler.lastSeenObjectId', listener: (message: InspectorNotification) => void): this; + /** + * If heap objects tracking has been started then backend may send update for one or more fragments + */ + prependOnceListener(event: 'HeapProfiler.heapStatsUpdate', listener: (message: InspectorNotification) => void): this; + /** + * Contains an bucket of collected trace events. + */ + prependOnceListener(event: 'NodeTracing.dataCollected', listener: (message: InspectorNotification) => void): this; + /** + * Signals that tracing is stopped and there is no trace buffers pending flush, all data were + * delivered via dataCollected events. + */ + prependOnceListener(event: 'NodeTracing.tracingComplete', listener: () => void): this; + /** + * Issued when attached to a worker. + */ + prependOnceListener(event: 'NodeWorker.attachedToWorker', listener: (message: InspectorNotification) => void): this; + /** + * Issued when detached from the worker. + */ + prependOnceListener(event: 'NodeWorker.detachedFromWorker', listener: (message: InspectorNotification) => void): this; + /** + * Notifies about a new protocol message received from the session + * (session ID is provided in attachedToWorker notification). + */ + prependOnceListener(event: 'NodeWorker.receivedMessageFromWorker', listener: (message: InspectorNotification) => void): this; + /** + * This event is fired instead of `Runtime.executionContextDestroyed` when + * enabled. + * It is fired when the Node process finished all code execution and is + * waiting for all frontends to disconnect. + */ + prependOnceListener(event: 'NodeRuntime.waitingForDisconnect', listener: () => void): this; + } + /** + * Activate inspector on host and port. Equivalent to`node --inspect=[[host:]port]`, but can be done programmatically after node has + * started. + * + * If wait is `true`, will block until a client has connected to the inspect port + * and flow control has been passed to the debugger client. + * + * See the `security warning` regarding the `host`parameter usage. + * @param [port='what was specified on the CLI'] Port to listen on for inspector connections. Optional. + * @param [host='what was specified on the CLI'] Host to listen on for inspector connections. Optional. + * @param [wait=false] Block until a client has connected. Optional. + */ + function open(port?: number, host?: string, wait?: boolean): void; + /** + * Deactivate the inspector. Blocks until there are no active connections. + */ + function close(): void; + /** + * Return the URL of the active inspector, or `undefined` if there is none. + * + * ```console + * $ node --inspect -p 'inspector.url()' + * Debugger listening on ws://127.0.0.1:9229/166e272e-7a30-4d09-97ce-f1c012b43c34 + * For help, see: https://nodejs.org/en/docs/inspector + * ws://127.0.0.1:9229/166e272e-7a30-4d09-97ce-f1c012b43c34 + * + * $ node --inspect=localhost:3000 -p 'inspector.url()' + * Debugger listening on ws://localhost:3000/51cf8d0e-3c36-4c59-8efd-54519839e56a + * For help, see: https://nodejs.org/en/docs/inspector + * ws://localhost:3000/51cf8d0e-3c36-4c59-8efd-54519839e56a + * + * $ node -p 'inspector.url()' + * undefined + * ``` + */ + function url(): string | undefined; + /** + * Blocks until a client (existing or connected later) has sent`Runtime.runIfWaitingForDebugger` command. + * + * An exception will be thrown if there is no active inspector. + * @since v12.7.0 + */ + function waitForDebugger(): void; +} +/** + * The inspector module provides an API for interacting with the V8 inspector. + */ +declare module 'node:inspector' { + import inspector = require('inspector'); + export = inspector; +} diff --git a/node_modules/@types/node/ts4.8/module.d.ts b/node_modules/@types/node/ts4.8/module.d.ts new file mode 100644 index 0000000..d83aec9 --- /dev/null +++ b/node_modules/@types/node/ts4.8/module.d.ts @@ -0,0 +1,114 @@ +/** + * @since v0.3.7 + */ +declare module 'module' { + import { URL } from 'node:url'; + namespace Module { + /** + * The `module.syncBuiltinESMExports()` method updates all the live bindings for + * builtin `ES Modules` to match the properties of the `CommonJS` exports. It + * does not add or remove exported names from the `ES Modules`. + * + * ```js + * const fs = require('fs'); + * const assert = require('assert'); + * const { syncBuiltinESMExports } = require('module'); + * + * fs.readFile = newAPI; + * + * delete fs.readFileSync; + * + * function newAPI() { + * // ... + * } + * + * fs.newAPI = newAPI; + * + * syncBuiltinESMExports(); + * + * import('fs').then((esmFS) => { + * // It syncs the existing readFile property with the new value + * assert.strictEqual(esmFS.readFile, newAPI); + * // readFileSync has been deleted from the required fs + * assert.strictEqual('readFileSync' in fs, false); + * // syncBuiltinESMExports() does not remove readFileSync from esmFS + * assert.strictEqual('readFileSync' in esmFS, true); + * // syncBuiltinESMExports() does not add names + * assert.strictEqual(esmFS.newAPI, undefined); + * }); + * ``` + * @since v12.12.0 + */ + function syncBuiltinESMExports(): void; + /** + * `path` is the resolved path for the file for which a corresponding source map + * should be fetched. + * @since v13.7.0, v12.17.0 + */ + function findSourceMap(path: string, error?: Error): SourceMap; + interface SourceMapPayload { + file: string; + version: number; + sources: string[]; + sourcesContent: string[]; + names: string[]; + mappings: string; + sourceRoot: string; + } + interface SourceMapping { + generatedLine: number; + generatedColumn: number; + originalSource: string; + originalLine: number; + originalColumn: number; + } + /** + * @since v13.7.0, v12.17.0 + */ + class SourceMap { + /** + * Getter for the payload used to construct the `SourceMap` instance. + */ + readonly payload: SourceMapPayload; + constructor(payload: SourceMapPayload); + /** + * Given a line number and column number in the generated source file, returns + * an object representing the position in the original file. The object returned + * consists of the following keys: + */ + findEntry(line: number, column: number): SourceMapping; + } + } + interface Module extends NodeModule {} + class Module { + static runMain(): void; + static wrap(code: string): string; + static createRequire(path: string | URL): NodeRequire; + static builtinModules: string[]; + static Module: typeof Module; + constructor(id: string, parent?: Module); + } + global { + interface ImportMeta { + url: string; + /** + * @experimental + * This feature is only available with the `--experimental-import-meta-resolve` + * command flag enabled. + * + * Provides a module-relative resolution function scoped to each module, returning + * the URL string. + * + * @param specified The module specifier to resolve relative to `parent`. + * @param parent The absolute parent module URL to resolve from. If none + * is specified, the value of `import.meta.url` is used as the default. + */ + resolve?(specified: string, parent?: string | URL): Promise; + } + } + export = Module; +} +declare module 'node:module' { + import module = require('module'); + export = module; +} diff --git a/node_modules/@types/node/ts4.8/net.d.ts b/node_modules/@types/node/ts4.8/net.d.ts new file mode 100644 index 0000000..72cebc8 --- /dev/null +++ b/node_modules/@types/node/ts4.8/net.d.ts @@ -0,0 +1,869 @@ +/** + * > Stability: 2 - Stable + * + * The `net` module provides an asynchronous network API for creating stream-based + * TCP or `IPC` servers ({@link createServer}) and clients + * ({@link createConnection}). + * + * It can be accessed using: + * + * ```js + * const net = require('net'); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/net.js) + */ +declare module 'net' { + import * as stream from 'node:stream'; + import { Abortable, EventEmitter } from 'node:events'; + import * as dns from 'node:dns'; + type LookupFunction = (hostname: string, options: dns.LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void) => void; + interface AddressInfo { + address: string; + family: string; + port: number; + } + interface SocketConstructorOpts { + fd?: number | undefined; + allowHalfOpen?: boolean | undefined; + readable?: boolean | undefined; + writable?: boolean | undefined; + signal?: AbortSignal; + } + interface OnReadOpts { + buffer: Uint8Array | (() => Uint8Array); + /** + * This function is called for every chunk of incoming data. + * Two arguments are passed to it: the number of bytes written to buffer and a reference to buffer. + * Return false from this function to implicitly pause() the socket. + */ + callback(bytesWritten: number, buf: Uint8Array): boolean; + } + interface ConnectOpts { + /** + * If specified, incoming data is stored in a single buffer and passed to the supplied callback when data arrives on the socket. + * Note: this will cause the streaming functionality to not provide any data, however events like 'error', 'end', and 'close' will + * still be emitted as normal and methods like pause() and resume() will also behave as expected. + */ + onread?: OnReadOpts | undefined; + } + interface TcpSocketConnectOpts extends ConnectOpts { + port: number; + host?: string | undefined; + localAddress?: string | undefined; + localPort?: number | undefined; + hints?: number | undefined; + family?: number | undefined; + lookup?: LookupFunction | undefined; + noDelay?: boolean | undefined; + keepAlive?: boolean | undefined; + keepAliveInitialDelay?: number | undefined; + } + interface IpcSocketConnectOpts extends ConnectOpts { + path: string; + } + type SocketConnectOpts = TcpSocketConnectOpts | IpcSocketConnectOpts; + type SocketReadyState = 'opening' | 'open' | 'readOnly' | 'writeOnly' | 'closed'; + /** + * This class is an abstraction of a TCP socket or a streaming `IPC` endpoint + * (uses named pipes on Windows, and Unix domain sockets otherwise). It is also + * an `EventEmitter`. + * + * A `net.Socket` can be created by the user and used directly to interact with + * a server. For example, it is returned by {@link createConnection}, + * so the user can use it to talk to the server. + * + * It can also be created by Node.js and passed to the user when a connection + * is received. For example, it is passed to the listeners of a `'connection'` event emitted on a {@link Server}, so the user can use + * it to interact with the client. + * @since v0.3.4 + */ + class Socket extends stream.Duplex { + constructor(options?: SocketConstructorOpts); + /** + * Sends data on the socket. The second parameter specifies the encoding in the + * case of a string. It defaults to UTF8 encoding. + * + * Returns `true` if the entire data was flushed successfully to the kernel + * buffer. Returns `false` if all or part of the data was queued in user memory.`'drain'` will be emitted when the buffer is again free. + * + * The optional `callback` parameter will be executed when the data is finally + * written out, which may not be immediately. + * + * See `Writable` stream `write()` method for more + * information. + * @since v0.1.90 + * @param [encoding='utf8'] Only used when data is `string`. + */ + write(buffer: Uint8Array | string, cb?: (err?: Error) => void): boolean; + write(str: Uint8Array | string, encoding?: BufferEncoding, cb?: (err?: Error) => void): boolean; + /** + * Initiate a connection on a given socket. + * + * Possible signatures: + * + * * `socket.connect(options[, connectListener])` + * * `socket.connect(path[, connectListener])` for `IPC` connections. + * * `socket.connect(port[, host][, connectListener])` for TCP connections. + * * Returns: `net.Socket` The socket itself. + * + * This function is asynchronous. When the connection is established, the `'connect'` event will be emitted. If there is a problem connecting, + * instead of a `'connect'` event, an `'error'` event will be emitted with + * the error passed to the `'error'` listener. + * The last parameter `connectListener`, if supplied, will be added as a listener + * for the `'connect'` event **once**. + * + * This function should only be used for reconnecting a socket after`'close'` has been emitted or otherwise it may lead to undefined + * behavior. + */ + connect(options: SocketConnectOpts, connectionListener?: () => void): this; + connect(port: number, host: string, connectionListener?: () => void): this; + connect(port: number, connectionListener?: () => void): this; + connect(path: string, connectionListener?: () => void): this; + /** + * Set the encoding for the socket as a `Readable Stream`. See `readable.setEncoding()` for more information. + * @since v0.1.90 + * @return The socket itself. + */ + setEncoding(encoding?: BufferEncoding): this; + /** + * Pauses the reading of data. That is, `'data'` events will not be emitted. + * Useful to throttle back an upload. + * @return The socket itself. + */ + pause(): this; + /** + * Close the TCP connection by sending an RST packet and destroy the stream. + * If this TCP socket is in connecting status, it will send an RST packet + * and destroy this TCP socket once it is connected. Otherwise, it will call + * `socket.destroy` with an `ERR_SOCKET_CLOSED` Error. If this is not a TCP socket + * (for example, a pipe), calling this method will immediately throw + * an `ERR_INVALID_HANDLE_TYPE` Error. + * @since v18.3.0 + * @return The socket itself. + */ + resetAndDestroy(): this; + /** + * Resumes reading after a call to `socket.pause()`. + * @return The socket itself. + */ + resume(): this; + /** + * Sets the socket to timeout after `timeout` milliseconds of inactivity on + * the socket. By default `net.Socket` do not have a timeout. + * + * When an idle timeout is triggered the socket will receive a `'timeout'` event but the connection will not be severed. The user must manually call `socket.end()` or `socket.destroy()` to + * end the connection. + * + * ```js + * socket.setTimeout(3000); + * socket.on('timeout', () => { + * console.log('socket timeout'); + * socket.end(); + * }); + * ``` + * + * If `timeout` is 0, then the existing idle timeout is disabled. + * + * The optional `callback` parameter will be added as a one-time listener for the `'timeout'` event. + * @since v0.1.90 + * @return The socket itself. + */ + setTimeout(timeout: number, callback?: () => void): this; + /** + * Enable/disable the use of Nagle's algorithm. + * + * When a TCP connection is created, it will have Nagle's algorithm enabled. + * + * Nagle's algorithm delays data before it is sent via the network. It attempts + * to optimize throughput at the expense of latency. + * + * Passing `true` for `noDelay` or not passing an argument will disable Nagle's + * algorithm for the socket. Passing `false` for `noDelay` will enable Nagle's + * algorithm. + * @since v0.1.90 + * @param [noDelay=true] + * @return The socket itself. + */ + setNoDelay(noDelay?: boolean): this; + /** + * Enable/disable keep-alive functionality, and optionally set the initial + * delay before the first keepalive probe is sent on an idle socket. + * + * Set `initialDelay` (in milliseconds) to set the delay between the last + * data packet received and the first keepalive probe. Setting `0` for`initialDelay` will leave the value unchanged from the default + * (or previous) setting. + * + * Enabling the keep-alive functionality will set the following socket options: + * + * * `SO_KEEPALIVE=1` + * * `TCP_KEEPIDLE=initialDelay` + * * `TCP_KEEPCNT=10` + * * `TCP_KEEPINTVL=1` + * @since v0.1.92 + * @param [enable=false] + * @param [initialDelay=0] + * @return The socket itself. + */ + setKeepAlive(enable?: boolean, initialDelay?: number): this; + /** + * Returns the bound `address`, the address `family` name and `port` of the + * socket as reported by the operating system:`{ port: 12346, family: 'IPv4', address: '127.0.0.1' }` + * @since v0.1.90 + */ + address(): AddressInfo | {}; + /** + * Calling `unref()` on a socket will allow the program to exit if this is the only + * active socket in the event system. If the socket is already `unref`ed calling`unref()` again will have no effect. + * @since v0.9.1 + * @return The socket itself. + */ + unref(): this; + /** + * Opposite of `unref()`, calling `ref()` on a previously `unref`ed socket will _not_ let the program exit if it's the only socket left (the default behavior). + * If the socket is `ref`ed calling `ref` again will have no effect. + * @since v0.9.1 + * @return The socket itself. + */ + ref(): this; + /** + * This property shows the number of characters buffered for writing. The buffer + * may contain strings whose length after encoding is not yet known. So this number + * is only an approximation of the number of bytes in the buffer. + * + * `net.Socket` has the property that `socket.write()` always works. This is to + * help users get up and running quickly. The computer cannot always keep up + * with the amount of data that is written to a socket. The network connection + * simply might be too slow. Node.js will internally queue up the data written to a + * socket and send it out over the wire when it is possible. + * + * The consequence of this internal buffering is that memory may grow. + * Users who experience large or growing `bufferSize` should attempt to + * "throttle" the data flows in their program with `socket.pause()` and `socket.resume()`. + * @since v0.3.8 + * @deprecated Since v14.6.0 - Use `writableLength` instead. + */ + readonly bufferSize: number; + /** + * The amount of received bytes. + * @since v0.5.3 + */ + readonly bytesRead: number; + /** + * The amount of bytes sent. + * @since v0.5.3 + */ + readonly bytesWritten: number; + /** + * If `true`,`socket.connect(options[, connectListener])` was + * called and has not yet finished. It will stay `true` until the socket becomes + * connected, then it is set to `false` and the `'connect'` event is emitted. Note + * that the `socket.connect(options[, connectListener])` callback is a listener for the `'connect'` event. + * @since v6.1.0 + */ + readonly connecting: boolean; + /** + * See `writable.destroyed` for further details. + */ + readonly destroyed: boolean; + /** + * The string representation of the local IP address the remote client is + * connecting on. For example, in a server listening on `'0.0.0.0'`, if a client + * connects on `'192.168.1.1'`, the value of `socket.localAddress` would be`'192.168.1.1'`. + * @since v0.9.6 + */ + readonly localAddress?: string; + /** + * The numeric representation of the local port. For example, `80` or `21`. + * @since v0.9.6 + */ + readonly localPort?: number; + /** + * The string representation of the local IP family. `'IPv4'` or `'IPv6'`. + * @since v18.8.0 + */ + readonly localFamily?: string; + /** + * This property represents the state of the connection as a string. + * @see {https://nodejs.org/api/net.html#socketreadystate} + * @since v0.5.0 + */ + readonly readyState: SocketReadyState; + /** + * The string representation of the remote IP address. For example,`'74.125.127.100'` or `'2001:4860:a005::68'`. Value may be `undefined` if + * the socket is destroyed (for example, if the client disconnected). + * @since v0.5.10 + */ + readonly remoteAddress?: string | undefined; + /** + * The string representation of the remote IP family. `'IPv4'` or `'IPv6'`. + * @since v0.11.14 + */ + readonly remoteFamily?: string | undefined; + /** + * The numeric representation of the remote port. For example, `80` or `21`. + * @since v0.5.10 + */ + readonly remotePort?: number | undefined; + /** + * The socket timeout in milliseconds as set by socket.setTimeout(). It is undefined if a timeout has not been set. + * @since v10.7.0 + */ + readonly timeout?: number | undefined; + /** + * Half-closes the socket. i.e., it sends a FIN packet. It is possible the + * server will still send some data. + * + * See `writable.end()` for further details. + * @since v0.1.90 + * @param [encoding='utf8'] Only used when data is `string`. + * @param callback Optional callback for when the socket is finished. + * @return The socket itself. + */ + end(callback?: () => void): this; + end(buffer: Uint8Array | string, callback?: () => void): this; + end(str: Uint8Array | string, encoding?: BufferEncoding, callback?: () => void): this; + /** + * events.EventEmitter + * 1. close + * 2. connect + * 3. data + * 4. drain + * 5. end + * 6. error + * 7. lookup + * 8. ready + * 9. timeout + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'close', listener: (hadError: boolean) => void): this; + addListener(event: 'connect', listener: () => void): this; + addListener(event: 'data', listener: (data: Buffer) => void): this; + addListener(event: 'drain', listener: () => void): this; + addListener(event: 'end', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'lookup', listener: (err: Error, address: string, family: string | number, host: string) => void): this; + addListener(event: 'ready', listener: () => void): this; + addListener(event: 'timeout', listener: () => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'close', hadError: boolean): boolean; + emit(event: 'connect'): boolean; + emit(event: 'data', data: Buffer): boolean; + emit(event: 'drain'): boolean; + emit(event: 'end'): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'lookup', err: Error, address: string, family: string | number, host: string): boolean; + emit(event: 'ready'): boolean; + emit(event: 'timeout'): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'close', listener: (hadError: boolean) => void): this; + on(event: 'connect', listener: () => void): this; + on(event: 'data', listener: (data: Buffer) => void): this; + on(event: 'drain', listener: () => void): this; + on(event: 'end', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'lookup', listener: (err: Error, address: string, family: string | number, host: string) => void): this; + on(event: 'ready', listener: () => void): this; + on(event: 'timeout', listener: () => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'close', listener: (hadError: boolean) => void): this; + once(event: 'connect', listener: () => void): this; + once(event: 'data', listener: (data: Buffer) => void): this; + once(event: 'drain', listener: () => void): this; + once(event: 'end', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'lookup', listener: (err: Error, address: string, family: string | number, host: string) => void): this; + once(event: 'ready', listener: () => void): this; + once(event: 'timeout', listener: () => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: (hadError: boolean) => void): this; + prependListener(event: 'connect', listener: () => void): this; + prependListener(event: 'data', listener: (data: Buffer) => void): this; + prependListener(event: 'drain', listener: () => void): this; + prependListener(event: 'end', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'lookup', listener: (err: Error, address: string, family: string | number, host: string) => void): this; + prependListener(event: 'ready', listener: () => void): this; + prependListener(event: 'timeout', listener: () => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: (hadError: boolean) => void): this; + prependOnceListener(event: 'connect', listener: () => void): this; + prependOnceListener(event: 'data', listener: (data: Buffer) => void): this; + prependOnceListener(event: 'drain', listener: () => void): this; + prependOnceListener(event: 'end', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'lookup', listener: (err: Error, address: string, family: string | number, host: string) => void): this; + prependOnceListener(event: 'ready', listener: () => void): this; + prependOnceListener(event: 'timeout', listener: () => void): this; + } + interface ListenOptions extends Abortable { + port?: number | undefined; + host?: string | undefined; + backlog?: number | undefined; + path?: string | undefined; + exclusive?: boolean | undefined; + readableAll?: boolean | undefined; + writableAll?: boolean | undefined; + /** + * @default false + */ + ipv6Only?: boolean | undefined; + } + interface ServerOpts { + /** + * Indicates whether half-opened TCP connections are allowed. + * @default false + */ + allowHalfOpen?: boolean | undefined; + /** + * Indicates whether the socket should be paused on incoming connections. + * @default false + */ + pauseOnConnect?: boolean | undefined; + /** + * If set to `true`, it disables the use of Nagle's algorithm immediately after a new incoming connection is received. + * @default false + * @since v16.5.0 + */ + noDelay?: boolean | undefined; + /** + * If set to `true`, it enables keep-alive functionality on the socket immediately after a new incoming connection is received, + * similarly on what is done in `socket.setKeepAlive([enable][, initialDelay])`. + * @default false + * @since v16.5.0 + */ + keepAlive?: boolean | undefined; + /** + * If set to a positive number, it sets the initial delay before the first keepalive probe is sent on an idle socket. + * @default 0 + * @since v16.5.0 + */ + keepAliveInitialDelay?: number | undefined; + } + interface DropArgument { + localAddress?: string; + localPort?: number; + localFamily?: string; + remoteAddress?: string; + remotePort?: number; + remoteFamily?: string; + } + /** + * This class is used to create a TCP or `IPC` server. + * @since v0.1.90 + */ + class Server extends EventEmitter { + constructor(connectionListener?: (socket: Socket) => void); + constructor(options?: ServerOpts, connectionListener?: (socket: Socket) => void); + /** + * Start a server listening for connections. A `net.Server` can be a TCP or + * an `IPC` server depending on what it listens to. + * + * Possible signatures: + * + * * `server.listen(handle[, backlog][, callback])` + * * `server.listen(options[, callback])` + * * `server.listen(path[, backlog][, callback])` for `IPC` servers + * * `server.listen([port[, host[, backlog]]][, callback])` for TCP servers + * + * This function is asynchronous. When the server starts listening, the `'listening'` event will be emitted. The last parameter `callback`will be added as a listener for the `'listening'` + * event. + * + * All `listen()` methods can take a `backlog` parameter to specify the maximum + * length of the queue of pending connections. The actual length will be determined + * by the OS through sysctl settings such as `tcp_max_syn_backlog` and `somaxconn`on Linux. The default value of this parameter is 511 (not 512). + * + * All {@link Socket} are set to `SO_REUSEADDR` (see [`socket(7)`](https://man7.org/linux/man-pages/man7/socket.7.html) for + * details). + * + * The `server.listen()` method can be called again if and only if there was an + * error during the first `server.listen()` call or `server.close()` has been + * called. Otherwise, an `ERR_SERVER_ALREADY_LISTEN` error will be thrown. + * + * One of the most common errors raised when listening is `EADDRINUSE`. + * This happens when another server is already listening on the requested`port`/`path`/`handle`. One way to handle this would be to retry + * after a certain amount of time: + * + * ```js + * server.on('error', (e) => { + * if (e.code === 'EADDRINUSE') { + * console.log('Address in use, retrying...'); + * setTimeout(() => { + * server.close(); + * server.listen(PORT, HOST); + * }, 1000); + * } + * }); + * ``` + */ + listen(port?: number, hostname?: string, backlog?: number, listeningListener?: () => void): this; + listen(port?: number, hostname?: string, listeningListener?: () => void): this; + listen(port?: number, backlog?: number, listeningListener?: () => void): this; + listen(port?: number, listeningListener?: () => void): this; + listen(path: string, backlog?: number, listeningListener?: () => void): this; + listen(path: string, listeningListener?: () => void): this; + listen(options: ListenOptions, listeningListener?: () => void): this; + listen(handle: any, backlog?: number, listeningListener?: () => void): this; + listen(handle: any, listeningListener?: () => void): this; + /** + * Stops the server from accepting new connections and keeps existing + * connections. This function is asynchronous, the server is finally closed + * when all connections are ended and the server emits a `'close'` event. + * The optional `callback` will be called once the `'close'` event occurs. Unlike + * that event, it will be called with an `Error` as its only argument if the server + * was not open when it was closed. + * @since v0.1.90 + * @param callback Called when the server is closed. + */ + close(callback?: (err?: Error) => void): this; + /** + * Returns the bound `address`, the address `family` name, and `port` of the server + * as reported by the operating system if listening on an IP socket + * (useful to find which port was assigned when getting an OS-assigned address):`{ port: 12346, family: 'IPv4', address: '127.0.0.1' }`. + * + * For a server listening on a pipe or Unix domain socket, the name is returned + * as a string. + * + * ```js + * const server = net.createServer((socket) => { + * socket.end('goodbye\n'); + * }).on('error', (err) => { + * // Handle errors here. + * throw err; + * }); + * + * // Grab an arbitrary unused port. + * server.listen(() => { + * console.log('opened server on', server.address()); + * }); + * ``` + * + * `server.address()` returns `null` before the `'listening'` event has been + * emitted or after calling `server.close()`. + * @since v0.1.90 + */ + address(): AddressInfo | string | null; + /** + * Asynchronously get the number of concurrent connections on the server. Works + * when sockets were sent to forks. + * + * Callback should take two arguments `err` and `count`. + * @since v0.9.7 + */ + getConnections(cb: (error: Error | null, count: number) => void): void; + /** + * Opposite of `unref()`, calling `ref()` on a previously `unref`ed server will _not_ let the program exit if it's the only server left (the default behavior). + * If the server is `ref`ed calling `ref()` again will have no effect. + * @since v0.9.1 + */ + ref(): this; + /** + * Calling `unref()` on a server will allow the program to exit if this is the only + * active server in the event system. If the server is already `unref`ed calling`unref()` again will have no effect. + * @since v0.9.1 + */ + unref(): this; + /** + * Set this property to reject connections when the server's connection count gets + * high. + * + * It is not recommended to use this option once a socket has been sent to a child + * with `child_process.fork()`. + * @since v0.2.0 + */ + maxConnections: number; + connections: number; + /** + * Indicates whether or not the server is listening for connections. + * @since v5.7.0 + */ + listening: boolean; + /** + * events.EventEmitter + * 1. close + * 2. connection + * 3. error + * 4. listening + * 5. drop + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'connection', listener: (socket: Socket) => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'listening', listener: () => void): this; + addListener(event: 'drop', listener: (data?: DropArgument) => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'close'): boolean; + emit(event: 'connection', socket: Socket): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'listening'): boolean; + emit(event: 'drop', data?: DropArgument): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'connection', listener: (socket: Socket) => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'listening', listener: () => void): this; + on(event: 'drop', listener: (data?: DropArgument) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'connection', listener: (socket: Socket) => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'listening', listener: () => void): this; + once(event: 'drop', listener: (data?: DropArgument) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'connection', listener: (socket: Socket) => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'listening', listener: () => void): this; + prependListener(event: 'drop', listener: (data?: DropArgument) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'connection', listener: (socket: Socket) => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'listening', listener: () => void): this; + prependOnceListener(event: 'drop', listener: (data?: DropArgument) => void): this; + } + type IPVersion = 'ipv4' | 'ipv6'; + /** + * The `BlockList` object can be used with some network APIs to specify rules for + * disabling inbound or outbound access to specific IP addresses, IP ranges, or + * IP subnets. + * @since v15.0.0, v14.18.0 + */ + class BlockList { + /** + * Adds a rule to block the given IP address. + * @since v15.0.0, v14.18.0 + * @param address An IPv4 or IPv6 address. + * @param [type='ipv4'] Either `'ipv4'` or `'ipv6'`. + */ + addAddress(address: string, type?: IPVersion): void; + addAddress(address: SocketAddress): void; + /** + * Adds a rule to block a range of IP addresses from `start` (inclusive) to`end` (inclusive). + * @since v15.0.0, v14.18.0 + * @param start The starting IPv4 or IPv6 address in the range. + * @param end The ending IPv4 or IPv6 address in the range. + * @param [type='ipv4'] Either `'ipv4'` or `'ipv6'`. + */ + addRange(start: string, end: string, type?: IPVersion): void; + addRange(start: SocketAddress, end: SocketAddress): void; + /** + * Adds a rule to block a range of IP addresses specified as a subnet mask. + * @since v15.0.0, v14.18.0 + * @param net The network IPv4 or IPv6 address. + * @param prefix The number of CIDR prefix bits. For IPv4, this must be a value between `0` and `32`. For IPv6, this must be between `0` and `128`. + * @param [type='ipv4'] Either `'ipv4'` or `'ipv6'`. + */ + addSubnet(net: SocketAddress, prefix: number): void; + addSubnet(net: string, prefix: number, type?: IPVersion): void; + /** + * Returns `true` if the given IP address matches any of the rules added to the`BlockList`. + * + * ```js + * const blockList = new net.BlockList(); + * blockList.addAddress('123.123.123.123'); + * blockList.addRange('10.0.0.1', '10.0.0.10'); + * blockList.addSubnet('8592:757c:efae:4e45::', 64, 'ipv6'); + * + * console.log(blockList.check('123.123.123.123')); // Prints: true + * console.log(blockList.check('10.0.0.3')); // Prints: true + * console.log(blockList.check('222.111.111.222')); // Prints: false + * + * // IPv6 notation for IPv4 addresses works: + * console.log(blockList.check('::ffff:7b7b:7b7b', 'ipv6')); // Prints: true + * console.log(blockList.check('::ffff:123.123.123.123', 'ipv6')); // Prints: true + * ``` + * @since v15.0.0, v14.18.0 + * @param address The IP address to check + * @param [type='ipv4'] Either `'ipv4'` or `'ipv6'`. + */ + check(address: SocketAddress): boolean; + check(address: string, type?: IPVersion): boolean; + } + interface TcpNetConnectOpts extends TcpSocketConnectOpts, SocketConstructorOpts { + timeout?: number | undefined; + } + interface IpcNetConnectOpts extends IpcSocketConnectOpts, SocketConstructorOpts { + timeout?: number | undefined; + } + type NetConnectOpts = TcpNetConnectOpts | IpcNetConnectOpts; + /** + * Creates a new TCP or `IPC` server. + * + * If `allowHalfOpen` is set to `true`, when the other end of the socket + * signals the end of transmission, the server will only send back the end of + * transmission when `socket.end()` is explicitly called. For example, in the + * context of TCP, when a FIN packed is received, a FIN packed is sent + * back only when `socket.end()` is explicitly called. Until then the + * connection is half-closed (non-readable but still writable). See `'end'` event and [RFC 1122](https://tools.ietf.org/html/rfc1122) (section 4.2.2.13) for more information. + * + * If `pauseOnConnect` is set to `true`, then the socket associated with each + * incoming connection will be paused, and no data will be read from its handle. + * This allows connections to be passed between processes without any data being + * read by the original process. To begin reading data from a paused socket, call `socket.resume()`. + * + * The server can be a TCP server or an `IPC` server, depending on what it `listen()` to. + * + * Here is an example of a TCP echo server which listens for connections + * on port 8124: + * + * ```js + * const net = require('net'); + * const server = net.createServer((c) => { + * // 'connection' listener. + * console.log('client connected'); + * c.on('end', () => { + * console.log('client disconnected'); + * }); + * c.write('hello\r\n'); + * c.pipe(c); + * }); + * server.on('error', (err) => { + * throw err; + * }); + * server.listen(8124, () => { + * console.log('server bound'); + * }); + * ``` + * + * Test this by using `telnet`: + * + * ```console + * $ telnet localhost 8124 + * ``` + * + * To listen on the socket `/tmp/echo.sock`: + * + * ```js + * server.listen('/tmp/echo.sock', () => { + * console.log('server bound'); + * }); + * ``` + * + * Use `nc` to connect to a Unix domain socket server: + * + * ```console + * $ nc -U /tmp/echo.sock + * ``` + * @since v0.5.0 + * @param connectionListener Automatically set as a listener for the {@link 'connection'} event. + */ + function createServer(connectionListener?: (socket: Socket) => void): Server; + function createServer(options?: ServerOpts, connectionListener?: (socket: Socket) => void): Server; + /** + * Aliases to {@link createConnection}. + * + * Possible signatures: + * + * * {@link connect} + * * {@link connect} for `IPC` connections. + * * {@link connect} for TCP connections. + */ + function connect(options: NetConnectOpts, connectionListener?: () => void): Socket; + function connect(port: number, host?: string, connectionListener?: () => void): Socket; + function connect(path: string, connectionListener?: () => void): Socket; + /** + * A factory function, which creates a new {@link Socket}, + * immediately initiates connection with `socket.connect()`, + * then returns the `net.Socket` that starts the connection. + * + * When the connection is established, a `'connect'` event will be emitted + * on the returned socket. The last parameter `connectListener`, if supplied, + * will be added as a listener for the `'connect'` event **once**. + * + * Possible signatures: + * + * * {@link createConnection} + * * {@link createConnection} for `IPC` connections. + * * {@link createConnection} for TCP connections. + * + * The {@link connect} function is an alias to this function. + */ + function createConnection(options: NetConnectOpts, connectionListener?: () => void): Socket; + function createConnection(port: number, host?: string, connectionListener?: () => void): Socket; + function createConnection(path: string, connectionListener?: () => void): Socket; + /** + * Returns `6` if `input` is an IPv6 address. Returns `4` if `input` is an IPv4 + * address in [dot-decimal notation](https://en.wikipedia.org/wiki/Dot-decimal_notation) with no leading zeroes. Otherwise, returns`0`. + * + * ```js + * net.isIP('::1'); // returns 6 + * net.isIP('127.0.0.1'); // returns 4 + * net.isIP('127.000.000.001'); // returns 0 + * net.isIP('127.0.0.1/24'); // returns 0 + * net.isIP('fhqwhgads'); // returns 0 + * ``` + * @since v0.3.0 + */ + function isIP(input: string): number; + /** + * Returns `true` if `input` is an IPv4 address in [dot-decimal notation](https://en.wikipedia.org/wiki/Dot-decimal_notation) with no + * leading zeroes. Otherwise, returns `false`. + * + * ```js + * net.isIPv4('127.0.0.1'); // returns true + * net.isIPv4('127.000.000.001'); // returns false + * net.isIPv4('127.0.0.1/24'); // returns false + * net.isIPv4('fhqwhgads'); // returns false + * ``` + * @since v0.3.0 + */ + function isIPv4(input: string): boolean; + /** + * Returns `true` if `input` is an IPv6 address. Otherwise, returns `false`. + * + * ```js + * net.isIPv6('::1'); // returns true + * net.isIPv6('fhqwhgads'); // returns false + * ``` + * @since v0.3.0 + */ + function isIPv6(input: string): boolean; + interface SocketAddressInitOptions { + /** + * The network address as either an IPv4 or IPv6 string. + * @default 127.0.0.1 + */ + address?: string | undefined; + /** + * @default `'ipv4'` + */ + family?: IPVersion | undefined; + /** + * An IPv6 flow-label used only if `family` is `'ipv6'`. + * @default 0 + */ + flowlabel?: number | undefined; + /** + * An IP port. + * @default 0 + */ + port?: number | undefined; + } + /** + * @since v15.14.0, v14.18.0 + */ + class SocketAddress { + constructor(options: SocketAddressInitOptions); + /** + * @since v15.14.0, v14.18.0 + */ + readonly address: string; + /** + * Either \`'ipv4'\` or \`'ipv6'\`. + * @since v15.14.0, v14.18.0 + */ + readonly family: IPVersion; + /** + * @since v15.14.0, v14.18.0 + */ + readonly port: number; + /** + * @since v15.14.0, v14.18.0 + */ + readonly flowlabel: number; + } +} +declare module 'node:net' { + export * from 'net'; +} diff --git a/node_modules/@types/node/ts4.8/os.d.ts b/node_modules/@types/node/ts4.8/os.d.ts new file mode 100644 index 0000000..3c55599 --- /dev/null +++ b/node_modules/@types/node/ts4.8/os.d.ts @@ -0,0 +1,466 @@ +/** + * The `os` module provides operating system-related utility methods and + * properties. It can be accessed using: + * + * ```js + * const os = require('os'); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/os.js) + */ +declare module 'os' { + interface CpuInfo { + model: string; + speed: number; + times: { + user: number; + nice: number; + sys: number; + idle: number; + irq: number; + }; + } + interface NetworkInterfaceBase { + address: string; + netmask: string; + mac: string; + internal: boolean; + cidr: string | null; + } + interface NetworkInterfaceInfoIPv4 extends NetworkInterfaceBase { + family: 'IPv4'; + scopeid?: undefined; + } + interface NetworkInterfaceInfoIPv6 extends NetworkInterfaceBase { + family: 'IPv6'; + scopeid: number; + } + interface UserInfo { + username: T; + uid: number; + gid: number; + shell: T; + homedir: T; + } + type NetworkInterfaceInfo = NetworkInterfaceInfoIPv4 | NetworkInterfaceInfoIPv6; + /** + * Returns the host name of the operating system as a string. + * @since v0.3.3 + */ + function hostname(): string; + /** + * Returns an array containing the 1, 5, and 15 minute load averages. + * + * The load average is a measure of system activity calculated by the operating + * system and expressed as a fractional number. + * + * The load average is a Unix-specific concept. On Windows, the return value is + * always `[0, 0, 0]`. + * @since v0.3.3 + */ + function loadavg(): number[]; + /** + * Returns the system uptime in number of seconds. + * @since v0.3.3 + */ + function uptime(): number; + /** + * Returns the amount of free system memory in bytes as an integer. + * @since v0.3.3 + */ + function freemem(): number; + /** + * Returns the total amount of system memory in bytes as an integer. + * @since v0.3.3 + */ + function totalmem(): number; + /** + * Returns an array of objects containing information about each logical CPU core. + * + * The properties included on each object include: + * + * ```js + * [ + * { + * model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', + * speed: 2926, + * times: { + * user: 252020, + * nice: 0, + * sys: 30340, + * idle: 1070356870, + * irq: 0 + * } + * }, + * { + * model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', + * speed: 2926, + * times: { + * user: 306960, + * nice: 0, + * sys: 26980, + * idle: 1071569080, + * irq: 0 + * } + * }, + * { + * model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', + * speed: 2926, + * times: { + * user: 248450, + * nice: 0, + * sys: 21750, + * idle: 1070919370, + * irq: 0 + * } + * }, + * { + * model: 'Intel(R) Core(TM) i7 CPU 860 @ 2.80GHz', + * speed: 2926, + * times: { + * user: 256880, + * nice: 0, + * sys: 19430, + * idle: 1070905480, + * irq: 20 + * } + * }, + * ] + * ``` + * + * `nice` values are POSIX-only. On Windows, the `nice` values of all processors + * are always 0. + * @since v0.3.3 + */ + function cpus(): CpuInfo[]; + /** + * Returns the operating system name as returned by [`uname(3)`](https://linux.die.net/man/3/uname). For example, it + * returns `'Linux'` on Linux, `'Darwin'` on macOS, and `'Windows_NT'` on Windows. + * + * See [https://en.wikipedia.org/wiki/Uname#Examples](https://en.wikipedia.org/wiki/Uname#Examples) for additional information + * about the output of running [`uname(3)`](https://linux.die.net/man/3/uname) on various operating systems. + * @since v0.3.3 + */ + function type(): string; + /** + * Returns the operating system as a string. + * + * On POSIX systems, the operating system release is determined by calling [`uname(3)`](https://linux.die.net/man/3/uname). On Windows, `GetVersionExW()` is used. See + * [https://en.wikipedia.org/wiki/Uname#Examples](https://en.wikipedia.org/wiki/Uname#Examples) for more information. + * @since v0.3.3 + */ + function release(): string; + /** + * 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 that each describe an assigned network address. + * + * The properties available on the assigned network address object include: + * + * ```js + * { + * lo: [ + * { + * address: '127.0.0.1', + * netmask: '255.0.0.0', + * family: 'IPv4', + * mac: '00:00:00:00:00:00', + * internal: true, + * cidr: '127.0.0.1/8' + * }, + * { + * address: '::1', + * netmask: 'ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', + * family: 'IPv6', + * mac: '00:00:00:00:00:00', + * scopeid: 0, + * internal: true, + * cidr: '::1/128' + * } + * ], + * eth0: [ + * { + * address: '192.168.1.108', + * netmask: '255.255.255.0', + * family: 'IPv4', + * mac: '01:02:03:0a:0b:0c', + * internal: false, + * cidr: '192.168.1.108/24' + * }, + * { + * address: 'fe80::a00:27ff:fe4e:66a1', + * netmask: 'ffff:ffff:ffff:ffff::', + * family: 'IPv6', + * mac: '01:02:03:0a:0b:0c', + * scopeid: 1, + * internal: false, + * cidr: 'fe80::a00:27ff:fe4e:66a1/64' + * } + * ] + * } + * ``` + * @since v0.6.0 + */ + function networkInterfaces(): NodeJS.Dict; + /** + * Returns the string path of the current user's home directory. + * + * On POSIX, it uses the `$HOME` environment variable if defined. Otherwise it + * uses the [effective UID](https://en.wikipedia.org/wiki/User_identifier#Effective_user_ID) to look up the user's home directory. + * + * On Windows, it uses the `USERPROFILE` environment variable if defined. + * Otherwise it uses the path to the profile directory of the current user. + * @since v2.3.0 + */ + function homedir(): string; + /** + * Returns information about the currently effective user. On POSIX platforms, + * this is typically a subset of the password file. The returned object includes + * the `username`, `uid`, `gid`, `shell`, and `homedir`. On Windows, the `uid` and`gid` fields are `-1`, and `shell` is `null`. + * + * The value of `homedir` returned by `os.userInfo()` is provided by the operating + * system. This differs from the result of `os.homedir()`, which queries + * environment variables for the home directory before falling back to the + * operating system response. + * + * Throws a `SystemError` if a user has no `username` or `homedir`. + * @since v6.0.0 + */ + function userInfo(options: { encoding: 'buffer' }): UserInfo; + function userInfo(options?: { encoding: BufferEncoding }): UserInfo; + type SignalConstants = { + [key in NodeJS.Signals]: number; + }; + namespace constants { + const UV_UDP_REUSEADDR: number; + namespace signals {} + const signals: SignalConstants; + namespace errno { + const E2BIG: number; + const EACCES: number; + const EADDRINUSE: number; + const EADDRNOTAVAIL: number; + const EAFNOSUPPORT: number; + const EAGAIN: number; + const EALREADY: number; + const EBADF: number; + const EBADMSG: number; + const EBUSY: number; + const ECANCELED: number; + const ECHILD: number; + const ECONNABORTED: number; + const ECONNREFUSED: number; + const ECONNRESET: number; + const EDEADLK: number; + const EDESTADDRREQ: number; + const EDOM: number; + const EDQUOT: number; + const EEXIST: number; + const EFAULT: number; + const EFBIG: number; + const EHOSTUNREACH: number; + const EIDRM: number; + const EILSEQ: number; + const EINPROGRESS: number; + const EINTR: number; + const EINVAL: number; + const EIO: number; + const EISCONN: number; + const EISDIR: number; + const ELOOP: number; + const EMFILE: number; + const EMLINK: number; + const EMSGSIZE: number; + const EMULTIHOP: number; + const ENAMETOOLONG: number; + const ENETDOWN: number; + const ENETRESET: number; + const ENETUNREACH: number; + const ENFILE: number; + const ENOBUFS: number; + const ENODATA: number; + const ENODEV: number; + const ENOENT: number; + const ENOEXEC: number; + const ENOLCK: number; + const ENOLINK: number; + const ENOMEM: number; + const ENOMSG: number; + const ENOPROTOOPT: number; + const ENOSPC: number; + const ENOSR: number; + const ENOSTR: number; + const ENOSYS: number; + const ENOTCONN: number; + const ENOTDIR: number; + const ENOTEMPTY: number; + const ENOTSOCK: number; + const ENOTSUP: number; + const ENOTTY: number; + const ENXIO: number; + const EOPNOTSUPP: number; + const EOVERFLOW: number; + const EPERM: number; + const EPIPE: number; + const EPROTO: number; + const EPROTONOSUPPORT: number; + const EPROTOTYPE: number; + const ERANGE: number; + const EROFS: number; + const ESPIPE: number; + const ESRCH: number; + const ESTALE: number; + const ETIME: number; + const ETIMEDOUT: number; + const ETXTBSY: number; + const EWOULDBLOCK: number; + const EXDEV: number; + const WSAEINTR: number; + const WSAEBADF: number; + const WSAEACCES: number; + const WSAEFAULT: number; + const WSAEINVAL: number; + const WSAEMFILE: number; + const WSAEWOULDBLOCK: number; + const WSAEINPROGRESS: number; + const WSAEALREADY: number; + const WSAENOTSOCK: number; + const WSAEDESTADDRREQ: number; + const WSAEMSGSIZE: number; + const WSAEPROTOTYPE: number; + const WSAENOPROTOOPT: number; + const WSAEPROTONOSUPPORT: number; + const WSAESOCKTNOSUPPORT: number; + const WSAEOPNOTSUPP: number; + const WSAEPFNOSUPPORT: number; + const WSAEAFNOSUPPORT: number; + const WSAEADDRINUSE: number; + const WSAEADDRNOTAVAIL: number; + const WSAENETDOWN: number; + const WSAENETUNREACH: number; + const WSAENETRESET: number; + const WSAECONNABORTED: number; + const WSAECONNRESET: number; + const WSAENOBUFS: number; + const WSAEISCONN: number; + const WSAENOTCONN: number; + const WSAESHUTDOWN: number; + const WSAETOOMANYREFS: number; + const WSAETIMEDOUT: number; + const WSAECONNREFUSED: number; + const WSAELOOP: number; + const WSAENAMETOOLONG: number; + const WSAEHOSTDOWN: number; + const WSAEHOSTUNREACH: number; + const WSAENOTEMPTY: number; + const WSAEPROCLIM: number; + const WSAEUSERS: number; + const WSAEDQUOT: number; + const WSAESTALE: number; + const WSAEREMOTE: number; + const WSASYSNOTREADY: number; + const WSAVERNOTSUPPORTED: number; + const WSANOTINITIALISED: number; + const WSAEDISCON: number; + const WSAENOMORE: number; + const WSAECANCELLED: number; + const WSAEINVALIDPROCTABLE: number; + const WSAEINVALIDPROVIDER: number; + const WSAEPROVIDERFAILEDINIT: number; + const WSASYSCALLFAILURE: number; + const WSASERVICE_NOT_FOUND: number; + const WSATYPE_NOT_FOUND: number; + const WSA_E_NO_MORE: number; + const WSA_E_CANCELLED: number; + const WSAEREFUSED: number; + } + namespace priority { + const PRIORITY_LOW: number; + const PRIORITY_BELOW_NORMAL: number; + const PRIORITY_NORMAL: number; + const PRIORITY_ABOVE_NORMAL: number; + const PRIORITY_HIGH: number; + const PRIORITY_HIGHEST: number; + } + } + const devNull: string; + const EOL: string; + /** + * Returns the operating system CPU architecture for which the Node.js binary was + * compiled. Possible values are `'arm'`, `'arm64'`, `'ia32'`, `'mips'`,`'mipsel'`, `'ppc'`, `'ppc64'`, `'s390'`, `'s390x'`, and `'x64'`. + * + * The return value is equivalent to `process.arch`. + * @since v0.5.0 + */ + function arch(): string; + /** + * Returns a string identifying the kernel version. + * + * On POSIX systems, the operating system release is determined by calling [`uname(3)`](https://linux.die.net/man/3/uname). On Windows, `RtlGetVersion()` is used, and if it is not + * available, `GetVersionExW()` will be used. See [https://en.wikipedia.org/wiki/Uname#Examples](https://en.wikipedia.org/wiki/Uname#Examples) for more information. + * @since v13.11.0, v12.17.0 + */ + function version(): string; + /** + * Returns a string identifying the operating system platform for which + * the Node.js binary was compiled. The value is set at compile time. + * Possible values are `'aix'`, `'darwin'`, `'freebsd'`,`'linux'`,`'openbsd'`, `'sunos'`, and `'win32'`. + * + * The return value is equivalent to `process.platform`. + * + * The value `'android'` may also be returned if Node.js is built on the Android + * operating system. [Android support is experimental](https://github.com/nodejs/node/blob/HEAD/BUILDING.md#androidandroid-based-devices-eg-firefox-os). + * @since v0.5.0 + */ + function platform(): NodeJS.Platform; + /** + * Returns the machine type as a string, such as arm, aarch64, mips, mips64, ppc64, ppc64le, s390, s390x, i386, i686, x86_64. + * + * On POSIX systems, the machine type is determined by calling [`uname(3)`](https://linux.die.net/man/3/uname). + * On Windows, `RtlGetVersion()` is used, and if it is not available, `GetVersionExW()` will be used. + * See [https://en.wikipedia.org/wiki/Uname#Examples](https://en.wikipedia.org/wiki/Uname#Examples) for more information. + * @since v18.9.0 + */ + function machine(): string; + /** + * Returns the operating system's default directory for temporary files as a + * string. + * @since v0.9.9 + */ + function tmpdir(): string; + /** + * Returns a string identifying the endianness of the CPU for which the Node.js + * binary was compiled. + * + * Possible values are `'BE'` for big endian and `'LE'` for little endian. + * @since v0.9.4 + */ + function endianness(): 'BE' | 'LE'; + /** + * Returns the scheduling priority for the process specified by `pid`. If `pid` is + * not provided or is `0`, the priority of the current process is returned. + * @since v10.10.0 + * @param [pid=0] The process ID to retrieve scheduling priority for. + */ + function getPriority(pid?: number): number; + /** + * Attempts to set the scheduling priority for the process specified by `pid`. If`pid` is not provided or is `0`, the process ID of the current process is used. + * + * The `priority` input must be an integer between `-20` (high priority) and `19`(low priority). Due to differences between Unix priority levels and Windows + * priority classes, `priority` is mapped to one of six priority constants in`os.constants.priority`. When retrieving a process priority level, this range + * mapping may cause the return value to be slightly different on Windows. To avoid + * confusion, set `priority` to one of the priority constants. + * + * On Windows, setting priority to `PRIORITY_HIGHEST` requires elevated user + * privileges. Otherwise the set priority will be silently reduced to`PRIORITY_HIGH`. + * @since v10.10.0 + * @param [pid=0] The process ID to set scheduling priority for. + * @param priority The scheduling priority to assign to the process. + */ + function setPriority(priority: number): void; + function setPriority(pid: number, priority: number): void; +} +declare module 'node:os' { + export * from 'os'; +} diff --git a/node_modules/@types/node/ts4.8/path.d.ts b/node_modules/@types/node/ts4.8/path.d.ts new file mode 100644 index 0000000..1d33f79 --- /dev/null +++ b/node_modules/@types/node/ts4.8/path.d.ts @@ -0,0 +1,191 @@ +declare module 'path/posix' { + import path = require('path'); + export = path; +} +declare module 'path/win32' { + import path = require('path'); + export = path; +} +/** + * The `path` module provides utilities for working with file and directory paths. + * It can be accessed using: + * + * ```js + * const path = require('path'); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/path.js) + */ +declare module 'path' { + namespace path { + /** + * A parsed path object generated by path.parse() or consumed by path.format(). + */ + interface ParsedPath { + /** + * The root of the path such as '/' or 'c:\' + */ + root: string; + /** + * The full directory path such as '/home/user/dir' or 'c:\path\dir' + */ + dir: string; + /** + * The file name including extension (if any) such as 'index.html' + */ + base: string; + /** + * The file extension (if any) such as '.html' + */ + ext: string; + /** + * The file name without extension (if any) such as 'index' + */ + name: string; + } + interface FormatInputPathObject { + /** + * The root of the path such as '/' or 'c:\' + */ + root?: string | undefined; + /** + * The full directory path such as '/home/user/dir' or 'c:\path\dir' + */ + dir?: string | undefined; + /** + * The file name including extension (if any) such as 'index.html' + */ + base?: string | undefined; + /** + * The file extension (if any) such as '.html' + */ + ext?: string | undefined; + /** + * The file name without extension (if any) such as 'index' + */ + name?: string | undefined; + } + interface PlatformPath { + /** + * Normalize a string path, reducing '..' and '.' parts. + * When multiple slashes are found, they're replaced by a single one; when the path contains a trailing slash, it is preserved. On Windows backslashes are used. + * + * @param path string path to normalize. + * @throws {TypeError} if `path` is not a string. + */ + normalize(path: string): string; + /** + * Join all arguments together and normalize the resulting path. + * + * @param paths paths to join. + * @throws {TypeError} if any of the path segments is not a string. + */ + join(...paths: string[]): string; + /** + * The right-most parameter is considered {to}. Other parameters are considered an array of {from}. + * + * Starting from leftmost {from} parameter, resolves {to} to an absolute path. + * + * If {to} isn't already absolute, {from} arguments are prepended in right to left order, + * until an absolute path is found. If after using all {from} paths still no absolute path is found, + * the current working directory is used as well. The resulting path is normalized, + * and trailing slashes are removed unless the path gets resolved to the root directory. + * + * @param paths A sequence of paths or path segments. + * @throws {TypeError} if any of the arguments is not a string. + */ + resolve(...paths: string[]): string; + /** + * Determines whether {path} is an absolute path. An absolute path will always resolve to the same location, regardless of the working directory. + * + * If the given {path} is a zero-length string, `false` will be returned. + * + * @param path path to test. + * @throws {TypeError} if `path` is not a string. + */ + isAbsolute(path: string): boolean; + /** + * Solve the relative path from {from} to {to} based on the current working directory. + * At times we have two absolute paths, and we need to derive the relative path from one to the other. This is actually the reverse transform of path.resolve. + * + * @throws {TypeError} if either `from` or `to` is not a string. + */ + relative(from: string, to: string): string; + /** + * Return the directory name of a path. Similar to the Unix dirname command. + * + * @param path the path to evaluate. + * @throws {TypeError} if `path` is not a string. + */ + dirname(path: string): string; + /** + * Return the last portion of a path. Similar to the Unix basename command. + * Often used to extract the file name from a fully qualified path. + * + * @param path the path to evaluate. + * @param suffix optionally, an extension to remove from the result. + * @throws {TypeError} if `path` is not a string or if `ext` is given and is not a string. + */ + basename(path: string, suffix?: string): string; + /** + * Return the extension of the path, from the last '.' to end of string in the last portion of the path. + * If there is no '.' in the last portion of the path or the first character of it is '.', then it returns an empty string. + * + * @param path the path to evaluate. + * @throws {TypeError} if `path` is not a string. + */ + extname(path: string): string; + /** + * The platform-specific file separator. '\\' or '/'. + */ + readonly sep: '\\' | '/'; + /** + * The platform-specific file delimiter. ';' or ':'. + */ + readonly delimiter: ';' | ':'; + /** + * Returns an object from a path string - the opposite of format(). + * + * @param path path to evaluate. + * @throws {TypeError} if `path` is not a string. + */ + parse(path: string): ParsedPath; + /** + * Returns a path string from an object - the opposite of parse(). + * + * @param pathObject path to evaluate. + */ + format(pathObject: FormatInputPathObject): string; + /** + * On Windows systems only, returns an equivalent namespace-prefixed path for the given path. + * If path is not a string, path will be returned without modifications. + * This method is meaningful only on Windows system. + * On POSIX systems, the method is non-operational and always returns path without modifications. + */ + toNamespacedPath(path: string): string; + /** + * Posix specific pathing. + * Same as parent object on posix. + */ + readonly posix: PlatformPath; + /** + * Windows specific pathing. + * Same as parent object on windows + */ + readonly win32: PlatformPath; + } + } + const path: path.PlatformPath; + export = path; +} +declare module 'node:path' { + import path = require('path'); + export = path; +} +declare module 'node:path/posix' { + import path = require('path/posix'); + export = path; +} +declare module 'node:path/win32' { + import path = require('path/win32'); + export = path; +} diff --git a/node_modules/@types/node/ts4.8/perf_hooks.d.ts b/node_modules/@types/node/ts4.8/perf_hooks.d.ts new file mode 100644 index 0000000..5c0b228 --- /dev/null +++ b/node_modules/@types/node/ts4.8/perf_hooks.d.ts @@ -0,0 +1,625 @@ +/** + * This module provides an implementation of a subset of the W3C [Web Performance APIs](https://w3c.github.io/perf-timing-primer/) as well as additional APIs for + * Node.js-specific performance measurements. + * + * Node.js supports the following [Web Performance APIs](https://w3c.github.io/perf-timing-primer/): + * + * * [High Resolution Time](https://www.w3.org/TR/hr-time-2) + * * [Performance Timeline](https://w3c.github.io/performance-timeline/) + * * [User Timing](https://www.w3.org/TR/user-timing/) + * + * ```js + * const { PerformanceObserver, performance } = require('perf_hooks'); + * + * const obs = new PerformanceObserver((items) => { + * console.log(items.getEntries()[0].duration); + * performance.clearMarks(); + * }); + * obs.observe({ type: 'measure' }); + * performance.measure('Start to Now'); + * + * performance.mark('A'); + * doSomeLongRunningProcess(() => { + * performance.measure('A to Now', 'A'); + * + * performance.mark('B'); + * performance.measure('A to B', 'A', 'B'); + * }); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/perf_hooks.js) + */ +declare module 'perf_hooks' { + import { AsyncResource } from 'node:async_hooks'; + type EntryType = 'node' | 'mark' | 'measure' | 'gc' | 'function' | 'http2' | 'http'; + interface NodeGCPerformanceDetail { + /** + * When `performanceEntry.entryType` is equal to 'gc', `the performance.kind` property identifies + * the type of garbage collection operation that occurred. + * See perf_hooks.constants for valid values. + */ + readonly kind?: number | undefined; + /** + * When `performanceEntry.entryType` is equal to 'gc', the `performance.flags` + * property contains additional information about garbage collection operation. + * See perf_hooks.constants for valid values. + */ + readonly flags?: number | undefined; + } + /** + * @since v8.5.0 + */ + class PerformanceEntry { + protected constructor(); + /** + * The total number of milliseconds elapsed for this entry. This value will not + * be meaningful for all Performance Entry types. + * @since v8.5.0 + */ + readonly duration: number; + /** + * The name of the performance entry. + * @since v8.5.0 + */ + readonly name: string; + /** + * The high resolution millisecond timestamp marking the starting time of the + * Performance Entry. + * @since v8.5.0 + */ + readonly startTime: number; + /** + * The type of the performance entry. It may be one of: + * + * * `'node'` (Node.js only) + * * `'mark'` (available on the Web) + * * `'measure'` (available on the Web) + * * `'gc'` (Node.js only) + * * `'function'` (Node.js only) + * * `'http2'` (Node.js only) + * * `'http'` (Node.js only) + * @since v8.5.0 + */ + readonly entryType: EntryType; + /** + * Additional detail specific to the `entryType`. + * @since v16.0.0 + */ + readonly detail?: NodeGCPerformanceDetail | unknown | undefined; // TODO: Narrow this based on entry type. + toJSON(): any; + } + class PerformanceMark extends PerformanceEntry { + readonly duration: 0; + readonly entryType: 'mark'; + } + class PerformanceMeasure extends PerformanceEntry { + readonly entryType: 'measure'; + } + /** + * _This property is an extension by Node.js. It is not available in Web browsers._ + * + * Provides timing details for Node.js itself. The constructor of this class + * is not exposed to users. + * @since v8.5.0 + */ + class PerformanceNodeTiming extends PerformanceEntry { + /** + * The high resolution millisecond timestamp at which the Node.js process + * completed bootstrapping. If bootstrapping has not yet finished, the property + * has the value of -1. + * @since v8.5.0 + */ + readonly bootstrapComplete: number; + /** + * The high resolution millisecond timestamp at which the Node.js environment was + * initialized. + * @since v8.5.0 + */ + readonly environment: number; + /** + * The high resolution millisecond timestamp of the amount of time the event loop + * has been idle within the event loop's event provider (e.g. `epoll_wait`). This + * does not take CPU usage into consideration. If the event loop has not yet + * started (e.g., in the first tick of the main script), the property has the + * value of 0. + * @since v14.10.0, v12.19.0 + */ + readonly idleTime: number; + /** + * The high resolution millisecond timestamp at which the Node.js event loop + * exited. If the event loop has not yet exited, the property has the value of -1\. + * It can only have a value of not -1 in a handler of the `'exit'` event. + * @since v8.5.0 + */ + readonly loopExit: number; + /** + * The high resolution millisecond timestamp at which the Node.js event loop + * started. If the event loop has not yet started (e.g., in the first tick of the + * main script), the property has the value of -1. + * @since v8.5.0 + */ + readonly loopStart: number; + /** + * The high resolution millisecond timestamp at which the V8 platform was + * initialized. + * @since v8.5.0 + */ + readonly v8Start: number; + } + interface EventLoopUtilization { + idle: number; + active: number; + utilization: number; + } + /** + * @param util1 The result of a previous call to eventLoopUtilization() + * @param util2 The result of a previous call to eventLoopUtilization() prior to util1 + */ + type EventLoopUtilityFunction = (util1?: EventLoopUtilization, util2?: EventLoopUtilization) => EventLoopUtilization; + interface MarkOptions { + /** + * Additional optional detail to include with the mark. + */ + detail?: unknown | undefined; + /** + * An optional timestamp to be used as the mark time. + * @default `performance.now()`. + */ + startTime?: number | undefined; + } + interface MeasureOptions { + /** + * Additional optional detail to include with the mark. + */ + detail?: unknown | undefined; + /** + * Duration between start and end times. + */ + duration?: number | undefined; + /** + * Timestamp to be used as the end time, or a string identifying a previously recorded mark. + */ + end?: number | string | undefined; + /** + * Timestamp to be used as the start time, or a string identifying a previously recorded mark. + */ + start?: number | string | undefined; + } + interface TimerifyOptions { + /** + * A histogram object created using + * `perf_hooks.createHistogram()` that will record runtime durations in + * nanoseconds. + */ + histogram?: RecordableHistogram | undefined; + } + interface Performance { + /** + * If name is not provided, removes all PerformanceMark objects from the Performance Timeline. + * If name is provided, removes only the named mark. + * @param name + */ + clearMarks(name?: string): void; + /** + * If name is not provided, removes all PerformanceMeasure objects from the Performance Timeline. + * If name is provided, removes only the named measure. + * @param name + * @since v16.7.0 + */ + clearMeasures(name?: string): void; + /** + * Returns a list of `PerformanceEntry` objects in chronological order with respect to `performanceEntry.startTime`. + * If you are only interested in performance entries of certain types or that have certain names, see + * `performance.getEntriesByType()` and `performance.getEntriesByName()`. + * @since v16.7.0 + */ + getEntries(): PerformanceEntry[]; + /** + * Returns a list of `PerformanceEntry` objects in chronological order with respect to `performanceEntry.startTime` + * whose `performanceEntry.name` is equal to `name`, and optionally, whose `performanceEntry.entryType` is equal to `type`. + * @param name + * @param type + * @since v16.7.0 + */ + getEntriesByName(name: string, type?: EntryType): PerformanceEntry[]; + /** + * Returns a list of `PerformanceEntry` objects in chronological order with respect to `performanceEntry.startTime` + * whose `performanceEntry.entryType` is equal to `type`. + * @param type + * @since v16.7.0 + */ + getEntriesByType(type: EntryType): PerformanceEntry[]; + /** + * Creates a new PerformanceMark entry in the Performance Timeline. + * A PerformanceMark is a subclass of PerformanceEntry whose performanceEntry.entryType is always 'mark', + * and whose performanceEntry.duration is always 0. + * Performance marks are used to mark specific significant moments in the Performance Timeline. + * @param name + * @return The PerformanceMark entry that was created + */ + mark(name?: string, options?: MarkOptions): PerformanceMark; + /** + * Creates a new PerformanceMeasure entry in the Performance Timeline. + * A PerformanceMeasure is a subclass of PerformanceEntry whose performanceEntry.entryType is always 'measure', + * and whose performanceEntry.duration measures the number of milliseconds elapsed since startMark and endMark. + * + * The startMark argument may identify any existing PerformanceMark in the the Performance Timeline, or may identify + * any of the timestamp properties provided by the PerformanceNodeTiming class. If the named startMark does not exist, + * then startMark is set to timeOrigin by default. + * + * The endMark argument must identify any existing PerformanceMark in the the Performance Timeline or any of the timestamp + * properties provided by the PerformanceNodeTiming class. If the named endMark does not exist, an error will be thrown. + * @param name + * @param startMark + * @param endMark + * @return The PerformanceMeasure entry that was created + */ + measure(name: string, startMark?: string, endMark?: string): PerformanceMeasure; + measure(name: string, options: MeasureOptions): PerformanceMeasure; + /** + * An instance of the PerformanceNodeTiming class that provides performance metrics for specific Node.js operational milestones. + */ + readonly nodeTiming: PerformanceNodeTiming; + /** + * @return the current high resolution millisecond timestamp + */ + now(): number; + /** + * The timeOrigin specifies the high resolution millisecond timestamp from which all performance metric durations are measured. + */ + readonly timeOrigin: number; + /** + * Wraps a function within a new function that measures the running time of the wrapped function. + * A PerformanceObserver must be subscribed to the 'function' event type in order for the timing details to be accessed. + * @param fn + */ + timerify any>(fn: T, options?: TimerifyOptions): T; + /** + * eventLoopUtilization is similar to CPU utilization except that it is calculated using high precision wall-clock time. + * It represents the percentage of time the event loop has spent outside the event loop's event provider (e.g. epoll_wait). + * No other CPU idle time is taken into consideration. + */ + eventLoopUtilization: EventLoopUtilityFunction; + } + interface PerformanceObserverEntryList { + /** + * Returns a list of `PerformanceEntry` objects in chronological order + * with respect to `performanceEntry.startTime`. + * + * ```js + * const { + * performance, + * PerformanceObserver + * } = require('perf_hooks'); + * + * const obs = new PerformanceObserver((perfObserverList, observer) => { + * console.log(perfObserverList.getEntries()); + * + * * [ + * * PerformanceEntry { + * * name: 'test', + * * entryType: 'mark', + * * startTime: 81.465639, + * * duration: 0 + * * }, + * * PerformanceEntry { + * * name: 'meow', + * * entryType: 'mark', + * * startTime: 81.860064, + * * duration: 0 + * * } + * * ] + * + * + * performance.clearMarks(); + * performance.clearMeasures(); + * observer.disconnect(); + * }); + * obs.observe({ type: 'mark' }); + * + * performance.mark('test'); + * performance.mark('meow'); + * ``` + * @since v8.5.0 + */ + getEntries(): PerformanceEntry[]; + /** + * Returns a list of `PerformanceEntry` objects in chronological order + * with respect to `performanceEntry.startTime` whose `performanceEntry.name` is + * equal to `name`, and optionally, whose `performanceEntry.entryType` is equal to`type`. + * + * ```js + * const { + * performance, + * PerformanceObserver + * } = require('perf_hooks'); + * + * const obs = new PerformanceObserver((perfObserverList, observer) => { + * console.log(perfObserverList.getEntriesByName('meow')); + * + * * [ + * * PerformanceEntry { + * * name: 'meow', + * * entryType: 'mark', + * * startTime: 98.545991, + * * duration: 0 + * * } + * * ] + * + * console.log(perfObserverList.getEntriesByName('nope')); // [] + * + * console.log(perfObserverList.getEntriesByName('test', 'mark')); + * + * * [ + * * PerformanceEntry { + * * name: 'test', + * * entryType: 'mark', + * * startTime: 63.518931, + * * duration: 0 + * * } + * * ] + * + * console.log(perfObserverList.getEntriesByName('test', 'measure')); // [] + * + * performance.clearMarks(); + * performance.clearMeasures(); + * observer.disconnect(); + * }); + * obs.observe({ entryTypes: ['mark', 'measure'] }); + * + * performance.mark('test'); + * performance.mark('meow'); + * ``` + * @since v8.5.0 + */ + getEntriesByName(name: string, type?: EntryType): PerformanceEntry[]; + /** + * Returns a list of `PerformanceEntry` objects in chronological order + * with respect to `performanceEntry.startTime` whose `performanceEntry.entryType`is equal to `type`. + * + * ```js + * const { + * performance, + * PerformanceObserver + * } = require('perf_hooks'); + * + * const obs = new PerformanceObserver((perfObserverList, observer) => { + * console.log(perfObserverList.getEntriesByType('mark')); + * + * * [ + * * PerformanceEntry { + * * name: 'test', + * * entryType: 'mark', + * * startTime: 55.897834, + * * duration: 0 + * * }, + * * PerformanceEntry { + * * name: 'meow', + * * entryType: 'mark', + * * startTime: 56.350146, + * * duration: 0 + * * } + * * ] + * + * performance.clearMarks(); + * performance.clearMeasures(); + * observer.disconnect(); + * }); + * obs.observe({ type: 'mark' }); + * + * performance.mark('test'); + * performance.mark('meow'); + * ``` + * @since v8.5.0 + */ + getEntriesByType(type: EntryType): PerformanceEntry[]; + } + type PerformanceObserverCallback = (list: PerformanceObserverEntryList, observer: PerformanceObserver) => void; + class PerformanceObserver extends AsyncResource { + constructor(callback: PerformanceObserverCallback); + /** + * Disconnects the `PerformanceObserver` instance from all notifications. + * @since v8.5.0 + */ + disconnect(): void; + /** + * Subscribes the `PerformanceObserver` instance to notifications of new `PerformanceEntry` instances identified either by `options.entryTypes`or `options.type`: + * + * ```js + * const { + * performance, + * PerformanceObserver + * } = require('perf_hooks'); + * + * const obs = new PerformanceObserver((list, observer) => { + * // Called once asynchronously. `list` contains three items. + * }); + * obs.observe({ type: 'mark' }); + * + * for (let n = 0; n < 3; n++) + * performance.mark(`test${n}`); + * ``` + * @since v8.5.0 + */ + observe( + options: + | { + entryTypes: ReadonlyArray; + buffered?: boolean | undefined; + } + | { + type: EntryType; + buffered?: boolean | undefined; + } + ): void; + } + namespace constants { + const NODE_PERFORMANCE_GC_MAJOR: number; + const NODE_PERFORMANCE_GC_MINOR: number; + const NODE_PERFORMANCE_GC_INCREMENTAL: number; + const NODE_PERFORMANCE_GC_WEAKCB: number; + const NODE_PERFORMANCE_GC_FLAGS_NO: number; + const NODE_PERFORMANCE_GC_FLAGS_CONSTRUCT_RETAINED: number; + const NODE_PERFORMANCE_GC_FLAGS_FORCED: number; + const NODE_PERFORMANCE_GC_FLAGS_SYNCHRONOUS_PHANTOM_PROCESSING: number; + const NODE_PERFORMANCE_GC_FLAGS_ALL_AVAILABLE_GARBAGE: number; + const NODE_PERFORMANCE_GC_FLAGS_ALL_EXTERNAL_MEMORY: number; + const NODE_PERFORMANCE_GC_FLAGS_SCHEDULE_IDLE: number; + } + const performance: Performance; + interface EventLoopMonitorOptions { + /** + * The sampling rate in milliseconds. + * Must be greater than zero. + * @default 10 + */ + resolution?: number | undefined; + } + interface Histogram { + /** + * Returns a `Map` object detailing the accumulated percentile distribution. + * @since v11.10.0 + */ + readonly percentiles: Map; + /** + * The number of times the event loop delay exceeded the maximum 1 hour event + * loop delay threshold. + * @since v11.10.0 + */ + readonly exceeds: number; + /** + * The minimum recorded event loop delay. + * @since v11.10.0 + */ + readonly min: number; + /** + * The maximum recorded event loop delay. + * @since v11.10.0 + */ + readonly max: number; + /** + * The mean of the recorded event loop delays. + * @since v11.10.0 + */ + readonly mean: number; + /** + * The standard deviation of the recorded event loop delays. + * @since v11.10.0 + */ + readonly stddev: number; + /** + * Resets the collected histogram data. + * @since v11.10.0 + */ + reset(): void; + /** + * Returns the value at the given percentile. + * @since v11.10.0 + * @param percentile A percentile value in the range (0, 100]. + */ + percentile(percentile: number): number; + } + interface IntervalHistogram extends Histogram { + /** + * Enables the update interval timer. Returns `true` if the timer was + * started, `false` if it was already started. + * @since v11.10.0 + */ + enable(): boolean; + /** + * Disables the update interval timer. Returns `true` if the timer was + * stopped, `false` if it was already stopped. + * @since v11.10.0 + */ + disable(): boolean; + } + interface RecordableHistogram extends Histogram { + /** + * @since v15.9.0, v14.18.0 + * @param val The amount to record in the histogram. + */ + record(val: number | bigint): void; + /** + * Calculates the amount of time (in nanoseconds) that has passed since the + * previous call to `recordDelta()` and records that amount in the histogram. + * + * ## Examples + * @since v15.9.0, v14.18.0 + */ + recordDelta(): void; + /** + * Adds the values from other to this histogram. + * @since v17.4.0, v16.14.0 + * @param other Recordable Histogram to combine with + */ + add(other: RecordableHistogram): void; + } + /** + * _This property is an extension by Node.js. It is not available in Web browsers._ + * + * Creates an `IntervalHistogram` object that samples and reports the event loop + * delay over time. The delays will be reported in nanoseconds. + * + * Using a timer to detect approximate event loop delay works because the + * execution of timers is tied specifically to the lifecycle of the libuv + * event loop. That is, a delay in the loop will cause a delay in the execution + * of the timer, and those delays are specifically what this API is intended to + * detect. + * + * ```js + * const { monitorEventLoopDelay } = require('perf_hooks'); + * const h = monitorEventLoopDelay({ resolution: 20 }); + * h.enable(); + * // Do something. + * h.disable(); + * console.log(h.min); + * console.log(h.max); + * console.log(h.mean); + * console.log(h.stddev); + * console.log(h.percentiles); + * console.log(h.percentile(50)); + * console.log(h.percentile(99)); + * ``` + * @since v11.10.0 + */ + function monitorEventLoopDelay(options?: EventLoopMonitorOptions): IntervalHistogram; + interface CreateHistogramOptions { + /** + * The minimum recordable value. Must be an integer value greater than 0. + * @default 1 + */ + min?: number | bigint | undefined; + /** + * The maximum recordable value. Must be an integer value greater than min. + * @default Number.MAX_SAFE_INTEGER + */ + max?: number | bigint | undefined; + /** + * The number of accuracy digits. Must be a number between 1 and 5. + * @default 3 + */ + figures?: number | undefined; + } + /** + * Returns a `RecordableHistogram`. + * @since v15.9.0, v14.18.0 + */ + function createHistogram(options?: CreateHistogramOptions): RecordableHistogram; + + import { performance as _performance } from 'perf_hooks'; + global { + /** + * `performance` is a global reference for `require('perf_hooks').performance` + * https://nodejs.org/api/globals.html#performance + * @since v16.0.0 + */ + var performance: typeof globalThis extends { + onmessage: any; + performance: infer T; + } + ? T + : typeof _performance; + } +} +declare module 'node:perf_hooks' { + export * from 'perf_hooks'; +} diff --git a/node_modules/@types/node/ts4.8/process.d.ts b/node_modules/@types/node/ts4.8/process.d.ts new file mode 100644 index 0000000..12148f9 --- /dev/null +++ b/node_modules/@types/node/ts4.8/process.d.ts @@ -0,0 +1,1482 @@ +declare module 'process' { + import * as tty from 'node:tty'; + import { Worker } from 'node:worker_threads'; + global { + var process: NodeJS.Process; + namespace NodeJS { + // this namespace merge is here because these are specifically used + // as the type for process.stdin, process.stdout, and process.stderr. + // they can't live in tty.d.ts because we need to disambiguate the imported name. + interface ReadStream extends tty.ReadStream {} + interface WriteStream extends tty.WriteStream {} + interface MemoryUsageFn { + /** + * The `process.memoryUsage()` method iterate over each page to gather informations about memory + * usage which can be slow depending on the program memory allocations. + */ + (): MemoryUsage; + /** + * method returns an integer representing the Resident Set Size (RSS) in bytes. + */ + rss(): number; + } + interface MemoryUsage { + rss: number; + heapTotal: number; + heapUsed: number; + external: number; + arrayBuffers: number; + } + interface CpuUsage { + user: number; + system: number; + } + interface ProcessRelease { + name: string; + sourceUrl?: string | undefined; + headersUrl?: string | undefined; + libUrl?: string | undefined; + lts?: string | undefined; + } + interface ProcessVersions extends Dict { + http_parser: string; + node: string; + v8: string; + ares: string; + uv: string; + zlib: string; + modules: string; + openssl: string; + } + type Platform = 'aix' | 'android' | 'darwin' | 'freebsd' | 'haiku' | 'linux' | 'openbsd' | 'sunos' | 'win32' | 'cygwin' | 'netbsd'; + type Architecture = 'arm' | 'arm64' | 'ia32' | 'mips' | 'mipsel' | 'ppc' | 'ppc64' | 's390' | 's390x' | 'x64'; + type Signals = + | 'SIGABRT' + | 'SIGALRM' + | 'SIGBUS' + | 'SIGCHLD' + | 'SIGCONT' + | 'SIGFPE' + | 'SIGHUP' + | 'SIGILL' + | 'SIGINT' + | 'SIGIO' + | 'SIGIOT' + | 'SIGKILL' + | 'SIGPIPE' + | 'SIGPOLL' + | 'SIGPROF' + | 'SIGPWR' + | 'SIGQUIT' + | 'SIGSEGV' + | 'SIGSTKFLT' + | 'SIGSTOP' + | 'SIGSYS' + | 'SIGTERM' + | 'SIGTRAP' + | 'SIGTSTP' + | 'SIGTTIN' + | 'SIGTTOU' + | 'SIGUNUSED' + | 'SIGURG' + | 'SIGUSR1' + | 'SIGUSR2' + | 'SIGVTALRM' + | 'SIGWINCH' + | 'SIGXCPU' + | 'SIGXFSZ' + | 'SIGBREAK' + | 'SIGLOST' + | 'SIGINFO'; + type UncaughtExceptionOrigin = 'uncaughtException' | 'unhandledRejection'; + type MultipleResolveType = 'resolve' | 'reject'; + type BeforeExitListener = (code: number) => void; + type DisconnectListener = () => void; + type ExitListener = (code: number) => void; + type RejectionHandledListener = (promise: Promise) => void; + type UncaughtExceptionListener = (error: Error, origin: UncaughtExceptionOrigin) => void; + /** + * Most of the time the unhandledRejection will be an Error, but this should not be relied upon + * as *anything* can be thrown/rejected, it is therefore unsafe to assume that the value is an Error. + */ + type UnhandledRejectionListener = (reason: unknown, promise: Promise) => void; + type WarningListener = (warning: Error) => void; + type MessageListener = (message: unknown, sendHandle: unknown) => void; + type SignalsListener = (signal: Signals) => void; + type MultipleResolveListener = (type: MultipleResolveType, promise: Promise, value: unknown) => void; + type WorkerListener = (worker: Worker) => void; + interface Socket extends ReadWriteStream { + isTTY?: true | undefined; + } + // Alias for compatibility + interface ProcessEnv extends Dict { + /** + * Can be used to change the default timezone at runtime + */ + TZ?: string; + } + interface HRTime { + (time?: [number, number]): [number, number]; + bigint(): bigint; + } + interface ProcessReport { + /** + * Directory where the report is written. + * working directory of the Node.js process. + * @default '' indicating that reports are written to the current + */ + directory: string; + /** + * Filename where the report is written. + * The default value is the empty string. + * @default '' the output filename will be comprised of a timestamp, + * PID, and sequence number. + */ + filename: string; + /** + * Returns a JSON-formatted diagnostic report for the running process. + * The report's JavaScript stack trace is taken from err, if present. + */ + getReport(err?: Error): string; + /** + * If true, a diagnostic report is generated on fatal errors, + * such as out of memory errors or failed C++ assertions. + * @default false + */ + reportOnFatalError: boolean; + /** + * If true, a diagnostic report is generated when the process + * receives the signal specified by process.report.signal. + * @default false + */ + reportOnSignal: boolean; + /** + * If true, a diagnostic report is generated on uncaught exception. + * @default false + */ + reportOnUncaughtException: boolean; + /** + * The signal used to trigger the creation of a diagnostic report. + * @default 'SIGUSR2' + */ + signal: Signals; + /** + * Writes a diagnostic report to a file. If filename is not provided, the default filename + * includes the date, time, PID, and a sequence number. + * The report's JavaScript stack trace is taken from err, if present. + * + * @param fileName Name of the file where the report is written. + * This should be a relative path, that will be appended to the directory specified in + * `process.report.directory`, or the current working directory of the Node.js process, + * if unspecified. + * @param error A custom error used for reporting the JavaScript stack. + * @return Filename of the generated report. + */ + writeReport(fileName?: string): string; + writeReport(error?: Error): string; + writeReport(fileName?: string, err?: Error): string; + } + interface ResourceUsage { + fsRead: number; + fsWrite: number; + involuntaryContextSwitches: number; + ipcReceived: number; + ipcSent: number; + majorPageFault: number; + maxRSS: number; + minorPageFault: number; + sharedMemorySize: number; + signalsCount: number; + swappedOut: number; + systemCPUTime: number; + unsharedDataSize: number; + unsharedStackSize: number; + userCPUTime: number; + voluntaryContextSwitches: number; + } + interface EmitWarningOptions { + /** + * When `warning` is a `string`, `type` is the name to use for the _type_ of warning being emitted. + * + * @default 'Warning' + */ + type?: string | undefined; + /** + * A unique identifier for the warning instance being emitted. + */ + code?: string | undefined; + /** + * When `warning` is a `string`, `ctor` is an optional function used to limit the generated stack trace. + * + * @default process.emitWarning + */ + ctor?: Function | undefined; + /** + * Additional text to include with the error. + */ + detail?: string | undefined; + } + interface ProcessConfig { + readonly target_defaults: { + readonly cflags: any[]; + readonly default_configuration: string; + readonly defines: string[]; + readonly include_dirs: string[]; + readonly libraries: string[]; + }; + readonly variables: { + readonly clang: number; + readonly host_arch: string; + readonly node_install_npm: boolean; + readonly node_install_waf: boolean; + readonly node_prefix: string; + readonly node_shared_openssl: boolean; + readonly node_shared_v8: boolean; + readonly node_shared_zlib: boolean; + readonly node_use_dtrace: boolean; + readonly node_use_etw: boolean; + readonly node_use_openssl: boolean; + readonly target_arch: string; + readonly v8_no_strict_aliasing: number; + readonly v8_use_snapshot: boolean; + readonly visibility: string; + }; + } + interface Process extends EventEmitter { + /** + * The `process.stdout` property returns a stream connected to`stdout` (fd `1`). It is a `net.Socket` (which is a `Duplex` stream) unless fd `1` refers to a file, in which case it is + * a `Writable` stream. + * + * For example, to copy `process.stdin` to `process.stdout`: + * + * ```js + * import { stdin, stdout } from 'process'; + * + * stdin.pipe(stdout); + * ``` + * + * `process.stdout` differs from other Node.js streams in important ways. See `note on process I/O` for more information. + */ + stdout: WriteStream & { + fd: 1; + }; + /** + * The `process.stderr` property returns a stream connected to`stderr` (fd `2`). It is a `net.Socket` (which is a `Duplex` stream) unless fd `2` refers to a file, in which case it is + * a `Writable` stream. + * + * `process.stderr` differs from other Node.js streams in important ways. See `note on process I/O` for more information. + */ + stderr: WriteStream & { + fd: 2; + }; + /** + * The `process.stdin` property returns a stream connected to`stdin` (fd `0`). It is a `net.Socket` (which is a `Duplex` stream) unless fd `0` refers to a file, in which case it is + * a `Readable` stream. + * + * For details of how to read from `stdin` see `readable.read()`. + * + * As a `Duplex` stream, `process.stdin` can also be used in "old" mode that + * is compatible with scripts written for Node.js prior to v0.10\. + * For more information see `Stream compatibility`. + * + * In "old" streams mode the `stdin` stream is paused by default, so one + * must call `process.stdin.resume()` to read from it. Note also that calling`process.stdin.resume()` itself would switch stream to "old" mode. + */ + stdin: ReadStream & { + fd: 0; + }; + openStdin(): Socket; + /** + * The `process.argv` property returns an array containing the command-line + * arguments passed when the Node.js process was launched. The first element will + * be {@link execPath}. See `process.argv0` if access to the original value + * of `argv[0]` is needed. The second element will be the path to the JavaScript + * file being executed. The remaining elements will be any additional command-line + * arguments. + * + * For example, assuming the following script for `process-args.js`: + * + * ```js + * import { argv } from 'process'; + * + * // print process.argv + * argv.forEach((val, index) => { + * console.log(`${index}: ${val}`); + * }); + * ``` + * + * Launching the Node.js process as: + * + * ```console + * $ node process-args.js one two=three four + * ``` + * + * Would generate the output: + * + * ```text + * 0: /usr/local/bin/node + * 1: /Users/mjr/work/node/process-args.js + * 2: one + * 3: two=three + * 4: four + * ``` + * @since v0.1.27 + */ + argv: string[]; + /** + * The `process.argv0` property stores a read-only copy of the original value of`argv[0]` passed when Node.js starts. + * + * ```console + * $ bash -c 'exec -a customArgv0 ./node' + * > process.argv[0] + * '/Volumes/code/external/node/out/Release/node' + * > process.argv0 + * 'customArgv0' + * ``` + * @since v6.4.0 + */ + argv0: string; + /** + * The `process.execArgv` property returns the set of Node.js-specific command-line + * options passed when the Node.js process was launched. These options do not + * appear in the array returned by the {@link argv} property, and do not + * include the Node.js executable, the name of the script, or any options following + * the script name. These options are useful in order to spawn child processes with + * the same execution environment as the parent. + * + * ```console + * $ node --harmony script.js --version + * ``` + * + * Results in `process.execArgv`: + * + * ```js + * ['--harmony'] + * ``` + * + * And `process.argv`: + * + * ```js + * ['/usr/local/bin/node', 'script.js', '--version'] + * ``` + * + * Refer to `Worker constructor` for the detailed behavior of worker + * threads with this property. + * @since v0.7.7 + */ + execArgv: string[]; + /** + * The `process.execPath` property returns the absolute pathname of the executable + * that started the Node.js process. Symbolic links, if any, are resolved. + * + * ```js + * '/usr/local/bin/node' + * ``` + * @since v0.1.100 + */ + execPath: string; + /** + * The `process.abort()` method causes the Node.js process to exit immediately and + * generate a core file. + * + * This feature is not available in `Worker` threads. + * @since v0.7.0 + */ + abort(): never; + /** + * The `process.chdir()` method changes the current working directory of the + * Node.js process or throws an exception if doing so fails (for instance, if + * the specified `directory` does not exist). + * + * ```js + * import { chdir, cwd } from 'process'; + * + * console.log(`Starting directory: ${cwd()}`); + * try { + * chdir('/tmp'); + * console.log(`New directory: ${cwd()}`); + * } catch (err) { + * console.error(`chdir: ${err}`); + * } + * ``` + * + * This feature is not available in `Worker` threads. + * @since v0.1.17 + */ + chdir(directory: string): void; + /** + * The `process.cwd()` method returns the current working directory of the Node.js + * process. + * + * ```js + * import { cwd } from 'process'; + * + * console.log(`Current directory: ${cwd()}`); + * ``` + * @since v0.1.8 + */ + cwd(): string; + /** + * The port used by the Node.js debugger when enabled. + * + * ```js + * import process from 'process'; + * + * process.debugPort = 5858; + * ``` + * @since v0.7.2 + */ + debugPort: number; + /** + * The `process.emitWarning()` method can be used to emit custom or application + * specific process warnings. These can be listened for by adding a handler to the `'warning'` event. + * + * ```js + * import { emitWarning } from 'process'; + * + * // Emit a warning with a code and additional detail. + * emitWarning('Something happened!', { + * code: 'MY_WARNING', + * detail: 'This is some additional information' + * }); + * // Emits: + * // (node:56338) [MY_WARNING] Warning: Something happened! + * // This is some additional information + * ``` + * + * In this example, an `Error` object is generated internally by`process.emitWarning()` and passed through to the `'warning'` handler. + * + * ```js + * import process from 'process'; + * + * process.on('warning', (warning) => { + * console.warn(warning.name); // 'Warning' + * console.warn(warning.message); // 'Something happened!' + * console.warn(warning.code); // 'MY_WARNING' + * console.warn(warning.stack); // Stack trace + * console.warn(warning.detail); // 'This is some additional information' + * }); + * ``` + * + * If `warning` is passed as an `Error` object, the `options` argument is ignored. + * @since v8.0.0 + * @param warning The warning to emit. + */ + emitWarning(warning: string | Error, ctor?: Function): void; + emitWarning(warning: string | Error, type?: string, ctor?: Function): void; + emitWarning(warning: string | Error, type?: string, code?: string, ctor?: Function): void; + emitWarning(warning: string | Error, options?: EmitWarningOptions): void; + /** + * The `process.env` property returns an object containing the user environment. + * See [`environ(7)`](http://man7.org/linux/man-pages/man7/environ.7.html). + * + * An example of this object looks like: + * + * ```js + * { + * TERM: 'xterm-256color', + * SHELL: '/usr/local/bin/bash', + * USER: 'maciej', + * PATH: '~/.bin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin', + * PWD: '/Users/maciej', + * EDITOR: 'vim', + * SHLVL: '1', + * HOME: '/Users/maciej', + * LOGNAME: 'maciej', + * _: '/usr/local/bin/node' + * } + * ``` + * + * It is possible to modify this object, but such modifications will not be + * reflected outside the Node.js process, or (unless explicitly requested) + * to other `Worker` threads. + * In other words, the following example would not work: + * + * ```console + * $ node -e 'process.env.foo = "bar"' && echo $foo + * ``` + * + * While the following will: + * + * ```js + * import { env } from 'process'; + * + * env.foo = 'bar'; + * console.log(env.foo); + * ``` + * + * Assigning a property on `process.env` will implicitly convert the value + * to a string. **This behavior is deprecated.** Future versions of Node.js may + * throw an error when the value is not a string, number, or boolean. + * + * ```js + * import { env } from 'process'; + * + * env.test = null; + * console.log(env.test); + * // => 'null' + * env.test = undefined; + * console.log(env.test); + * // => 'undefined' + * ``` + * + * Use `delete` to delete a property from `process.env`. + * + * ```js + * import { env } from 'process'; + * + * env.TEST = 1; + * delete env.TEST; + * console.log(env.TEST); + * // => undefined + * ``` + * + * On Windows operating systems, environment variables are case-insensitive. + * + * ```js + * import { env } from 'process'; + * + * env.TEST = 1; + * console.log(env.test); + * // => 1 + * ``` + * + * Unless explicitly specified when creating a `Worker` instance, + * each `Worker` thread has its own copy of `process.env`, based on its + * parent thread’s `process.env`, or whatever was specified as the `env` option + * to the `Worker` constructor. Changes to `process.env` will not be visible + * across `Worker` threads, and only the main thread can make changes that + * are visible to the operating system or to native add-ons. + * @since v0.1.27 + */ + env: ProcessEnv; + /** + * The `process.exit()` method instructs Node.js to terminate the process + * synchronously with an exit status of `code`. If `code` is omitted, exit uses + * either the 'success' code `0` or the value of `process.exitCode` if it has been + * set. Node.js will not terminate until all the `'exit'` event listeners are + * called. + * + * To exit with a 'failure' code: + * + * ```js + * import { exit } from 'process'; + * + * exit(1); + * ``` + * + * The shell that executed Node.js should see the exit code as `1`. + * + * Calling `process.exit()` will force the process to exit as quickly as possible + * even if there are still asynchronous operations pending that have not yet + * completed fully, including I/O operations to `process.stdout` and`process.stderr`. + * + * In most situations, it is not actually necessary to call `process.exit()`explicitly. The Node.js process will exit on its own _if there is no additional_ + * _work pending_ in the event loop. The `process.exitCode` property can be set to + * tell the process which exit code to use when the process exits gracefully. + * + * For instance, the following example illustrates a _misuse_ of the`process.exit()` method that could lead to data printed to stdout being + * truncated and lost: + * + * ```js + * import { exit } from 'process'; + * + * // This is an example of what *not* to do: + * if (someConditionNotMet()) { + * printUsageToStdout(); + * exit(1); + * } + * ``` + * + * The reason this is problematic is because writes to `process.stdout` in Node.js + * are sometimes _asynchronous_ and may occur over multiple ticks of the Node.js + * event loop. Calling `process.exit()`, however, forces the process to exit _before_ those additional writes to `stdout` can be performed. + * + * Rather than calling `process.exit()` directly, the code _should_ set the`process.exitCode` and allow the process to exit naturally by avoiding + * scheduling any additional work for the event loop: + * + * ```js + * import process from 'process'; + * + * // How to properly set the exit code while letting + * // the process exit gracefully. + * if (someConditionNotMet()) { + * printUsageToStdout(); + * process.exitCode = 1; + * } + * ``` + * + * If it is necessary to terminate the Node.js process due to an error condition, + * throwing an _uncaught_ error and allowing the process to terminate accordingly + * is safer than calling `process.exit()`. + * + * In `Worker` threads, this function stops the current thread rather + * than the current process. + * @since v0.1.13 + * @param [code=0] The exit code. + */ + exit(code?: number): never; + /** + * A number which will be the process exit code, when the process either + * exits gracefully, or is exited via {@link exit} without specifying + * a code. + * + * Specifying a code to {@link exit} will override any + * previous setting of `process.exitCode`. + * @since v0.11.8 + */ + exitCode?: number | undefined; + /** + * The `process.getgid()` method returns the numerical group identity of the + * process. (See [`getgid(2)`](http://man7.org/linux/man-pages/man2/getgid.2.html).) + * + * ```js + * import process from 'process'; + * + * if (process.getgid) { + * console.log(`Current gid: ${process.getgid()}`); + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * @since v0.1.31 + */ + getgid?: () => number; + /** + * The `process.setgid()` method sets the group identity of the process. (See [`setgid(2)`](http://man7.org/linux/man-pages/man2/setgid.2.html).) The `id` can be passed as either a + * numeric ID or a group name + * string. If a group name is specified, this method blocks while resolving the + * associated numeric ID. + * + * ```js + * import process from 'process'; + * + * if (process.getgid && process.setgid) { + * console.log(`Current gid: ${process.getgid()}`); + * try { + * process.setgid(501); + * console.log(`New gid: ${process.getgid()}`); + * } catch (err) { + * console.log(`Failed to set gid: ${err}`); + * } + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * This feature is not available in `Worker` threads. + * @since v0.1.31 + * @param id The group name or ID + */ + setgid?: (id: number | string) => void; + /** + * The `process.getuid()` method returns the numeric user identity of the process. + * (See [`getuid(2)`](http://man7.org/linux/man-pages/man2/getuid.2.html).) + * + * ```js + * import process from 'process'; + * + * if (process.getuid) { + * console.log(`Current uid: ${process.getuid()}`); + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * @since v0.1.28 + */ + getuid?: () => number; + /** + * The `process.setuid(id)` method sets the user identity of the process. (See [`setuid(2)`](http://man7.org/linux/man-pages/man2/setuid.2.html).) The `id` can be passed as either a + * numeric ID or a username string. + * If a username is specified, the method blocks while resolving the associated + * numeric ID. + * + * ```js + * import process from 'process'; + * + * if (process.getuid && process.setuid) { + * console.log(`Current uid: ${process.getuid()}`); + * try { + * process.setuid(501); + * console.log(`New uid: ${process.getuid()}`); + * } catch (err) { + * console.log(`Failed to set uid: ${err}`); + * } + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * This feature is not available in `Worker` threads. + * @since v0.1.28 + */ + setuid?: (id: number | string) => void; + /** + * The `process.geteuid()` method returns the numerical effective user identity of + * the process. (See [`geteuid(2)`](http://man7.org/linux/man-pages/man2/geteuid.2.html).) + * + * ```js + * import process from 'process'; + * + * if (process.geteuid) { + * console.log(`Current uid: ${process.geteuid()}`); + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * @since v2.0.0 + */ + geteuid?: () => number; + /** + * The `process.seteuid()` method sets the effective user identity of the process. + * (See [`seteuid(2)`](http://man7.org/linux/man-pages/man2/seteuid.2.html).) The `id` can be passed as either a numeric ID or a username + * string. If a username is specified, the method blocks while resolving the + * associated numeric ID. + * + * ```js + * import process from 'process'; + * + * if (process.geteuid && process.seteuid) { + * console.log(`Current uid: ${process.geteuid()}`); + * try { + * process.seteuid(501); + * console.log(`New uid: ${process.geteuid()}`); + * } catch (err) { + * console.log(`Failed to set uid: ${err}`); + * } + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * This feature is not available in `Worker` threads. + * @since v2.0.0 + * @param id A user name or ID + */ + seteuid?: (id: number | string) => void; + /** + * The `process.getegid()` method returns the numerical effective group identity + * of the Node.js process. (See [`getegid(2)`](http://man7.org/linux/man-pages/man2/getegid.2.html).) + * + * ```js + * import process from 'process'; + * + * if (process.getegid) { + * console.log(`Current gid: ${process.getegid()}`); + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * @since v2.0.0 + */ + getegid?: () => number; + /** + * The `process.setegid()` method sets the effective group identity of the process. + * (See [`setegid(2)`](http://man7.org/linux/man-pages/man2/setegid.2.html).) The `id` can be passed as either a numeric ID or a group + * name string. If a group name is specified, this method blocks while resolving + * the associated a numeric ID. + * + * ```js + * import process from 'process'; + * + * if (process.getegid && process.setegid) { + * console.log(`Current gid: ${process.getegid()}`); + * try { + * process.setegid(501); + * console.log(`New gid: ${process.getegid()}`); + * } catch (err) { + * console.log(`Failed to set gid: ${err}`); + * } + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * This feature is not available in `Worker` threads. + * @since v2.0.0 + * @param id A group name or ID + */ + setegid?: (id: number | string) => void; + /** + * The `process.getgroups()` method returns an array with the supplementary group + * IDs. POSIX leaves it unspecified if the effective group ID is included but + * Node.js ensures it always is. + * + * ```js + * import process from 'process'; + * + * if (process.getgroups) { + * console.log(process.getgroups()); // [ 16, 21, 297 ] + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * @since v0.9.4 + */ + getgroups?: () => number[]; + /** + * The `process.setgroups()` method sets the supplementary group IDs for the + * Node.js process. This is a privileged operation that requires the Node.js + * process to have `root` or the `CAP_SETGID` capability. + * + * The `groups` array can contain numeric group IDs, group names, or both. + * + * ```js + * import process from 'process'; + * + * if (process.getgroups && process.setgroups) { + * try { + * process.setgroups([501]); + * console.log(process.getgroups()); // new groups + * } catch (err) { + * console.log(`Failed to set groups: ${err}`); + * } + * } + * ``` + * + * This function is only available on POSIX platforms (i.e. not Windows or + * Android). + * This feature is not available in `Worker` threads. + * @since v0.9.4 + */ + setgroups?: (groups: ReadonlyArray) => void; + /** + * The `process.setUncaughtExceptionCaptureCallback()` function sets a function + * that will be invoked when an uncaught exception occurs, which will receive the + * exception value itself as its first argument. + * + * If such a function is set, the `'uncaughtException'` event will + * not be emitted. If `--abort-on-uncaught-exception` was passed from the + * command line or set through `v8.setFlagsFromString()`, the process will + * not abort. Actions configured to take place on exceptions such as report + * generations will be affected too + * + * To unset the capture function,`process.setUncaughtExceptionCaptureCallback(null)` may be used. Calling this + * method with a non-`null` argument while another capture function is set will + * throw an error. + * + * Using this function is mutually exclusive with using the deprecated `domain` built-in module. + * @since v9.3.0 + */ + setUncaughtExceptionCaptureCallback(cb: ((err: Error) => void) | null): void; + /** + * Indicates whether a callback has been set using {@link setUncaughtExceptionCaptureCallback}. + * @since v9.3.0 + */ + hasUncaughtExceptionCaptureCallback(): boolean; + /** + * The `process.version` property contains the Node.js version string. + * + * ```js + * import { version } from 'process'; + * + * console.log(`Version: ${version}`); + * // Version: v14.8.0 + * ``` + * + * To get the version string without the prepended _v_, use`process.versions.node`. + * @since v0.1.3 + */ + readonly version: string; + /** + * The `process.versions` property returns an object listing the version strings of + * Node.js and its dependencies. `process.versions.modules` indicates the current + * ABI version, which is increased whenever a C++ API changes. Node.js will refuse + * to load modules that were compiled against a different module ABI version. + * + * ```js + * import { versions } from 'process'; + * + * console.log(versions); + * ``` + * + * Will generate an object similar to: + * + * ```console + * { node: '11.13.0', + * v8: '7.0.276.38-node.18', + * uv: '1.27.0', + * zlib: '1.2.11', + * brotli: '1.0.7', + * ares: '1.15.0', + * modules: '67', + * nghttp2: '1.34.0', + * napi: '4', + * llhttp: '1.1.1', + * openssl: '1.1.1b', + * cldr: '34.0', + * icu: '63.1', + * tz: '2018e', + * unicode: '11.0' } + * ``` + * @since v0.2.0 + */ + readonly versions: ProcessVersions; + /** + * The `process.config` property returns an `Object` containing the JavaScript + * representation of the configure options used to compile the current Node.js + * executable. This is the same as the `config.gypi` file that was produced when + * running the `./configure` script. + * + * An example of the possible output looks like: + * + * ```js + * { + * target_defaults: + * { cflags: [], + * default_configuration: 'Release', + * defines: [], + * include_dirs: [], + * libraries: [] }, + * variables: + * { + * host_arch: 'x64', + * napi_build_version: 5, + * node_install_npm: 'true', + * node_prefix: '', + * node_shared_cares: 'false', + * node_shared_http_parser: 'false', + * node_shared_libuv: 'false', + * node_shared_zlib: 'false', + * node_use_dtrace: 'false', + * node_use_openssl: 'true', + * node_shared_openssl: 'false', + * strict_aliasing: 'true', + * target_arch: 'x64', + * v8_use_snapshot: 1 + * } + * } + * ``` + * + * The `process.config` property is **not** read-only and there are existing + * modules in the ecosystem that are known to extend, modify, or entirely replace + * the value of `process.config`. + * + * Modifying the `process.config` property, or any child-property of the`process.config` object has been deprecated. The `process.config` will be made + * read-only in a future release. + * @since v0.7.7 + */ + readonly config: ProcessConfig; + /** + * The `process.kill()` method sends the `signal` to the process identified by`pid`. + * + * Signal names are strings such as `'SIGINT'` or `'SIGHUP'`. See `Signal Events` and [`kill(2)`](http://man7.org/linux/man-pages/man2/kill.2.html) for more information. + * + * This method will throw an error if the target `pid` does not exist. As a special + * case, a signal of `0` can be used to test for the existence of a process. + * Windows platforms will throw an error if the `pid` is used to kill a process + * group. + * + * Even though the name of this function is `process.kill()`, it is really just a + * signal sender, like the `kill` system call. The signal sent may do something + * other than kill the target process. + * + * ```js + * import process, { kill } from 'process'; + * + * process.on('SIGHUP', () => { + * console.log('Got SIGHUP signal.'); + * }); + * + * setTimeout(() => { + * console.log('Exiting.'); + * process.exit(0); + * }, 100); + * + * kill(process.pid, 'SIGHUP'); + * ``` + * + * When `SIGUSR1` is received by a Node.js process, Node.js will start the + * debugger. See `Signal Events`. + * @since v0.0.6 + * @param pid A process ID + * @param [signal='SIGTERM'] The signal to send, either as a string or number. + */ + kill(pid: number, signal?: string | number): true; + /** + * The `process.pid` property returns the PID of the process. + * + * ```js + * import { pid } from 'process'; + * + * console.log(`This process is pid ${pid}`); + * ``` + * @since v0.1.15 + */ + readonly pid: number; + /** + * The `process.ppid` property returns the PID of the parent of the + * current process. + * + * ```js + * import { ppid } from 'process'; + * + * console.log(`The parent process is pid ${ppid}`); + * ``` + * @since v9.2.0, v8.10.0, v6.13.0 + */ + readonly ppid: number; + /** + * The `process.title` property returns the current process title (i.e. returns + * the current value of `ps`). Assigning a new value to `process.title` modifies + * the current value of `ps`. + * + * When a new value is assigned, different platforms will impose different maximum + * length restrictions on the title. Usually such restrictions are quite limited. + * For instance, on Linux and macOS, `process.title` is limited to the size of the + * binary name plus the length of the command-line arguments because setting the`process.title` overwrites the `argv` memory of the process. Node.js v0.8 + * allowed for longer process title strings by also overwriting the `environ`memory but that was potentially insecure and confusing in some (rather obscure) + * cases. + * + * Assigning a value to `process.title` might not result in an accurate label + * within process manager applications such as macOS Activity Monitor or Windows + * Services Manager. + * @since v0.1.104 + */ + title: string; + /** + * The operating system CPU architecture for which the Node.js binary was compiled. + * Possible values are: `'arm'`, `'arm64'`, `'ia32'`, `'mips'`,`'mipsel'`, `'ppc'`,`'ppc64'`, `'s390'`, `'s390x'`, and `'x64'`. + * + * ```js + * import { arch } from 'process'; + * + * console.log(`This processor architecture is ${arch}`); + * ``` + * @since v0.5.0 + */ + readonly arch: Architecture; + /** + * The `process.platform` property returns a string identifying the operating + * system platform for which the Node.js binary was compiled. + * + * Currently possible values are: + * + * * `'aix'` + * * `'darwin'` + * * `'freebsd'` + * * `'linux'` + * * `'openbsd'` + * * `'sunos'` + * * `'win32'` + * + * ```js + * import { platform } from 'process'; + * + * console.log(`This platform is ${platform}`); + * ``` + * + * The value `'android'` may also be returned if the Node.js is built on the + * Android operating system. However, Android support in Node.js [is experimental](https://github.com/nodejs/node/blob/HEAD/BUILDING.md#androidandroid-based-devices-eg-firefox-os). + * @since v0.1.16 + */ + readonly platform: Platform; + /** + * The `process.mainModule` property provides an alternative way of retrieving `require.main`. The difference is that if the main module changes at + * runtime, `require.main` may still refer to the original main module in + * modules that were required before the change occurred. Generally, it's + * safe to assume that the two refer to the same module. + * + * As with `require.main`, `process.mainModule` will be `undefined` if there + * is no entry script. + * @since v0.1.17 + * @deprecated Since v14.0.0 - Use `main` instead. + */ + mainModule?: Module | undefined; + memoryUsage: MemoryUsageFn; + /** + * The `process.cpuUsage()` method returns the user and system CPU time usage of + * the current process, in an object with properties `user` and `system`, whose + * values are microsecond values (millionth of a second). These values measure time + * spent in user and system code respectively, and may end up being greater than + * actual elapsed time if multiple CPU cores are performing work for this process. + * + * The result of a previous call to `process.cpuUsage()` can be passed as the + * argument to the function, to get a diff reading. + * + * ```js + * import { cpuUsage } from 'process'; + * + * const startUsage = cpuUsage(); + * // { user: 38579, system: 6986 } + * + * // spin the CPU for 500 milliseconds + * const now = Date.now(); + * while (Date.now() - now < 500); + * + * console.log(cpuUsage(startUsage)); + * // { user: 514883, system: 11226 } + * ``` + * @since v6.1.0 + * @param previousValue A previous return value from calling `process.cpuUsage()` + */ + cpuUsage(previousValue?: CpuUsage): CpuUsage; + /** + * `process.nextTick()` adds `callback` to the "next tick queue". This queue is + * fully drained after the current operation on the JavaScript stack runs to + * completion and before the event loop is allowed to continue. It's possible to + * create an infinite loop if one were to recursively call `process.nextTick()`. + * See the [Event Loop](https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/#process-nexttick) guide for more background. + * + * ```js + * import { nextTick } from 'process'; + * + * console.log('start'); + * nextTick(() => { + * console.log('nextTick callback'); + * }); + * console.log('scheduled'); + * // Output: + * // start + * // scheduled + * // nextTick callback + * ``` + * + * This is important when developing APIs in order to give users the opportunity + * to assign event handlers _after_ an object has been constructed but before any + * I/O has occurred: + * + * ```js + * import { nextTick } from 'process'; + * + * function MyThing(options) { + * this.setupOptions(options); + * + * nextTick(() => { + * this.startDoingStuff(); + * }); + * } + * + * const thing = new MyThing(); + * thing.getReadyForStuff(); + * + * // thing.startDoingStuff() gets called now, not before. + * ``` + * + * It is very important for APIs to be either 100% synchronous or 100% + * asynchronous. Consider this example: + * + * ```js + * // WARNING! DO NOT USE! BAD UNSAFE HAZARD! + * function maybeSync(arg, cb) { + * if (arg) { + * cb(); + * return; + * } + * + * fs.stat('file', cb); + * } + * ``` + * + * This API is hazardous because in the following case: + * + * ```js + * const maybeTrue = Math.random() > 0.5; + * + * maybeSync(maybeTrue, () => { + * foo(); + * }); + * + * bar(); + * ``` + * + * It is not clear whether `foo()` or `bar()` will be called first. + * + * The following approach is much better: + * + * ```js + * import { nextTick } from 'process'; + * + * function definitelyAsync(arg, cb) { + * if (arg) { + * nextTick(cb); + * return; + * } + * + * fs.stat('file', cb); + * } + * ``` + * @since v0.1.26 + * @param args Additional arguments to pass when invoking the `callback` + */ + nextTick(callback: Function, ...args: any[]): void; + /** + * The `process.release` property returns an `Object` containing metadata related + * to the current release, including URLs for the source tarball and headers-only + * tarball. + * + * `process.release` contains the following properties: + * + * ```js + * { + * name: 'node', + * lts: 'Erbium', + * sourceUrl: 'https://nodejs.org/download/release/v12.18.1/node-v12.18.1.tar.gz', + * headersUrl: 'https://nodejs.org/download/release/v12.18.1/node-v12.18.1-headers.tar.gz', + * libUrl: 'https://nodejs.org/download/release/v12.18.1/win-x64/node.lib' + * } + * ``` + * + * In custom builds from non-release versions of the source tree, only the`name` property may be present. The additional properties should not be + * relied upon to exist. + * @since v3.0.0 + */ + readonly release: ProcessRelease; + features: { + inspector: boolean; + debug: boolean; + uv: boolean; + ipv6: boolean; + tls_alpn: boolean; + tls_sni: boolean; + tls_ocsp: boolean; + tls: boolean; + }; + /** + * `process.umask()` returns the Node.js process's file mode creation mask. Child + * processes inherit the mask from the parent process. + * @since v0.1.19 + * @deprecated Calling `process.umask()` with no argument causes the process-wide umask to be written twice. This introduces a race condition between threads, and is a potential * + * security vulnerability. There is no safe, cross-platform alternative API. + */ + umask(): number; + /** + * Can only be set if not in worker thread. + */ + umask(mask: string | number): number; + /** + * The `process.uptime()` method returns the number of seconds the current Node.js + * process has been running. + * + * The return value includes fractions of a second. Use `Math.floor()` to get whole + * seconds. + * @since v0.5.0 + */ + uptime(): number; + hrtime: HRTime; + /** + * If Node.js is spawned with an IPC channel, the `process.send()` method can be + * used to send messages to the parent process. Messages will be received as a `'message'` event on the parent's `ChildProcess` object. + * + * If Node.js was not spawned with an IPC channel, `process.send` will be`undefined`. + * + * The message goes through serialization and parsing. The resulting message might + * not be the same as what is originally sent. + * @since v0.5.9 + * @param options used to parameterize the sending of certain types of handles.`options` supports the following properties: + */ + send?( + message: any, + sendHandle?: any, + options?: { + swallowErrors?: boolean | undefined; + }, + callback?: (error: Error | null) => void + ): boolean; + /** + * If the Node.js process is spawned with an IPC channel (see the `Child Process` and `Cluster` documentation), the `process.disconnect()` method will close the + * IPC channel to the parent process, allowing the child process to exit gracefully + * once there are no other connections keeping it alive. + * + * The effect of calling `process.disconnect()` is the same as calling `ChildProcess.disconnect()` from the parent process. + * + * If the Node.js process was not spawned with an IPC channel,`process.disconnect()` will be `undefined`. + * @since v0.7.2 + */ + disconnect(): void; + /** + * If the Node.js process is spawned with an IPC channel (see the `Child Process` and `Cluster` documentation), the `process.connected` property will return`true` so long as the IPC + * channel is connected and will return `false` after`process.disconnect()` is called. + * + * Once `process.connected` is `false`, it is no longer possible to send messages + * over the IPC channel using `process.send()`. + * @since v0.7.2 + */ + connected: boolean; + /** + * The `process.allowedNodeEnvironmentFlags` property is a special, + * read-only `Set` of flags allowable within the `NODE_OPTIONS` environment variable. + * + * `process.allowedNodeEnvironmentFlags` extends `Set`, but overrides`Set.prototype.has` to recognize several different possible flag + * representations. `process.allowedNodeEnvironmentFlags.has()` will + * return `true` in the following cases: + * + * * Flags may omit leading single (`-`) or double (`--`) dashes; e.g.,`inspect-brk` for `--inspect-brk`, or `r` for `-r`. + * * Flags passed through to V8 (as listed in `--v8-options`) may replace + * one or more _non-leading_ dashes for an underscore, or vice-versa; + * e.g., `--perf_basic_prof`, `--perf-basic-prof`, `--perf_basic-prof`, + * etc. + * * Flags may contain one or more equals (`=`) characters; all + * characters after and including the first equals will be ignored; + * e.g., `--stack-trace-limit=100`. + * * Flags _must_ be allowable within `NODE_OPTIONS`. + * + * When iterating over `process.allowedNodeEnvironmentFlags`, flags will + * appear only _once_; each will begin with one or more dashes. Flags + * passed through to V8 will contain underscores instead of non-leading + * dashes: + * + * ```js + * import { allowedNodeEnvironmentFlags } from 'process'; + * + * allowedNodeEnvironmentFlags.forEach((flag) => { + * // -r + * // --inspect-brk + * // --abort_on_uncaught_exception + * // ... + * }); + * ``` + * + * The methods `add()`, `clear()`, and `delete()` of`process.allowedNodeEnvironmentFlags` do nothing, and will fail + * silently. + * + * If Node.js was compiled _without_ `NODE_OPTIONS` support (shown in {@link config}), `process.allowedNodeEnvironmentFlags` will + * contain what _would have_ been allowable. + * @since v10.10.0 + */ + allowedNodeEnvironmentFlags: ReadonlySet; + /** + * `process.report` is an object whose methods are used to generate diagnostic + * reports for the current process. Additional documentation is available in the `report documentation`. + * @since v11.8.0 + */ + report?: ProcessReport | undefined; + /** + * ```js + * import { resourceUsage } from 'process'; + * + * console.log(resourceUsage()); + * /* + * Will output: + * { + * userCPUTime: 82872, + * systemCPUTime: 4143, + * maxRSS: 33164, + * sharedMemorySize: 0, + * unsharedDataSize: 0, + * unsharedStackSize: 0, + * minorPageFault: 2469, + * majorPageFault: 0, + * swappedOut: 0, + * fsRead: 0, + * fsWrite: 8, + * ipcSent: 0, + * ipcReceived: 0, + * signalsCount: 0, + * voluntaryContextSwitches: 79, + * involuntaryContextSwitches: 1 + * } + * + * ``` + * @since v12.6.0 + * @return the resource usage for the current process. All of these values come from the `uv_getrusage` call which returns a [`uv_rusage_t` struct][uv_rusage_t]. + */ + resourceUsage(): ResourceUsage; + /** + * The `process.traceDeprecation` property indicates whether the`--trace-deprecation` flag is set on the current Node.js process. See the + * documentation for the `'warning' event` and the `emitWarning() method` for more information about this + * flag's behavior. + * @since v0.8.0 + */ + traceDeprecation: boolean; + /* EventEmitter */ + addListener(event: 'beforeExit', listener: BeforeExitListener): this; + addListener(event: 'disconnect', listener: DisconnectListener): this; + addListener(event: 'exit', listener: ExitListener): this; + addListener(event: 'rejectionHandled', listener: RejectionHandledListener): this; + addListener(event: 'uncaughtException', listener: UncaughtExceptionListener): this; + addListener(event: 'uncaughtExceptionMonitor', listener: UncaughtExceptionListener): this; + addListener(event: 'unhandledRejection', listener: UnhandledRejectionListener): this; + addListener(event: 'warning', listener: WarningListener): this; + addListener(event: 'message', listener: MessageListener): this; + addListener(event: Signals, listener: SignalsListener): this; + addListener(event: 'multipleResolves', listener: MultipleResolveListener): this; + addListener(event: 'worker', listener: WorkerListener): this; + emit(event: 'beforeExit', code: number): boolean; + emit(event: 'disconnect'): boolean; + emit(event: 'exit', code: number): boolean; + emit(event: 'rejectionHandled', promise: Promise): boolean; + emit(event: 'uncaughtException', error: Error): boolean; + emit(event: 'uncaughtExceptionMonitor', error: Error): boolean; + emit(event: 'unhandledRejection', reason: unknown, promise: Promise): boolean; + emit(event: 'warning', warning: Error): boolean; + emit(event: 'message', message: unknown, sendHandle: unknown): this; + emit(event: Signals, signal?: Signals): boolean; + emit(event: 'multipleResolves', type: MultipleResolveType, promise: Promise, value: unknown): this; + emit(event: 'worker', listener: WorkerListener): this; + on(event: 'beforeExit', listener: BeforeExitListener): this; + on(event: 'disconnect', listener: DisconnectListener): this; + on(event: 'exit', listener: ExitListener): this; + on(event: 'rejectionHandled', listener: RejectionHandledListener): this; + on(event: 'uncaughtException', listener: UncaughtExceptionListener): this; + on(event: 'uncaughtExceptionMonitor', listener: UncaughtExceptionListener): this; + on(event: 'unhandledRejection', listener: UnhandledRejectionListener): this; + on(event: 'warning', listener: WarningListener): this; + on(event: 'message', listener: MessageListener): this; + on(event: Signals, listener: SignalsListener): this; + on(event: 'multipleResolves', listener: MultipleResolveListener): this; + on(event: 'worker', listener: WorkerListener): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'beforeExit', listener: BeforeExitListener): this; + once(event: 'disconnect', listener: DisconnectListener): this; + once(event: 'exit', listener: ExitListener): this; + once(event: 'rejectionHandled', listener: RejectionHandledListener): this; + once(event: 'uncaughtException', listener: UncaughtExceptionListener): this; + once(event: 'uncaughtExceptionMonitor', listener: UncaughtExceptionListener): this; + once(event: 'unhandledRejection', listener: UnhandledRejectionListener): this; + once(event: 'warning', listener: WarningListener): this; + once(event: 'message', listener: MessageListener): this; + once(event: Signals, listener: SignalsListener): this; + once(event: 'multipleResolves', listener: MultipleResolveListener): this; + once(event: 'worker', listener: WorkerListener): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'beforeExit', listener: BeforeExitListener): this; + prependListener(event: 'disconnect', listener: DisconnectListener): this; + prependListener(event: 'exit', listener: ExitListener): this; + prependListener(event: 'rejectionHandled', listener: RejectionHandledListener): this; + prependListener(event: 'uncaughtException', listener: UncaughtExceptionListener): this; + prependListener(event: 'uncaughtExceptionMonitor', listener: UncaughtExceptionListener): this; + prependListener(event: 'unhandledRejection', listener: UnhandledRejectionListener): this; + prependListener(event: 'warning', listener: WarningListener): this; + prependListener(event: 'message', listener: MessageListener): this; + prependListener(event: Signals, listener: SignalsListener): this; + prependListener(event: 'multipleResolves', listener: MultipleResolveListener): this; + prependListener(event: 'worker', listener: WorkerListener): this; + prependOnceListener(event: 'beforeExit', listener: BeforeExitListener): this; + prependOnceListener(event: 'disconnect', listener: DisconnectListener): this; + prependOnceListener(event: 'exit', listener: ExitListener): this; + prependOnceListener(event: 'rejectionHandled', listener: RejectionHandledListener): this; + prependOnceListener(event: 'uncaughtException', listener: UncaughtExceptionListener): this; + prependOnceListener(event: 'uncaughtExceptionMonitor', listener: UncaughtExceptionListener): this; + prependOnceListener(event: 'unhandledRejection', listener: UnhandledRejectionListener): this; + prependOnceListener(event: 'warning', listener: WarningListener): this; + prependOnceListener(event: 'message', listener: MessageListener): this; + prependOnceListener(event: Signals, listener: SignalsListener): this; + prependOnceListener(event: 'multipleResolves', listener: MultipleResolveListener): this; + prependOnceListener(event: 'worker', listener: WorkerListener): this; + listeners(event: 'beforeExit'): BeforeExitListener[]; + listeners(event: 'disconnect'): DisconnectListener[]; + listeners(event: 'exit'): ExitListener[]; + listeners(event: 'rejectionHandled'): RejectionHandledListener[]; + listeners(event: 'uncaughtException'): UncaughtExceptionListener[]; + listeners(event: 'uncaughtExceptionMonitor'): UncaughtExceptionListener[]; + listeners(event: 'unhandledRejection'): UnhandledRejectionListener[]; + listeners(event: 'warning'): WarningListener[]; + listeners(event: 'message'): MessageListener[]; + listeners(event: Signals): SignalsListener[]; + listeners(event: 'multipleResolves'): MultipleResolveListener[]; + listeners(event: 'worker'): WorkerListener[]; + } + } + } + export = process; +} +declare module 'node:process' { + import process = require('process'); + export = process; +} diff --git a/node_modules/@types/node/ts4.8/punycode.d.ts b/node_modules/@types/node/ts4.8/punycode.d.ts new file mode 100644 index 0000000..87ebbb9 --- /dev/null +++ b/node_modules/@types/node/ts4.8/punycode.d.ts @@ -0,0 +1,117 @@ +/** + * **The version of the punycode module bundled in Node.js is being deprecated.**In a future major version of Node.js this module will be removed. Users + * currently depending on the `punycode` module should switch to using the + * userland-provided [Punycode.js](https://github.com/bestiejs/punycode.js) module instead. For punycode-based URL + * encoding, see `url.domainToASCII` or, more generally, the `WHATWG URL API`. + * + * The `punycode` module is a bundled version of the [Punycode.js](https://github.com/bestiejs/punycode.js) module. It + * can be accessed using: + * + * ```js + * const punycode = require('punycode'); + * ``` + * + * [Punycode](https://tools.ietf.org/html/rfc3492) is a character encoding scheme defined by RFC 3492 that is + * primarily intended for use in Internationalized Domain Names. Because host + * names in URLs are limited to ASCII characters only, Domain Names that contain + * non-ASCII characters must be converted into ASCII using the Punycode scheme. + * For instance, the Japanese character that translates into the English word,`'example'` is `'例'`. The Internationalized Domain Name, `'例.com'` (equivalent + * to `'example.com'`) is represented by Punycode as the ASCII string`'xn--fsq.com'`. + * + * The `punycode` module provides a simple implementation of the Punycode standard. + * + * The `punycode` module is a third-party dependency used by Node.js and + * made available to developers as a convenience. Fixes or other modifications to + * the module must be directed to the [Punycode.js](https://github.com/bestiejs/punycode.js) project. + * @deprecated Since v7.0.0 - Deprecated + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/punycode.js) + */ +declare module 'punycode' { + /** + * The `punycode.decode()` method converts a [Punycode](https://tools.ietf.org/html/rfc3492) string of ASCII-only + * characters to the equivalent string of Unicode codepoints. + * + * ```js + * punycode.decode('maana-pta'); // 'mañana' + * punycode.decode('--dqo34k'); // '☃-⌘' + * ``` + * @since v0.5.1 + */ + function decode(string: string): string; + /** + * The `punycode.encode()` method converts a string of Unicode codepoints to a [Punycode](https://tools.ietf.org/html/rfc3492) string of ASCII-only characters. + * + * ```js + * punycode.encode('mañana'); // 'maana-pta' + * punycode.encode('☃-⌘'); // '--dqo34k' + * ``` + * @since v0.5.1 + */ + function encode(string: string): string; + /** + * The `punycode.toUnicode()` method converts a string representing a domain name + * containing [Punycode](https://tools.ietf.org/html/rfc3492) encoded characters into Unicode. Only the [Punycode](https://tools.ietf.org/html/rfc3492) encoded parts of the domain name are be + * converted. + * + * ```js + * // decode domain names + * punycode.toUnicode('xn--maana-pta.com'); // 'mañana.com' + * punycode.toUnicode('xn----dqo34k.com'); // '☃-⌘.com' + * punycode.toUnicode('example.com'); // 'example.com' + * ``` + * @since v0.6.1 + */ + function toUnicode(domain: string): string; + /** + * The `punycode.toASCII()` method converts a Unicode string representing an + * Internationalized Domain Name to [Punycode](https://tools.ietf.org/html/rfc3492). Only the non-ASCII parts of the + * domain name will be converted. Calling `punycode.toASCII()` on a string that + * already only contains ASCII characters will have no effect. + * + * ```js + * // encode domain names + * punycode.toASCII('mañana.com'); // 'xn--maana-pta.com' + * punycode.toASCII('☃-⌘.com'); // 'xn----dqo34k.com' + * punycode.toASCII('example.com'); // 'example.com' + * ``` + * @since v0.6.1 + */ + function toASCII(domain: string): string; + /** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ + const ucs2: ucs2; + interface ucs2 { + /** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ + decode(string: string): number[]; + /** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ + encode(codePoints: ReadonlyArray): string; + } + /** + * @deprecated since v7.0.0 + * The version of the punycode module bundled in Node.js is being deprecated. + * In a future major version of Node.js this module will be removed. + * Users currently depending on the punycode module should switch to using + * the userland-provided Punycode.js module instead. + */ + const version: string; +} +declare module 'node:punycode' { + export * from 'punycode'; +} diff --git a/node_modules/@types/node/ts4.8/querystring.d.ts b/node_modules/@types/node/ts4.8/querystring.d.ts new file mode 100644 index 0000000..e118547 --- /dev/null +++ b/node_modules/@types/node/ts4.8/querystring.d.ts @@ -0,0 +1,131 @@ +/** + * The `querystring` module provides utilities for parsing and formatting URL + * query strings. It can be accessed using: + * + * ```js + * const querystring = require('querystring'); + * ``` + * + * `querystring` is more performant than `URLSearchParams` but is not a + * standardized API. Use `URLSearchParams` when performance is not critical + * or when compatibility with browser code is desirable. + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/querystring.js) + */ +declare module 'querystring' { + interface StringifyOptions { + encodeURIComponent?: ((str: string) => string) | undefined; + } + interface ParseOptions { + maxKeys?: number | undefined; + decodeURIComponent?: ((str: string) => string) | undefined; + } + interface ParsedUrlQuery extends NodeJS.Dict {} + interface ParsedUrlQueryInput extends NodeJS.Dict | ReadonlyArray | ReadonlyArray | null> {} + /** + * The `querystring.stringify()` method produces a URL query string from a + * given `obj` by iterating through the object's "own properties". + * + * It serializes the following types of values passed in `obj`:[string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) | + * [number](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) | + * [bigint](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) | + * [boolean](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) | + * [string\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#String_type) | + * [number\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Number_type) | + * [bigint\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt) | + * [boolean\[\]](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Boolean_type) The numeric values must be finite. Any other input values will be coerced to + * empty strings. + * + * ```js + * querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' }); + * // Returns 'foo=bar&baz=qux&baz=quux&corge=' + * + * querystring.stringify({ foo: 'bar', baz: 'qux' }, ';', ':'); + * // Returns 'foo:bar;baz:qux' + * ``` + * + * By default, characters requiring percent-encoding within the query string will + * be encoded as UTF-8\. If an alternative encoding is required, then an alternative`encodeURIComponent` option will need to be specified: + * + * ```js + * // Assuming gbkEncodeURIComponent function already exists, + * + * querystring.stringify({ w: '中文', foo: 'bar' }, null, null, + * { encodeURIComponent: gbkEncodeURIComponent }); + * ``` + * @since v0.1.25 + * @param obj The object to serialize into a URL query string + * @param [sep='&'] The substring used to delimit key and value pairs in the query string. + * @param [eq='='] . The substring used to delimit keys and values in the query string. + */ + function stringify(obj?: ParsedUrlQueryInput, sep?: string, eq?: string, options?: StringifyOptions): string; + /** + * The `querystring.parse()` method parses a URL query string (`str`) into a + * collection of key and value pairs. + * + * For example, the query string `'foo=bar&abc=xyz&abc=123'` is parsed into: + * + * ```js + * { + * foo: 'bar', + * abc: ['xyz', '123'] + * } + * ``` + * + * The object returned by the `querystring.parse()` method _does not_prototypically inherit from the JavaScript `Object`. This means that typical`Object` methods such as `obj.toString()`, + * `obj.hasOwnProperty()`, and others + * are not defined and _will not work_. + * + * By default, percent-encoded characters within the query string will be assumed + * to use UTF-8 encoding. If an alternative character encoding is used, then an + * alternative `decodeURIComponent` option will need to be specified: + * + * ```js + * // Assuming gbkDecodeURIComponent function already exists... + * + * querystring.parse('w=%D6%D0%CE%C4&foo=bar', null, null, + * { decodeURIComponent: gbkDecodeURIComponent }); + * ``` + * @since v0.1.25 + * @param str The URL query string to parse + * @param [sep='&'] The substring used to delimit key and value pairs in the query string. + * @param [eq='='] . The substring used to delimit keys and values in the query string. + */ + function parse(str: string, sep?: string, eq?: string, options?: ParseOptions): ParsedUrlQuery; + /** + * The querystring.encode() function is an alias for querystring.stringify(). + */ + const encode: typeof stringify; + /** + * The querystring.decode() function is an alias for querystring.parse(). + */ + const decode: typeof parse; + /** + * The `querystring.escape()` method performs URL percent-encoding on the given`str` in a manner that is optimized for the specific requirements of URL + * query strings. + * + * The `querystring.escape()` method is used by `querystring.stringify()` and is + * generally not expected to be used directly. It is exported primarily to allow + * application code to provide a replacement percent-encoding implementation if + * necessary by assigning `querystring.escape` to an alternative function. + * @since v0.1.25 + */ + function escape(str: string): string; + /** + * The `querystring.unescape()` method performs decoding of URL percent-encoded + * characters on the given `str`. + * + * The `querystring.unescape()` method is used by `querystring.parse()` and is + * generally not expected to be used directly. It is exported primarily to allow + * application code to provide a replacement decoding implementation if + * necessary by assigning `querystring.unescape` to an alternative function. + * + * By default, the `querystring.unescape()` method will attempt to use the + * JavaScript built-in `decodeURIComponent()` method to decode. If that fails, + * a safer equivalent that does not throw on malformed URLs will be used. + * @since v0.1.25 + */ + function unescape(str: string): string; +} +declare module 'node:querystring' { + export * from 'querystring'; +} diff --git a/node_modules/@types/node/ts4.8/readline.d.ts b/node_modules/@types/node/ts4.8/readline.d.ts new file mode 100644 index 0000000..6ab64ac --- /dev/null +++ b/node_modules/@types/node/ts4.8/readline.d.ts @@ -0,0 +1,653 @@ +/** + * The `readline` module provides an interface for reading data from a `Readable` stream (such as `process.stdin`) one line at a time. + * + * To use the promise-based APIs: + * + * ```js + * import * as readline from 'node:readline/promises'; + * ``` + * + * To use the callback and sync APIs: + * + * ```js + * import * as readline from 'node:readline'; + * ``` + * + * The following simple example illustrates the basic use of the `readline` module. + * + * ```js + * import * as readline from 'node:readline/promises'; + * import { stdin as input, stdout as output } from 'node:process'; + * + * const rl = readline.createInterface({ input, output }); + * + * const answer = await rl.question('What do you think of Node.js? '); + * + * console.log(`Thank you for your valuable feedback: ${answer}`); + * + * rl.close(); + * ``` + * + * Once this code is invoked, the Node.js application will not terminate until the`readline.Interface` is closed because the interface waits for data to be + * received on the `input` stream. + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/readline.js) + */ +declare module 'readline' { + import { Abortable, EventEmitter } from 'node:events'; + import * as promises from 'node:readline/promises'; + + export { promises }; + export interface Key { + sequence?: string | undefined; + name?: string | undefined; + ctrl?: boolean | undefined; + meta?: boolean | undefined; + shift?: boolean | undefined; + } + /** + * Instances of the `readline.Interface` class are constructed using the`readline.createInterface()` method. Every instance is associated with a + * single `input` `Readable` stream and a single `output` `Writable` stream. + * The `output` stream is used to print prompts for user input that arrives on, + * and is read from, the `input` stream. + * @since v0.1.104 + */ + export class Interface extends EventEmitter { + readonly terminal: boolean; + /** + * The current input data being processed by node. + * + * This can be used when collecting input from a TTY stream to retrieve the + * current value that has been processed thus far, prior to the `line` event + * being emitted. Once the `line` event has been emitted, this property will + * be an empty string. + * + * Be aware that modifying the value during the instance runtime may have + * unintended consequences if `rl.cursor` is not also controlled. + * + * **If not using a TTY stream for input, use the `'line'` event.** + * + * One possible use case would be as follows: + * + * ```js + * const values = ['lorem ipsum', 'dolor sit amet']; + * const rl = readline.createInterface(process.stdin); + * const showResults = debounce(() => { + * console.log( + * '\n', + * values.filter((val) => val.startsWith(rl.line)).join(' ') + * ); + * }, 300); + * process.stdin.on('keypress', (c, k) => { + * showResults(); + * }); + * ``` + * @since v0.1.98 + */ + readonly line: string; + /** + * The cursor position relative to `rl.line`. + * + * This will track where the current cursor lands in the input string, when + * reading input from a TTY stream. The position of cursor determines the + * portion of the input string that will be modified as input is processed, + * as well as the column where the terminal caret will be rendered. + * @since v0.1.98 + */ + readonly cursor: number; + /** + * NOTE: According to the documentation: + * + * > Instances of the `readline.Interface` class are constructed using the + * > `readline.createInterface()` method. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/readline.html#readline_class_interface + */ + protected constructor(input: NodeJS.ReadableStream, output?: NodeJS.WritableStream, completer?: Completer | AsyncCompleter, terminal?: boolean); + /** + * NOTE: According to the documentation: + * + * > Instances of the `readline.Interface` class are constructed using the + * > `readline.createInterface()` method. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/readline.html#readline_class_interface + */ + protected constructor(options: ReadLineOptions); + /** + * The `rl.getPrompt()` method returns the current prompt used by `rl.prompt()`. + * @since v15.3.0 + * @return the current prompt string + */ + getPrompt(): string; + /** + * The `rl.setPrompt()` method sets the prompt that will be written to `output`whenever `rl.prompt()` is called. + * @since v0.1.98 + */ + setPrompt(prompt: string): void; + /** + * The `rl.prompt()` method writes the `readline.Interface` instances configured`prompt` to a new line in `output` in order to provide a user with a new + * location at which to provide input. + * + * When called, `rl.prompt()` will resume the `input` stream if it has been + * paused. + * + * If the `readline.Interface` was created with `output` set to `null` or`undefined` the prompt is not written. + * @since v0.1.98 + * @param preserveCursor If `true`, prevents the cursor placement from being reset to `0`. + */ + prompt(preserveCursor?: boolean): void; + /** + * The `rl.question()` method displays the `query` by writing it to the `output`, + * waits for user input to be provided on `input`, then invokes the `callback`function passing the provided input as the first argument. + * + * When called, `rl.question()` will resume the `input` stream if it has been + * paused. + * + * If the `readline.Interface` was created with `output` set to `null` or`undefined` the `query` is not written. + * + * The `callback` function passed to `rl.question()` does not follow the typical + * pattern of accepting an `Error` object or `null` as the first argument. + * The `callback` is called with the provided answer as the only argument. + * + * Example usage: + * + * ```js + * rl.question('What is your favorite food? ', (answer) => { + * console.log(`Oh, so your favorite food is ${answer}`); + * }); + * ``` + * + * Using an `AbortController` to cancel a question. + * + * ```js + * const ac = new AbortController(); + * const signal = ac.signal; + * + * rl.question('What is your favorite food? ', { signal }, (answer) => { + * console.log(`Oh, so your favorite food is ${answer}`); + * }); + * + * signal.addEventListener('abort', () => { + * console.log('The food question timed out'); + * }, { once: true }); + * + * setTimeout(() => ac.abort(), 10000); + * ``` + * + * If this method is invoked as it's util.promisify()ed version, it returns a + * Promise that fulfills with the answer. If the question is canceled using + * an `AbortController` it will reject with an `AbortError`. + * + * ```js + * const util = require('util'); + * const question = util.promisify(rl.question).bind(rl); + * + * async function questionExample() { + * try { + * const answer = await question('What is you favorite food? '); + * console.log(`Oh, so your favorite food is ${answer}`); + * } catch (err) { + * console.error('Question rejected', err); + * } + * } + * questionExample(); + * ``` + * @since v0.3.3 + * @param query A statement or query to write to `output`, prepended to the prompt. + * @param callback A callback function that is invoked with the user's input in response to the `query`. + */ + question(query: string, callback: (answer: string) => void): void; + question(query: string, options: Abortable, callback: (answer: string) => void): void; + /** + * The `rl.pause()` method pauses the `input` stream, allowing it to be resumed + * later if necessary. + * + * Calling `rl.pause()` does not immediately pause other events (including`'line'`) from being emitted by the `readline.Interface` instance. + * @since v0.3.4 + */ + pause(): this; + /** + * The `rl.resume()` method resumes the `input` stream if it has been paused. + * @since v0.3.4 + */ + resume(): this; + /** + * The `rl.close()` method closes the `readline.Interface` instance and + * relinquishes control over the `input` and `output` streams. When called, + * the `'close'` event will be emitted. + * + * Calling `rl.close()` does not immediately stop other events (including `'line'`) + * from being emitted by the `readline.Interface` instance. + * @since v0.1.98 + */ + close(): void; + /** + * The `rl.write()` method will write either `data` or a key sequence identified + * by `key` to the `output`. The `key` argument is supported only if `output` is + * a `TTY` text terminal. See `TTY keybindings` for a list of key + * combinations. + * + * If `key` is specified, `data` is ignored. + * + * When called, `rl.write()` will resume the `input` stream if it has been + * paused. + * + * If the `readline.Interface` was created with `output` set to `null` or`undefined` the `data` and `key` are not written. + * + * ```js + * rl.write('Delete this!'); + * // Simulate Ctrl+U to delete the line written previously + * rl.write(null, { ctrl: true, name: 'u' }); + * ``` + * + * The `rl.write()` method will write the data to the `readline` `Interface`'s`input`_as if it were provided by the user_. + * @since v0.1.98 + */ + write(data: string | Buffer, key?: Key): void; + write(data: undefined | null | string | Buffer, key: Key): void; + /** + * Returns the real position of the cursor in relation to the input + * prompt + string. Long input (wrapping) strings, as well as multiple + * line prompts are included in the calculations. + * @since v13.5.0, v12.16.0 + */ + getCursorPos(): CursorPos; + /** + * events.EventEmitter + * 1. close + * 2. line + * 3. pause + * 4. resume + * 5. SIGCONT + * 6. SIGINT + * 7. SIGTSTP + * 8. history + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'line', listener: (input: string) => void): this; + addListener(event: 'pause', listener: () => void): this; + addListener(event: 'resume', listener: () => void): this; + addListener(event: 'SIGCONT', listener: () => void): this; + addListener(event: 'SIGINT', listener: () => void): this; + addListener(event: 'SIGTSTP', listener: () => void): this; + addListener(event: 'history', listener: (history: string[]) => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'close'): boolean; + emit(event: 'line', input: string): boolean; + emit(event: 'pause'): boolean; + emit(event: 'resume'): boolean; + emit(event: 'SIGCONT'): boolean; + emit(event: 'SIGINT'): boolean; + emit(event: 'SIGTSTP'): boolean; + emit(event: 'history', history: string[]): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'line', listener: (input: string) => void): this; + on(event: 'pause', listener: () => void): this; + on(event: 'resume', listener: () => void): this; + on(event: 'SIGCONT', listener: () => void): this; + on(event: 'SIGINT', listener: () => void): this; + on(event: 'SIGTSTP', listener: () => void): this; + on(event: 'history', listener: (history: string[]) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'line', listener: (input: string) => void): this; + once(event: 'pause', listener: () => void): this; + once(event: 'resume', listener: () => void): this; + once(event: 'SIGCONT', listener: () => void): this; + once(event: 'SIGINT', listener: () => void): this; + once(event: 'SIGTSTP', listener: () => void): this; + once(event: 'history', listener: (history: string[]) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'line', listener: (input: string) => void): this; + prependListener(event: 'pause', listener: () => void): this; + prependListener(event: 'resume', listener: () => void): this; + prependListener(event: 'SIGCONT', listener: () => void): this; + prependListener(event: 'SIGINT', listener: () => void): this; + prependListener(event: 'SIGTSTP', listener: () => void): this; + prependListener(event: 'history', listener: (history: string[]) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'line', listener: (input: string) => void): this; + prependOnceListener(event: 'pause', listener: () => void): this; + prependOnceListener(event: 'resume', listener: () => void): this; + prependOnceListener(event: 'SIGCONT', listener: () => void): this; + prependOnceListener(event: 'SIGINT', listener: () => void): this; + prependOnceListener(event: 'SIGTSTP', listener: () => void): this; + prependOnceListener(event: 'history', listener: (history: string[]) => void): this; + [Symbol.asyncIterator](): AsyncIterableIterator; + } + export type ReadLine = Interface; // type forwarded for backwards compatibility + export type Completer = (line: string) => CompleterResult; + export type AsyncCompleter = (line: string, callback: (err?: null | Error, result?: CompleterResult) => void) => void; + export type CompleterResult = [string[], string]; + export interface ReadLineOptions { + input: NodeJS.ReadableStream; + output?: NodeJS.WritableStream | undefined; + completer?: Completer | AsyncCompleter | undefined; + terminal?: boolean | undefined; + /** + * Initial list of history lines. This option makes sense + * only if `terminal` is set to `true` by the user or by an internal `output` + * check, otherwise the history caching mechanism is not initialized at all. + * @default [] + */ + history?: string[] | undefined; + historySize?: number | undefined; + prompt?: string | undefined; + crlfDelay?: number | undefined; + /** + * If `true`, when a new input line added + * to the history list duplicates an older one, this removes the older line + * from the list. + * @default false + */ + removeHistoryDuplicates?: boolean | undefined; + escapeCodeTimeout?: number | undefined; + tabSize?: number | undefined; + } + /** + * The `readline.createInterface()` method creates a new `readline.Interface`instance. + * + * ```js + * const readline = require('readline'); + * const rl = readline.createInterface({ + * input: process.stdin, + * output: process.stdout + * }); + * ``` + * + * Once the `readline.Interface` instance is created, the most common case is to + * listen for the `'line'` event: + * + * ```js + * rl.on('line', (line) => { + * console.log(`Received: ${line}`); + * }); + * ``` + * + * If `terminal` is `true` for this instance then the `output` stream will get + * the best compatibility if it defines an `output.columns` property and emits + * a `'resize'` event on the `output` if or when the columns ever change + * (`process.stdout` does this automatically when it is a TTY). + * + * When creating a `readline.Interface` using `stdin` as input, the program + * will not terminate until it receives `EOF` (Ctrl+D on + * Linux/macOS, Ctrl+Z followed by Return on + * Windows). + * If you want your application to exit without waiting for user input, you can `unref()` the standard input stream: + * + * ```js + * process.stdin.unref(); + * ``` + * @since v0.1.98 + */ + export function createInterface(input: NodeJS.ReadableStream, output?: NodeJS.WritableStream, completer?: Completer | AsyncCompleter, terminal?: boolean): Interface; + export function createInterface(options: ReadLineOptions): Interface; + /** + * The `readline.emitKeypressEvents()` method causes the given `Readable` stream to begin emitting `'keypress'` events corresponding to received input. + * + * Optionally, `interface` specifies a `readline.Interface` instance for which + * autocompletion is disabled when copy-pasted input is detected. + * + * If the `stream` is a `TTY`, then it must be in raw mode. + * + * This is automatically called by any readline instance on its `input` if the`input` is a terminal. Closing the `readline` instance does not stop + * the `input` from emitting `'keypress'` events. + * + * ```js + * readline.emitKeypressEvents(process.stdin); + * if (process.stdin.isTTY) + * process.stdin.setRawMode(true); + * ``` + * + * ## Example: Tiny CLI + * + * The following example illustrates the use of `readline.Interface` class to + * implement a small command-line interface: + * + * ```js + * const readline = require('readline'); + * const rl = readline.createInterface({ + * input: process.stdin, + * output: process.stdout, + * prompt: 'OHAI> ' + * }); + * + * rl.prompt(); + * + * rl.on('line', (line) => { + * switch (line.trim()) { + * case 'hello': + * console.log('world!'); + * break; + * default: + * console.log(`Say what? I might have heard '${line.trim()}'`); + * break; + * } + * rl.prompt(); + * }).on('close', () => { + * console.log('Have a great day!'); + * process.exit(0); + * }); + * ``` + * + * ## Example: Read file stream line-by-Line + * + * A common use case for `readline` is to consume an input file one line at a + * time. The easiest way to do so is leveraging the `fs.ReadStream` API as + * well as a `for await...of` loop: + * + * ```js + * const fs = require('fs'); + * const readline = require('readline'); + * + * async function processLineByLine() { + * const fileStream = fs.createReadStream('input.txt'); + * + * const rl = readline.createInterface({ + * input: fileStream, + * crlfDelay: Infinity + * }); + * // Note: we use the crlfDelay option to recognize all instances of CR LF + * // ('\r\n') in input.txt as a single line break. + * + * for await (const line of rl) { + * // Each line in input.txt will be successively available here as `line`. + * console.log(`Line from file: ${line}`); + * } + * } + * + * processLineByLine(); + * ``` + * + * Alternatively, one could use the `'line'` event: + * + * ```js + * const fs = require('fs'); + * const readline = require('readline'); + * + * const rl = readline.createInterface({ + * input: fs.createReadStream('sample.txt'), + * crlfDelay: Infinity + * }); + * + * rl.on('line', (line) => { + * console.log(`Line from file: ${line}`); + * }); + * ``` + * + * Currently, `for await...of` loop can be a bit slower. If `async` / `await`flow and speed are both essential, a mixed approach can be applied: + * + * ```js + * const { once } = require('events'); + * const { createReadStream } = require('fs'); + * const { createInterface } = require('readline'); + * + * (async function processLineByLine() { + * try { + * const rl = createInterface({ + * input: createReadStream('big-file.txt'), + * crlfDelay: Infinity + * }); + * + * rl.on('line', (line) => { + * // Process the line. + * }); + * + * await once(rl, 'close'); + * + * console.log('File processed.'); + * } catch (err) { + * console.error(err); + * } + * })(); + * ``` + * @since v0.7.7 + */ + export function emitKeypressEvents(stream: NodeJS.ReadableStream, readlineInterface?: Interface): void; + export type Direction = -1 | 0 | 1; + export interface CursorPos { + rows: number; + cols: number; + } + /** + * The `readline.clearLine()` method clears current line of given `TTY` stream + * in a specified direction identified by `dir`. + * @since v0.7.7 + * @param callback Invoked once the operation completes. + * @return `false` if `stream` wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + export function clearLine(stream: NodeJS.WritableStream, dir: Direction, callback?: () => void): boolean; + /** + * The `readline.clearScreenDown()` method clears the given `TTY` stream from + * the current position of the cursor down. + * @since v0.7.7 + * @param callback Invoked once the operation completes. + * @return `false` if `stream` wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + export function clearScreenDown(stream: NodeJS.WritableStream, callback?: () => void): boolean; + /** + * The `readline.cursorTo()` method moves cursor to the specified position in a + * given `TTY` `stream`. + * @since v0.7.7 + * @param callback Invoked once the operation completes. + * @return `false` if `stream` wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + export function cursorTo(stream: NodeJS.WritableStream, x: number, y?: number, callback?: () => void): boolean; + /** + * The `readline.moveCursor()` method moves the cursor _relative_ to its current + * position in a given `TTY` `stream`. + * + * ## Example: Tiny CLI + * + * The following example illustrates the use of `readline.Interface` class to + * implement a small command-line interface: + * + * ```js + * const readline = require('readline'); + * const rl = readline.createInterface({ + * input: process.stdin, + * output: process.stdout, + * prompt: 'OHAI> ' + * }); + * + * rl.prompt(); + * + * rl.on('line', (line) => { + * switch (line.trim()) { + * case 'hello': + * console.log('world!'); + * break; + * default: + * console.log(`Say what? I might have heard '${line.trim()}'`); + * break; + * } + * rl.prompt(); + * }).on('close', () => { + * console.log('Have a great day!'); + * process.exit(0); + * }); + * ``` + * + * ## Example: Read file stream line-by-Line + * + * A common use case for `readline` is to consume an input file one line at a + * time. The easiest way to do so is leveraging the `fs.ReadStream` API as + * well as a `for await...of` loop: + * + * ```js + * const fs = require('fs'); + * const readline = require('readline'); + * + * async function processLineByLine() { + * const fileStream = fs.createReadStream('input.txt'); + * + * const rl = readline.createInterface({ + * input: fileStream, + * crlfDelay: Infinity + * }); + * // Note: we use the crlfDelay option to recognize all instances of CR LF + * // ('\r\n') in input.txt as a single line break. + * + * for await (const line of rl) { + * // Each line in input.txt will be successively available here as `line`. + * console.log(`Line from file: ${line}`); + * } + * } + * + * processLineByLine(); + * ``` + * + * Alternatively, one could use the `'line'` event: + * + * ```js + * const fs = require('fs'); + * const readline = require('readline'); + * + * const rl = readline.createInterface({ + * input: fs.createReadStream('sample.txt'), + * crlfDelay: Infinity + * }); + * + * rl.on('line', (line) => { + * console.log(`Line from file: ${line}`); + * }); + * ``` + * + * Currently, `for await...of` loop can be a bit slower. If `async` / `await`flow and speed are both essential, a mixed approach can be applied: + * + * ```js + * const { once } = require('events'); + * const { createReadStream } = require('fs'); + * const { createInterface } = require('readline'); + * + * (async function processLineByLine() { + * try { + * const rl = createInterface({ + * input: createReadStream('big-file.txt'), + * crlfDelay: Infinity + * }); + * + * rl.on('line', (line) => { + * // Process the line. + * }); + * + * await once(rl, 'close'); + * + * console.log('File processed.'); + * } catch (err) { + * console.error(err); + * } + * })(); + * ``` + * @since v0.7.7 + * @param callback Invoked once the operation completes. + * @return `false` if `stream` wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + export function moveCursor(stream: NodeJS.WritableStream, dx: number, dy: number, callback?: () => void): boolean; +} +declare module 'node:readline' { + export * from 'readline'; +} diff --git a/node_modules/@types/node/ts4.8/readline/promises.d.ts b/node_modules/@types/node/ts4.8/readline/promises.d.ts new file mode 100644 index 0000000..8f9f06f --- /dev/null +++ b/node_modules/@types/node/ts4.8/readline/promises.d.ts @@ -0,0 +1,143 @@ +/** + * The `readline/promise` module provides an API for reading lines of input from a Readable stream one line at a time. + * + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/readline/promises.js) + * @since v17.0.0 + */ +declare module 'readline/promises' { + import { Interface as _Interface, ReadLineOptions, Completer, AsyncCompleter, Direction } from 'node:readline'; + import { Abortable } from 'node:events'; + + class Interface extends _Interface { + /** + * The rl.question() method displays the query by writing it to the output, waits for user input to be provided on input, + * then invokes the callback function passing the provided input as the first argument. + * + * When called, rl.question() will resume the input stream if it has been paused. + * + * If the readlinePromises.Interface was created with output set to null or undefined the query is not written. + * + * If the question is called after rl.close(), it returns a rejected promise. + * + * Example usage: + * + * ```js + * const answer = await rl.question('What is your favorite food? '); + * console.log(`Oh, so your favorite food is ${answer}`); + * ``` + * + * Using an AbortSignal to cancel a question. + * + * ```js + * const signal = AbortSignal.timeout(10_000); + * + * signal.addEventListener('abort', () => { + * console.log('The food question timed out'); + * }, { once: true }); + * + * const answer = await rl.question('What is your favorite food? ', { signal }); + * console.log(`Oh, so your favorite food is ${answer}`); + * ``` + * + * @since v17.0.0 + * @param query A statement or query to write to output, prepended to the prompt. + */ + question(query: string): Promise; + question(query: string, options: Abortable): Promise; + } + + class Readline { + /** + * @param stream A TTY stream. + */ + constructor(stream: NodeJS.WritableStream, options?: { autoCommit?: boolean }); + /** + * The `rl.clearLine()` method adds to the internal list of pending action an action that clears current line of the associated `stream` in a specified direction identified by `dir`. + * Call `rl.commit()` to see the effect of this method, unless `autoCommit: true` was passed to the constructor. + */ + clearLine(dir: Direction): this; + /** + * The `rl.clearScreenDown()` method adds to the internal list of pending action an action that clears the associated `stream` from the current position of the cursor down. + * Call `rl.commit()` to see the effect of this method, unless `autoCommit: true` was passed to the constructor. + */ + clearScreenDown(): this; + /** + * The `rl.commit()` method sends all the pending actions to the associated `stream` and clears the internal list of pending actions. + */ + commit(): Promise; + /** + * The `rl.cursorTo()` method adds to the internal list of pending action an action that moves cursor to the specified position in the associated `stream`. + * Call `rl.commit()` to see the effect of this method, unless `autoCommit: true` was passed to the constructor. + */ + cursorTo(x: number, y?: number): this; + /** + * The `rl.moveCursor()` method adds to the internal list of pending action an action that moves the cursor relative to its current position in the associated `stream`. + * Call `rl.commit()` to see the effect of this method, unless autoCommit: true was passed to the constructor. + */ + moveCursor(dx: number, dy: number): this; + /** + * The `rl.rollback()` method clears the internal list of pending actions without sending it to the associated `stream`. + */ + rollback(): this; + } + + /** + * The `readlinePromises.createInterface()` method creates a new `readlinePromises.Interface` instance. + * + * ```js + * const readlinePromises = require('node:readline/promises'); + * const rl = readlinePromises.createInterface({ + * input: process.stdin, + * output: process.stdout + * }); + * ``` + * + * Once the `readlinePromises.Interface` instance is created, the most common case is to listen for the `'line'` event: + * + * ```js + * rl.on('line', (line) => { + * console.log(`Received: ${line}`); + * }); + * ``` + * + * If `terminal` is `true` for this instance then the `output` stream will get the best compatibility if it defines an `output.columns` property, + * and emits a `'resize'` event on the `output`, if or when the columns ever change (`process.stdout` does this automatically when it is a TTY). + * + * ## Use of the `completer` function + * + * The `completer` function takes the current line entered by the user as an argument, and returns an `Array` with 2 entries: + * + * - An Array with matching entries for the completion. + * - The substring that was used for the matching. + * + * For instance: `[[substr1, substr2, ...], originalsubstring]`. + * + * ```js + * function completer(line) { + * const completions = '.help .error .exit .quit .q'.split(' '); + * const hits = completions.filter((c) => c.startsWith(line)); + * // Show all completions if none found + * return [hits.length ? hits : completions, line]; + * } + * ``` + * + * The `completer` function can also returns a `Promise`, or be asynchronous: + * + * ```js + * async function completer(linePartial) { + * await someAsyncWork(); + * return [['123'], linePartial]; + * } + * ``` + */ + function createInterface( + input: NodeJS.ReadableStream, + output?: NodeJS.WritableStream, + completer?: Completer | AsyncCompleter, + terminal?: boolean, + ): Interface; + function createInterface(options: ReadLineOptions): Interface; +} +declare module 'node:readline/promises' { + export * from 'readline/promises'; +} diff --git a/node_modules/@types/node/ts4.8/repl.d.ts b/node_modules/@types/node/ts4.8/repl.d.ts new file mode 100644 index 0000000..be42ccc --- /dev/null +++ b/node_modules/@types/node/ts4.8/repl.d.ts @@ -0,0 +1,424 @@ +/** + * The `repl` module provides a Read-Eval-Print-Loop (REPL) implementation that + * is available both as a standalone program or includible in other applications. + * It can be accessed using: + * + * ```js + * const repl = require('repl'); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/repl.js) + */ +declare module 'repl' { + import { Interface, Completer, AsyncCompleter } from 'node:readline'; + import { Context } from 'node:vm'; + import { InspectOptions } from 'node:util'; + interface ReplOptions { + /** + * The input prompt to display. + * @default "> " + */ + prompt?: string | undefined; + /** + * The `Readable` stream from which REPL input will be read. + * @default process.stdin + */ + input?: NodeJS.ReadableStream | undefined; + /** + * The `Writable` stream to which REPL output will be written. + * @default process.stdout + */ + output?: NodeJS.WritableStream | undefined; + /** + * If `true`, specifies that the output should be treated as a TTY terminal, and have + * ANSI/VT100 escape codes written to it. + * Default: checking the value of the `isTTY` property on the output stream upon + * instantiation. + */ + terminal?: boolean | undefined; + /** + * The function to be used when evaluating each given line of input. + * Default: an async wrapper for the JavaScript `eval()` function. An `eval` function can + * error with `repl.Recoverable` to indicate the input was incomplete and prompt for + * additional lines. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_default_evaluation + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_custom_evaluation_functions + */ + eval?: REPLEval | undefined; + /** + * Defines if the repl prints output previews or not. + * @default `true` Always `false` in case `terminal` is falsy. + */ + preview?: boolean | undefined; + /** + * If `true`, specifies that the default `writer` function should include ANSI color + * styling to REPL output. If a custom `writer` function is provided then this has no + * effect. + * Default: the REPL instance's `terminal` value. + */ + useColors?: boolean | undefined; + /** + * If `true`, specifies that the default evaluation function will use the JavaScript + * `global` as the context as opposed to creating a new separate context for the REPL + * instance. The node CLI REPL sets this value to `true`. + * Default: `false`. + */ + useGlobal?: boolean | undefined; + /** + * If `true`, specifies that the default writer will not output the return value of a + * command if it evaluates to `undefined`. + * Default: `false`. + */ + ignoreUndefined?: boolean | undefined; + /** + * The function to invoke to format the output of each command before writing to `output`. + * Default: a wrapper for `util.inspect`. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_customizing_repl_output + */ + writer?: REPLWriter | undefined; + /** + * An optional function used for custom Tab auto completion. + * + * @see https://nodejs.org/dist/latest-v11.x/docs/api/readline.html#readline_use_of_the_completer_function + */ + completer?: Completer | AsyncCompleter | undefined; + /** + * A flag that specifies whether the default evaluator executes all JavaScript commands in + * strict mode or default (sloppy) mode. + * Accepted values are: + * - `repl.REPL_MODE_SLOPPY` - evaluates expressions in sloppy mode. + * - `repl.REPL_MODE_STRICT` - evaluates expressions in strict mode. This is equivalent to + * prefacing every repl statement with `'use strict'`. + */ + replMode?: typeof REPL_MODE_SLOPPY | typeof REPL_MODE_STRICT | undefined; + /** + * Stop evaluating the current piece of code when `SIGINT` is received, i.e. `Ctrl+C` is + * pressed. This cannot be used together with a custom `eval` function. + * Default: `false`. + */ + breakEvalOnSigint?: boolean | undefined; + } + type REPLEval = (this: REPLServer, evalCmd: string, context: Context, file: string, cb: (err: Error | null, result: any) => void) => void; + type REPLWriter = (this: REPLServer, obj: any) => string; + /** + * This is the default "writer" value, if none is passed in the REPL options, + * and it can be overridden by custom print functions. + */ + const writer: REPLWriter & { + options: InspectOptions; + }; + type REPLCommandAction = (this: REPLServer, text: string) => void; + interface REPLCommand { + /** + * Help text to be displayed when `.help` is entered. + */ + help?: string | undefined; + /** + * The function to execute, optionally accepting a single string argument. + */ + action: REPLCommandAction; + } + /** + * Instances of `repl.REPLServer` are created using the {@link start} method + * or directly using the JavaScript `new` keyword. + * + * ```js + * const repl = require('repl'); + * + * const options = { useColors: true }; + * + * const firstInstance = repl.start(options); + * const secondInstance = new repl.REPLServer(options); + * ``` + * @since v0.1.91 + */ + class REPLServer extends Interface { + /** + * The `vm.Context` provided to the `eval` function to be used for JavaScript + * evaluation. + */ + readonly context: Context; + /** + * @deprecated since v14.3.0 - Use `input` instead. + */ + readonly inputStream: NodeJS.ReadableStream; + /** + * @deprecated since v14.3.0 - Use `output` instead. + */ + readonly outputStream: NodeJS.WritableStream; + /** + * The `Readable` stream from which REPL input will be read. + */ + readonly input: NodeJS.ReadableStream; + /** + * The `Writable` stream to which REPL output will be written. + */ + readonly output: NodeJS.WritableStream; + /** + * The commands registered via `replServer.defineCommand()`. + */ + readonly commands: NodeJS.ReadOnlyDict; + /** + * A value indicating whether the REPL is currently in "editor mode". + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_commands_and_special_keys + */ + readonly editorMode: boolean; + /** + * A value indicating whether the `_` variable has been assigned. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable + */ + readonly underscoreAssigned: boolean; + /** + * The last evaluation result from the REPL (assigned to the `_` variable inside of the REPL). + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable + */ + readonly last: any; + /** + * A value indicating whether the `_error` variable has been assigned. + * + * @since v9.8.0 + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable + */ + readonly underscoreErrAssigned: boolean; + /** + * The last error raised inside the REPL (assigned to the `_error` variable inside of the REPL). + * + * @since v9.8.0 + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_assignment_of_the_underscore_variable + */ + readonly lastError: any; + /** + * Specified in the REPL options, this is the function to be used when evaluating each + * given line of input. If not specified in the REPL options, this is an async wrapper + * for the JavaScript `eval()` function. + */ + readonly eval: REPLEval; + /** + * Specified in the REPL options, this is a value indicating whether the default + * `writer` function should include ANSI color styling to REPL output. + */ + readonly useColors: boolean; + /** + * Specified in the REPL options, this is a value indicating whether the default `eval` + * function will use the JavaScript `global` as the context as opposed to creating a new + * separate context for the REPL instance. + */ + readonly useGlobal: boolean; + /** + * Specified in the REPL options, this is a value indicating whether the default `writer` + * function should output the result of a command if it evaluates to `undefined`. + */ + readonly ignoreUndefined: boolean; + /** + * Specified in the REPL options, this is the function to invoke to format the output of + * each command before writing to `outputStream`. If not specified in the REPL options, + * this will be a wrapper for `util.inspect`. + */ + readonly writer: REPLWriter; + /** + * Specified in the REPL options, this is the function to use for custom Tab auto-completion. + */ + readonly completer: Completer | AsyncCompleter; + /** + * Specified in the REPL options, this is a flag that specifies whether the default `eval` + * function should execute all JavaScript commands in strict mode or default (sloppy) mode. + * Possible values are: + * - `repl.REPL_MODE_SLOPPY` - evaluates expressions in sloppy mode. + * - `repl.REPL_MODE_STRICT` - evaluates expressions in strict mode. This is equivalent to + * prefacing every repl statement with `'use strict'`. + */ + readonly replMode: typeof REPL_MODE_SLOPPY | typeof REPL_MODE_STRICT; + /** + * NOTE: According to the documentation: + * + * > Instances of `repl.REPLServer` are created using the `repl.start()` method and + * > _should not_ be created directly using the JavaScript `new` keyword. + * + * `REPLServer` cannot be subclassed due to implementation specifics in NodeJS. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_class_replserver + */ + private constructor(); + /** + * The `replServer.defineCommand()` method is used to add new `.`\-prefixed commands + * to the REPL instance. Such commands are invoked by typing a `.` followed by the`keyword`. The `cmd` is either a `Function` or an `Object` with the following + * properties: + * + * The following example shows two new commands added to the REPL instance: + * + * ```js + * const repl = require('repl'); + * + * const replServer = repl.start({ prompt: '> ' }); + * replServer.defineCommand('sayhello', { + * help: 'Say hello', + * action(name) { + * this.clearBufferedCommand(); + * console.log(`Hello, ${name}!`); + * this.displayPrompt(); + * } + * }); + * replServer.defineCommand('saybye', function saybye() { + * console.log('Goodbye!'); + * this.close(); + * }); + * ``` + * + * The new commands can then be used from within the REPL instance: + * + * ```console + * > .sayhello Node.js User + * Hello, Node.js User! + * > .saybye + * Goodbye! + * ``` + * @since v0.3.0 + * @param keyword The command keyword (_without_ a leading `.` character). + * @param cmd The function to invoke when the command is processed. + */ + defineCommand(keyword: string, cmd: REPLCommandAction | REPLCommand): void; + /** + * The `replServer.displayPrompt()` method readies the REPL instance for input + * from the user, printing the configured `prompt` to a new line in the `output`and resuming the `input` to accept new input. + * + * When multi-line input is being entered, an ellipsis is printed rather than the + * 'prompt'. + * + * When `preserveCursor` is `true`, the cursor placement will not be reset to `0`. + * + * The `replServer.displayPrompt` method is primarily intended to be called from + * within the action function for commands registered using the`replServer.defineCommand()` method. + * @since v0.1.91 + */ + displayPrompt(preserveCursor?: boolean): void; + /** + * The `replServer.clearBufferedCommand()` method clears any command that has been + * buffered but not yet executed. This method is primarily intended to be + * called from within the action function for commands registered using the`replServer.defineCommand()` method. + * @since v9.0.0 + */ + clearBufferedCommand(): void; + /** + * Initializes a history log file for the REPL instance. When executing the + * Node.js binary and using the command-line REPL, a history file is initialized + * by default. However, this is not the case when creating a REPL + * programmatically. Use this method to initialize a history log file when working + * with REPL instances programmatically. + * @since v11.10.0 + * @param historyPath the path to the history file + * @param callback called when history writes are ready or upon error + */ + setupHistory(path: string, callback: (err: Error | null, repl: this) => void): void; + /** + * events.EventEmitter + * 1. close - inherited from `readline.Interface` + * 2. line - inherited from `readline.Interface` + * 3. pause - inherited from `readline.Interface` + * 4. resume - inherited from `readline.Interface` + * 5. SIGCONT - inherited from `readline.Interface` + * 6. SIGINT - inherited from `readline.Interface` + * 7. SIGTSTP - inherited from `readline.Interface` + * 8. exit + * 9. reset + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'line', listener: (input: string) => void): this; + addListener(event: 'pause', listener: () => void): this; + addListener(event: 'resume', listener: () => void): this; + addListener(event: 'SIGCONT', listener: () => void): this; + addListener(event: 'SIGINT', listener: () => void): this; + addListener(event: 'SIGTSTP', listener: () => void): this; + addListener(event: 'exit', listener: () => void): this; + addListener(event: 'reset', listener: (context: Context) => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'close'): boolean; + emit(event: 'line', input: string): boolean; + emit(event: 'pause'): boolean; + emit(event: 'resume'): boolean; + emit(event: 'SIGCONT'): boolean; + emit(event: 'SIGINT'): boolean; + emit(event: 'SIGTSTP'): boolean; + emit(event: 'exit'): boolean; + emit(event: 'reset', context: Context): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'close', listener: () => void): this; + on(event: 'line', listener: (input: string) => void): this; + on(event: 'pause', listener: () => void): this; + on(event: 'resume', listener: () => void): this; + on(event: 'SIGCONT', listener: () => void): this; + on(event: 'SIGINT', listener: () => void): this; + on(event: 'SIGTSTP', listener: () => void): this; + on(event: 'exit', listener: () => void): this; + on(event: 'reset', listener: (context: Context) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'line', listener: (input: string) => void): this; + once(event: 'pause', listener: () => void): this; + once(event: 'resume', listener: () => void): this; + once(event: 'SIGCONT', listener: () => void): this; + once(event: 'SIGINT', listener: () => void): this; + once(event: 'SIGTSTP', listener: () => void): this; + once(event: 'exit', listener: () => void): this; + once(event: 'reset', listener: (context: Context) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'line', listener: (input: string) => void): this; + prependListener(event: 'pause', listener: () => void): this; + prependListener(event: 'resume', listener: () => void): this; + prependListener(event: 'SIGCONT', listener: () => void): this; + prependListener(event: 'SIGINT', listener: () => void): this; + prependListener(event: 'SIGTSTP', listener: () => void): this; + prependListener(event: 'exit', listener: () => void): this; + prependListener(event: 'reset', listener: (context: Context) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'line', listener: (input: string) => void): this; + prependOnceListener(event: 'pause', listener: () => void): this; + prependOnceListener(event: 'resume', listener: () => void): this; + prependOnceListener(event: 'SIGCONT', listener: () => void): this; + prependOnceListener(event: 'SIGINT', listener: () => void): this; + prependOnceListener(event: 'SIGTSTP', listener: () => void): this; + prependOnceListener(event: 'exit', listener: () => void): this; + prependOnceListener(event: 'reset', listener: (context: Context) => void): this; + } + /** + * A flag passed in the REPL options. Evaluates expressions in sloppy mode. + */ + const REPL_MODE_SLOPPY: unique symbol; + /** + * A flag passed in the REPL options. Evaluates expressions in strict mode. + * This is equivalent to prefacing every repl statement with `'use strict'`. + */ + const REPL_MODE_STRICT: unique symbol; + /** + * The `repl.start()` method creates and starts a {@link REPLServer} instance. + * + * If `options` is a string, then it specifies the input prompt: + * + * ```js + * const repl = require('repl'); + * + * // a Unix style prompt + * repl.start('$ '); + * ``` + * @since v0.1.91 + */ + function start(options?: string | ReplOptions): REPLServer; + /** + * Indicates a recoverable error that a `REPLServer` can use to support multi-line input. + * + * @see https://nodejs.org/dist/latest-v10.x/docs/api/repl.html#repl_recoverable_errors + */ + class Recoverable extends SyntaxError { + err: Error; + constructor(err: Error); + } +} +declare module 'node:repl' { + export * from 'repl'; +} diff --git a/node_modules/@types/node/ts4.8/stream.d.ts b/node_modules/@types/node/ts4.8/stream.d.ts new file mode 100644 index 0000000..a0df689 --- /dev/null +++ b/node_modules/@types/node/ts4.8/stream.d.ts @@ -0,0 +1,1340 @@ +/** + * A stream is an abstract interface for working with streaming data in Node.js. + * The `stream` module provides an API for implementing the stream interface. + * + * There are many stream objects provided by Node.js. For instance, a `request to an HTTP server` and `process.stdout` are both stream instances. + * + * Streams can be readable, writable, or both. All streams are instances of `EventEmitter`. + * + * To access the `stream` module: + * + * ```js + * const stream = require('stream'); + * ``` + * + * The `stream` module is useful for creating new types of stream instances. It is + * usually not necessary to use the `stream` module to consume streams. + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/stream.js) + */ +declare module 'stream' { + import { EventEmitter, Abortable } from 'node:events'; + import { Blob as NodeBlob } from "node:buffer"; + import * as streamPromises from 'node:stream/promises'; + import * as streamConsumers from 'node:stream/consumers'; + import * as streamWeb from 'node:stream/web'; + class internal extends EventEmitter { + pipe( + destination: T, + options?: { + end?: boolean | undefined; + } + ): T; + } + namespace internal { + class Stream extends internal { + constructor(opts?: ReadableOptions); + } + interface StreamOptions extends Abortable { + emitClose?: boolean | undefined; + highWaterMark?: number | undefined; + objectMode?: boolean | undefined; + construct?(this: T, callback: (error?: Error | null) => void): void; + destroy?(this: T, error: Error | null, callback: (error: Error | null) => void): void; + autoDestroy?: boolean | undefined; + } + interface ReadableOptions extends StreamOptions { + encoding?: BufferEncoding | undefined; + read?(this: Readable, size: number): void; + } + /** + * @since v0.9.4 + */ + class Readable extends Stream implements NodeJS.ReadableStream { + /** + * A utility method for creating Readable Streams out of iterators. + */ + static from(iterable: Iterable | AsyncIterable, options?: ReadableOptions): Readable; + /** + * A utility method for creating a `Readable` from a web `ReadableStream`. + * @since v17.0.0 + * @experimental + */ + static fromWeb(readableStream: streamWeb.ReadableStream, options?: Pick): Readable; + /** + * Returns whether the stream has been read from or cancelled. + * @since v16.8.0 + */ + static isDisturbed(stream: Readable | NodeJS.ReadableStream): boolean; + /** + * A utility method for creating a web `ReadableStream` from a `Readable`. + * @since v17.0.0 + * @experimental + */ + static toWeb(streamReadable: Readable): streamWeb.ReadableStream; + /** + * Returns whether the stream was destroyed or errored before emitting `'end'`. + * @since v16.8.0 + * @experimental + */ + readonly readableAborted: boolean; + /** + * Is `true` if it is safe to call `readable.read()`, which means + * the stream has not been destroyed or emitted `'error'` or `'end'`. + * @since v11.4.0 + */ + readable: boolean; + /** + * Returns whether `'data'` has been emitted. + * @since v16.7.0, v14.18.0 + * @experimental + */ + readonly readableDidRead: boolean; + /** + * Getter for the property `encoding` of a given `Readable` stream. The `encoding`property can be set using the `readable.setEncoding()` method. + * @since v12.7.0 + */ + readonly readableEncoding: BufferEncoding | null; + /** + * Becomes `true` when `'end'` event is emitted. + * @since v12.9.0 + */ + readonly readableEnded: boolean; + /** + * This property reflects the current state of a `Readable` stream as described + * in the `Three states` section. + * @since v9.4.0 + */ + readonly readableFlowing: boolean | null; + /** + * Returns the value of `highWaterMark` passed when creating this `Readable`. + * @since v9.3.0 + */ + readonly readableHighWaterMark: number; + /** + * This property contains the number of bytes (or objects) in the queue + * ready to be read. The value provides introspection data regarding + * the status of the `highWaterMark`. + * @since v9.4.0 + */ + readonly readableLength: number; + /** + * Getter for the property `objectMode` of a given `Readable` stream. + * @since v12.3.0 + */ + readonly readableObjectMode: boolean; + /** + * Is `true` after `readable.destroy()` has been called. + * @since v18.0.0 + */ + destroyed: boolean; + /** + * Is true after 'close' has been emitted. + * @since v8.0.0 + */ + readonly closed: boolean; + /** + * Returns error if the stream has been destroyed with an error. + * @since v18.0.0 + */ + readonly errored: Error | null; + constructor(opts?: ReadableOptions); + _construct?(callback: (error?: Error | null) => void): void; + _read(size: number): void; + /** + * The `readable.read()` method reads data out of the internal buffer and + * returns it. If no data is available to be read, `null` is returned. By default, + * the data is returned as a `Buffer` object unless an encoding has been + * specified using the `readable.setEncoding()` method or the stream is operating + * in object mode. + * + * The optional `size` argument specifies a specific number of bytes to read. If`size` bytes are not available to be read, `null` will be returned _unless_the stream has ended, in which + * case all of the data remaining in the internal + * buffer will be returned. + * + * If the `size` argument is not specified, all of the data contained in the + * internal buffer will be returned. + * + * The `size` argument must be less than or equal to 1 GiB. + * + * The `readable.read()` method should only be called on `Readable` streams + * operating in paused mode. In flowing mode, `readable.read()` is called + * automatically until the internal buffer is fully drained. + * + * ```js + * const readable = getReadableStreamSomehow(); + * + * // 'readable' may be triggered multiple times as data is buffered in + * readable.on('readable', () => { + * let chunk; + * console.log('Stream is readable (new data received in buffer)'); + * // Use a loop to make sure we read all currently available data + * while (null !== (chunk = readable.read())) { + * console.log(`Read ${chunk.length} bytes of data...`); + * } + * }); + * + * // 'end' will be triggered once when there is no more data available + * readable.on('end', () => { + * console.log('Reached end of stream.'); + * }); + * ``` + * + * Each call to `readable.read()` returns a chunk of data, or `null`. The chunks + * are not concatenated. A `while` loop is necessary to consume all data + * currently in the buffer. When reading a large file `.read()` may return `null`, + * having consumed all buffered content so far, but there is still more data to + * come not yet buffered. In this case a new `'readable'` event will be emitted + * when there is more data in the buffer. Finally the `'end'` event will be + * emitted when there is no more data to come. + * + * Therefore to read a file's whole contents from a `readable`, it is necessary + * to collect chunks across multiple `'readable'` events: + * + * ```js + * const chunks = []; + * + * readable.on('readable', () => { + * let chunk; + * while (null !== (chunk = readable.read())) { + * chunks.push(chunk); + * } + * }); + * + * readable.on('end', () => { + * const content = chunks.join(''); + * }); + * ``` + * + * A `Readable` stream in object mode will always return a single item from + * a call to `readable.read(size)`, regardless of the value of the`size` argument. + * + * If the `readable.read()` method returns a chunk of data, a `'data'` event will + * also be emitted. + * + * Calling {@link read} after the `'end'` event has + * been emitted will return `null`. No runtime error will be raised. + * @since v0.9.4 + * @param size Optional argument to specify how much data to read. + */ + read(size?: number): any; + /** + * The `readable.setEncoding()` method sets the character encoding for + * data read from the `Readable` stream. + * + * By default, no encoding is assigned and stream data will be returned as`Buffer` objects. Setting an encoding causes the stream data + * to be returned as strings of the specified encoding rather than as `Buffer`objects. For instance, calling `readable.setEncoding('utf8')` will cause the + * output data to be interpreted as UTF-8 data, and passed as strings. Calling`readable.setEncoding('hex')` will cause the data to be encoded in hexadecimal + * string format. + * + * The `Readable` stream will properly handle multi-byte characters delivered + * through the stream that would otherwise become improperly decoded if simply + * pulled from the stream as `Buffer` objects. + * + * ```js + * const readable = getReadableStreamSomehow(); + * readable.setEncoding('utf8'); + * readable.on('data', (chunk) => { + * assert.equal(typeof chunk, 'string'); + * console.log('Got %d characters of string data:', chunk.length); + * }); + * ``` + * @since v0.9.4 + * @param encoding The encoding to use. + */ + setEncoding(encoding: BufferEncoding): this; + /** + * The `readable.pause()` method will cause a stream in flowing mode to stop + * emitting `'data'` events, switching out of flowing mode. Any data that + * becomes available will remain in the internal buffer. + * + * ```js + * const readable = getReadableStreamSomehow(); + * readable.on('data', (chunk) => { + * console.log(`Received ${chunk.length} bytes of data.`); + * readable.pause(); + * console.log('There will be no additional data for 1 second.'); + * setTimeout(() => { + * console.log('Now data will start flowing again.'); + * readable.resume(); + * }, 1000); + * }); + * ``` + * + * The `readable.pause()` method has no effect if there is a `'readable'`event listener. + * @since v0.9.4 + */ + pause(): this; + /** + * The `readable.resume()` method causes an explicitly paused `Readable` stream to + * resume emitting `'data'` events, switching the stream into flowing mode. + * + * The `readable.resume()` method can be used to fully consume the data from a + * stream without actually processing any of that data: + * + * ```js + * getReadableStreamSomehow() + * .resume() + * .on('end', () => { + * console.log('Reached the end, but did not read anything.'); + * }); + * ``` + * + * The `readable.resume()` method has no effect if there is a `'readable'`event listener. + * @since v0.9.4 + */ + resume(): this; + /** + * The `readable.isPaused()` method returns the current operating state of the`Readable`. This is used primarily by the mechanism that underlies the`readable.pipe()` method. In most + * typical cases, there will be no reason to + * use this method directly. + * + * ```js + * const readable = new stream.Readable(); + * + * readable.isPaused(); // === false + * readable.pause(); + * readable.isPaused(); // === true + * readable.resume(); + * readable.isPaused(); // === false + * ``` + * @since v0.11.14 + */ + isPaused(): boolean; + /** + * The `readable.unpipe()` method detaches a `Writable` stream previously attached + * using the {@link pipe} method. + * + * If the `destination` is not specified, then _all_ pipes are detached. + * + * If the `destination` is specified, but no pipe is set up for it, then + * the method does nothing. + * + * ```js + * const fs = require('fs'); + * const readable = getReadableStreamSomehow(); + * const writable = fs.createWriteStream('file.txt'); + * // All the data from readable goes into 'file.txt', + * // but only for the first second. + * readable.pipe(writable); + * setTimeout(() => { + * console.log('Stop writing to file.txt.'); + * readable.unpipe(writable); + * console.log('Manually close the file stream.'); + * writable.end(); + * }, 1000); + * ``` + * @since v0.9.4 + * @param destination Optional specific stream to unpipe + */ + unpipe(destination?: NodeJS.WritableStream): this; + /** + * Passing `chunk` as `null` signals the end of the stream (EOF) and behaves the + * same as `readable.push(null)`, after which no more data can be written. The EOF + * signal is put at the end of the buffer and any buffered data will still be + * flushed. + * + * The `readable.unshift()` method pushes a chunk of data back into the internal + * buffer. This is useful in certain situations where a stream is being consumed by + * code that needs to "un-consume" some amount of data that it has optimistically + * pulled out of the source, so that the data can be passed on to some other party. + * + * The `stream.unshift(chunk)` method cannot be called after the `'end'` event + * has been emitted or a runtime error will be thrown. + * + * Developers using `stream.unshift()` often should consider switching to + * use of a `Transform` stream instead. See the `API for stream implementers` section for more information. + * + * ```js + * // Pull off a header delimited by \n\n. + * // Use unshift() if we get too much. + * // Call the callback with (error, header, stream). + * const { StringDecoder } = require('string_decoder'); + * function parseHeader(stream, callback) { + * stream.on('error', callback); + * stream.on('readable', onReadable); + * const decoder = new StringDecoder('utf8'); + * let header = ''; + * function onReadable() { + * let chunk; + * while (null !== (chunk = stream.read())) { + * const str = decoder.write(chunk); + * if (str.includes('\n\n')) { + * // Found the header boundary. + * const split = str.split(/\n\n/); + * header += split.shift(); + * const remaining = split.join('\n\n'); + * const buf = Buffer.from(remaining, 'utf8'); + * stream.removeListener('error', callback); + * // Remove the 'readable' listener before unshifting. + * stream.removeListener('readable', onReadable); + * if (buf.length) + * stream.unshift(buf); + * // Now the body of the message can be read from the stream. + * callback(null, header, stream); + * return; + * } + * // Still reading the header. + * header += str; + * } + * } + * } + * ``` + * + * Unlike {@link push}, `stream.unshift(chunk)` will not + * end the reading process by resetting the internal reading state of the stream. + * This can cause unexpected results if `readable.unshift()` is called during a + * read (i.e. from within a {@link _read} implementation on a + * custom stream). Following the call to `readable.unshift()` with an immediate {@link push} will reset the reading state appropriately, + * however it is best to simply avoid calling `readable.unshift()` while in the + * process of performing a read. + * @since v0.9.11 + * @param chunk Chunk of data to unshift onto the read queue. For streams not operating in object mode, `chunk` must be a string, `Buffer`, `Uint8Array` or `null`. For object mode + * streams, `chunk` may be any JavaScript value. + * @param encoding Encoding of string chunks. Must be a valid `Buffer` encoding, such as `'utf8'` or `'ascii'`. + */ + unshift(chunk: any, encoding?: BufferEncoding): void; + /** + * Prior to Node.js 0.10, streams did not implement the entire `stream` module API + * as it is currently defined. (See `Compatibility` for more information.) + * + * When using an older Node.js library that emits `'data'` events and has a {@link pause} method that is advisory only, the`readable.wrap()` method can be used to create a `Readable` + * stream that uses + * the old stream as its data source. + * + * It will rarely be necessary to use `readable.wrap()` but the method has been + * provided as a convenience for interacting with older Node.js applications and + * libraries. + * + * ```js + * const { OldReader } = require('./old-api-module.js'); + * const { Readable } = require('stream'); + * const oreader = new OldReader(); + * const myReader = new Readable().wrap(oreader); + * + * myReader.on('readable', () => { + * myReader.read(); // etc. + * }); + * ``` + * @since v0.9.4 + * @param stream An "old style" readable stream + */ + wrap(stream: NodeJS.ReadableStream): this; + push(chunk: any, encoding?: BufferEncoding): boolean; + _destroy(error: Error | null, callback: (error?: Error | null) => void): void; + /** + * Destroy the stream. Optionally emit an `'error'` event, and emit a `'close'`event (unless `emitClose` is set to `false`). After this call, the readable + * stream will release any internal resources and subsequent calls to `push()`will be ignored. + * + * Once `destroy()` has been called any further calls will be a no-op and no + * further errors except from `_destroy()` may be emitted as `'error'`. + * + * Implementors should not override this method, but instead implement `readable._destroy()`. + * @since v8.0.0 + * @param error Error which will be passed as payload in `'error'` event + */ + destroy(error?: Error): this; + /** + * Event emitter + * The defined events on documents including: + * 1. close + * 2. data + * 3. end + * 4. error + * 5. pause + * 6. readable + * 7. resume + */ + addListener(event: 'close', listener: () => void): this; + addListener(event: 'data', listener: (chunk: any) => void): this; + addListener(event: 'end', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'pause', listener: () => void): this; + addListener(event: 'readable', listener: () => void): this; + addListener(event: 'resume', listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'close'): boolean; + emit(event: 'data', chunk: any): boolean; + emit(event: 'end'): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'pause'): boolean; + emit(event: 'readable'): boolean; + emit(event: 'resume'): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'close', listener: () => void): this; + on(event: 'data', listener: (chunk: any) => void): this; + on(event: 'end', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'pause', listener: () => void): this; + on(event: 'readable', listener: () => void): this; + on(event: 'resume', listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'data', listener: (chunk: any) => void): this; + once(event: 'end', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'pause', listener: () => void): this; + once(event: 'readable', listener: () => void): this; + once(event: 'resume', listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'data', listener: (chunk: any) => void): this; + prependListener(event: 'end', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'pause', listener: () => void): this; + prependListener(event: 'readable', listener: () => void): this; + prependListener(event: 'resume', listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'data', listener: (chunk: any) => void): this; + prependOnceListener(event: 'end', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'pause', listener: () => void): this; + prependOnceListener(event: 'readable', listener: () => void): this; + prependOnceListener(event: 'resume', listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + removeListener(event: 'close', listener: () => void): this; + removeListener(event: 'data', listener: (chunk: any) => void): this; + removeListener(event: 'end', listener: () => void): this; + removeListener(event: 'error', listener: (err: Error) => void): this; + removeListener(event: 'pause', listener: () => void): this; + removeListener(event: 'readable', listener: () => void): this; + removeListener(event: 'resume', listener: () => void): this; + removeListener(event: string | symbol, listener: (...args: any[]) => void): this; + [Symbol.asyncIterator](): AsyncIterableIterator; + } + interface WritableOptions extends StreamOptions { + decodeStrings?: boolean | undefined; + defaultEncoding?: BufferEncoding | undefined; + write?(this: Writable, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + writev?( + this: Writable, + chunks: Array<{ + chunk: any; + encoding: BufferEncoding; + }>, + callback: (error?: Error | null) => void + ): void; + final?(this: Writable, callback: (error?: Error | null) => void): void; + } + /** + * @since v0.9.4 + */ + class Writable extends Stream implements NodeJS.WritableStream { + /** + * A utility method for creating a `Writable` from a web `WritableStream`. + * @since v17.0.0 + * @experimental + */ + static fromWeb(writableStream: streamWeb.WritableStream, options?: Pick): Writable; + /** + * A utility method for creating a web `WritableStream` from a `Writable`. + * @since v17.0.0 + * @experimental + */ + static toWeb(streamWritable: Writable): streamWeb.WritableStream; + /** + * Is `true` if it is safe to call `writable.write()`, which means + * the stream has not been destroyed, errored or ended. + * @since v11.4.0 + */ + readonly writable: boolean; + /** + * Is `true` after `writable.end()` has been called. This property + * does not indicate whether the data has been flushed, for this use `writable.writableFinished` instead. + * @since v12.9.0 + */ + readonly writableEnded: boolean; + /** + * Is set to `true` immediately before the `'finish'` event is emitted. + * @since v12.6.0 + */ + readonly writableFinished: boolean; + /** + * Return the value of `highWaterMark` passed when creating this `Writable`. + * @since v9.3.0 + */ + readonly writableHighWaterMark: number; + /** + * This property contains the number of bytes (or objects) in the queue + * ready to be written. The value provides introspection data regarding + * the status of the `highWaterMark`. + * @since v9.4.0 + */ + readonly writableLength: number; + /** + * Getter for the property `objectMode` of a given `Writable` stream. + * @since v12.3.0 + */ + readonly writableObjectMode: boolean; + /** + * Number of times `writable.uncork()` needs to be + * called in order to fully uncork the stream. + * @since v13.2.0, v12.16.0 + */ + readonly writableCorked: number; + /** + * Is `true` after `writable.destroy()` has been called. + * @since v8.0.0 + */ + destroyed: boolean; + /** + * Is true after 'close' has been emitted. + * @since v8.0.0 + */ + readonly closed: boolean; + /** + * Returns error if the stream has been destroyed with an error. + * @since v18.0.0 + */ + readonly errored: Error | null; + /** + * Is `true` if the stream's buffer has been full and stream will emit 'drain'. + * @since v15.2.0, v14.17.0 + */ + readonly writableNeedDrain: boolean; + constructor(opts?: WritableOptions); + _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + _writev?( + chunks: Array<{ + chunk: any; + encoding: BufferEncoding; + }>, + callback: (error?: Error | null) => void + ): void; + _construct?(callback: (error?: Error | null) => void): void; + _destroy(error: Error | null, callback: (error?: Error | null) => void): void; + _final(callback: (error?: Error | null) => void): void; + /** + * The `writable.write()` method writes some data to the stream, and calls the + * supplied `callback` once the data has been fully handled. If an error + * occurs, the `callback` will be called with the error as its + * first argument. The `callback` is called asynchronously and before `'error'` is + * emitted. + * + * The return value is `true` if the internal buffer is less than the`highWaterMark` configured when the stream was created after admitting `chunk`. + * If `false` is returned, further attempts to write data to the stream should + * stop until the `'drain'` event is emitted. + * + * While a stream is not draining, calls to `write()` will buffer `chunk`, and + * return false. Once all currently buffered chunks are drained (accepted for + * delivery by the operating system), the `'drain'` event will be emitted. + * Once `write()` returns false, do not write more chunks + * until the `'drain'` event is emitted. While calling `write()` on a stream that + * is not draining is allowed, Node.js will buffer all written chunks until + * maximum memory usage occurs, at which point it will abort unconditionally. + * Even before it aborts, high memory usage will cause poor garbage collector + * performance and high RSS (which is not typically released back to the system, + * even after the memory is no longer required). Since TCP sockets may never + * drain if the remote peer does not read the data, writing a socket that is + * not draining may lead to a remotely exploitable vulnerability. + * + * Writing data while the stream is not draining is particularly + * problematic for a `Transform`, because the `Transform` streams are paused + * by default until they are piped or a `'data'` or `'readable'` event handler + * is added. + * + * If the data to be written can be generated or fetched on demand, it is + * recommended to encapsulate the logic into a `Readable` and use {@link pipe}. However, if calling `write()` is preferred, it is + * possible to respect backpressure and avoid memory issues using the `'drain'` event: + * + * ```js + * function write(data, cb) { + * if (!stream.write(data)) { + * stream.once('drain', cb); + * } else { + * process.nextTick(cb); + * } + * } + * + * // Wait for cb to be called before doing any other write. + * write('hello', () => { + * console.log('Write completed, do more writes now.'); + * }); + * ``` + * + * A `Writable` stream in object mode will always ignore the `encoding` argument. + * @since v0.9.4 + * @param chunk Optional data to write. For streams not operating in object mode, `chunk` must be a string, `Buffer` or `Uint8Array`. For object mode streams, `chunk` may be any + * JavaScript value other than `null`. + * @param [encoding='utf8'] The encoding, if `chunk` is a string. + * @param callback Callback for when this chunk of data is flushed. + * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + write(chunk: any, callback?: (error: Error | null | undefined) => void): boolean; + write(chunk: any, encoding: BufferEncoding, callback?: (error: Error | null | undefined) => void): boolean; + /** + * The `writable.setDefaultEncoding()` method sets the default `encoding` for a `Writable` stream. + * @since v0.11.15 + * @param encoding The new default encoding + */ + setDefaultEncoding(encoding: BufferEncoding): this; + /** + * Calling the `writable.end()` method signals that no more data will be written + * to the `Writable`. The optional `chunk` and `encoding` arguments allow one + * final additional chunk of data to be written immediately before closing the + * stream. + * + * Calling the {@link write} method after calling {@link end} will raise an error. + * + * ```js + * // Write 'hello, ' and then end with 'world!'. + * const fs = require('fs'); + * const file = fs.createWriteStream('example.txt'); + * file.write('hello, '); + * file.end('world!'); + * // Writing more now is not allowed! + * ``` + * @since v0.9.4 + * @param chunk Optional data to write. For streams not operating in object mode, `chunk` must be a string, `Buffer` or `Uint8Array`. For object mode streams, `chunk` may be any + * JavaScript value other than `null`. + * @param encoding The encoding if `chunk` is a string + * @param callback Callback for when the stream is finished. + */ + end(cb?: () => void): this; + end(chunk: any, cb?: () => void): this; + end(chunk: any, encoding: BufferEncoding, cb?: () => void): this; + /** + * The `writable.cork()` method forces all written data to be buffered in memory. + * The buffered data will be flushed when either the {@link uncork} or {@link end} methods are called. + * + * The primary intent of `writable.cork()` is to accommodate a situation in which + * several small chunks are written to the stream in rapid succession. Instead of + * immediately forwarding them to the underlying destination, `writable.cork()`buffers all the chunks until `writable.uncork()` is called, which will pass them + * all to `writable._writev()`, if present. This prevents a head-of-line blocking + * situation where data is being buffered while waiting for the first small chunk + * to be processed. However, use of `writable.cork()` without implementing`writable._writev()` may have an adverse effect on throughput. + * + * See also: `writable.uncork()`, `writable._writev()`. + * @since v0.11.2 + */ + cork(): void; + /** + * The `writable.uncork()` method flushes all data buffered since {@link cork} was called. + * + * When using `writable.cork()` and `writable.uncork()` to manage the buffering + * of writes to a stream, defer calls to `writable.uncork()` using`process.nextTick()`. Doing so allows batching of all`writable.write()` calls that occur within a given Node.js event + * loop phase. + * + * ```js + * stream.cork(); + * stream.write('some '); + * stream.write('data '); + * process.nextTick(() => stream.uncork()); + * ``` + * + * If the `writable.cork()` method is called multiple times on a stream, the + * same number of calls to `writable.uncork()` must be called to flush the buffered + * data. + * + * ```js + * stream.cork(); + * stream.write('some '); + * stream.cork(); + * stream.write('data '); + * process.nextTick(() => { + * stream.uncork(); + * // The data will not be flushed until uncork() is called a second time. + * stream.uncork(); + * }); + * ``` + * + * See also: `writable.cork()`. + * @since v0.11.2 + */ + uncork(): void; + /** + * Destroy the stream. Optionally emit an `'error'` event, and emit a `'close'`event (unless `emitClose` is set to `false`). After this call, the writable + * stream has ended and subsequent calls to `write()` or `end()` will result in + * an `ERR_STREAM_DESTROYED` error. + * This is a destructive and immediate way to destroy a stream. Previous calls to`write()` may not have drained, and may trigger an `ERR_STREAM_DESTROYED` error. + * Use `end()` instead of destroy if data should flush before close, or wait for + * the `'drain'` event before destroying the stream. + * + * Once `destroy()` has been called any further calls will be a no-op and no + * further errors except from `_destroy()` may be emitted as `'error'`. + * + * Implementors should not override this method, + * but instead implement `writable._destroy()`. + * @since v8.0.0 + * @param error Optional, an error to emit with `'error'` event. + */ + destroy(error?: Error): this; + /** + * Event emitter + * The defined events on documents including: + * 1. close + * 2. drain + * 3. error + * 4. finish + * 5. pipe + * 6. unpipe + */ + addListener(event: 'close', listener: () => void): this; + addListener(event: 'drain', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'finish', listener: () => void): this; + addListener(event: 'pipe', listener: (src: Readable) => void): this; + addListener(event: 'unpipe', listener: (src: Readable) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'close'): boolean; + emit(event: 'drain'): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'finish'): boolean; + emit(event: 'pipe', src: Readable): boolean; + emit(event: 'unpipe', src: Readable): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'close', listener: () => void): this; + on(event: 'drain', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'finish', listener: () => void): this; + on(event: 'pipe', listener: (src: Readable) => void): this; + on(event: 'unpipe', listener: (src: Readable) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'drain', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'finish', listener: () => void): this; + once(event: 'pipe', listener: (src: Readable) => void): this; + once(event: 'unpipe', listener: (src: Readable) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'drain', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'finish', listener: () => void): this; + prependListener(event: 'pipe', listener: (src: Readable) => void): this; + prependListener(event: 'unpipe', listener: (src: Readable) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'drain', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'finish', listener: () => void): this; + prependOnceListener(event: 'pipe', listener: (src: Readable) => void): this; + prependOnceListener(event: 'unpipe', listener: (src: Readable) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + removeListener(event: 'close', listener: () => void): this; + removeListener(event: 'drain', listener: () => void): this; + removeListener(event: 'error', listener: (err: Error) => void): this; + removeListener(event: 'finish', listener: () => void): this; + removeListener(event: 'pipe', listener: (src: Readable) => void): this; + removeListener(event: 'unpipe', listener: (src: Readable) => void): this; + removeListener(event: string | symbol, listener: (...args: any[]) => void): this; + } + interface DuplexOptions extends ReadableOptions, WritableOptions { + allowHalfOpen?: boolean | undefined; + readableObjectMode?: boolean | undefined; + writableObjectMode?: boolean | undefined; + readableHighWaterMark?: number | undefined; + writableHighWaterMark?: number | undefined; + writableCorked?: number | undefined; + construct?(this: Duplex, callback: (error?: Error | null) => void): void; + read?(this: Duplex, size: number): void; + write?(this: Duplex, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + writev?( + this: Duplex, + chunks: Array<{ + chunk: any; + encoding: BufferEncoding; + }>, + callback: (error?: Error | null) => void + ): void; + final?(this: Duplex, callback: (error?: Error | null) => void): void; + destroy?(this: Duplex, error: Error | null, callback: (error: Error | null) => void): void; + } + /** + * Duplex streams are streams that implement both the `Readable` and `Writable` interfaces. + * + * Examples of `Duplex` streams include: + * + * * `TCP sockets` + * * `zlib streams` + * * `crypto streams` + * @since v0.9.4 + */ + class Duplex extends Readable implements Writable { + readonly writable: boolean; + readonly writableEnded: boolean; + readonly writableFinished: boolean; + readonly writableHighWaterMark: number; + readonly writableLength: number; + readonly writableObjectMode: boolean; + readonly writableCorked: number; + readonly writableNeedDrain: boolean; + readonly closed: boolean; + readonly errored: Error | null; + /** + * If `false` then the stream will automatically end the writable side when the + * readable side ends. Set initially by the `allowHalfOpen` constructor option, + * which defaults to `false`. + * + * This can be changed manually to change the half-open behavior of an existing`Duplex` stream instance, but must be changed before the `'end'` event is + * emitted. + * @since v0.9.4 + */ + allowHalfOpen: boolean; + constructor(opts?: DuplexOptions); + /** + * A utility method for creating duplex streams. + * + * - `Stream` converts writable stream into writable `Duplex` and readable stream + * to `Duplex`. + * - `Blob` converts into readable `Duplex`. + * - `string` converts into readable `Duplex`. + * - `ArrayBuffer` converts into readable `Duplex`. + * - `AsyncIterable` converts into a readable `Duplex`. Cannot yield `null`. + * - `AsyncGeneratorFunction` converts into a readable/writable transform + * `Duplex`. Must take a source `AsyncIterable` as first parameter. Cannot yield + * `null`. + * - `AsyncFunction` converts into a writable `Duplex`. Must return + * either `null` or `undefined` + * - `Object ({ writable, readable })` converts `readable` and + * `writable` into `Stream` and then combines them into `Duplex` where the + * `Duplex` will write to the `writable` and read from the `readable`. + * - `Promise` converts into readable `Duplex`. Value `null` is ignored. + * + * @since v16.8.0 + */ + static from(src: Stream | NodeBlob | ArrayBuffer | string | Iterable | AsyncIterable | AsyncGeneratorFunction | Promise | Object): Duplex; + _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + _writev?( + chunks: Array<{ + chunk: any; + encoding: BufferEncoding; + }>, + callback: (error?: Error | null) => void + ): void; + _destroy(error: Error | null, callback: (error: Error | null) => void): void; + _final(callback: (error?: Error | null) => void): void; + write(chunk: any, encoding?: BufferEncoding, cb?: (error: Error | null | undefined) => void): boolean; + write(chunk: any, cb?: (error: Error | null | undefined) => void): boolean; + setDefaultEncoding(encoding: BufferEncoding): this; + end(cb?: () => void): this; + end(chunk: any, cb?: () => void): this; + end(chunk: any, encoding?: BufferEncoding, cb?: () => void): this; + cork(): void; + uncork(): void; + } + type TransformCallback = (error?: Error | null, data?: any) => void; + interface TransformOptions extends DuplexOptions { + construct?(this: Transform, callback: (error?: Error | null) => void): void; + read?(this: Transform, size: number): void; + write?(this: Transform, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + writev?( + this: Transform, + chunks: Array<{ + chunk: any; + encoding: BufferEncoding; + }>, + callback: (error?: Error | null) => void + ): void; + final?(this: Transform, callback: (error?: Error | null) => void): void; + destroy?(this: Transform, error: Error | null, callback: (error: Error | null) => void): void; + transform?(this: Transform, chunk: any, encoding: BufferEncoding, callback: TransformCallback): void; + flush?(this: Transform, callback: TransformCallback): void; + } + /** + * Transform streams are `Duplex` streams where the output is in some way + * related to the input. Like all `Duplex` streams, `Transform` streams + * implement both the `Readable` and `Writable` interfaces. + * + * Examples of `Transform` streams include: + * + * * `zlib streams` + * * `crypto streams` + * @since v0.9.4 + */ + class Transform extends Duplex { + constructor(opts?: TransformOptions); + _transform(chunk: any, encoding: BufferEncoding, callback: TransformCallback): void; + _flush(callback: TransformCallback): void; + } + /** + * The `stream.PassThrough` class is a trivial implementation of a `Transform` stream that simply passes the input bytes across to the output. Its purpose is + * primarily for examples and testing, but there are some use cases where`stream.PassThrough` is useful as a building block for novel sorts of streams. + */ + class PassThrough extends Transform {} + /** + * Attaches an AbortSignal to a readable or writeable stream. This lets code + * control stream destruction using an `AbortController`. + * + * Calling `abort` on the `AbortController` corresponding to the passed`AbortSignal` will behave the same way as calling `.destroy(new AbortError())`on the stream. + * + * ```js + * const fs = require('fs'); + * + * const controller = new AbortController(); + * const read = addAbortSignal( + * controller.signal, + * fs.createReadStream(('object.json')) + * ); + * // Later, abort the operation closing the stream + * controller.abort(); + * ``` + * + * Or using an `AbortSignal` with a readable stream as an async iterable: + * + * ```js + * const controller = new AbortController(); + * setTimeout(() => controller.abort(), 10_000); // set a timeout + * const stream = addAbortSignal( + * controller.signal, + * fs.createReadStream(('object.json')) + * ); + * (async () => { + * try { + * for await (const chunk of stream) { + * await process(chunk); + * } + * } catch (e) { + * if (e.name === 'AbortError') { + * // The operation was cancelled + * } else { + * throw e; + * } + * } + * })(); + * ``` + * @since v15.4.0 + * @param signal A signal representing possible cancellation + * @param stream a stream to attach a signal to + */ + function addAbortSignal(signal: AbortSignal, stream: T): T; + interface FinishedOptions extends Abortable { + error?: boolean | undefined; + readable?: boolean | undefined; + writable?: boolean | undefined; + } + /** + * A function to get notified when a stream is no longer readable, writable + * or has experienced an error or a premature close event. + * + * ```js + * const { finished } = require('stream'); + * + * const rs = fs.createReadStream('archive.tar'); + * + * finished(rs, (err) => { + * if (err) { + * console.error('Stream failed.', err); + * } else { + * console.log('Stream is done reading.'); + * } + * }); + * + * rs.resume(); // Drain the stream. + * ``` + * + * Especially useful in error handling scenarios where a stream is destroyed + * prematurely (like an aborted HTTP request), and will not emit `'end'`or `'finish'`. + * + * The `finished` API provides promise version: + * + * ```js + * const { finished } = require('stream/promises'); + * + * const rs = fs.createReadStream('archive.tar'); + * + * async function run() { + * await finished(rs); + * console.log('Stream is done reading.'); + * } + * + * run().catch(console.error); + * rs.resume(); // Drain the stream. + * ``` + * + * `stream.finished()` leaves dangling event listeners (in particular`'error'`, `'end'`, `'finish'` and `'close'`) after `callback` has been + * invoked. The reason for this is so that unexpected `'error'` events (due to + * incorrect stream implementations) do not cause unexpected crashes. + * If this is unwanted behavior then the returned cleanup function needs to be + * invoked in the callback: + * + * ```js + * const cleanup = finished(rs, (err) => { + * cleanup(); + * // ... + * }); + * ``` + * @since v10.0.0 + * @param stream A readable and/or writable stream. + * @param callback A callback function that takes an optional error argument. + * @return A cleanup function which removes all registered listeners. + */ + function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options: FinishedOptions, callback: (err?: NodeJS.ErrnoException | null) => void): () => void; + function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, callback: (err?: NodeJS.ErrnoException | null) => void): () => void; + namespace finished { + function __promisify__(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options?: FinishedOptions): Promise; + } + type PipelineSourceFunction = () => Iterable | AsyncIterable; + type PipelineSource = Iterable | AsyncIterable | NodeJS.ReadableStream | PipelineSourceFunction; + type PipelineTransform, U> = + | NodeJS.ReadWriteStream + | ((source: S extends (...args: any[]) => Iterable | AsyncIterable ? AsyncIterable : S) => AsyncIterable); + type PipelineTransformSource = PipelineSource | PipelineTransform; + type PipelineDestinationIterableFunction = (source: AsyncIterable) => AsyncIterable; + type PipelineDestinationPromiseFunction = (source: AsyncIterable) => Promise

; + type PipelineDestination, P> = S extends PipelineTransformSource + ? NodeJS.WritableStream | PipelineDestinationIterableFunction | PipelineDestinationPromiseFunction + : never; + type PipelineCallback> = S extends PipelineDestinationPromiseFunction + ? (err: NodeJS.ErrnoException | null, value: P) => void + : (err: NodeJS.ErrnoException | null) => void; + type PipelinePromise> = S extends PipelineDestinationPromiseFunction ? Promise

: Promise; + interface PipelineOptions { + signal: AbortSignal; + } + /** + * A module method to pipe between streams and generators forwarding errors and + * properly cleaning up and provide a callback when the pipeline is complete. + * + * ```js + * const { pipeline } = require('stream'); + * const fs = require('fs'); + * const zlib = require('zlib'); + * + * // Use the pipeline API to easily pipe a series of streams + * // together and get notified when the pipeline is fully done. + * + * // A pipeline to gzip a potentially huge tar file efficiently: + * + * pipeline( + * fs.createReadStream('archive.tar'), + * zlib.createGzip(), + * fs.createWriteStream('archive.tar.gz'), + * (err) => { + * if (err) { + * console.error('Pipeline failed.', err); + * } else { + * console.log('Pipeline succeeded.'); + * } + * } + * ); + * ``` + * + * The `pipeline` API provides a promise version, which can also + * receive an options argument as the last parameter with a`signal` `AbortSignal` property. When the signal is aborted,`destroy` will be called on the underlying pipeline, with + * an`AbortError`. + * + * ```js + * const { pipeline } = require('stream/promises'); + * + * async function run() { + * await pipeline( + * fs.createReadStream('archive.tar'), + * zlib.createGzip(), + * fs.createWriteStream('archive.tar.gz') + * ); + * console.log('Pipeline succeeded.'); + * } + * + * run().catch(console.error); + * ``` + * + * To use an `AbortSignal`, pass it inside an options object, + * as the last argument: + * + * ```js + * const { pipeline } = require('stream/promises'); + * + * async function run() { + * const ac = new AbortController(); + * const signal = ac.signal; + * + * setTimeout(() => ac.abort(), 1); + * await pipeline( + * fs.createReadStream('archive.tar'), + * zlib.createGzip(), + * fs.createWriteStream('archive.tar.gz'), + * { signal }, + * ); + * } + * + * run().catch(console.error); // AbortError + * ``` + * + * The `pipeline` API also supports async generators: + * + * ```js + * const { pipeline } = require('stream/promises'); + * const fs = require('fs'); + * + * async function run() { + * await pipeline( + * fs.createReadStream('lowercase.txt'), + * async function* (source, { signal }) { + * source.setEncoding('utf8'); // Work with strings rather than `Buffer`s. + * for await (const chunk of source) { + * yield await processChunk(chunk, { signal }); + * } + * }, + * fs.createWriteStream('uppercase.txt') + * ); + * console.log('Pipeline succeeded.'); + * } + * + * run().catch(console.error); + * ``` + * + * Remember to handle the `signal` argument passed into the async generator. + * Especially in the case where the async generator is the source for the + * pipeline (i.e. first argument) or the pipeline will never complete. + * + * ```js + * const { pipeline } = require('stream/promises'); + * const fs = require('fs'); + * + * async function run() { + * await pipeline( + * async function* ({ signal }) { + * await someLongRunningfn({ signal }); + * yield 'asd'; + * }, + * fs.createWriteStream('uppercase.txt') + * ); + * console.log('Pipeline succeeded.'); + * } + * + * run().catch(console.error); + * ``` + * + * `stream.pipeline()` will call `stream.destroy(err)` on all streams except: + * + * * `Readable` streams which have emitted `'end'` or `'close'`. + * * `Writable` streams which have emitted `'finish'` or `'close'`. + * + * `stream.pipeline()` leaves dangling event listeners on the streams + * after the `callback` has been invoked. In the case of reuse of streams after + * failure, this can cause event listener leaks and swallowed errors. If the last + * stream is readable, dangling event listeners will be removed so that the last + * stream can be consumed later. + * + * `stream.pipeline()` closes all the streams when an error is raised. + * The `IncomingRequest` usage with `pipeline` could lead to an unexpected behavior + * once it would destroy the socket without sending the expected response. + * See the example below: + * + * ```js + * const fs = require('fs'); + * const http = require('http'); + * const { pipeline } = require('stream'); + * + * const server = http.createServer((req, res) => { + * const fileStream = fs.createReadStream('./fileNotExist.txt'); + * pipeline(fileStream, res, (err) => { + * if (err) { + * console.log(err); // No such file + * // this message can't be sent once `pipeline` already destroyed the socket + * return res.end('error!!!'); + * } + * }); + * }); + * ``` + * @since v10.0.0 + * @param callback Called when the pipeline is fully done. + */ + function pipeline, B extends PipelineDestination>( + source: A, + destination: B, + callback?: PipelineCallback + ): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream; + function pipeline, T1 extends PipelineTransform, B extends PipelineDestination>( + source: A, + transform1: T1, + destination: B, + callback?: PipelineCallback + ): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream; + function pipeline, T1 extends PipelineTransform, T2 extends PipelineTransform, B extends PipelineDestination>( + source: A, + transform1: T1, + transform2: T2, + destination: B, + callback?: PipelineCallback + ): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream; + function pipeline< + A extends PipelineSource, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + B extends PipelineDestination + >(source: A, transform1: T1, transform2: T2, transform3: T3, destination: B, callback?: PipelineCallback): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream; + function pipeline< + A extends PipelineSource, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + T4 extends PipelineTransform, + B extends PipelineDestination + >(source: A, transform1: T1, transform2: T2, transform3: T3, transform4: T4, destination: B, callback?: PipelineCallback): B extends NodeJS.WritableStream ? B : NodeJS.WritableStream; + function pipeline( + streams: ReadonlyArray, + callback?: (err: NodeJS.ErrnoException | null) => void + ): NodeJS.WritableStream; + function pipeline( + stream1: NodeJS.ReadableStream, + stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream, + ...streams: Array void)> + ): NodeJS.WritableStream; + namespace pipeline { + function __promisify__, B extends PipelineDestination>(source: A, destination: B, options?: PipelineOptions): PipelinePromise; + function __promisify__, T1 extends PipelineTransform, B extends PipelineDestination>( + source: A, + transform1: T1, + destination: B, + options?: PipelineOptions + ): PipelinePromise; + function __promisify__, T1 extends PipelineTransform, T2 extends PipelineTransform, B extends PipelineDestination>( + source: A, + transform1: T1, + transform2: T2, + destination: B, + options?: PipelineOptions + ): PipelinePromise; + function __promisify__< + A extends PipelineSource, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + B extends PipelineDestination + >(source: A, transform1: T1, transform2: T2, transform3: T3, destination: B, options?: PipelineOptions): PipelinePromise; + function __promisify__< + A extends PipelineSource, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + T4 extends PipelineTransform, + B extends PipelineDestination + >(source: A, transform1: T1, transform2: T2, transform3: T3, transform4: T4, destination: B, options?: PipelineOptions): PipelinePromise; + function __promisify__(streams: ReadonlyArray, options?: PipelineOptions): Promise; + function __promisify__( + stream1: NodeJS.ReadableStream, + stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream, + ...streams: Array + ): Promise; + } + interface Pipe { + close(): void; + hasRef(): boolean; + ref(): void; + unref(): void; + } + + /** + * Returns whether the stream has encountered an error. + * @since v17.3.0 + */ + function isErrored(stream: Readable | Writable | NodeJS.ReadableStream | NodeJS.WritableStream): boolean; + + /** + * Returns whether the stream is readable. + * @since v17.4.0 + */ + function isReadable(stream: Readable | NodeJS.ReadableStream): boolean; + + const promises: typeof streamPromises; + const consumers: typeof streamConsumers; + } + export = internal; +} +declare module 'node:stream' { + import stream = require('stream'); + export = stream; +} diff --git a/node_modules/@types/node/ts4.8/stream/consumers.d.ts b/node_modules/@types/node/ts4.8/stream/consumers.d.ts new file mode 100644 index 0000000..1ebf12e --- /dev/null +++ b/node_modules/@types/node/ts4.8/stream/consumers.d.ts @@ -0,0 +1,12 @@ +declare module 'stream/consumers' { + import { Blob as NodeBlob } from "node:buffer"; + import { Readable } from 'node:stream'; + function buffer(stream: NodeJS.ReadableStream | Readable | AsyncIterator): Promise; + function text(stream: NodeJS.ReadableStream | Readable | AsyncIterator): Promise; + function arrayBuffer(stream: NodeJS.ReadableStream | Readable | AsyncIterator): Promise; + function blob(stream: NodeJS.ReadableStream | Readable | AsyncIterator): Promise; + function json(stream: NodeJS.ReadableStream | Readable | AsyncIterator): Promise; +} +declare module 'node:stream/consumers' { + export * from 'stream/consumers'; +} diff --git a/node_modules/@types/node/ts4.8/stream/promises.d.ts b/node_modules/@types/node/ts4.8/stream/promises.d.ts new file mode 100644 index 0000000..b427073 --- /dev/null +++ b/node_modules/@types/node/ts4.8/stream/promises.d.ts @@ -0,0 +1,42 @@ +declare module 'stream/promises' { + import { FinishedOptions, PipelineSource, PipelineTransform, PipelineDestination, PipelinePromise, PipelineOptions } from 'node:stream'; + function finished(stream: NodeJS.ReadableStream | NodeJS.WritableStream | NodeJS.ReadWriteStream, options?: FinishedOptions): Promise; + function pipeline, B extends PipelineDestination>(source: A, destination: B, options?: PipelineOptions): PipelinePromise; + function pipeline, T1 extends PipelineTransform, B extends PipelineDestination>( + source: A, + transform1: T1, + destination: B, + options?: PipelineOptions + ): PipelinePromise; + function pipeline, T1 extends PipelineTransform, T2 extends PipelineTransform, B extends PipelineDestination>( + source: A, + transform1: T1, + transform2: T2, + destination: B, + options?: PipelineOptions + ): PipelinePromise; + function pipeline< + A extends PipelineSource, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + B extends PipelineDestination + >(source: A, transform1: T1, transform2: T2, transform3: T3, destination: B, options?: PipelineOptions): PipelinePromise; + function pipeline< + A extends PipelineSource, + T1 extends PipelineTransform, + T2 extends PipelineTransform, + T3 extends PipelineTransform, + T4 extends PipelineTransform, + B extends PipelineDestination + >(source: A, transform1: T1, transform2: T2, transform3: T3, transform4: T4, destination: B, options?: PipelineOptions): PipelinePromise; + function pipeline(streams: ReadonlyArray, options?: PipelineOptions): Promise; + function pipeline( + stream1: NodeJS.ReadableStream, + stream2: NodeJS.ReadWriteStream | NodeJS.WritableStream, + ...streams: Array + ): Promise; +} +declare module 'node:stream/promises' { + export * from 'stream/promises'; +} diff --git a/node_modules/@types/node/ts4.8/stream/web.d.ts b/node_modules/@types/node/ts4.8/stream/web.d.ts new file mode 100644 index 0000000..f9ef057 --- /dev/null +++ b/node_modules/@types/node/ts4.8/stream/web.d.ts @@ -0,0 +1,330 @@ +declare module 'stream/web' { + // stub module, pending copy&paste from .d.ts or manual impl + // copy from lib.dom.d.ts + interface ReadableWritablePair { + readable: ReadableStream; + /** + * Provides a convenient, chainable way of piping this readable stream + * through a transform stream (or any other { writable, readable } + * pair). It simply pipes the stream into the writable side of the + * supplied pair, and returns the readable side for further use. + * + * Piping a stream will lock it for the duration of the pipe, preventing + * any other consumer from acquiring a reader. + */ + writable: WritableStream; + } + interface StreamPipeOptions { + preventAbort?: boolean; + preventCancel?: boolean; + /** + * Pipes this readable stream to a given writable stream destination. + * The way in which the piping process behaves under various error + * conditions can be customized with a number of passed options. It + * returns a promise that fulfills when the piping process completes + * successfully, or rejects if any errors were encountered. + * + * Piping a stream will lock it for the duration of the pipe, preventing + * any other consumer from acquiring a reader. + * + * Errors and closures of the source and destination streams propagate + * as follows: + * + * An error in this source readable stream will abort destination, + * unless preventAbort is truthy. The returned promise will be rejected + * with the source's error, or with any error that occurs during + * aborting the destination. + * + * An error in destination will cancel this source readable stream, + * unless preventCancel is truthy. The returned promise will be rejected + * with the destination's error, or with any error that occurs during + * canceling the source. + * + * When this source readable stream closes, destination will be closed, + * unless preventClose is truthy. The returned promise will be fulfilled + * once this process completes, unless an error is encountered while + * closing the destination, in which case it will be rejected with that + * error. + * + * If destination starts out closed or closing, this source readable + * stream will be canceled, unless preventCancel is true. The returned + * promise will be rejected with an error indicating piping to a closed + * stream failed, or with any error that occurs during canceling the + * source. + * + * The signal option can be set to an AbortSignal to allow aborting an + * ongoing pipe operation via the corresponding AbortController. In this + * case, this source readable stream will be canceled, and destination + * aborted, unless the respective options preventCancel or preventAbort + * are set. + */ + preventClose?: boolean; + signal?: AbortSignal; + } + interface ReadableStreamGenericReader { + readonly closed: Promise; + cancel(reason?: any): Promise; + } + interface ReadableStreamDefaultReadValueResult { + done: false; + value: T; + } + interface ReadableStreamDefaultReadDoneResult { + done: true; + value?: undefined; + } + type ReadableStreamController = ReadableStreamDefaultController; + type ReadableStreamDefaultReadResult = ReadableStreamDefaultReadValueResult | ReadableStreamDefaultReadDoneResult; + interface ReadableByteStreamControllerCallback { + (controller: ReadableByteStreamController): void | PromiseLike; + } + interface UnderlyingSinkAbortCallback { + (reason?: any): void | PromiseLike; + } + interface UnderlyingSinkCloseCallback { + (): void | PromiseLike; + } + interface UnderlyingSinkStartCallback { + (controller: WritableStreamDefaultController): any; + } + interface UnderlyingSinkWriteCallback { + (chunk: W, controller: WritableStreamDefaultController): void | PromiseLike; + } + interface UnderlyingSourceCancelCallback { + (reason?: any): void | PromiseLike; + } + interface UnderlyingSourcePullCallback { + (controller: ReadableStreamController): void | PromiseLike; + } + interface UnderlyingSourceStartCallback { + (controller: ReadableStreamController): any; + } + interface TransformerFlushCallback { + (controller: TransformStreamDefaultController): void | PromiseLike; + } + interface TransformerStartCallback { + (controller: TransformStreamDefaultController): any; + } + interface TransformerTransformCallback { + (chunk: I, controller: TransformStreamDefaultController): void | PromiseLike; + } + interface UnderlyingByteSource { + autoAllocateChunkSize?: number; + cancel?: ReadableStreamErrorCallback; + pull?: ReadableByteStreamControllerCallback; + start?: ReadableByteStreamControllerCallback; + type: 'bytes'; + } + interface UnderlyingSource { + cancel?: UnderlyingSourceCancelCallback; + pull?: UnderlyingSourcePullCallback; + start?: UnderlyingSourceStartCallback; + type?: undefined; + } + interface UnderlyingSink { + abort?: UnderlyingSinkAbortCallback; + close?: UnderlyingSinkCloseCallback; + start?: UnderlyingSinkStartCallback; + type?: undefined; + write?: UnderlyingSinkWriteCallback; + } + interface ReadableStreamErrorCallback { + (reason: any): void | PromiseLike; + } + /** This Streams API interface represents a readable stream of byte data. */ + interface ReadableStream { + readonly locked: boolean; + cancel(reason?: any): Promise; + getReader(): ReadableStreamDefaultReader; + pipeThrough(transform: ReadableWritablePair, options?: StreamPipeOptions): ReadableStream; + pipeTo(destination: WritableStream, options?: StreamPipeOptions): Promise; + tee(): [ReadableStream, ReadableStream]; + values(options?: { preventCancel?: boolean }): AsyncIterableIterator; + [Symbol.asyncIterator](): AsyncIterableIterator; + } + const ReadableStream: { + prototype: ReadableStream; + new (underlyingSource: UnderlyingByteSource, strategy?: QueuingStrategy): ReadableStream; + new (underlyingSource?: UnderlyingSource, strategy?: QueuingStrategy): ReadableStream; + }; + interface ReadableStreamDefaultReader extends ReadableStreamGenericReader { + read(): Promise>; + releaseLock(): void; + } + const ReadableStreamDefaultReader: { + prototype: ReadableStreamDefaultReader; + new (stream: ReadableStream): ReadableStreamDefaultReader; + }; + const ReadableStreamBYOBReader: any; + const ReadableStreamBYOBRequest: any; + interface ReadableByteStreamController { + readonly byobRequest: undefined; + readonly desiredSize: number | null; + close(): void; + enqueue(chunk: ArrayBufferView): void; + error(error?: any): void; + } + const ReadableByteStreamController: { + prototype: ReadableByteStreamController; + new (): ReadableByteStreamController; + }; + interface ReadableStreamDefaultController { + readonly desiredSize: number | null; + close(): void; + enqueue(chunk?: R): void; + error(e?: any): void; + } + const ReadableStreamDefaultController: { + prototype: ReadableStreamDefaultController; + new (): ReadableStreamDefaultController; + }; + interface Transformer { + flush?: TransformerFlushCallback; + readableType?: undefined; + start?: TransformerStartCallback; + transform?: TransformerTransformCallback; + writableType?: undefined; + } + interface TransformStream { + readonly readable: ReadableStream; + readonly writable: WritableStream; + } + const TransformStream: { + prototype: TransformStream; + new (transformer?: Transformer, writableStrategy?: QueuingStrategy, readableStrategy?: QueuingStrategy): TransformStream; + }; + interface TransformStreamDefaultController { + readonly desiredSize: number | null; + enqueue(chunk?: O): void; + error(reason?: any): void; + terminate(): void; + } + const TransformStreamDefaultController: { + prototype: TransformStreamDefaultController; + new (): TransformStreamDefaultController; + }; + /** + * This Streams API interface provides a standard abstraction for writing + * streaming data to a destination, known as a sink. This object comes with + * built-in back pressure and queuing. + */ + interface WritableStream { + readonly locked: boolean; + abort(reason?: any): Promise; + close(): Promise; + getWriter(): WritableStreamDefaultWriter; + } + const WritableStream: { + prototype: WritableStream; + new (underlyingSink?: UnderlyingSink, strategy?: QueuingStrategy): WritableStream; + }; + /** + * This Streams API interface is the object returned by + * WritableStream.getWriter() and once created locks the < writer to the + * WritableStream ensuring that no other streams can write to the underlying + * sink. + */ + interface WritableStreamDefaultWriter { + readonly closed: Promise; + readonly desiredSize: number | null; + readonly ready: Promise; + abort(reason?: any): Promise; + close(): Promise; + releaseLock(): void; + write(chunk?: W): Promise; + } + const WritableStreamDefaultWriter: { + prototype: WritableStreamDefaultWriter; + new (stream: WritableStream): WritableStreamDefaultWriter; + }; + /** + * This Streams API interface represents a controller allowing control of a + * WritableStream's state. When constructing a WritableStream, the + * underlying sink is given a corresponding WritableStreamDefaultController + * instance to manipulate. + */ + interface WritableStreamDefaultController { + error(e?: any): void; + } + const WritableStreamDefaultController: { + prototype: WritableStreamDefaultController; + new (): WritableStreamDefaultController; + }; + interface QueuingStrategy { + highWaterMark?: number; + size?: QueuingStrategySize; + } + interface QueuingStrategySize { + (chunk?: T): number; + } + interface QueuingStrategyInit { + /** + * Creates a new ByteLengthQueuingStrategy with the provided high water + * mark. + * + * Note that the provided high water mark will not be validated ahead of + * time. Instead, if it is negative, NaN, or not a number, the resulting + * ByteLengthQueuingStrategy will cause the corresponding stream + * constructor to throw. + */ + highWaterMark: number; + } + /** + * This Streams API interface provides a built-in byte length queuing + * strategy that can be used when constructing streams. + */ + interface ByteLengthQueuingStrategy extends QueuingStrategy { + readonly highWaterMark: number; + readonly size: QueuingStrategySize; + } + const ByteLengthQueuingStrategy: { + prototype: ByteLengthQueuingStrategy; + new (init: QueuingStrategyInit): ByteLengthQueuingStrategy; + }; + /** + * This Streams API interface provides a built-in byte length queuing + * strategy that can be used when constructing streams. + */ + interface CountQueuingStrategy extends QueuingStrategy { + readonly highWaterMark: number; + readonly size: QueuingStrategySize; + } + const CountQueuingStrategy: { + prototype: CountQueuingStrategy; + new (init: QueuingStrategyInit): CountQueuingStrategy; + }; + interface TextEncoderStream { + /** Returns "utf-8". */ + readonly encoding: 'utf-8'; + readonly readable: ReadableStream; + readonly writable: WritableStream; + readonly [Symbol.toStringTag]: string; + } + const TextEncoderStream: { + prototype: TextEncoderStream; + new (): TextEncoderStream; + }; + interface TextDecoderOptions { + fatal?: boolean; + ignoreBOM?: boolean; + } + type BufferSource = ArrayBufferView | ArrayBuffer; + interface TextDecoderStream { + /** Returns encoding's name, lower cased. */ + readonly encoding: string; + /** Returns `true` if error mode is "fatal", and `false` otherwise. */ + readonly fatal: boolean; + /** Returns `true` if ignore BOM flag is set, and `false` otherwise. */ + readonly ignoreBOM: boolean; + readonly readable: ReadableStream; + readonly writable: WritableStream; + readonly [Symbol.toStringTag]: string; + } + const TextDecoderStream: { + prototype: TextDecoderStream; + new (label?: string, options?: TextDecoderOptions): TextDecoderStream; + }; +} +declare module 'node:stream/web' { + export * from 'stream/web'; +} diff --git a/node_modules/@types/node/ts4.8/string_decoder.d.ts b/node_modules/@types/node/ts4.8/string_decoder.d.ts new file mode 100644 index 0000000..a585804 --- /dev/null +++ b/node_modules/@types/node/ts4.8/string_decoder.d.ts @@ -0,0 +1,67 @@ +/** + * The `string_decoder` module provides an API for decoding `Buffer` objects into + * strings in a manner that preserves encoded multi-byte UTF-8 and UTF-16 + * characters. It can be accessed using: + * + * ```js + * const { StringDecoder } = require('string_decoder'); + * ``` + * + * The following example shows the basic use of the `StringDecoder` class. + * + * ```js + * const { StringDecoder } = require('string_decoder'); + * const decoder = new StringDecoder('utf8'); + * + * const cent = Buffer.from([0xC2, 0xA2]); + * console.log(decoder.write(cent)); + * + * const euro = Buffer.from([0xE2, 0x82, 0xAC]); + * console.log(decoder.write(euro)); + * ``` + * + * When a `Buffer` instance is written to the `StringDecoder` instance, an + * internal buffer is used to ensure that the decoded string does not contain + * any incomplete multibyte characters. These are held in the buffer until the + * next call to `stringDecoder.write()` or until `stringDecoder.end()` is called. + * + * In the following example, the three UTF-8 encoded bytes of the European Euro + * symbol (`€`) are written over three separate operations: + * + * ```js + * const { StringDecoder } = require('string_decoder'); + * const decoder = new StringDecoder('utf8'); + * + * decoder.write(Buffer.from([0xE2])); + * decoder.write(Buffer.from([0x82])); + * console.log(decoder.end(Buffer.from([0xAC]))); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/string_decoder.js) + */ +declare module 'string_decoder' { + class StringDecoder { + constructor(encoding?: BufferEncoding); + /** + * Returns a decoded string, ensuring that any incomplete multibyte characters at + * the end of the `Buffer`, or `TypedArray`, or `DataView` are omitted from the + * returned string and stored in an internal buffer for the next call to`stringDecoder.write()` or `stringDecoder.end()`. + * @since v0.1.99 + * @param buffer A `Buffer`, or `TypedArray`, or `DataView` containing the bytes to decode. + */ + write(buffer: Buffer): string; + /** + * Returns any remaining input stored in the internal buffer as a string. Bytes + * representing incomplete UTF-8 and UTF-16 characters will be replaced with + * substitution characters appropriate for the character encoding. + * + * If the `buffer` argument is provided, one final call to `stringDecoder.write()`is performed before returning the remaining input. + * After `end()` is called, the `stringDecoder` object can be reused for new input. + * @since v0.9.3 + * @param buffer A `Buffer`, or `TypedArray`, or `DataView` containing the bytes to decode. + */ + end(buffer?: Buffer): string; + } +} +declare module 'node:string_decoder' { + export * from 'string_decoder'; +} diff --git a/node_modules/@types/node/ts4.8/test.d.ts b/node_modules/@types/node/ts4.8/test.d.ts new file mode 100644 index 0000000..8e20710 --- /dev/null +++ b/node_modules/@types/node/ts4.8/test.d.ts @@ -0,0 +1,446 @@ +/** + * The `node:test` module provides a standalone testing module. + * @see [source](https://github.com/nodejs/node/blob/v18.x/lib/test.js) + */ +declare module 'node:test' { + /** + * Programmatically start the test runner. + * @since v18.9.0 + * @param options Configuration options for running tests. + * @returns A {@link TapStream} that emits events about the test execution. + */ + function run(options?: RunOptions): TapStream; + + /** + * The `test()` function is the value imported from the test module. Each invocation of this + * function results in the creation of a test point in the TAP output. + * + * The {@link TestContext} object passed to the fn argument can be used to perform actions + * related to the current test. Examples include skipping the test, adding additional TAP + * diagnostic information, or creating subtests. + * + * `test()` returns a {@link Promise} that resolves once the test completes. The return value + * can usually be discarded for top level tests. However, the return value from subtests should + * be used to prevent the parent test from finishing first and cancelling the subtest as shown + * in the following example. + * + * ```js + * test('top level test', async (t) => { + * // The setTimeout() in the following subtest would cause it to outlive its + * // parent test if 'await' is removed on the next line. Once the parent test + * // completes, it will cancel any outstanding subtests. + * await t.test('longer running subtest', async (t) => { + * return new Promise((resolve, reject) => { + * setTimeout(resolve, 1000); + * }); + * }); + * }); + * ``` + * @since v18.0.0 + * @param name The name of the test, which is displayed when reporting test results. + * Default: The `name` property of fn, or `''` if `fn` does not have a name. + * @param options Configuration options for the test + * @param fn The function under test. The first argument to this function is a + * {@link TestContext} object. If the test uses callbacks, the callback function is + * passed as the second argument. Default: A no-op function. + * @returns A {@link Promise} resolved with `undefined` once the test completes. + */ + function test(name?: string, fn?: TestFn): Promise; + function test(name?: string, options?: TestOptions, fn?: TestFn): Promise; + function test(options?: TestOptions, fn?: TestFn): Promise; + function test(fn?: TestFn): Promise; + + /** + * @since v18.6.0 + * @param name The name of the suite, which is displayed when reporting suite results. + * Default: The `name` property of fn, or `''` if `fn` does not have a name. + * @param options Configuration options for the suite + * @param fn The function under suite. Default: A no-op function. + */ + function describe(name?: string, options?: TestOptions, fn?: SuiteFn): void; + function describe(name?: string, fn?: SuiteFn): void; + function describe(options?: TestOptions, fn?: SuiteFn): void; + function describe(fn?: SuiteFn): void; + namespace describe { + // Shorthand for skipping a suite, same as `describe([name], { skip: true }[, fn])`. + function skip(name?: string, options?: TestOptions, fn?: SuiteFn): void; + function skip(name?: string, fn?: SuiteFn): void; + function skip(options?: TestOptions, fn?: SuiteFn): void; + function skip(fn?: SuiteFn): void; + + // Shorthand for marking a suite as `TODO`, same as `describe([name], { todo: true }[, fn])`. + function todo(name?: string, options?: TestOptions, fn?: SuiteFn): void; + function todo(name?: string, fn?: SuiteFn): void; + function todo(options?: TestOptions, fn?: SuiteFn): void; + function todo(fn?: SuiteFn): void; + } + + /** + * @since v18.6.0 + * @param name The name of the test, which is displayed when reporting test results. + * Default: The `name` property of fn, or `''` if `fn` does not have a name. + * @param options Configuration options for the test + * @param fn The function under test. If the test uses callbacks, the callback function is + * passed as the second argument. Default: A no-op function. + */ + function it(name?: string, options?: TestOptions, fn?: ItFn): void; + function it(name?: string, fn?: ItFn): void; + function it(options?: TestOptions, fn?: ItFn): void; + function it(fn?: ItFn): void; + namespace it { + // Shorthand for skipping a test, same as `it([name], { skip: true }[, fn])`. + function skip(name?: string, options?: TestOptions, fn?: ItFn): void; + function skip(name?: string, fn?: ItFn): void; + function skip(options?: TestOptions, fn?: ItFn): void; + function skip(fn?: ItFn): void; + + // Shorthand for marking a test as `TODO`, same as `it([name], { todo: true }[, fn])`. + function todo(name?: string, options?: TestOptions, fn?: ItFn): void; + function todo(name?: string, fn?: ItFn): void; + function todo(options?: TestOptions, fn?: ItFn): void; + function todo(fn?: ItFn): void; + } + + /** + * The type of a function under test. The first argument to this function is a + * {@link TestContext} object. If the test uses callbacks, the callback function is passed as + * the second argument. + */ + type TestFn = (t: TestContext, done: (result?: any) => void) => any; + + /** + * The type of a function under Suite. + * If the test uses callbacks, the callback function is passed as an argument + */ + type SuiteFn = (done: (result?: any) => void) => void; + + /** + * The type of a function under test. + * If the test uses callbacks, the callback function is passed as an argument + */ + type ItFn = (done: (result?: any) => void) => any; + + interface RunOptions { + /** + * If a number is provided, then that many files would run in parallel. + * If truthy, it would run (number of cpu cores - 1) files in parallel. + * If falsy, it would only run one file at a time. + * If unspecified, subtests inherit this value from their parent. + * @default true + */ + concurrency?: number | boolean | undefined; + + /** + * An array containing the list of files to run. + * If unspecified, the test runner execution model will be used. + */ + files?: readonly string[] | undefined; + + /** + * Allows aborting an in-progress test execution. + * @default undefined + */ + signal?: AbortSignal | undefined; + + /** + * A number of milliseconds the test will fail after. + * If unspecified, subtests inherit this value from their parent. + * @default Infinity + */ + timeout?: number | undefined; + + /** + * Sets inspector port of test child process. + * If a nullish value is provided, each process gets its own port, + * incremented from the primary's `process.debugPort`. + */ + inspectPort?: number | (() => number) | undefined; + } + + /** + * A successful call of the `run()` method will return a new `TapStream` object, + * streaming a [TAP](https://testanything.org/) output. + * `TapStream` will emit events in the order of the tests' definitions. + * @since v18.9.0 + */ + interface TapStream extends NodeJS.ReadableStream { + addListener(event: 'test:diagnostic', listener: (message: string) => void): this; + addListener(event: 'test:fail', listener: (data: TestFail) => void): this; + addListener(event: 'test:pass', listener: (data: TestPass) => void): this; + addListener(event: string, listener: (...args: any[]) => void): this; + emit(event: 'test:diagnostic', message: string): boolean; + emit(event: 'test:fail', data: TestFail): boolean; + emit(event: 'test:pass', data: TestPass): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'test:diagnostic', listener: (message: string) => void): this; + on(event: 'test:fail', listener: (data: TestFail) => void): this; + on(event: 'test:pass', listener: (data: TestPass) => void): this; + on(event: string, listener: (...args: any[]) => void): this; + once(event: 'test:diagnostic', listener: (message: string) => void): this; + once(event: 'test:fail', listener: (data: TestFail) => void): this; + once(event: 'test:pass', listener: (data: TestPass) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'test:diagnostic', listener: (message: string) => void): this; + prependListener(event: 'test:fail', listener: (data: TestFail) => void): this; + prependListener(event: 'test:pass', listener: (data: TestPass) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'test:diagnostic', listener: (message: string) => void): this; + prependOnceListener(event: 'test:fail', listener: (data: TestFail) => void): this; + prependOnceListener(event: 'test:pass', listener: (data: TestPass) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + } + + interface TestFail { + /** + * The test duration. + */ + duration: number; + + /** + * The failure casing test to fail. + */ + error: Error; + + /** + * The test name. + */ + name: string; + + /** + * The ordinal number of the test. + */ + testNumber: number; + + /** + * Present if `context.todo` is called. + */ + todo?: string; + + /** + * Present if `context.skip` is called. + */ + skip?: string; + } + + interface TestPass { + /** + * The test duration. + */ + duration: number; + + /** + * The test name. + */ + name: string; + + /** + * The ordinal number of the test. + */ + testNumber: number; + + /** + * Present if `context.todo` is called. + */ + todo?: string; + + /** + * Present if `context.skip` is called. + */ + skip?: string; + } + + /** + * An instance of `TestContext` is passed to each test function in order to interact with the + * test runner. However, the `TestContext` constructor is not exposed as part of the API. + * @since v18.0.0 + */ + interface TestContext { + /** + * This function is used to create a hook running before each subtest of the current test. + * @param fn The hook function. If the hook uses callbacks, the callback function is passed as + * the second argument. Default: A no-op function. + * @param options Configuration options for the hook. + * @since v18.8.0 + */ + beforeEach: typeof beforeEach; + + /** + * This function is used to create a hook running after each subtest of the current test. + * @param fn The hook function. If the hook uses callbacks, the callback function is passed as + * the second argument. Default: A no-op function. + * @param options Configuration options for the hook. + * @since v18.8.0 + */ + afterEach: typeof afterEach; + + /** + * This function is used to write TAP diagnostics to the output. Any diagnostic information is + * included at the end of the test's results. This function does not return a value. + * @param message Message to be displayed as a TAP diagnostic. + * @since v18.0.0 + */ + diagnostic(message: string): void; + + /** + * The name of the test. + * @since v18.8.0 + */ + readonly name: string; + + /** + * If `shouldRunOnlyTests` is truthy, the test context will only run tests that have the `only` + * option set. Otherwise, all tests are run. If Node.js was not started with the `--test-only` + * command-line option, this function is a no-op. + * @param shouldRunOnlyTests Whether or not to run `only` tests. + * @since v18.0.0 + */ + runOnly(shouldRunOnlyTests: boolean): void; + + /** + * Can be used to abort test subtasks when the test has been aborted. + * @since v18.7.0 + */ + readonly signal: AbortSignal; + + /** + * This function causes the test's output to indicate the test as skipped. If `message` is + * provided, it is included in the TAP output. Calling `skip()` does not terminate execution of + * the test function. This function does not return a value. + * @param message Optional skip message to be displayed in TAP output. + * @since v18.0.0 + */ + skip(message?: string): void; + + /** + * This function adds a `TODO` directive to the test's output. If `message` is provided, it is + * included in the TAP output. Calling `todo()` does not terminate execution of the test + * function. This function does not return a value. + * @param message Optional `TODO` message to be displayed in TAP output. + * @since v18.0.0 + */ + todo(message?: string): void; + + /** + * This function is used to create subtests under the current test. This function behaves in + * the same fashion as the top level {@link test} function. + * @since v18.0.0 + * @param name The name of the test, which is displayed when reporting test results. + * Default: The `name` property of fn, or `''` if `fn` does not have a name. + * @param options Configuration options for the test + * @param fn The function under test. This first argument to this function is a + * {@link TestContext} object. If the test uses callbacks, the callback function is + * passed as the second argument. Default: A no-op function. + * @returns A {@link Promise} resolved with `undefined` once the test completes. + */ + test: typeof test; + } + + interface TestOptions { + /** + * If a number is provided, then that many tests would run in parallel. + * If truthy, it would run (number of cpu cores - 1) tests in parallel. + * For subtests, it will be `Infinity` tests in parallel. + * If falsy, it would only run one test at a time. + * If unspecified, subtests inherit this value from their parent. + * @default false + */ + concurrency?: number | boolean | undefined; + + /** + * If truthy, and the test context is configured to run `only` tests, then this test will be + * run. Otherwise, the test is skipped. + * @default false + */ + only?: boolean | undefined; + + /** + * Allows aborting an in-progress test. + * @since v18.8.0 + */ + signal?: AbortSignal | undefined; + + /** + * If truthy, the test is skipped. If a string is provided, that string is displayed in the + * test results as the reason for skipping the test. + * @default false + */ + skip?: boolean | string | undefined; + + /** + * A number of milliseconds the test will fail after. If unspecified, subtests inherit this + * value from their parent. + * @default Infinity + * @since v18.7.0 + */ + timeout?: number | undefined; + + /** + * If truthy, the test marked as `TODO`. If a string is provided, that string is displayed in + * the test results as the reason why the test is `TODO`. + * @default false + */ + todo?: boolean | string | undefined; + } + + /** + * This function is used to create a hook running before running a suite. + * @param fn The hook function. If the hook uses callbacks, the callback function is passed as + * the second argument. Default: A no-op function. + * @param options Configuration options for the hook. + * @since v18.8.0 + */ + function before(fn?: HookFn, options?: HookOptions): void; + + /** + * This function is used to create a hook running after running a suite. + * @param fn The hook function. If the hook uses callbacks, the callback function is passed as + * the second argument. Default: A no-op function. + * @param options Configuration options for the hook. + * @since v18.8.0 + */ + function after(fn?: HookFn, options?: HookOptions): void; + + /** + * This function is used to create a hook running before each subtest of the current suite. + * @param fn The hook function. If the hook uses callbacks, the callback function is passed as + * the second argument. Default: A no-op function. + * @param options Configuration options for the hook. + * @since v18.8.0 + */ + function beforeEach(fn?: HookFn, options?: HookOptions): void; + + /** + * This function is used to create a hook running after each subtest of the current test. + * @param fn The hook function. If the hook uses callbacks, the callback function is passed as + * the second argument. Default: A no-op function. + * @param options Configuration options for the hook. + * @since v18.8.0 + */ + function afterEach(fn?: HookFn, options?: HookOptions): void; + + /** + * The hook function. If the hook uses callbacks, the callback function is passed as the + * second argument. + */ + type HookFn = (done: (result?: any) => void) => any; + + /** + * Configuration options for hooks. + * @since v18.8.0 + */ + interface HookOptions { + /** + * Allows aborting an in-progress hook. + */ + signal?: AbortSignal | undefined; + + /** + * A number of milliseconds the hook will fail after. If unspecified, subtests inherit this + * value from their parent. + * @default Infinity + */ + timeout?: number | undefined; + } + + export { test as default, run, test, describe, it, before, after, beforeEach, afterEach }; +} diff --git a/node_modules/@types/node/ts4.8/timers.d.ts b/node_modules/@types/node/ts4.8/timers.d.ts new file mode 100644 index 0000000..b26f3ce --- /dev/null +++ b/node_modules/@types/node/ts4.8/timers.d.ts @@ -0,0 +1,94 @@ +/** + * The `timer` module exposes a global API for scheduling functions to + * be called at some future period of time. Because the timer functions are + * globals, there is no need to call `require('timers')` to use the API. + * + * The timer functions within Node.js implement a similar API as the timers API + * provided by Web Browsers but use a different internal implementation that is + * built around the Node.js [Event Loop](https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/#setimmediate-vs-settimeout). + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/timers.js) + */ +declare module 'timers' { + import { Abortable } from 'node:events'; + import { setTimeout as setTimeoutPromise, setImmediate as setImmediatePromise, setInterval as setIntervalPromise } from 'node:timers/promises'; + interface TimerOptions extends Abortable { + /** + * Set to `false` to indicate that the scheduled `Timeout` + * should not require the Node.js event loop to remain active. + * @default true + */ + ref?: boolean | undefined; + } + let setTimeout: typeof global.setTimeout; + let clearTimeout: typeof global.clearTimeout; + let setInterval: typeof global.setInterval; + let clearInterval: typeof global.clearInterval; + let setImmediate: typeof global.setImmediate; + let clearImmediate: typeof global.clearImmediate; + global { + namespace NodeJS { + // compatibility with older typings + interface Timer extends RefCounted { + hasRef(): boolean; + refresh(): this; + [Symbol.toPrimitive](): number; + } + interface Immediate extends RefCounted { + /** + * If true, the `Immediate` object will keep the Node.js event loop active. + * @since v11.0.0 + */ + hasRef(): boolean; + _onImmediate: Function; // to distinguish it from the Timeout class + } + interface Timeout extends Timer { + /** + * If true, the `Timeout` object will keep the Node.js event loop active. + * @since v11.0.0 + */ + hasRef(): boolean; + /** + * Sets the timer's start time to the current time, and reschedules the timer to + * call its callback at the previously specified duration adjusted to the current + * time. This is useful for refreshing a timer without allocating a new + * JavaScript object. + * + * Using this on a timer that has already called its callback will reactivate the + * timer. + * @since v10.2.0 + * @return a reference to `timeout` + */ + refresh(): this; + [Symbol.toPrimitive](): number; + } + } + function setTimeout(callback: (...args: TArgs) => void, ms?: number, ...args: TArgs): NodeJS.Timeout; + // util.promisify no rest args compability + // tslint:disable-next-line void-return + function setTimeout(callback: (args: void) => void, ms?: number): NodeJS.Timeout; + namespace setTimeout { + const __promisify__: typeof setTimeoutPromise; + } + function clearTimeout(timeoutId: NodeJS.Timeout | string | number | undefined): void; + function setInterval(callback: (...args: TArgs) => void, ms?: number, ...args: TArgs): NodeJS.Timer; + // util.promisify no rest args compability + // tslint:disable-next-line void-return + function setInterval(callback: (args: void) => void, ms?: number): NodeJS.Timer; + namespace setInterval { + const __promisify__: typeof setIntervalPromise; + } + function clearInterval(intervalId: NodeJS.Timeout | string | number | undefined): void; + function setImmediate(callback: (...args: TArgs) => void, ...args: TArgs): NodeJS.Immediate; + // util.promisify no rest args compability + // tslint:disable-next-line void-return + function setImmediate(callback: (args: void) => void): NodeJS.Immediate; + namespace setImmediate { + const __promisify__: typeof setImmediatePromise; + } + function clearImmediate(immediateId: NodeJS.Immediate | undefined): void; + function queueMicrotask(callback: () => void): void; + } +} +declare module 'node:timers' { + export * from 'timers'; +} diff --git a/node_modules/@types/node/ts4.8/timers/promises.d.ts b/node_modules/@types/node/ts4.8/timers/promises.d.ts new file mode 100644 index 0000000..c145068 --- /dev/null +++ b/node_modules/@types/node/ts4.8/timers/promises.d.ts @@ -0,0 +1,93 @@ +/** + * The `timers/promises` API provides an alternative set of timer functions + * that return `Promise` objects. The API is accessible via`require('timers/promises')`. + * + * ```js + * import { + * setTimeout, + * setImmediate, + * setInterval, + * } from 'timers/promises'; + * ``` + * @since v15.0.0 + */ +declare module 'timers/promises' { + import { TimerOptions } from 'node:timers'; + /** + * ```js + * import { + * setTimeout, + * } from 'timers/promises'; + * + * const res = await setTimeout(100, 'result'); + * + * console.log(res); // Prints 'result' + * ``` + * @since v15.0.0 + * @param [delay=1] The number of milliseconds to wait before fulfilling the promise. + * @param value A value with which the promise is fulfilled. + */ + function setTimeout(delay?: number, value?: T, options?: TimerOptions): Promise; + /** + * ```js + * import { + * setImmediate, + * } from 'timers/promises'; + * + * const res = await setImmediate('result'); + * + * console.log(res); // Prints 'result' + * ``` + * @since v15.0.0 + * @param value A value with which the promise is fulfilled. + */ + function setImmediate(value?: T, options?: TimerOptions): Promise; + /** + * Returns an async iterator that generates values in an interval of `delay` ms. + * + * ```js + * import { + * setInterval, + * } from 'timers/promises'; + * + * const interval = 100; + * for await (const startTime of setInterval(interval, Date.now())) { + * const now = Date.now(); + * console.log(now); + * if ((now - startTime) > 1000) + * break; + * } + * console.log(Date.now()); + * ``` + * @since v15.9.0 + */ + function setInterval(delay?: number, value?: T, options?: TimerOptions): AsyncIterable; + + interface Scheduler { + /** + * ```js + * import { scheduler } from 'node:timers/promises'; + * + * await scheduler.wait(1000); // Wait one second before continuing + * ``` + * An experimental API defined by the Scheduling APIs draft specification being developed as a standard Web Platform API. + * Calling timersPromises.scheduler.wait(delay, options) is roughly equivalent to calling timersPromises.setTimeout(delay, undefined, options) except that the ref option is not supported. + * @since v16.14.0 + * @experimental + * @param [delay=1] The number of milliseconds to wait before fulfilling the promise. + */ + wait: (delay?: number, options?: TimerOptions) => Promise; + /** + * An experimental API defined by the Scheduling APIs draft specification being developed as a standard Web Platform API. + * Calling timersPromises.scheduler.yield() is equivalent to calling timersPromises.setImmediate() with no arguments. + * @since v16.14.0 + * @experimental + */ + yield: () => Promise; + } + + const scheduler: Scheduler; +} +declare module 'node:timers/promises' { + export * from 'timers/promises'; +} diff --git a/node_modules/@types/node/ts4.8/tls.d.ts b/node_modules/@types/node/ts4.8/tls.d.ts new file mode 100644 index 0000000..2cbc716 --- /dev/null +++ b/node_modules/@types/node/ts4.8/tls.d.ts @@ -0,0 +1,1028 @@ +/** + * The `tls` module provides an implementation of the Transport Layer Security + * (TLS) and Secure Socket Layer (SSL) protocols that is built on top of OpenSSL. + * The module can be accessed using: + * + * ```js + * const tls = require('tls'); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/tls.js) + */ +declare module 'tls' { + import { X509Certificate } from 'node:crypto'; + import * as net from 'node:net'; + import * as stream from 'stream'; + const CLIENT_RENEG_LIMIT: number; + const CLIENT_RENEG_WINDOW: number; + interface Certificate { + /** + * Country code. + */ + C: string; + /** + * Street. + */ + ST: string; + /** + * Locality. + */ + L: string; + /** + * Organization. + */ + O: string; + /** + * Organizational unit. + */ + OU: string; + /** + * Common name. + */ + CN: string; + } + interface PeerCertificate { + subject: Certificate; + issuer: Certificate; + subjectaltname: string; + infoAccess: NodeJS.Dict; + modulus: string; + exponent: string; + valid_from: string; + valid_to: string; + fingerprint: string; + fingerprint256: string; + ext_key_usage: string[]; + serialNumber: string; + raw: Buffer; + } + interface DetailedPeerCertificate extends PeerCertificate { + issuerCertificate: DetailedPeerCertificate; + } + interface CipherNameAndProtocol { + /** + * The cipher name. + */ + name: string; + /** + * SSL/TLS protocol version. + */ + version: string; + /** + * IETF name for the cipher suite. + */ + standardName: string; + } + interface EphemeralKeyInfo { + /** + * The supported types are 'DH' and 'ECDH'. + */ + type: string; + /** + * The name property is available only when type is 'ECDH'. + */ + name?: string | undefined; + /** + * The size of parameter of an ephemeral key exchange. + */ + size: number; + } + interface KeyObject { + /** + * Private keys in PEM format. + */ + pem: string | Buffer; + /** + * Optional passphrase. + */ + passphrase?: string | undefined; + } + interface PxfObject { + /** + * PFX or PKCS12 encoded private key and certificate chain. + */ + buf: string | Buffer; + /** + * Optional passphrase. + */ + passphrase?: string | undefined; + } + interface TLSSocketOptions extends SecureContextOptions, CommonConnectionOptions { + /** + * If true the TLS socket will be instantiated in server-mode. + * Defaults to false. + */ + isServer?: boolean | undefined; + /** + * An optional net.Server instance. + */ + server?: net.Server | undefined; + /** + * An optional Buffer instance containing a TLS session. + */ + session?: Buffer | undefined; + /** + * If true, specifies that the OCSP status request extension will be + * added to the client hello and an 'OCSPResponse' event will be + * emitted on the socket before establishing a secure communication + */ + requestOCSP?: boolean | undefined; + } + /** + * Performs transparent encryption of written data and all required TLS + * negotiation. + * + * Instances of `tls.TLSSocket` implement the duplex `Stream` interface. + * + * Methods that return TLS connection metadata (e.g.{@link TLSSocket.getPeerCertificate} will only return data while the + * connection is open. + * @since v0.11.4 + */ + class TLSSocket extends net.Socket { + /** + * Construct a new tls.TLSSocket object from an existing TCP socket. + */ + constructor(socket: net.Socket, options?: TLSSocketOptions); + /** + * This property is `true` if the peer certificate was signed by one of the CAs + * specified when creating the `tls.TLSSocket` instance, otherwise `false`. + * @since v0.11.4 + */ + authorized: boolean; + /** + * Returns the reason why the peer's certificate was not been verified. This + * property is set only when `tlsSocket.authorized === false`. + * @since v0.11.4 + */ + authorizationError: Error; + /** + * Always returns `true`. This may be used to distinguish TLS sockets from regular`net.Socket` instances. + * @since v0.11.4 + */ + encrypted: true; + /** + * String containing the selected ALPN protocol. + * Before a handshake has completed, this value is always null. + * When a handshake is completed but not ALPN protocol was selected, tlsSocket.alpnProtocol equals false. + */ + alpnProtocol: string | false | null; + /** + * Returns an object representing the local certificate. The returned object has + * some properties corresponding to the fields of the certificate. + * + * See {@link TLSSocket.getPeerCertificate} for an example of the certificate + * structure. + * + * If there is no local certificate, an empty object will be returned. If the + * socket has been destroyed, `null` will be returned. + * @since v11.2.0 + */ + getCertificate(): PeerCertificate | object | null; + /** + * Returns an object containing information on the negotiated cipher suite. + * + * For example: + * + * ```json + * { + * "name": "AES128-SHA256", + * "standardName": "TLS_RSA_WITH_AES_128_CBC_SHA256", + * "version": "TLSv1.2" + * } + * ``` + * + * See [SSL\_CIPHER\_get\_name](https://www.openssl.org/docs/man1.1.1/man3/SSL_CIPHER_get_name.html) for more information. + * @since v0.11.4 + */ + getCipher(): CipherNameAndProtocol; + /** + * Returns an object representing the type, name, and size of parameter of + * an ephemeral key exchange in `perfect forward secrecy` on a client + * connection. It returns an empty object when the key exchange is not + * ephemeral. As this is only supported on a client socket; `null` is returned + * if called on a server socket. The supported types are `'DH'` and `'ECDH'`. The`name` property is available only when type is `'ECDH'`. + * + * For example: `{ type: 'ECDH', name: 'prime256v1', size: 256 }`. + * @since v5.0.0 + */ + getEphemeralKeyInfo(): EphemeralKeyInfo | object | null; + /** + * As the `Finished` messages are message digests of the complete handshake + * (with a total of 192 bits for TLS 1.0 and more for SSL 3.0), they can + * be used for external authentication procedures when the authentication + * provided by SSL/TLS is not desired or is not enough. + * + * Corresponds to the `SSL_get_finished` routine in OpenSSL and may be used + * to implement the `tls-unique` channel binding from [RFC 5929](https://tools.ietf.org/html/rfc5929). + * @since v9.9.0 + * @return The latest `Finished` message that has been sent to the socket as part of a SSL/TLS handshake, or `undefined` if no `Finished` message has been sent yet. + */ + getFinished(): Buffer | undefined; + /** + * Returns an object representing the peer's certificate. If the peer does not + * provide a certificate, an empty object will be returned. If the socket has been + * destroyed, `null` will be returned. + * + * If the full certificate chain was requested, each certificate will include an`issuerCertificate` property containing an object representing its issuer's + * certificate. + * @since v0.11.4 + * @param detailed Include the full certificate chain if `true`, otherwise include just the peer's certificate. + * @return A certificate object. + */ + getPeerCertificate(detailed: true): DetailedPeerCertificate; + getPeerCertificate(detailed?: false): PeerCertificate; + getPeerCertificate(detailed?: boolean): PeerCertificate | DetailedPeerCertificate; + /** + * As the `Finished` messages are message digests of the complete handshake + * (with a total of 192 bits for TLS 1.0 and more for SSL 3.0), they can + * be used for external authentication procedures when the authentication + * provided by SSL/TLS is not desired or is not enough. + * + * Corresponds to the `SSL_get_peer_finished` routine in OpenSSL and may be used + * to implement the `tls-unique` channel binding from [RFC 5929](https://tools.ietf.org/html/rfc5929). + * @since v9.9.0 + * @return The latest `Finished` message that is expected or has actually been received from the socket as part of a SSL/TLS handshake, or `undefined` if there is no `Finished` message so + * far. + */ + getPeerFinished(): Buffer | undefined; + /** + * Returns a string containing the negotiated SSL/TLS protocol version of the + * current connection. The value `'unknown'` will be returned for connected + * sockets that have not completed the handshaking process. The value `null` will + * be returned for server sockets or disconnected client sockets. + * + * Protocol versions are: + * + * * `'SSLv3'` + * * `'TLSv1'` + * * `'TLSv1.1'` + * * `'TLSv1.2'` + * * `'TLSv1.3'` + * + * See the OpenSSL [`SSL_get_version`](https://www.openssl.org/docs/man1.1.1/man3/SSL_get_version.html) documentation for more information. + * @since v5.7.0 + */ + getProtocol(): string | null; + /** + * Returns the TLS session data or `undefined` if no session was + * negotiated. On the client, the data can be provided to the `session` option of {@link connect} to resume the connection. On the server, it may be useful + * for debugging. + * + * See `Session Resumption` for more information. + * + * Note: `getSession()` works only for TLSv1.2 and below. For TLSv1.3, applications + * must use the `'session'` event (it also works for TLSv1.2 and below). + * @since v0.11.4 + */ + getSession(): Buffer | undefined; + /** + * See [SSL\_get\_shared\_sigalgs](https://www.openssl.org/docs/man1.1.1/man3/SSL_get_shared_sigalgs.html) for more information. + * @since v12.11.0 + * @return List of signature algorithms shared between the server and the client in the order of decreasing preference. + */ + getSharedSigalgs(): string[]; + /** + * For a client, returns the TLS session ticket if one is available, or`undefined`. For a server, always returns `undefined`. + * + * It may be useful for debugging. + * + * See `Session Resumption` for more information. + * @since v0.11.4 + */ + getTLSTicket(): Buffer | undefined; + /** + * See `Session Resumption` for more information. + * @since v0.5.6 + * @return `true` if the session was reused, `false` otherwise. + */ + isSessionReused(): boolean; + /** + * The `tlsSocket.renegotiate()` method initiates a TLS renegotiation process. + * Upon completion, the `callback` function will be passed a single argument + * that is either an `Error` (if the request failed) or `null`. + * + * This method can be used to request a peer's certificate after the secure + * connection has been established. + * + * When running as the server, the socket will be destroyed with an error after`handshakeTimeout` timeout. + * + * For TLSv1.3, renegotiation cannot be initiated, it is not supported by the + * protocol. + * @since v0.11.8 + * @param callback If `renegotiate()` returned `true`, callback is attached once to the `'secure'` event. If `renegotiate()` returned `false`, `callback` will be called in the next tick with + * an error, unless the `tlsSocket` has been destroyed, in which case `callback` will not be called at all. + * @return `true` if renegotiation was initiated, `false` otherwise. + */ + renegotiate( + options: { + rejectUnauthorized?: boolean | undefined; + requestCert?: boolean | undefined; + }, + callback: (err: Error | null) => void + ): undefined | boolean; + /** + * The `tlsSocket.setMaxSendFragment()` method sets the maximum TLS fragment size. + * Returns `true` if setting the limit succeeded; `false` otherwise. + * + * Smaller fragment sizes decrease the buffering latency on the client: larger + * fragments are buffered by the TLS layer until the entire fragment is received + * and its integrity is verified; large fragments can span multiple roundtrips + * and their processing can be delayed due to packet loss or reordering. However, + * smaller fragments add extra TLS framing bytes and CPU overhead, which may + * decrease overall server throughput. + * @since v0.11.11 + * @param [size=16384] The maximum TLS fragment size. The maximum value is `16384`. + */ + setMaxSendFragment(size: number): boolean; + /** + * Disables TLS renegotiation for this `TLSSocket` instance. Once called, attempts + * to renegotiate will trigger an `'error'` event on the `TLSSocket`. + * @since v8.4.0 + */ + disableRenegotiation(): void; + /** + * When enabled, TLS packet trace information is written to `stderr`. This can be + * used to debug TLS connection problems. + * + * The format of the output is identical to the output of`openssl s_client -trace` or `openssl s_server -trace`. While it is produced by + * OpenSSL's `SSL_trace()` function, the format is undocumented, can change + * without notice, and should not be relied on. + * @since v12.2.0 + */ + enableTrace(): void; + /** + * Returns the peer certificate as an `X509Certificate` object. + * + * If there is no peer certificate, or the socket has been destroyed,`undefined` will be returned. + * @since v15.9.0 + */ + getPeerX509Certificate(): X509Certificate | undefined; + /** + * Returns the local certificate as an `X509Certificate` object. + * + * If there is no local certificate, or the socket has been destroyed,`undefined` will be returned. + * @since v15.9.0 + */ + getX509Certificate(): X509Certificate | undefined; + /** + * Keying material is used for validations to prevent different kind of attacks in + * network protocols, for example in the specifications of IEEE 802.1X. + * + * Example + * + * ```js + * const keyingMaterial = tlsSocket.exportKeyingMaterial( + * 128, + * 'client finished'); + * + * /* + * Example return value of keyingMaterial: + * + * + * ``` + * + * See the OpenSSL [`SSL_export_keying_material`](https://www.openssl.org/docs/man1.1.1/man3/SSL_export_keying_material.html) documentation for more + * information. + * @since v13.10.0, v12.17.0 + * @param length number of bytes to retrieve from keying material + * @param label an application specific label, typically this will be a value from the [IANA Exporter Label + * Registry](https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#exporter-labels). + * @param context Optionally provide a context. + * @return requested bytes of the keying material + */ + exportKeyingMaterial(length: number, label: string, context: Buffer): Buffer; + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'OCSPResponse', listener: (response: Buffer) => void): this; + addListener(event: 'secureConnect', listener: () => void): this; + addListener(event: 'session', listener: (session: Buffer) => void): this; + addListener(event: 'keylog', listener: (line: Buffer) => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'OCSPResponse', response: Buffer): boolean; + emit(event: 'secureConnect'): boolean; + emit(event: 'session', session: Buffer): boolean; + emit(event: 'keylog', line: Buffer): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'OCSPResponse', listener: (response: Buffer) => void): this; + on(event: 'secureConnect', listener: () => void): this; + on(event: 'session', listener: (session: Buffer) => void): this; + on(event: 'keylog', listener: (line: Buffer) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'OCSPResponse', listener: (response: Buffer) => void): this; + once(event: 'secureConnect', listener: () => void): this; + once(event: 'session', listener: (session: Buffer) => void): this; + once(event: 'keylog', listener: (line: Buffer) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'OCSPResponse', listener: (response: Buffer) => void): this; + prependListener(event: 'secureConnect', listener: () => void): this; + prependListener(event: 'session', listener: (session: Buffer) => void): this; + prependListener(event: 'keylog', listener: (line: Buffer) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'OCSPResponse', listener: (response: Buffer) => void): this; + prependOnceListener(event: 'secureConnect', listener: () => void): this; + prependOnceListener(event: 'session', listener: (session: Buffer) => void): this; + prependOnceListener(event: 'keylog', listener: (line: Buffer) => void): this; + } + interface CommonConnectionOptions { + /** + * An optional TLS context object from tls.createSecureContext() + */ + secureContext?: SecureContext | undefined; + /** + * When enabled, TLS packet trace information is written to `stderr`. This can be + * used to debug TLS connection problems. + * @default false + */ + enableTrace?: boolean | undefined; + /** + * If true the server will request a certificate from clients that + * connect and attempt to verify that certificate. Defaults to + * false. + */ + requestCert?: boolean | undefined; + /** + * An array of strings or a Buffer naming possible ALPN protocols. + * (Protocols should be ordered by their priority.) + */ + ALPNProtocols?: string[] | Uint8Array[] | Uint8Array | undefined; + /** + * SNICallback(servername, cb) A function that will be + * called if the client supports SNI TLS extension. Two arguments + * will be passed when called: servername and cb. SNICallback should + * invoke cb(null, ctx), where ctx is a SecureContext instance. + * (tls.createSecureContext(...) can be used to get a proper + * SecureContext.) If SNICallback wasn't provided the default callback + * with high-level API will be used (see below). + */ + SNICallback?: ((servername: string, cb: (err: Error | null, ctx?: SecureContext) => void) => void) | undefined; + /** + * If true the server will reject any connection which is not + * authorized with the list of supplied CAs. This option only has an + * effect if requestCert is true. + * @default true + */ + rejectUnauthorized?: boolean | undefined; + } + interface TlsOptions extends SecureContextOptions, CommonConnectionOptions, net.ServerOpts { + /** + * Abort the connection if the SSL/TLS handshake does not finish in the + * specified number of milliseconds. A 'tlsClientError' is emitted on + * the tls.Server object whenever a handshake times out. Default: + * 120000 (120 seconds). + */ + handshakeTimeout?: number | undefined; + /** + * The number of seconds after which a TLS session created by the + * server will no longer be resumable. See Session Resumption for more + * information. Default: 300. + */ + sessionTimeout?: number | undefined; + /** + * 48-bytes of cryptographically strong pseudo-random data. + */ + ticketKeys?: Buffer | undefined; + /** + * + * @param socket + * @param identity identity parameter sent from the client. + * @return pre-shared key that must either be + * a buffer or `null` to stop the negotiation process. Returned PSK must be + * compatible with the selected cipher's digest. + * + * When negotiating TLS-PSK (pre-shared keys), this function is called + * with the identity provided by the client. + * If the return value is `null` the negotiation process will stop and an + * "unknown_psk_identity" alert message will be sent to the other party. + * If the server wishes to hide the fact that the PSK identity was not known, + * the callback must provide some random data as `psk` to make the connection + * fail with "decrypt_error" before negotiation is finished. + * PSK ciphers are disabled by default, and using TLS-PSK thus + * requires explicitly specifying a cipher suite with the `ciphers` option. + * More information can be found in the RFC 4279. + */ + pskCallback?(socket: TLSSocket, identity: string): DataView | NodeJS.TypedArray | null; + /** + * hint to send to a client to help + * with selecting the identity during TLS-PSK negotiation. Will be ignored + * in TLS 1.3. Upon failing to set pskIdentityHint `tlsClientError` will be + * emitted with `ERR_TLS_PSK_SET_IDENTIY_HINT_FAILED` code. + */ + pskIdentityHint?: string | undefined; + } + interface PSKCallbackNegotation { + psk: DataView | NodeJS.TypedArray; + identity: string; + } + interface ConnectionOptions extends SecureContextOptions, CommonConnectionOptions { + host?: string | undefined; + port?: number | undefined; + path?: string | undefined; // Creates unix socket connection to path. If this option is specified, `host` and `port` are ignored. + socket?: stream.Duplex | undefined; // Establish secure connection on a given socket rather than creating a new socket + checkServerIdentity?: typeof checkServerIdentity | undefined; + servername?: string | undefined; // SNI TLS Extension + session?: Buffer | undefined; + minDHSize?: number | undefined; + lookup?: net.LookupFunction | undefined; + timeout?: number | undefined; + /** + * When negotiating TLS-PSK (pre-shared keys), this function is called + * with optional identity `hint` provided by the server or `null` + * in case of TLS 1.3 where `hint` was removed. + * It will be necessary to provide a custom `tls.checkServerIdentity()` + * for the connection as the default one will try to check hostname/IP + * of the server against the certificate but that's not applicable for PSK + * because there won't be a certificate present. + * More information can be found in the RFC 4279. + * + * @param hint message sent from the server to help client + * decide which identity to use during negotiation. + * Always `null` if TLS 1.3 is used. + * @returns Return `null` to stop the negotiation process. `psk` must be + * compatible with the selected cipher's digest. + * `identity` must use UTF-8 encoding. + */ + pskCallback?(hint: string | null): PSKCallbackNegotation | null; + } + /** + * Accepts encrypted connections using TLS or SSL. + * @since v0.3.2 + */ + class Server extends net.Server { + constructor(secureConnectionListener?: (socket: TLSSocket) => void); + constructor(options: TlsOptions, secureConnectionListener?: (socket: TLSSocket) => void); + /** + * The `server.addContext()` method adds a secure context that will be used if + * the client request's SNI name matches the supplied `hostname` (or wildcard). + * + * When there are multiple matching contexts, the most recently added one is + * used. + * @since v0.5.3 + * @param hostname A SNI host name or wildcard (e.g. `'*'`) + * @param context An object containing any of the possible properties from the {@link createSecureContext} `options` arguments (e.g. `key`, `cert`, `ca`, etc). + */ + addContext(hostname: string, context: SecureContextOptions): void; + /** + * Returns the session ticket keys. + * + * See `Session Resumption` for more information. + * @since v3.0.0 + * @return A 48-byte buffer containing the session ticket keys. + */ + getTicketKeys(): Buffer; + /** + * The `server.setSecureContext()` method replaces the secure context of an + * existing server. Existing connections to the server are not interrupted. + * @since v11.0.0 + * @param options An object containing any of the possible properties from the {@link createSecureContext} `options` arguments (e.g. `key`, `cert`, `ca`, etc). + */ + setSecureContext(options: SecureContextOptions): void; + /** + * Sets the session ticket keys. + * + * Changes to the ticket keys are effective only for future server connections. + * Existing or currently pending server connections will use the previous keys. + * + * See `Session Resumption` for more information. + * @since v3.0.0 + * @param keys A 48-byte buffer containing the session ticket keys. + */ + setTicketKeys(keys: Buffer): void; + /** + * events.EventEmitter + * 1. tlsClientError + * 2. newSession + * 3. OCSPRequest + * 4. resumeSession + * 5. secureConnection + * 6. keylog + */ + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'tlsClientError', listener: (err: Error, tlsSocket: TLSSocket) => void): this; + addListener(event: 'newSession', listener: (sessionId: Buffer, sessionData: Buffer, callback: () => void) => void): this; + addListener(event: 'OCSPRequest', listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this; + addListener(event: 'resumeSession', listener: (sessionId: Buffer, callback: (err: Error | null, sessionData: Buffer | null) => void) => void): this; + addListener(event: 'secureConnection', listener: (tlsSocket: TLSSocket) => void): this; + addListener(event: 'keylog', listener: (line: Buffer, tlsSocket: TLSSocket) => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'tlsClientError', err: Error, tlsSocket: TLSSocket): boolean; + emit(event: 'newSession', sessionId: Buffer, sessionData: Buffer, callback: () => void): boolean; + emit(event: 'OCSPRequest', certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void): boolean; + emit(event: 'resumeSession', sessionId: Buffer, callback: (err: Error | null, sessionData: Buffer | null) => void): boolean; + emit(event: 'secureConnection', tlsSocket: TLSSocket): boolean; + emit(event: 'keylog', line: Buffer, tlsSocket: TLSSocket): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'tlsClientError', listener: (err: Error, tlsSocket: TLSSocket) => void): this; + on(event: 'newSession', listener: (sessionId: Buffer, sessionData: Buffer, callback: () => void) => void): this; + on(event: 'OCSPRequest', listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this; + on(event: 'resumeSession', listener: (sessionId: Buffer, callback: (err: Error | null, sessionData: Buffer | null) => void) => void): this; + on(event: 'secureConnection', listener: (tlsSocket: TLSSocket) => void): this; + on(event: 'keylog', listener: (line: Buffer, tlsSocket: TLSSocket) => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'tlsClientError', listener: (err: Error, tlsSocket: TLSSocket) => void): this; + once(event: 'newSession', listener: (sessionId: Buffer, sessionData: Buffer, callback: () => void) => void): this; + once(event: 'OCSPRequest', listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this; + once(event: 'resumeSession', listener: (sessionId: Buffer, callback: (err: Error | null, sessionData: Buffer | null) => void) => void): this; + once(event: 'secureConnection', listener: (tlsSocket: TLSSocket) => void): this; + once(event: 'keylog', listener: (line: Buffer, tlsSocket: TLSSocket) => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'tlsClientError', listener: (err: Error, tlsSocket: TLSSocket) => void): this; + prependListener(event: 'newSession', listener: (sessionId: Buffer, sessionData: Buffer, callback: () => void) => void): this; + prependListener(event: 'OCSPRequest', listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this; + prependListener(event: 'resumeSession', listener: (sessionId: Buffer, callback: (err: Error | null, sessionData: Buffer | null) => void) => void): this; + prependListener(event: 'secureConnection', listener: (tlsSocket: TLSSocket) => void): this; + prependListener(event: 'keylog', listener: (line: Buffer, tlsSocket: TLSSocket) => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'tlsClientError', listener: (err: Error, tlsSocket: TLSSocket) => void): this; + prependOnceListener(event: 'newSession', listener: (sessionId: Buffer, sessionData: Buffer, callback: () => void) => void): this; + prependOnceListener(event: 'OCSPRequest', listener: (certificate: Buffer, issuer: Buffer, callback: (err: Error | null, resp: Buffer) => void) => void): this; + prependOnceListener(event: 'resumeSession', listener: (sessionId: Buffer, callback: (err: Error | null, sessionData: Buffer | null) => void) => void): this; + prependOnceListener(event: 'secureConnection', listener: (tlsSocket: TLSSocket) => void): this; + prependOnceListener(event: 'keylog', listener: (line: Buffer, tlsSocket: TLSSocket) => void): this; + } + /** + * @deprecated since v0.11.3 Use `tls.TLSSocket` instead. + */ + interface SecurePair { + encrypted: TLSSocket; + cleartext: TLSSocket; + } + type SecureVersion = 'TLSv1.3' | 'TLSv1.2' | 'TLSv1.1' | 'TLSv1'; + interface SecureContextOptions { + /** + * Optionally override the trusted CA certificates. Default is to trust + * the well-known CAs curated by Mozilla. Mozilla's CAs are completely + * replaced when CAs are explicitly specified using this option. + */ + ca?: string | Buffer | Array | undefined; + /** + * Cert chains in PEM format. One cert chain should be provided per + * private key. Each cert chain should consist of the PEM formatted + * certificate for a provided private key, followed by the PEM + * formatted intermediate certificates (if any), in order, and not + * including the root CA (the root CA must be pre-known to the peer, + * see ca). When providing multiple cert chains, they do not have to + * be in the same order as their private keys in key. If the + * intermediate certificates are not provided, the peer will not be + * able to validate the certificate, and the handshake will fail. + */ + cert?: string | Buffer | Array | undefined; + /** + * Colon-separated list of supported signature algorithms. The list + * can contain digest algorithms (SHA256, MD5 etc.), public key + * algorithms (RSA-PSS, ECDSA etc.), combination of both (e.g + * 'RSA+SHA384') or TLS v1.3 scheme names (e.g. rsa_pss_pss_sha512). + */ + sigalgs?: string | undefined; + /** + * Cipher suite specification, replacing the default. For more + * information, see modifying the default cipher suite. Permitted + * ciphers can be obtained via tls.getCiphers(). Cipher names must be + * uppercased in order for OpenSSL to accept them. + */ + ciphers?: string | undefined; + /** + * Name of an OpenSSL engine which can provide the client certificate. + */ + clientCertEngine?: string | undefined; + /** + * PEM formatted CRLs (Certificate Revocation Lists). + */ + crl?: string | Buffer | Array | undefined; + /** + * Diffie Hellman parameters, required for Perfect Forward Secrecy. Use + * openssl dhparam to create the parameters. The key length must be + * greater than or equal to 1024 bits or else an error will be thrown. + * Although 1024 bits is permissible, use 2048 bits or larger for + * stronger security. If omitted or invalid, the parameters are + * silently discarded and DHE ciphers will not be available. + */ + dhparam?: string | Buffer | undefined; + /** + * A string describing a named curve or a colon separated list of curve + * NIDs or names, for example P-521:P-384:P-256, to use for ECDH key + * agreement. Set to auto to select the curve automatically. Use + * crypto.getCurves() to obtain a list of available curve names. On + * recent releases, openssl ecparam -list_curves will also display the + * name and description of each available elliptic curve. Default: + * tls.DEFAULT_ECDH_CURVE. + */ + ecdhCurve?: string | undefined; + /** + * Attempt to use the server's cipher suite preferences instead of the + * client's. When true, causes SSL_OP_CIPHER_SERVER_PREFERENCE to be + * set in secureOptions + */ + honorCipherOrder?: boolean | undefined; + /** + * Private keys in PEM format. PEM allows the option of private keys + * being encrypted. Encrypted keys will be decrypted with + * options.passphrase. Multiple keys using different algorithms can be + * provided either as an array of unencrypted key strings or buffers, + * or an array of objects in the form {pem: [, + * passphrase: ]}. The object form can only occur in an array. + * object.passphrase is optional. Encrypted keys will be decrypted with + * object.passphrase if provided, or options.passphrase if it is not. + */ + key?: string | Buffer | Array | undefined; + /** + * Name of an OpenSSL engine to get private key from. Should be used + * together with privateKeyIdentifier. + */ + privateKeyEngine?: string | undefined; + /** + * Identifier of a private key managed by an OpenSSL engine. Should be + * used together with privateKeyEngine. Should not be set together with + * key, because both options define a private key in different ways. + */ + privateKeyIdentifier?: string | undefined; + /** + * Optionally set the maximum TLS version to allow. One + * of `'TLSv1.3'`, `'TLSv1.2'`, `'TLSv1.1'`, or `'TLSv1'`. Cannot be specified along with the + * `secureProtocol` option, use one or the other. + * **Default:** `'TLSv1.3'`, unless changed using CLI options. Using + * `--tls-max-v1.2` sets the default to `'TLSv1.2'`. Using `--tls-max-v1.3` sets the default to + * `'TLSv1.3'`. If multiple of the options are provided, the highest maximum is used. + */ + maxVersion?: SecureVersion | undefined; + /** + * Optionally set the minimum TLS version to allow. One + * of `'TLSv1.3'`, `'TLSv1.2'`, `'TLSv1.1'`, or `'TLSv1'`. Cannot be specified along with the + * `secureProtocol` option, use one or the other. It is not recommended to use + * less than TLSv1.2, but it may be required for interoperability. + * **Default:** `'TLSv1.2'`, unless changed using CLI options. Using + * `--tls-v1.0` sets the default to `'TLSv1'`. Using `--tls-v1.1` sets the default to + * `'TLSv1.1'`. Using `--tls-min-v1.3` sets the default to + * 'TLSv1.3'. If multiple of the options are provided, the lowest minimum is used. + */ + minVersion?: SecureVersion | undefined; + /** + * Shared passphrase used for a single private key and/or a PFX. + */ + passphrase?: string | undefined; + /** + * PFX or PKCS12 encoded private key and certificate chain. pfx is an + * alternative to providing key and cert individually. PFX is usually + * encrypted, if it is, passphrase will be used to decrypt it. Multiple + * PFX can be provided either as an array of unencrypted PFX buffers, + * or an array of objects in the form {buf: [, + * passphrase: ]}. The object form can only occur in an array. + * object.passphrase is optional. Encrypted PFX will be decrypted with + * object.passphrase if provided, or options.passphrase if it is not. + */ + pfx?: string | Buffer | Array | undefined; + /** + * Optionally affect the OpenSSL protocol behavior, which is not + * usually necessary. This should be used carefully if at all! Value is + * a numeric bitmask of the SSL_OP_* options from OpenSSL Options + */ + secureOptions?: number | undefined; // Value is a numeric bitmask of the `SSL_OP_*` options + /** + * Legacy mechanism to select the TLS protocol version to use, it does + * not support independent control of the minimum and maximum version, + * and does not support limiting the protocol to TLSv1.3. Use + * minVersion and maxVersion instead. The possible values are listed as + * SSL_METHODS, use the function names as strings. For example, use + * 'TLSv1_1_method' to force TLS version 1.1, or 'TLS_method' to allow + * any TLS protocol version up to TLSv1.3. It is not recommended to use + * TLS versions less than 1.2, but it may be required for + * interoperability. Default: none, see minVersion. + */ + secureProtocol?: string | undefined; + /** + * Opaque identifier used by servers to ensure session state is not + * shared between applications. Unused by clients. + */ + sessionIdContext?: string | undefined; + /** + * 48-bytes of cryptographically strong pseudo-random data. + * See Session Resumption for more information. + */ + ticketKeys?: Buffer | undefined; + /** + * The number of seconds after which a TLS session created by the + * server will no longer be resumable. See Session Resumption for more + * information. Default: 300. + */ + sessionTimeout?: number | undefined; + } + interface SecureContext { + context: any; + } + /** + * Verifies the certificate `cert` is issued to `hostname`. + * + * Returns [Error](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) object, populating it with `reason`, `host`, and `cert` on + * failure. On success, returns [undefined](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Undefined_type). + * + * This function is intended to be used in combination with the`checkServerIdentity` option that can be passed to {@link connect} and as + * such operates on a `certificate object`. For other purposes, consider using `x509.checkHost()` instead. + * + * This function can be overwritten by providing an alternative function as the`options.checkServerIdentity` option that is passed to `tls.connect()`. The + * overwriting function can call `tls.checkServerIdentity()` of course, to augment + * the checks done with additional verification. + * + * This function is only called if the certificate passed all other checks, such as + * being issued by trusted CA (`options.ca`). + * + * Earlier versions of Node.js incorrectly accepted certificates for a given`hostname` if a matching `uniformResourceIdentifier` subject alternative name + * was present (see [CVE-2021-44531](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44531)). Applications that wish to accept`uniformResourceIdentifier` subject alternative names can use + * a custom`options.checkServerIdentity` function that implements the desired behavior. + * @since v0.8.4 + * @param hostname The host name or IP address to verify the certificate against. + * @param cert A `certificate object` representing the peer's certificate. + */ + function checkServerIdentity(hostname: string, cert: PeerCertificate): Error | undefined; + /** + * Creates a new {@link Server}. The `secureConnectionListener`, if provided, is + * automatically set as a listener for the `'secureConnection'` event. + * + * The `ticketKeys` options is automatically shared between `cluster` module + * workers. + * + * The following illustrates a simple echo server: + * + * ```js + * const tls = require('tls'); + * const fs = require('fs'); + * + * const options = { + * key: fs.readFileSync('server-key.pem'), + * cert: fs.readFileSync('server-cert.pem'), + * + * // This is necessary only if using client certificate authentication. + * requestCert: true, + * + * // This is necessary only if the client uses a self-signed certificate. + * ca: [ fs.readFileSync('client-cert.pem') ] + * }; + * + * const server = tls.createServer(options, (socket) => { + * console.log('server connected', + * socket.authorized ? 'authorized' : 'unauthorized'); + * socket.write('welcome!\n'); + * socket.setEncoding('utf8'); + * socket.pipe(socket); + * }); + * server.listen(8000, () => { + * console.log('server bound'); + * }); + * ``` + * + * The server can be tested by connecting to it using the example client from {@link connect}. + * @since v0.3.2 + */ + function createServer(secureConnectionListener?: (socket: TLSSocket) => void): Server; + function createServer(options: TlsOptions, secureConnectionListener?: (socket: TLSSocket) => void): Server; + /** + * The `callback` function, if specified, will be added as a listener for the `'secureConnect'` event. + * + * `tls.connect()` returns a {@link TLSSocket} object. + * + * Unlike the `https` API, `tls.connect()` does not enable the + * SNI (Server Name Indication) extension by default, which may cause some + * servers to return an incorrect certificate or reject the connection + * altogether. To enable SNI, set the `servername` option in addition + * to `host`. + * + * The following illustrates a client for the echo server example from {@link createServer}: + * + * ```js + * // Assumes an echo server that is listening on port 8000. + * const tls = require('tls'); + * const fs = require('fs'); + * + * const options = { + * // Necessary only if the server requires client certificate authentication. + * key: fs.readFileSync('client-key.pem'), + * cert: fs.readFileSync('client-cert.pem'), + * + * // Necessary only if the server uses a self-signed certificate. + * ca: [ fs.readFileSync('server-cert.pem') ], + * + * // Necessary only if the server's cert isn't for "localhost". + * checkServerIdentity: () => { return null; }, + * }; + * + * const socket = tls.connect(8000, options, () => { + * console.log('client connected', + * socket.authorized ? 'authorized' : 'unauthorized'); + * process.stdin.pipe(socket); + * process.stdin.resume(); + * }); + * socket.setEncoding('utf8'); + * socket.on('data', (data) => { + * console.log(data); + * }); + * socket.on('end', () => { + * console.log('server ends connection'); + * }); + * ``` + * @since v0.11.3 + */ + function connect(options: ConnectionOptions, secureConnectListener?: () => void): TLSSocket; + function connect(port: number, host?: string, options?: ConnectionOptions, secureConnectListener?: () => void): TLSSocket; + function connect(port: number, options?: ConnectionOptions, secureConnectListener?: () => void): TLSSocket; + /** + * Creates a new secure pair object with two streams, one of which reads and writes + * the encrypted data and the other of which reads and writes the cleartext data. + * Generally, the encrypted stream is piped to/from an incoming encrypted data + * stream and the cleartext one is used as a replacement for the initial encrypted + * stream. + * + * `tls.createSecurePair()` returns a `tls.SecurePair` object with `cleartext` and`encrypted` stream properties. + * + * Using `cleartext` has the same API as {@link TLSSocket}. + * + * The `tls.createSecurePair()` method is now deprecated in favor of`tls.TLSSocket()`. For example, the code: + * + * ```js + * pair = tls.createSecurePair(// ... ); + * pair.encrypted.pipe(socket); + * socket.pipe(pair.encrypted); + * ``` + * + * can be replaced by: + * + * ```js + * secureSocket = tls.TLSSocket(socket, options); + * ``` + * + * where `secureSocket` has the same API as `pair.cleartext`. + * @since v0.3.2 + * @deprecated Since v0.11.3 - Use {@link TLSSocket} instead. + * @param context A secure context object as returned by `tls.createSecureContext()` + * @param isServer `true` to specify that this TLS connection should be opened as a server. + * @param requestCert `true` to specify whether a server should request a certificate from a connecting client. Only applies when `isServer` is `true`. + * @param rejectUnauthorized If not `false` a server automatically reject clients with invalid certificates. Only applies when `isServer` is `true`. + */ + function createSecurePair(context?: SecureContext, isServer?: boolean, requestCert?: boolean, rejectUnauthorized?: boolean): SecurePair; + /** + * {@link createServer} sets the default value of the `honorCipherOrder` option + * to `true`, other APIs that create secure contexts leave it unset. + * + * {@link createServer} uses a 128 bit truncated SHA1 hash value generated + * from `process.argv` as the default value of the `sessionIdContext` option, other + * APIs that create secure contexts have no default value. + * + * The `tls.createSecureContext()` method creates a `SecureContext` object. It is + * usable as an argument to several `tls` APIs, such as {@link createServer} and `server.addContext()`, but has no public methods. + * + * A key is _required_ for ciphers that use certificates. Either `key` or`pfx` can be used to provide it. + * + * If the `ca` option is not given, then Node.js will default to using [Mozilla's publicly trusted list of + * CAs](https://hg.mozilla.org/mozilla-central/raw-file/tip/security/nss/lib/ckfw/builtins/certdata.txt). + * @since v0.11.13 + */ + function createSecureContext(options?: SecureContextOptions): SecureContext; + /** + * Returns an array with the names of the supported TLS ciphers. The names are + * lower-case for historical reasons, but must be uppercased to be used in + * the `ciphers` option of {@link createSecureContext}. + * + * Not all supported ciphers are enabled by default. See `Modifying the default TLS cipher suite`. + * + * Cipher names that start with `'tls_'` are for TLSv1.3, all the others are for + * TLSv1.2 and below. + * + * ```js + * console.log(tls.getCiphers()); // ['aes128-gcm-sha256', 'aes128-sha', ...] + * ``` + * @since v0.10.2 + */ + function getCiphers(): string[]; + /** + * The default curve name to use for ECDH key agreement in a tls server. + * The default value is 'auto'. See tls.createSecureContext() for further + * information. + */ + let DEFAULT_ECDH_CURVE: string; + /** + * The default value of the maxVersion option of + * tls.createSecureContext(). It can be assigned any of the supported TLS + * protocol versions, 'TLSv1.3', 'TLSv1.2', 'TLSv1.1', or 'TLSv1'. Default: + * 'TLSv1.3', unless changed using CLI options. Using --tls-max-v1.2 sets + * the default to 'TLSv1.2'. Using --tls-max-v1.3 sets the default to + * 'TLSv1.3'. If multiple of the options are provided, the highest maximum + * is used. + */ + let DEFAULT_MAX_VERSION: SecureVersion; + /** + * The default value of the minVersion option of tls.createSecureContext(). + * It can be assigned any of the supported TLS protocol versions, + * 'TLSv1.3', 'TLSv1.2', 'TLSv1.1', or 'TLSv1'. Default: 'TLSv1.2', unless + * changed using CLI options. Using --tls-min-v1.0 sets the default to + * 'TLSv1'. Using --tls-min-v1.1 sets the default to 'TLSv1.1'. Using + * --tls-min-v1.3 sets the default to 'TLSv1.3'. If multiple of the options + * are provided, the lowest minimum is used. + */ + let DEFAULT_MIN_VERSION: SecureVersion; + /** + * An immutable array of strings representing the root certificates (in PEM + * format) used for verifying peer certificates. This is the default value + * of the ca option to tls.createSecureContext(). + */ + const rootCertificates: ReadonlyArray; +} +declare module 'node:tls' { + export * from 'tls'; +} diff --git a/node_modules/@types/node/ts4.8/trace_events.d.ts b/node_modules/@types/node/ts4.8/trace_events.d.ts new file mode 100644 index 0000000..d47aa93 --- /dev/null +++ b/node_modules/@types/node/ts4.8/trace_events.d.ts @@ -0,0 +1,171 @@ +/** + * The `trace_events` module provides a mechanism to centralize tracing information + * generated by V8, Node.js core, and userspace code. + * + * Tracing can be enabled with the `--trace-event-categories` command-line flag + * or by using the `trace_events` module. The `--trace-event-categories` flag + * accepts a list of comma-separated category names. + * + * The available categories are: + * + * * `node`: An empty placeholder. + * * `node.async_hooks`: Enables capture of detailed `async_hooks` trace data. + * The `async_hooks` events have a unique `asyncId` and a special `triggerId` `triggerAsyncId` property. + * * `node.bootstrap`: Enables capture of Node.js bootstrap milestones. + * * `node.console`: Enables capture of `console.time()` and `console.count()`output. + * * `node.dns.native`: Enables capture of trace data for DNS queries. + * * `node.environment`: Enables capture of Node.js Environment milestones. + * * `node.fs.sync`: Enables capture of trace data for file system sync methods. + * * `node.perf`: Enables capture of `Performance API` measurements. + * * `node.perf.usertiming`: Enables capture of only Performance API User Timing + * measures and marks. + * * `node.perf.timerify`: Enables capture of only Performance API timerify + * measurements. + * * `node.promises.rejections`: Enables capture of trace data tracking the number + * of unhandled Promise rejections and handled-after-rejections. + * * `node.vm.script`: Enables capture of trace data for the `vm` module's`runInNewContext()`, `runInContext()`, and `runInThisContext()` methods. + * * `v8`: The `V8` events are GC, compiling, and execution related. + * + * By default the `node`, `node.async_hooks`, and `v8` categories are enabled. + * + * ```bash + * node --trace-event-categories v8,node,node.async_hooks server.js + * ``` + * + * Prior versions of Node.js required the use of the `--trace-events-enabled`flag to enable trace events. This requirement has been removed. However, the`--trace-events-enabled` flag _may_ still be + * used and will enable the`node`, `node.async_hooks`, and `v8` trace event categories by default. + * + * ```bash + * node --trace-events-enabled + * + * # is equivalent to + * + * node --trace-event-categories v8,node,node.async_hooks + * ``` + * + * Alternatively, trace events may be enabled using the `trace_events` module: + * + * ```js + * const trace_events = require('trace_events'); + * const tracing = trace_events.createTracing({ categories: ['node.perf'] }); + * tracing.enable(); // Enable trace event capture for the 'node.perf' category + * + * // do work + * + * tracing.disable(); // Disable trace event capture for the 'node.perf' category + * ``` + * + * Running Node.js with tracing enabled will produce log files that can be opened + * in the [`chrome://tracing`](https://www.chromium.org/developers/how-tos/trace-event-profiling-tool) tab of Chrome. + * + * The logging file is by default called `node_trace.${rotation}.log`, where`${rotation}` is an incrementing log-rotation id. The filepath pattern can + * be specified with `--trace-event-file-pattern` that accepts a template + * string that supports `${rotation}` and `${pid}`: + * + * ```bash + * node --trace-event-categories v8 --trace-event-file-pattern '${pid}-${rotation}.log' server.js + * ``` + * + * To guarantee that the log file is properly generated after signal events like`SIGINT`, `SIGTERM`, or `SIGBREAK`, make sure to have the appropriate handlers + * in your code, such as: + * + * ```js + * process.on('SIGINT', function onSigint() { + * console.info('Received SIGINT.'); + * process.exit(130); // Or applicable exit code depending on OS and signal + * }); + * ``` + * + * The tracing system uses the same time source + * as the one used by `process.hrtime()`. + * However the trace-event timestamps are expressed in microseconds, + * unlike `process.hrtime()` which returns nanoseconds. + * + * The features from this module are not available in `Worker` threads. + * @experimental + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/trace_events.js) + */ +declare module 'trace_events' { + /** + * The `Tracing` object is used to enable or disable tracing for sets of + * categories. Instances are created using the + * `trace_events.createTracing()` method. + * + * When created, the `Tracing` object is disabled. Calling the + * `tracing.enable()` method adds the categories to the set of enabled trace + * event categories. Calling `tracing.disable()` will remove the categories + * from the set of enabled trace event categories. + */ + interface Tracing { + /** + * A comma-separated list of the trace event categories covered by this + * `Tracing` object. + */ + readonly categories: string; + /** + * Disables this `Tracing` object. + * + * Only trace event categories _not_ covered by other enabled `Tracing` + * objects and _not_ specified by the `--trace-event-categories` flag + * will be disabled. + */ + disable(): void; + /** + * Enables this `Tracing` object for the set of categories covered by + * the `Tracing` object. + */ + enable(): void; + /** + * `true` only if the `Tracing` object has been enabled. + */ + readonly enabled: boolean; + } + interface CreateTracingOptions { + /** + * An array of trace category names. Values included in the array are + * coerced to a string when possible. An error will be thrown if the + * value cannot be coerced. + */ + categories: string[]; + } + /** + * Creates and returns a `Tracing` object for the given set of `categories`. + * + * ```js + * const trace_events = require('trace_events'); + * const categories = ['node.perf', 'node.async_hooks']; + * const tracing = trace_events.createTracing({ categories }); + * tracing.enable(); + * // do stuff + * tracing.disable(); + * ``` + * @since v10.0.0 + * @return . + */ + function createTracing(options: CreateTracingOptions): Tracing; + /** + * Returns a comma-separated list of all currently-enabled trace event + * categories. The current set of enabled trace event categories is determined + * by the _union_ of all currently-enabled `Tracing` objects and any categories + * enabled using the `--trace-event-categories` flag. + * + * Given the file `test.js` below, the command`node --trace-event-categories node.perf test.js` will print`'node.async_hooks,node.perf'` to the console. + * + * ```js + * const trace_events = require('trace_events'); + * const t1 = trace_events.createTracing({ categories: ['node.async_hooks'] }); + * const t2 = trace_events.createTracing({ categories: ['node.perf'] }); + * const t3 = trace_events.createTracing({ categories: ['v8'] }); + * + * t1.enable(); + * t2.enable(); + * + * console.log(trace_events.getEnabledCategories()); + * ``` + * @since v10.0.0 + */ + function getEnabledCategories(): string | undefined; +} +declare module 'node:trace_events' { + export * from 'trace_events'; +} diff --git a/node_modules/@types/node/ts4.8/tty.d.ts b/node_modules/@types/node/ts4.8/tty.d.ts new file mode 100644 index 0000000..6473f8d --- /dev/null +++ b/node_modules/@types/node/ts4.8/tty.d.ts @@ -0,0 +1,206 @@ +/** + * The `tty` module provides the `tty.ReadStream` and `tty.WriteStream` classes. + * In most cases, it will not be necessary or possible to use this module directly. + * However, it can be accessed using: + * + * ```js + * const tty = require('tty'); + * ``` + * + * When Node.js detects that it is being run with a text terminal ("TTY") + * attached, `process.stdin` will, by default, be initialized as an instance of`tty.ReadStream` and both `process.stdout` and `process.stderr` will, by + * default, be instances of `tty.WriteStream`. The preferred method of determining + * whether Node.js is being run within a TTY context is to check that the value of + * the `process.stdout.isTTY` property is `true`: + * + * ```console + * $ node -p -e "Boolean(process.stdout.isTTY)" + * true + * $ node -p -e "Boolean(process.stdout.isTTY)" | cat + * false + * ``` + * + * In most cases, there should be little to no reason for an application to + * manually create instances of the `tty.ReadStream` and `tty.WriteStream`classes. + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/tty.js) + */ +declare module 'tty' { + import * as net from 'node:net'; + /** + * The `tty.isatty()` method returns `true` if the given `fd` is associated with + * a TTY and `false` if it is not, including whenever `fd` is not a non-negative + * integer. + * @since v0.5.8 + * @param fd A numeric file descriptor + */ + function isatty(fd: number): boolean; + /** + * Represents the readable side of a TTY. In normal circumstances `process.stdin` will be the only `tty.ReadStream` instance in a Node.js + * process and there should be no reason to create additional instances. + * @since v0.5.8 + */ + class ReadStream extends net.Socket { + constructor(fd: number, options?: net.SocketConstructorOpts); + /** + * A `boolean` that is `true` if the TTY is currently configured to operate as a + * raw device. Defaults to `false`. + * @since v0.7.7 + */ + isRaw: boolean; + /** + * Allows configuration of `tty.ReadStream` so that it operates as a raw device. + * + * When in raw mode, input is always available character-by-character, not + * including modifiers. Additionally, all special processing of characters by the + * terminal is disabled, including echoing input + * characters. Ctrl+C will no longer cause a `SIGINT` when + * in this mode. + * @since v0.7.7 + * @param mode If `true`, configures the `tty.ReadStream` to operate as a raw device. If `false`, configures the `tty.ReadStream` to operate in its default mode. The `readStream.isRaw` + * property will be set to the resulting mode. + * @return The read stream instance. + */ + setRawMode(mode: boolean): this; + /** + * A `boolean` that is always `true` for `tty.ReadStream` instances. + * @since v0.5.8 + */ + isTTY: boolean; + } + /** + * -1 - to the left from cursor + * 0 - the entire line + * 1 - to the right from cursor + */ + type Direction = -1 | 0 | 1; + /** + * Represents the writable side of a TTY. In normal circumstances,`process.stdout` and `process.stderr` will be the only`tty.WriteStream` instances created for a Node.js process and there + * should be no reason to create additional instances. + * @since v0.5.8 + */ + class WriteStream extends net.Socket { + constructor(fd: number); + addListener(event: string, listener: (...args: any[]) => void): this; + addListener(event: 'resize', listener: () => void): this; + emit(event: string | symbol, ...args: any[]): boolean; + emit(event: 'resize'): boolean; + on(event: string, listener: (...args: any[]) => void): this; + on(event: 'resize', listener: () => void): this; + once(event: string, listener: (...args: any[]) => void): this; + once(event: 'resize', listener: () => void): this; + prependListener(event: string, listener: (...args: any[]) => void): this; + prependListener(event: 'resize', listener: () => void): this; + prependOnceListener(event: string, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'resize', listener: () => void): this; + /** + * `writeStream.clearLine()` clears the current line of this `WriteStream` in a + * direction identified by `dir`. + * @since v0.7.7 + * @param callback Invoked once the operation completes. + * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + clearLine(dir: Direction, callback?: () => void): boolean; + /** + * `writeStream.clearScreenDown()` clears this `WriteStream` from the current + * cursor down. + * @since v0.7.7 + * @param callback Invoked once the operation completes. + * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + clearScreenDown(callback?: () => void): boolean; + /** + * `writeStream.cursorTo()` moves this `WriteStream`'s cursor to the specified + * position. + * @since v0.7.7 + * @param callback Invoked once the operation completes. + * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + cursorTo(x: number, y?: number, callback?: () => void): boolean; + cursorTo(x: number, callback: () => void): boolean; + /** + * `writeStream.moveCursor()` moves this `WriteStream`'s cursor _relative_ to its + * current position. + * @since v0.7.7 + * @param callback Invoked once the operation completes. + * @return `false` if the stream wishes for the calling code to wait for the `'drain'` event to be emitted before continuing to write additional data; otherwise `true`. + */ + moveCursor(dx: number, dy: number, callback?: () => void): boolean; + /** + * Returns: + * + * * `1` for 2, + * * `4` for 16, + * * `8` for 256, + * * `24` for 16,777,216 colors supported. + * + * Use this to determine what colors the terminal supports. Due to the nature of + * colors in terminals it is possible to either have false positives or false + * negatives. It depends on process information and the environment variables that + * may lie about what terminal is used. + * It is possible to pass in an `env` object to simulate the usage of a specific + * terminal. This can be useful to check how specific environment settings behave. + * + * To enforce a specific color support, use one of the below environment settings. + * + * * 2 colors: `FORCE_COLOR = 0` (Disables colors) + * * 16 colors: `FORCE_COLOR = 1` + * * 256 colors: `FORCE_COLOR = 2` + * * 16,777,216 colors: `FORCE_COLOR = 3` + * + * Disabling color support is also possible by using the `NO_COLOR` and`NODE_DISABLE_COLORS` environment variables. + * @since v9.9.0 + * @param [env=process.env] An object containing the environment variables to check. This enables simulating the usage of a specific terminal. + */ + getColorDepth(env?: object): number; + /** + * Returns `true` if the `writeStream` supports at least as many colors as provided + * in `count`. Minimum support is 2 (black and white). + * + * This has the same false positives and negatives as described in `writeStream.getColorDepth()`. + * + * ```js + * process.stdout.hasColors(); + * // Returns true or false depending on if `stdout` supports at least 16 colors. + * process.stdout.hasColors(256); + * // Returns true or false depending on if `stdout` supports at least 256 colors. + * process.stdout.hasColors({ TMUX: '1' }); + * // Returns true. + * process.stdout.hasColors(2 ** 24, { TMUX: '1' }); + * // Returns false (the environment setting pretends to support 2 ** 8 colors). + * ``` + * @since v11.13.0, v10.16.0 + * @param [count=16] The number of colors that are requested (minimum 2). + * @param [env=process.env] An object containing the environment variables to check. This enables simulating the usage of a specific terminal. + */ + hasColors(count?: number): boolean; + hasColors(env?: object): boolean; + hasColors(count: number, env?: object): boolean; + /** + * `writeStream.getWindowSize()` returns the size of the TTY + * corresponding to this `WriteStream`. The array is of the type`[numColumns, numRows]` where `numColumns` and `numRows` represent the number + * of columns and rows in the corresponding TTY. + * @since v0.7.7 + */ + getWindowSize(): [number, number]; + /** + * A `number` specifying the number of columns the TTY currently has. This property + * is updated whenever the `'resize'` event is emitted. + * @since v0.7.7 + */ + columns: number; + /** + * A `number` specifying the number of rows the TTY currently has. This property + * is updated whenever the `'resize'` event is emitted. + * @since v0.7.7 + */ + rows: number; + /** + * A `boolean` that is always `true`. + * @since v0.5.8 + */ + isTTY: boolean; + } +} +declare module 'node:tty' { + export * from 'tty'; +} diff --git a/node_modules/@types/node/ts4.8/url.d.ts b/node_modules/@types/node/ts4.8/url.d.ts new file mode 100644 index 0000000..e172acb --- /dev/null +++ b/node_modules/@types/node/ts4.8/url.d.ts @@ -0,0 +1,897 @@ +/** + * The `url` module provides utilities for URL resolution and parsing. It can be + * accessed using: + * + * ```js + * import url from 'url'; + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/url.js) + */ +declare module 'url' { + import { Blob as NodeBlob } from 'node:buffer'; + import { ClientRequestArgs } from 'node:http'; + import { ParsedUrlQuery, ParsedUrlQueryInput } from 'node:querystring'; + // Input to `url.format` + interface UrlObject { + auth?: string | null | undefined; + hash?: string | null | undefined; + host?: string | null | undefined; + hostname?: string | null | undefined; + href?: string | null | undefined; + pathname?: string | null | undefined; + protocol?: string | null | undefined; + search?: string | null | undefined; + slashes?: boolean | null | undefined; + port?: string | number | null | undefined; + query?: string | null | ParsedUrlQueryInput | undefined; + } + // Output of `url.parse` + interface Url { + auth: string | null; + hash: string | null; + host: string | null; + hostname: string | null; + href: string; + path: string | null; + pathname: string | null; + protocol: string | null; + search: string | null; + slashes: boolean | null; + port: string | null; + query: string | null | ParsedUrlQuery; + } + interface UrlWithParsedQuery extends Url { + query: ParsedUrlQuery; + } + interface UrlWithStringQuery extends Url { + query: string | null; + } + /** + * The `url.parse()` method takes a URL string, parses it, and returns a URL + * object. + * + * A `TypeError` is thrown if `urlString` is not a string. + * + * A `URIError` is thrown if the `auth` property is present but cannot be decoded. + * + * Use of the legacy `url.parse()` method is discouraged. Users should + * use the WHATWG `URL` API. Because the `url.parse()` method uses a + * lenient, non-standard algorithm for parsing URL strings, security + * issues can be introduced. Specifically, issues with [host name spoofing](https://hackerone.com/reports/678487) and + * incorrect handling of usernames and passwords have been identified. + * + * Deprecation of this API has been shelved for now primarily due to the the + * inability of the [WHATWG API to parse relative URLs](https://github.com/nodejs/node/issues/12682#issuecomment-1154492373). + * [Discussions are ongoing](https://github.com/whatwg/url/issues/531) for the best way to resolve this. + * + * @since v0.1.25 + * @param urlString The URL string to parse. + * @param [parseQueryString=false] If `true`, the `query` property will always be set to an object returned by the {@link querystring} module's `parse()` method. If `false`, the `query` property + * on the returned URL object will be an unparsed, undecoded string. + * @param [slashesDenoteHost=false] If `true`, the first token after the literal string `//` and preceding the next `/` will be interpreted as the `host`. For instance, given `//foo/bar`, the + * result would be `{host: 'foo', pathname: '/bar'}` rather than `{pathname: '//foo/bar'}`. + */ + function parse(urlString: string): UrlWithStringQuery; + function parse(urlString: string, parseQueryString: false | undefined, slashesDenoteHost?: boolean): UrlWithStringQuery; + function parse(urlString: string, parseQueryString: true, slashesDenoteHost?: boolean): UrlWithParsedQuery; + function parse(urlString: string, parseQueryString: boolean, slashesDenoteHost?: boolean): Url; + /** + * The `url.format()` method returns a formatted URL string derived from`urlObject`. + * + * ```js + * const url = require('url'); + * url.format({ + * protocol: 'https', + * hostname: 'example.com', + * pathname: '/some/path', + * query: { + * page: 1, + * format: 'json' + * } + * }); + * + * // => 'https://example.com/some/path?page=1&format=json' + * ``` + * + * If `urlObject` is not an object or a string, `url.format()` will throw a `TypeError`. + * + * The formatting process operates as follows: + * + * * A new empty string `result` is created. + * * If `urlObject.protocol` is a string, it is appended as-is to `result`. + * * Otherwise, if `urlObject.protocol` is not `undefined` and is not a string, an `Error` is thrown. + * * For all string values of `urlObject.protocol` that _do not end_ with an ASCII + * colon (`:`) character, the literal string `:` will be appended to `result`. + * * If either of the following conditions is true, then the literal string `//`will be appended to `result`: + * * `urlObject.slashes` property is true; + * * `urlObject.protocol` begins with `http`, `https`, `ftp`, `gopher`, or`file`; + * * If the value of the `urlObject.auth` property is truthy, and either`urlObject.host` or `urlObject.hostname` are not `undefined`, the value of`urlObject.auth` will be coerced into a string + * and appended to `result`followed by the literal string `@`. + * * If the `urlObject.host` property is `undefined` then: + * * If the `urlObject.hostname` is a string, it is appended to `result`. + * * Otherwise, if `urlObject.hostname` is not `undefined` and is not a string, + * an `Error` is thrown. + * * If the `urlObject.port` property value is truthy, and `urlObject.hostname`is not `undefined`: + * * The literal string `:` is appended to `result`, and + * * The value of `urlObject.port` is coerced to a string and appended to`result`. + * * Otherwise, if the `urlObject.host` property value is truthy, the value of`urlObject.host` is coerced to a string and appended to `result`. + * * If the `urlObject.pathname` property is a string that is not an empty string: + * * If the `urlObject.pathname`_does not start_ with an ASCII forward slash + * (`/`), then the literal string `'/'` is appended to `result`. + * * The value of `urlObject.pathname` is appended to `result`. + * * Otherwise, if `urlObject.pathname` is not `undefined` and is not a string, an `Error` is thrown. + * * If the `urlObject.search` property is `undefined` and if the `urlObject.query`property is an `Object`, the literal string `?` is appended to `result`followed by the output of calling the + * `querystring` module's `stringify()`method passing the value of `urlObject.query`. + * * Otherwise, if `urlObject.search` is a string: + * * If the value of `urlObject.search`_does not start_ with the ASCII question + * mark (`?`) character, the literal string `?` is appended to `result`. + * * The value of `urlObject.search` is appended to `result`. + * * Otherwise, if `urlObject.search` is not `undefined` and is not a string, an `Error` is thrown. + * * If the `urlObject.hash` property is a string: + * * If the value of `urlObject.hash`_does not start_ with the ASCII hash (`#`) + * character, the literal string `#` is appended to `result`. + * * The value of `urlObject.hash` is appended to `result`. + * * Otherwise, if the `urlObject.hash` property is not `undefined` and is not a + * string, an `Error` is thrown. + * * `result` is returned. + * @since v0.1.25 + * @deprecated Legacy: Use the WHATWG URL API instead. + * @param urlObject A URL object (as returned by `url.parse()` or constructed otherwise). If a string, it is converted to an object by passing it to `url.parse()`. + */ + function format(urlObject: URL, options?: URLFormatOptions): string; + /** + * The `url.format()` method returns a formatted URL string derived from`urlObject`. + * + * ```js + * const url = require('url'); + * url.format({ + * protocol: 'https', + * hostname: 'example.com', + * pathname: '/some/path', + * query: { + * page: 1, + * format: 'json' + * } + * }); + * + * // => 'https://example.com/some/path?page=1&format=json' + * ``` + * + * If `urlObject` is not an object or a string, `url.format()` will throw a `TypeError`. + * + * The formatting process operates as follows: + * + * * A new empty string `result` is created. + * * If `urlObject.protocol` is a string, it is appended as-is to `result`. + * * Otherwise, if `urlObject.protocol` is not `undefined` and is not a string, an `Error` is thrown. + * * For all string values of `urlObject.protocol` that _do not end_ with an ASCII + * colon (`:`) character, the literal string `:` will be appended to `result`. + * * If either of the following conditions is true, then the literal string `//`will be appended to `result`: + * * `urlObject.slashes` property is true; + * * `urlObject.protocol` begins with `http`, `https`, `ftp`, `gopher`, or`file`; + * * If the value of the `urlObject.auth` property is truthy, and either`urlObject.host` or `urlObject.hostname` are not `undefined`, the value of`urlObject.auth` will be coerced into a string + * and appended to `result`followed by the literal string `@`. + * * If the `urlObject.host` property is `undefined` then: + * * If the `urlObject.hostname` is a string, it is appended to `result`. + * * Otherwise, if `urlObject.hostname` is not `undefined` and is not a string, + * an `Error` is thrown. + * * If the `urlObject.port` property value is truthy, and `urlObject.hostname`is not `undefined`: + * * The literal string `:` is appended to `result`, and + * * The value of `urlObject.port` is coerced to a string and appended to`result`. + * * Otherwise, if the `urlObject.host` property value is truthy, the value of`urlObject.host` is coerced to a string and appended to `result`. + * * If the `urlObject.pathname` property is a string that is not an empty string: + * * If the `urlObject.pathname`_does not start_ with an ASCII forward slash + * (`/`), then the literal string `'/'` is appended to `result`. + * * The value of `urlObject.pathname` is appended to `result`. + * * Otherwise, if `urlObject.pathname` is not `undefined` and is not a string, an `Error` is thrown. + * * If the `urlObject.search` property is `undefined` and if the `urlObject.query`property is an `Object`, the literal string `?` is appended to `result`followed by the output of calling the + * `querystring` module's `stringify()`method passing the value of `urlObject.query`. + * * Otherwise, if `urlObject.search` is a string: + * * If the value of `urlObject.search`_does not start_ with the ASCII question + * mark (`?`) character, the literal string `?` is appended to `result`. + * * The value of `urlObject.search` is appended to `result`. + * * Otherwise, if `urlObject.search` is not `undefined` and is not a string, an `Error` is thrown. + * * If the `urlObject.hash` property is a string: + * * If the value of `urlObject.hash`_does not start_ with the ASCII hash (`#`) + * character, the literal string `#` is appended to `result`. + * * The value of `urlObject.hash` is appended to `result`. + * * Otherwise, if the `urlObject.hash` property is not `undefined` and is not a + * string, an `Error` is thrown. + * * `result` is returned. + * @since v0.1.25 + * @deprecated Legacy: Use the WHATWG URL API instead. + * @param urlObject A URL object (as returned by `url.parse()` or constructed otherwise). If a string, it is converted to an object by passing it to `url.parse()`. + */ + function format(urlObject: UrlObject | string): string; + /** + * The `url.resolve()` method resolves a target URL relative to a base URL in a + * manner similar to that of a web browser resolving an anchor tag. + * + * ```js + * const url = require('url'); + * url.resolve('/one/two/three', 'four'); // '/one/two/four' + * url.resolve('http://example.com/', '/one'); // 'http://example.com/one' + * url.resolve('http://example.com/one', '/two'); // 'http://example.com/two' + * ``` + * + * To achieve the same result using the WHATWG URL API: + * + * ```js + * function resolve(from, to) { + * const resolvedUrl = new URL(to, new URL(from, 'resolve://')); + * if (resolvedUrl.protocol === 'resolve:') { + * // `from` is a relative URL. + * const { pathname, search, hash } = resolvedUrl; + * return pathname + search + hash; + * } + * return resolvedUrl.toString(); + * } + * + * resolve('/one/two/three', 'four'); // '/one/two/four' + * resolve('http://example.com/', '/one'); // 'http://example.com/one' + * resolve('http://example.com/one', '/two'); // 'http://example.com/two' + * ``` + * @since v0.1.25 + * @deprecated Legacy: Use the WHATWG URL API instead. + * @param from The base URL to use if `to` is a relative URL. + * @param to The target URL to resolve. + */ + function resolve(from: string, to: string): string; + /** + * Returns the [Punycode](https://tools.ietf.org/html/rfc5891#section-4.4) ASCII serialization of the `domain`. If `domain` is an + * invalid domain, the empty string is returned. + * + * It performs the inverse operation to {@link domainToUnicode}. + * + * This feature is only available if the `node` executable was compiled with `ICU` enabled. If not, the domain names are passed through unchanged. + * + * ```js + * import url from 'url'; + * + * console.log(url.domainToASCII('español.com')); + * // Prints xn--espaol-zwa.com + * console.log(url.domainToASCII('中文.com')); + * // Prints xn--fiq228c.com + * console.log(url.domainToASCII('xn--iñvalid.com')); + * // Prints an empty string + * ``` + * @since v7.4.0, v6.13.0 + */ + function domainToASCII(domain: string): string; + /** + * Returns the Unicode serialization of the `domain`. If `domain` is an invalid + * domain, the empty string is returned. + * + * It performs the inverse operation to {@link domainToASCII}. + * + * This feature is only available if the `node` executable was compiled with `ICU` enabled. If not, the domain names are passed through unchanged. + * + * ```js + * import url from 'url'; + * + * console.log(url.domainToUnicode('xn--espaol-zwa.com')); + * // Prints español.com + * console.log(url.domainToUnicode('xn--fiq228c.com')); + * // Prints 中文.com + * console.log(url.domainToUnicode('xn--iñvalid.com')); + * // Prints an empty string + * ``` + * @since v7.4.0, v6.13.0 + */ + function domainToUnicode(domain: string): string; + /** + * This function ensures the correct decodings of percent-encoded characters as + * well as ensuring a cross-platform valid absolute path string. + * + * ```js + * import { fileURLToPath } from 'url'; + * + * const __filename = fileURLToPath(import.meta.url); + * + * new URL('file:///C:/path/').pathname; // Incorrect: /C:/path/ + * fileURLToPath('file:///C:/path/'); // Correct: C:\path\ (Windows) + * + * new URL('file://nas/foo.txt').pathname; // Incorrect: /foo.txt + * fileURLToPath('file://nas/foo.txt'); // Correct: \\nas\foo.txt (Windows) + * + * new URL('file:///你好.txt').pathname; // Incorrect: /%E4%BD%A0%E5%A5%BD.txt + * fileURLToPath('file:///你好.txt'); // Correct: /你好.txt (POSIX) + * + * new URL('file:///hello world').pathname; // Incorrect: /hello%20world + * fileURLToPath('file:///hello world'); // Correct: /hello world (POSIX) + * ``` + * @since v10.12.0 + * @param url The file URL string or URL object to convert to a path. + * @return The fully-resolved platform-specific Node.js file path. + */ + function fileURLToPath(url: string | URL): string; + /** + * This function ensures that `path` is resolved absolutely, and that the URL + * control characters are correctly encoded when converting into a File URL. + * + * ```js + * import { pathToFileURL } from 'url'; + * + * new URL('/foo#1', 'file:'); // Incorrect: file:///foo#1 + * pathToFileURL('/foo#1'); // Correct: file:///foo%231 (POSIX) + * + * new URL('/some/path%.c', 'file:'); // Incorrect: file:///some/path%.c + * pathToFileURL('/some/path%.c'); // Correct: file:///some/path%25.c (POSIX) + * ``` + * @since v10.12.0 + * @param path The path to convert to a File URL. + * @return The file URL object. + */ + function pathToFileURL(path: string): URL; + /** + * This utility function converts a URL object into an ordinary options object as + * expected by the `http.request()` and `https.request()` APIs. + * + * ```js + * import { urlToHttpOptions } from 'url'; + * const myURL = new URL('https://a:b@測試?abc#foo'); + * + * console.log(urlToHttpOptions(myURL)); + * /* + * { + * protocol: 'https:', + * hostname: 'xn--g6w251d', + * hash: '#foo', + * search: '?abc', + * pathname: '/', + * path: '/?abc', + * href: 'https://a:b@xn--g6w251d/?abc#foo', + * auth: 'a:b' + * } + * + * ``` + * @since v15.7.0, v14.18.0 + * @param url The `WHATWG URL` object to convert to an options object. + * @return Options object + */ + function urlToHttpOptions(url: URL): ClientRequestArgs; + interface URLFormatOptions { + auth?: boolean | undefined; + fragment?: boolean | undefined; + search?: boolean | undefined; + unicode?: boolean | undefined; + } + /** + * Browser-compatible `URL` class, implemented by following the WHATWG URL + * Standard. [Examples of parsed URLs](https://url.spec.whatwg.org/#example-url-parsing) may be found in the Standard itself. + * The `URL` class is also available on the global object. + * + * In accordance with browser conventions, all properties of `URL` objects + * are implemented as getters and setters on the class prototype, rather than as + * data properties on the object itself. Thus, unlike `legacy urlObject` s, + * using the `delete` keyword on any properties of `URL` objects (e.g. `delete myURL.protocol`, `delete myURL.pathname`, etc) has no effect but will still + * return `true`. + * @since v7.0.0, v6.13.0 + */ + class URL { + /** + * Creates a `'blob:nodedata:...'` URL string that represents the given `Blob` object and can be used to retrieve the `Blob` later. + * + * ```js + * const { + * Blob, + * resolveObjectURL, + * } = require('buffer'); + * + * const blob = new Blob(['hello']); + * const id = URL.createObjectURL(blob); + * + * // later... + * + * const otherBlob = resolveObjectURL(id); + * console.log(otherBlob.size); + * ``` + * + * The data stored by the registered `Blob` will be retained in memory until`URL.revokeObjectURL()` is called to remove it. + * + * `Blob` objects are registered within the current thread. If using Worker + * Threads, `Blob` objects registered within one Worker will not be available + * to other workers or the main thread. + * @since v16.7.0 + * @experimental + */ + static createObjectURL(blob: NodeBlob): string; + /** + * Removes the stored `Blob` identified by the given ID. Attempting to revoke a + * ID that isn’t registered will silently fail. + * @since v16.7.0 + * @experimental + * @param id A `'blob:nodedata:...` URL string returned by a prior call to `URL.createObjectURL()`. + */ + static revokeObjectURL(objectUrl: string): void; + constructor(input: string, base?: string | URL); + /** + * Gets and sets the fragment portion of the URL. + * + * ```js + * const myURL = new URL('https://example.org/foo#bar'); + * console.log(myURL.hash); + * // Prints #bar + * + * myURL.hash = 'baz'; + * console.log(myURL.href); + * // Prints https://example.org/foo#baz + * ``` + * + * Invalid URL characters included in the value assigned to the `hash` property + * are `percent-encoded`. The selection of which characters to + * percent-encode may vary somewhat from what the {@link parse} and {@link format} methods would produce. + */ + hash: string; + /** + * Gets and sets the host portion of the URL. + * + * ```js + * const myURL = new URL('https://example.org:81/foo'); + * console.log(myURL.host); + * // Prints example.org:81 + * + * myURL.host = 'example.com:82'; + * console.log(myURL.href); + * // Prints https://example.com:82/foo + * ``` + * + * Invalid host values assigned to the `host` property are ignored. + */ + host: string; + /** + * Gets and sets the host name portion of the URL. The key difference between`url.host` and `url.hostname` is that `url.hostname` does _not_ include the + * port. + * + * ```js + * const myURL = new URL('https://example.org:81/foo'); + * console.log(myURL.hostname); + * // Prints example.org + * + * // Setting the hostname does not change the port + * myURL.hostname = 'example.com:82'; + * console.log(myURL.href); + * // Prints https://example.com:81/foo + * + * // Use myURL.host to change the hostname and port + * myURL.host = 'example.org:82'; + * console.log(myURL.href); + * // Prints https://example.org:82/foo + * ``` + * + * Invalid host name values assigned to the `hostname` property are ignored. + */ + hostname: string; + /** + * Gets and sets the serialized URL. + * + * ```js + * const myURL = new URL('https://example.org/foo'); + * console.log(myURL.href); + * // Prints https://example.org/foo + * + * myURL.href = 'https://example.com/bar'; + * console.log(myURL.href); + * // Prints https://example.com/bar + * ``` + * + * Getting the value of the `href` property is equivalent to calling {@link toString}. + * + * Setting the value of this property to a new value is equivalent to creating a + * new `URL` object using `new URL(value)`. Each of the `URL`object's properties will be modified. + * + * If the value assigned to the `href` property is not a valid URL, a `TypeError`will be thrown. + */ + href: string; + /** + * Gets the read-only serialization of the URL's origin. + * + * ```js + * const myURL = new URL('https://example.org/foo/bar?baz'); + * console.log(myURL.origin); + * // Prints https://example.org + * ``` + * + * ```js + * const idnURL = new URL('https://測試'); + * console.log(idnURL.origin); + * // Prints https://xn--g6w251d + * + * console.log(idnURL.hostname); + * // Prints xn--g6w251d + * ``` + */ + readonly origin: string; + /** + * Gets and sets the password portion of the URL. + * + * ```js + * const myURL = new URL('https://abc:xyz@example.com'); + * console.log(myURL.password); + * // Prints xyz + * + * myURL.password = '123'; + * console.log(myURL.href); + * // Prints https://abc:123@example.com + * ``` + * + * Invalid URL characters included in the value assigned to the `password` property + * are `percent-encoded`. The selection of which characters to + * percent-encode may vary somewhat from what the {@link parse} and {@link format} methods would produce. + */ + password: string; + /** + * Gets and sets the path portion of the URL. + * + * ```js + * const myURL = new URL('https://example.org/abc/xyz?123'); + * console.log(myURL.pathname); + * // Prints /abc/xyz + * + * myURL.pathname = '/abcdef'; + * console.log(myURL.href); + * // Prints https://example.org/abcdef?123 + * ``` + * + * Invalid URL characters included in the value assigned to the `pathname`property are `percent-encoded`. The selection of which characters + * to percent-encode may vary somewhat from what the {@link parse} and {@link format} methods would produce. + */ + pathname: string; + /** + * Gets and sets the port portion of the URL. + * + * The port value may be a number or a string containing a number in the range`0` to `65535` (inclusive). Setting the value to the default port of the`URL` objects given `protocol` will + * result in the `port` value becoming + * the empty string (`''`). + * + * The port value can be an empty string in which case the port depends on + * the protocol/scheme: + * + * + * + * Upon assigning a value to the port, the value will first be converted to a + * string using `.toString()`. + * + * If that string is invalid but it begins with a number, the leading number is + * assigned to `port`. + * If the number lies outside the range denoted above, it is ignored. + * + * ```js + * const myURL = new URL('https://example.org:8888'); + * console.log(myURL.port); + * // Prints 8888 + * + * // Default ports are automatically transformed to the empty string + * // (HTTPS protocol's default port is 443) + * myURL.port = '443'; + * console.log(myURL.port); + * // Prints the empty string + * console.log(myURL.href); + * // Prints https://example.org/ + * + * myURL.port = 1234; + * console.log(myURL.port); + * // Prints 1234 + * console.log(myURL.href); + * // Prints https://example.org:1234/ + * + * // Completely invalid port strings are ignored + * myURL.port = 'abcd'; + * console.log(myURL.port); + * // Prints 1234 + * + * // Leading numbers are treated as a port number + * myURL.port = '5678abcd'; + * console.log(myURL.port); + * // Prints 5678 + * + * // Non-integers are truncated + * myURL.port = 1234.5678; + * console.log(myURL.port); + * // Prints 1234 + * + * // Out-of-range numbers which are not represented in scientific notation + * // will be ignored. + * myURL.port = 1e10; // 10000000000, will be range-checked as described below + * console.log(myURL.port); + * // Prints 1234 + * ``` + * + * Numbers which contain a decimal point, + * such as floating-point numbers or numbers in scientific notation, + * are not an exception to this rule. + * Leading numbers up to the decimal point will be set as the URL's port, + * assuming they are valid: + * + * ```js + * myURL.port = 4.567e21; + * console.log(myURL.port); + * // Prints 4 (because it is the leading number in the string '4.567e21') + * ``` + */ + port: string; + /** + * Gets and sets the protocol portion of the URL. + * + * ```js + * const myURL = new URL('https://example.org'); + * console.log(myURL.protocol); + * // Prints https: + * + * myURL.protocol = 'ftp'; + * console.log(myURL.href); + * // Prints ftp://example.org/ + * ``` + * + * Invalid URL protocol values assigned to the `protocol` property are ignored. + */ + protocol: string; + /** + * Gets and sets the serialized query portion of the URL. + * + * ```js + * const myURL = new URL('https://example.org/abc?123'); + * console.log(myURL.search); + * // Prints ?123 + * + * myURL.search = 'abc=xyz'; + * console.log(myURL.href); + * // Prints https://example.org/abc?abc=xyz + * ``` + * + * Any invalid URL characters appearing in the value assigned the `search`property will be `percent-encoded`. The selection of which + * characters to percent-encode may vary somewhat from what the {@link parse} and {@link format} methods would produce. + */ + search: string; + /** + * Gets the `URLSearchParams` object representing the query parameters of the + * URL. This property is read-only but the `URLSearchParams` object it provides + * can be used to mutate the URL instance; to replace the entirety of query + * parameters of the URL, use the {@link search} setter. See `URLSearchParams` documentation for details. + * + * Use care when using `.searchParams` to modify the `URL` because, + * per the WHATWG specification, the `URLSearchParams` object uses + * different rules to determine which characters to percent-encode. For + * instance, the `URL` object will not percent encode the ASCII tilde (`~`) + * character, while `URLSearchParams` will always encode it: + * + * ```js + * const myUrl = new URL('https://example.org/abc?foo=~bar'); + * + * console.log(myUrl.search); // prints ?foo=~bar + * + * // Modify the URL via searchParams... + * myUrl.searchParams.sort(); + * + * console.log(myUrl.search); // prints ?foo=%7Ebar + * ``` + */ + readonly searchParams: URLSearchParams; + /** + * Gets and sets the username portion of the URL. + * + * ```js + * const myURL = new URL('https://abc:xyz@example.com'); + * console.log(myURL.username); + * // Prints abc + * + * myURL.username = '123'; + * console.log(myURL.href); + * // Prints https://123:xyz@example.com/ + * ``` + * + * Any invalid URL characters appearing in the value assigned the `username`property will be `percent-encoded`. The selection of which + * characters to percent-encode may vary somewhat from what the {@link parse} and {@link format} methods would produce. + */ + username: string; + /** + * The `toString()` method on the `URL` object returns the serialized URL. The + * value returned is equivalent to that of {@link href} and {@link toJSON}. + */ + toString(): string; + /** + * The `toJSON()` method on the `URL` object returns the serialized URL. The + * value returned is equivalent to that of {@link href} and {@link toString}. + * + * This method is automatically called when an `URL` object is serialized + * with [`JSON.stringify()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify). + * + * ```js + * const myURLs = [ + * new URL('https://www.example.com'), + * new URL('https://test.example.org'), + * ]; + * console.log(JSON.stringify(myURLs)); + * // Prints ["https://www.example.com/","https://test.example.org/"] + * ``` + */ + toJSON(): string; + } + /** + * The `URLSearchParams` API provides read and write access to the query of a`URL`. The `URLSearchParams` class can also be used standalone with one of the + * four following constructors. + * The `URLSearchParams` class is also available on the global object. + * + * The WHATWG `URLSearchParams` interface and the `querystring` module have + * similar purpose, but the purpose of the `querystring` module is more + * general, as it allows the customization of delimiter characters (`&` and `=`). + * On the other hand, this API is designed purely for URL query strings. + * + * ```js + * const myURL = new URL('https://example.org/?abc=123'); + * console.log(myURL.searchParams.get('abc')); + * // Prints 123 + * + * myURL.searchParams.append('abc', 'xyz'); + * console.log(myURL.href); + * // Prints https://example.org/?abc=123&abc=xyz + * + * myURL.searchParams.delete('abc'); + * myURL.searchParams.set('a', 'b'); + * console.log(myURL.href); + * // Prints https://example.org/?a=b + * + * const newSearchParams = new URLSearchParams(myURL.searchParams); + * // The above is equivalent to + * // const newSearchParams = new URLSearchParams(myURL.search); + * + * newSearchParams.append('a', 'c'); + * console.log(myURL.href); + * // Prints https://example.org/?a=b + * console.log(newSearchParams.toString()); + * // Prints a=b&a=c + * + * // newSearchParams.toString() is implicitly called + * myURL.search = newSearchParams; + * console.log(myURL.href); + * // Prints https://example.org/?a=b&a=c + * newSearchParams.delete('a'); + * console.log(myURL.href); + * // Prints https://example.org/?a=b&a=c + * ``` + * @since v7.5.0, v6.13.0 + */ + class URLSearchParams implements Iterable<[string, string]> { + constructor(init?: URLSearchParams | string | Record> | Iterable<[string, string]> | ReadonlyArray<[string, string]>); + /** + * Append a new name-value pair to the query string. + */ + append(name: string, value: string): void; + /** + * Remove all name-value pairs whose name is `name`. + */ + delete(name: string): void; + /** + * Returns an ES6 `Iterator` over each of the name-value pairs in the query. + * Each item of the iterator is a JavaScript `Array`. The first item of the `Array`is the `name`, the second item of the `Array` is the `value`. + * + * Alias for `urlSearchParams[@@iterator]()`. + */ + entries(): IterableIterator<[string, string]>; + /** + * Iterates over each name-value pair in the query and invokes the given function. + * + * ```js + * const myURL = new URL('https://example.org/?a=b&c=d'); + * myURL.searchParams.forEach((value, name, searchParams) => { + * console.log(name, value, myURL.searchParams === searchParams); + * }); + * // Prints: + * // a b true + * // c d true + * ``` + * @param fn Invoked for each name-value pair in the query + * @param thisArg To be used as `this` value for when `fn` is called + */ + forEach(callback: (this: TThis, value: string, name: string, searchParams: URLSearchParams) => void, thisArg?: TThis): void; + /** + * Returns the value of the first name-value pair whose name is `name`. If there + * are no such pairs, `null` is returned. + * @return or `null` if there is no name-value pair with the given `name`. + */ + get(name: string): string | null; + /** + * Returns the values of all name-value pairs whose name is `name`. If there are + * no such pairs, an empty array is returned. + */ + getAll(name: string): string[]; + /** + * Returns `true` if there is at least one name-value pair whose name is `name`. + */ + has(name: string): boolean; + /** + * Returns an ES6 `Iterator` over the names of each name-value pair. + * + * ```js + * const params = new URLSearchParams('foo=bar&foo=baz'); + * for (const name of params.keys()) { + * console.log(name); + * } + * // Prints: + * // foo + * // foo + * ``` + */ + keys(): IterableIterator; + /** + * Sets the value in the `URLSearchParams` object associated with `name` to`value`. If there are any pre-existing name-value pairs whose names are `name`, + * set the first such pair's value to `value` and remove all others. If not, + * append the name-value pair to the query string. + * + * ```js + * const params = new URLSearchParams(); + * params.append('foo', 'bar'); + * params.append('foo', 'baz'); + * params.append('abc', 'def'); + * console.log(params.toString()); + * // Prints foo=bar&foo=baz&abc=def + * + * params.set('foo', 'def'); + * params.set('xyz', 'opq'); + * console.log(params.toString()); + * // Prints foo=def&abc=def&xyz=opq + * ``` + */ + set(name: string, value: string): void; + /** + * Sort all existing name-value pairs in-place by their names. Sorting is done + * with a [stable sorting algorithm](https://en.wikipedia.org/wiki/Sorting_algorithm#Stability), so relative order between name-value pairs + * with the same name is preserved. + * + * This method can be used, in particular, to increase cache hits. + * + * ```js + * const params = new URLSearchParams('query[]=abc&type=search&query[]=123'); + * params.sort(); + * console.log(params.toString()); + * // Prints query%5B%5D=abc&query%5B%5D=123&type=search + * ``` + * @since v7.7.0, v6.13.0 + */ + sort(): void; + /** + * Returns the search parameters serialized as a string, with characters + * percent-encoded where necessary. + */ + toString(): string; + /** + * Returns an ES6 `Iterator` over the values of each name-value pair. + */ + values(): IterableIterator; + [Symbol.iterator](): IterableIterator<[string, string]>; + } + import { URL as _URL, URLSearchParams as _URLSearchParams } from 'url'; + global { + interface URLSearchParams extends _URLSearchParams {} + interface URL extends _URL {} + interface Global { + URL: typeof _URL; + URLSearchParams: typeof _URLSearchParams; + } + /** + * `URL` class is a global reference for `require('url').URL` + * https://nodejs.org/api/url.html#the-whatwg-url-api + * @since v10.0.0 + */ + var URL: typeof globalThis extends { + onmessage: any; + URL: infer T; + } + ? T + : typeof _URL; + /** + * `URLSearchParams` class is a global reference for `require('url').URLSearchParams` + * https://nodejs.org/api/url.html#class-urlsearchparams + * @since v10.0.0 + */ + var URLSearchParams: typeof globalThis extends { + onmessage: any; + URLSearchParams: infer T; + } + ? T + : typeof _URLSearchParams; + } +} +declare module 'node:url' { + export * from 'url'; +} diff --git a/node_modules/@types/node/ts4.8/util.d.ts b/node_modules/@types/node/ts4.8/util.d.ts new file mode 100644 index 0000000..6d35019 --- /dev/null +++ b/node_modules/@types/node/ts4.8/util.d.ts @@ -0,0 +1,1926 @@ +/** + * The `util` module supports the needs of Node.js internal APIs. Many of the + * utilities are useful for application and module developers as well. To access + * it: + * + * ```js + * const util = require('util'); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.x/lib/util.js) + */ +declare module 'util' { + import * as types from 'node:util/types'; + export interface InspectOptions { + /** + * If `true`, object's non-enumerable symbols and properties are included in the formatted result. + * `WeakMap` and `WeakSet` entries are also included as well as user defined prototype properties (excluding method properties). + * @default false + */ + showHidden?: boolean | undefined; + /** + * Specifies the number of times to recurse while formatting object. + * This is useful for inspecting large objects. + * To recurse up to the maximum call stack size pass `Infinity` or `null`. + * @default 2 + */ + depth?: number | null | undefined; + /** + * If `true`, the output is styled with ANSI color codes. Colors are customizable. + */ + colors?: boolean | undefined; + /** + * If `false`, `[util.inspect.custom](depth, opts, inspect)` functions are not invoked. + * @default true + */ + customInspect?: boolean | undefined; + /** + * If `true`, `Proxy` inspection includes the target and handler objects. + * @default false + */ + showProxy?: boolean | undefined; + /** + * Specifies the maximum number of `Array`, `TypedArray`, `WeakMap`, and `WeakSet` elements + * to include when formatting. Set to `null` or `Infinity` to show all elements. + * Set to `0` or negative to show no elements. + * @default 100 + */ + maxArrayLength?: number | null | undefined; + /** + * Specifies the maximum number of characters to + * include when formatting. Set to `null` or `Infinity` to show all elements. + * Set to `0` or negative to show no characters. + * @default 10000 + */ + maxStringLength?: number | null | undefined; + /** + * The length at which input values are split across multiple lines. + * Set to `Infinity` to format the input as a single line + * (in combination with `compact` set to `true` or any number >= `1`). + * @default 80 + */ + breakLength?: number | undefined; + /** + * Setting this to `false` causes each object key + * to be displayed on a new line. It will also add new lines to text that is + * longer than `breakLength`. If set to a number, the most `n` inner elements + * are united on a single line as long as all properties fit into + * `breakLength`. Short array elements are also grouped together. Note that no + * text will be reduced below 16 characters, no matter the `breakLength` size. + * For more information, see the example below. + * @default true + */ + compact?: boolean | number | undefined; + /** + * If set to `true` or a function, all properties of an object, and `Set` and `Map` + * entries are sorted in the resulting string. + * If set to `true` the default sort is used. + * If set to a function, it is used as a compare function. + */ + sorted?: boolean | ((a: string, b: string) => number) | undefined; + /** + * If set to `true`, getters are going to be + * inspected as well. If set to `'get'` only getters without setter are going + * to be inspected. If set to `'set'` only getters having a corresponding + * setter are going to be inspected. This might cause side effects depending on + * the getter function. + * @default false + */ + getters?: 'get' | 'set' | boolean | undefined; + /** + * If set to `true`, an underscore is used to separate every three digits in all bigints and numbers. + * @default false + */ + numericSeparator?: boolean | undefined; + } + export type Style = 'special' | 'number' | 'bigint' | 'boolean' | 'undefined' | 'null' | 'string' | 'symbol' | 'date' | 'regexp' | 'module'; + export type CustomInspectFunction = (depth: number, options: InspectOptionsStylized) => any; // TODO: , inspect: inspect + export interface InspectOptionsStylized extends InspectOptions { + stylize(text: string, styleType: Style): string; + } + /** + * The `util.format()` method returns a formatted string using the first argument + * as a `printf`\-like format string which can contain zero or more format + * specifiers. Each specifier is replaced with the converted value from the + * corresponding argument. Supported specifiers are: + * + * If a specifier does not have a corresponding argument, it is not replaced: + * + * ```js + * util.format('%s:%s', 'foo'); + * // Returns: 'foo:%s' + * ``` + * + * Values that are not part of the format string are formatted using`util.inspect()` if their type is not `string`. + * + * If there are more arguments passed to the `util.format()` method than the + * number of specifiers, the extra arguments are concatenated to the returned + * string, separated by spaces: + * + * ```js + * util.format('%s:%s', 'foo', 'bar', 'baz'); + * // Returns: 'foo:bar baz' + * ``` + * + * If the first argument does not contain a valid format specifier, `util.format()`returns a string that is the concatenation of all arguments separated by spaces: + * + * ```js + * util.format(1, 2, 3); + * // Returns: '1 2 3' + * ``` + * + * If only one argument is passed to `util.format()`, it is returned as it is + * without any formatting: + * + * ```js + * util.format('%% %s'); + * // Returns: '%% %s' + * ``` + * + * `util.format()` is a synchronous method that is intended as a debugging tool. + * Some input values can have a significant performance overhead that can block the + * event loop. Use this function with care and never in a hot code path. + * @since v0.5.3 + * @param format A `printf`-like format string. + */ + export function format(format?: any, ...param: any[]): string; + /** + * This function is identical to {@link format}, except in that it takes + * an `inspectOptions` argument which specifies options that are passed along to {@link inspect}. + * + * ```js + * util.formatWithOptions({ colors: true }, 'See object %O', { foo: 42 }); + * // Returns 'See object { foo: 42 }', where `42` is colored as a number + * // when printed to a terminal. + * ``` + * @since v10.0.0 + */ + export function formatWithOptions(inspectOptions: InspectOptions, format?: any, ...param: any[]): string; + /** + * Returns the string name for a numeric error code that comes from a Node.js API. + * The mapping between error codes and error names is platform-dependent. + * See `Common System Errors` for the names of common errors. + * + * ```js + * fs.access('file/that/does/not/exist', (err) => { + * const name = util.getSystemErrorName(err.errno); + * console.error(name); // ENOENT + * }); + * ``` + * @since v9.7.0 + */ + export function getSystemErrorName(err: number): string; + /** + * Returns a Map of all system error codes available from the Node.js API. + * The mapping between error codes and error names is platform-dependent. + * See `Common System Errors` for the names of common errors. + * + * ```js + * fs.access('file/that/does/not/exist', (err) => { + * const errorMap = util.getSystemErrorMap(); + * const name = errorMap.get(err.errno); + * console.error(name); // ENOENT + * }); + * ``` + * @since v16.0.0, v14.17.0 + */ + export function getSystemErrorMap(): Map; + /** + * The `util.log()` method prints the given `string` to `stdout` with an included + * timestamp. + * + * ```js + * const util = require('util'); + * + * util.log('Timestamped message.'); + * ``` + * @since v0.3.0 + * @deprecated Since v6.0.0 - Use a third party module instead. + */ + export function log(string: string): void; + /** + * Returns the `string` after replacing any surrogate code points + * (or equivalently, any unpaired surrogate code units) with the + * Unicode "replacement character" U+FFFD. + * @since v16.8.0, v14.18.0 + */ + export function toUSVString(string: string): string; + /** + * Creates and returns an `AbortController` instance whose `AbortSignal` is marked + * as transferable and can be used with `structuredClone()` or `postMessage()`. + * @since v18.11.0 + * @returns A transferable AbortController + */ + export function transferableAbortController(): AbortController; + /** + * Marks the given {AbortSignal} as transferable so that it can be used with + * `structuredClone()` and `postMessage()`. + * + * ```js + * const signal = transferableAbortSignal(AbortSignal.timeout(100)); + * const channel = new MessageChannel(); + * channel.port2.postMessage(signal, [signal]); + * ``` + * @since v18.11.0 + * @param signal The AbortSignal + * @returns The same AbortSignal + */ + export function transferableAbortSignal(signal: AbortSignal): AbortSignal; + /** + * The `util.inspect()` method returns a string representation of `object` that is + * intended for debugging. The output of `util.inspect` may change at any time + * and should not be depended upon programmatically. Additional `options` may be + * passed that alter the result.`util.inspect()` will use the constructor's name and/or `@@toStringTag` to make + * an identifiable tag for an inspected value. + * + * ```js + * class Foo { + * get [Symbol.toStringTag]() { + * return 'bar'; + * } + * } + * + * class Bar {} + * + * const baz = Object.create(null, { [Symbol.toStringTag]: { value: 'foo' } }); + * + * util.inspect(new Foo()); // 'Foo [bar] {}' + * util.inspect(new Bar()); // 'Bar {}' + * util.inspect(baz); // '[foo] {}' + * ``` + * + * Circular references point to their anchor by using a reference index: + * + * ```js + * const { inspect } = require('util'); + * + * const obj = {}; + * obj.a = [obj]; + * obj.b = {}; + * obj.b.inner = obj.b; + * obj.b.obj = obj; + * + * console.log(inspect(obj)); + * // { + * // a: [ [Circular *1] ], + * // b: { inner: [Circular *2], obj: [Circular *1] } + * // } + * ``` + * + * The following example inspects all properties of the `util` object: + * + * ```js + * const util = require('util'); + * + * console.log(util.inspect(util, { showHidden: true, depth: null })); + * ``` + * + * The following example highlights the effect of the `compact` option: + * + * ```js + * const util = require('util'); + * + * const o = { + * a: [1, 2, [[ + * 'Lorem ipsum dolor sit amet,\nconsectetur adipiscing elit, sed do ' + + * 'eiusmod \ntempor incididunt ut labore et dolore magna aliqua.', + * 'test', + * 'foo']], 4], + * b: new Map([['za', 1], ['zb', 'test']]) + * }; + * console.log(util.inspect(o, { compact: true, depth: 5, breakLength: 80 })); + * + * // { a: + * // [ 1, + * // 2, + * // [ [ 'Lorem ipsum dolor sit amet,\nconsectetur [...]', // A long line + * // 'test', + * // 'foo' ] ], + * // 4 ], + * // b: Map(2) { 'za' => 1, 'zb' => 'test' } } + * + * // Setting `compact` to false or an integer creates more reader friendly output. + * console.log(util.inspect(o, { compact: false, depth: 5, breakLength: 80 })); + * + * // { + * // a: [ + * // 1, + * // 2, + * // [ + * // [ + * // 'Lorem ipsum dolor sit amet,\n' + + * // 'consectetur adipiscing elit, sed do eiusmod \n' + + * // 'tempor incididunt ut labore et dolore magna aliqua.', + * // 'test', + * // 'foo' + * // ] + * // ], + * // 4 + * // ], + * // b: Map(2) { + * // 'za' => 1, + * // 'zb' => 'test' + * // } + * // } + * + * // Setting `breakLength` to e.g. 150 will print the "Lorem ipsum" text in a + * // single line. + * ``` + * + * The `showHidden` option allows [`WeakMap`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap) and + * [`WeakSet`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet) entries to be + * inspected. If there are more entries than `maxArrayLength`, there is no + * guarantee which entries are displayed. That means retrieving the same [`WeakSet`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet) entries twice may + * result in different output. Furthermore, entries + * with no remaining strong references may be garbage collected at any time. + * + * ```js + * const { inspect } = require('util'); + * + * const obj = { a: 1 }; + * const obj2 = { b: 2 }; + * const weakSet = new WeakSet([obj, obj2]); + * + * console.log(inspect(weakSet, { showHidden: true })); + * // WeakSet { { a: 1 }, { b: 2 } } + * ``` + * + * The `sorted` option ensures that an object's property insertion order does not + * impact the result of `util.inspect()`. + * + * ```js + * const { inspect } = require('util'); + * const assert = require('assert'); + * + * const o1 = { + * b: [2, 3, 1], + * a: '`a` comes before `b`', + * c: new Set([2, 3, 1]) + * }; + * console.log(inspect(o1, { sorted: true })); + * // { a: '`a` comes before `b`', b: [ 2, 3, 1 ], c: Set(3) { 1, 2, 3 } } + * console.log(inspect(o1, { sorted: (a, b) => b.localeCompare(a) })); + * // { c: Set(3) { 3, 2, 1 }, b: [ 2, 3, 1 ], a: '`a` comes before `b`' } + * + * const o2 = { + * c: new Set([2, 1, 3]), + * a: '`a` comes before `b`', + * b: [2, 3, 1] + * }; + * assert.strict.equal( + * inspect(o1, { sorted: true }), + * inspect(o2, { sorted: true }) + * ); + * ``` + * + * The `numericSeparator` option adds an underscore every three digits to all + * numbers. + * + * ```js + * const { inspect } = require('util'); + * + * const thousand = 1_000; + * const million = 1_000_000; + * const bigNumber = 123_456_789n; + * const bigDecimal = 1_234.123_45; + * + * console.log(thousand, million, bigNumber, bigDecimal); + * // 1_000 1_000_000 123_456_789n 1_234.123_45 + * ``` + * + * `util.inspect()` is a synchronous method intended for debugging. Its maximum + * output length is approximately 128 MB. Inputs that result in longer output will + * be truncated. + * @since v0.3.0 + * @param object Any JavaScript primitive or `Object`. + * @return The representation of `object`. + */ + export function inspect(object: any, showHidden?: boolean, depth?: number | null, color?: boolean): string; + export function inspect(object: any, options?: InspectOptions): string; + export namespace inspect { + let colors: NodeJS.Dict<[number, number]>; + let styles: { + [K in Style]: string; + }; + let defaultOptions: InspectOptions; + /** + * Allows changing inspect settings from the repl. + */ + let replDefaults: InspectOptions; + /** + * That can be used to declare custom inspect functions. + */ + const custom: unique symbol; + } + /** + * Alias for [`Array.isArray()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray). + * + * Returns `true` if the given `object` is an `Array`. Otherwise, returns `false`. + * + * ```js + * const util = require('util'); + * + * util.isArray([]); + * // Returns: true + * util.isArray(new Array()); + * // Returns: true + * util.isArray({}); + * // Returns: false + * ``` + * @since v0.6.0 + * @deprecated Since v4.0.0 - Use `isArray` instead. + */ + export function isArray(object: unknown): object is unknown[]; + /** + * Returns `true` if the given `object` is a `RegExp`. Otherwise, returns `false`. + * + * ```js + * const util = require('util'); + * + * util.isRegExp(/some regexp/); + * // Returns: true + * util.isRegExp(new RegExp('another regexp')); + * // Returns: true + * util.isRegExp({}); + * // Returns: false + * ``` + * @since v0.6.0 + * @deprecated Since v4.0.0 - Deprecated + */ + export function isRegExp(object: unknown): object is RegExp; + /** + * Returns `true` if the given `object` is a `Date`. Otherwise, returns `false`. + * + * ```js + * const util = require('util'); + * + * util.isDate(new Date()); + * // Returns: true + * util.isDate(Date()); + * // false (without 'new' returns a String) + * util.isDate({}); + * // Returns: false + * ``` + * @since v0.6.0 + * @deprecated Since v4.0.0 - Use {@link types.isDate} instead. + */ + export function isDate(object: unknown): object is Date; + /** + * Returns `true` if the given `object` is an `Error`. Otherwise, returns`false`. + * + * ```js + * const util = require('util'); + * + * util.isError(new Error()); + * // Returns: true + * util.isError(new TypeError()); + * // Returns: true + * util.isError({ name: 'Error', message: 'an error occurred' }); + * // Returns: false + * ``` + * + * This method relies on `Object.prototype.toString()` behavior. It is + * possible to obtain an incorrect result when the `object` argument manipulates`@@toStringTag`. + * + * ```js + * const util = require('util'); + * const obj = { name: 'Error', message: 'an error occurred' }; + * + * util.isError(obj); + * // Returns: false + * obj[Symbol.toStringTag] = 'Error'; + * util.isError(obj); + * // Returns: true + * ``` + * @since v0.6.0 + * @deprecated Since v4.0.0 - Use {@link types.isNativeError} instead. + */ + export function isError(object: unknown): object is Error; + /** + * Usage of `util.inherits()` is discouraged. Please use the ES6 `class` and`extends` keywords to get language level inheritance support. Also note + * that the two styles are [semantically incompatible](https://github.com/nodejs/node/issues/4179). + * + * Inherit the prototype methods from one [constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor) into another. The + * prototype of `constructor` will be set to a new object created from`superConstructor`. + * + * This mainly adds some input validation on top of`Object.setPrototypeOf(constructor.prototype, superConstructor.prototype)`. + * As an additional convenience, `superConstructor` will be accessible + * through the `constructor.super_` property. + * + * ```js + * const util = require('util'); + * const EventEmitter = require('events'); + * + * function MyStream() { + * EventEmitter.call(this); + * } + * + * util.inherits(MyStream, EventEmitter); + * + * MyStream.prototype.write = function(data) { + * this.emit('data', data); + * }; + * + * const stream = new MyStream(); + * + * console.log(stream instanceof EventEmitter); // true + * console.log(MyStream.super_ === EventEmitter); // true + * + * stream.on('data', (data) => { + * console.log(`Received data: "${data}"`); + * }); + * stream.write('It works!'); // Received data: "It works!" + * ``` + * + * ES6 example using `class` and `extends`: + * + * ```js + * const EventEmitter = require('events'); + * + * class MyStream extends EventEmitter { + * write(data) { + * this.emit('data', data); + * } + * } + * + * const stream = new MyStream(); + * + * stream.on('data', (data) => { + * console.log(`Received data: "${data}"`); + * }); + * stream.write('With ES6'); + * ``` + * @since v0.3.0 + * @deprecated Legacy: Use ES2015 class syntax and `extends` keyword instead. + */ + export function inherits(constructor: unknown, superConstructor: unknown): void; + export type DebugLoggerFunction = (msg: string, ...param: unknown[]) => void; + export interface DebugLogger extends DebugLoggerFunction { + enabled: boolean; + } + /** + * The `util.debuglog()` method is used to create a function that conditionally + * writes debug messages to `stderr` based on the existence of the `NODE_DEBUG`environment variable. If the `section` name appears within the value of that + * environment variable, then the returned function operates similar to `console.error()`. If not, then the returned function is a no-op. + * + * ```js + * const util = require('util'); + * const debuglog = util.debuglog('foo'); + * + * debuglog('hello from foo [%d]', 123); + * ``` + * + * If this program is run with `NODE_DEBUG=foo` in the environment, then + * it will output something like: + * + * ```console + * FOO 3245: hello from foo [123] + * ``` + * + * where `3245` is the process id. If it is not run with that + * environment variable set, then it will not print anything. + * + * The `section` supports wildcard also: + * + * ```js + * const util = require('util'); + * const debuglog = util.debuglog('foo-bar'); + * + * debuglog('hi there, it\'s foo-bar [%d]', 2333); + * ``` + * + * if it is run with `NODE_DEBUG=foo*` in the environment, then it will output + * something like: + * + * ```console + * FOO-BAR 3257: hi there, it's foo-bar [2333] + * ``` + * + * Multiple comma-separated `section` names may be specified in the `NODE_DEBUG`environment variable: `NODE_DEBUG=fs,net,tls`. + * + * The optional `callback` argument can be used to replace the logging function + * with a different function that doesn't have any initialization or + * unnecessary wrapping. + * + * ```js + * const util = require('util'); + * let debuglog = util.debuglog('internals', (debug) => { + * // Replace with a logging function that optimizes out + * // testing if the section is enabled + * debuglog = debug; + * }); + * ``` + * @since v0.11.3 + * @param section A string identifying the portion of the application for which the `debuglog` function is being created. + * @param callback A callback invoked the first time the logging function is called with a function argument that is a more optimized logging function. + * @return The logging function + */ + export function debuglog(section: string, callback?: (fn: DebugLoggerFunction) => void): DebugLogger; + export const debug: typeof debuglog; + /** + * Returns `true` if the given `object` is a `Boolean`. Otherwise, returns `false`. + * + * ```js + * const util = require('util'); + * + * util.isBoolean(1); + * // Returns: false + * util.isBoolean(0); + * // Returns: false + * util.isBoolean(false); + * // Returns: true + * ``` + * @since v0.11.5 + * @deprecated Since v4.0.0 - Use `typeof value === 'boolean'` instead. + */ + export function isBoolean(object: unknown): object is boolean; + /** + * Returns `true` if the given `object` is a `Buffer`. Otherwise, returns `false`. + * + * ```js + * const util = require('util'); + * + * util.isBuffer({ length: 0 }); + * // Returns: false + * util.isBuffer([]); + * // Returns: false + * util.isBuffer(Buffer.from('hello world')); + * // Returns: true + * ``` + * @since v0.11.5 + * @deprecated Since v4.0.0 - Use `isBuffer` instead. + */ + export function isBuffer(object: unknown): object is Buffer; + /** + * Returns `true` if the given `object` is a `Function`. Otherwise, returns`false`. + * + * ```js + * const util = require('util'); + * + * function Foo() {} + * const Bar = () => {}; + * + * util.isFunction({}); + * // Returns: false + * util.isFunction(Foo); + * // Returns: true + * util.isFunction(Bar); + * // Returns: true + * ``` + * @since v0.11.5 + * @deprecated Since v4.0.0 - Use `typeof value === 'function'` instead. + */ + export function isFunction(object: unknown): boolean; + /** + * Returns `true` if the given `object` is strictly `null`. Otherwise, returns`false`. + * + * ```js + * const util = require('util'); + * + * util.isNull(0); + * // Returns: false + * util.isNull(undefined); + * // Returns: false + * util.isNull(null); + * // Returns: true + * ``` + * @since v0.11.5 + * @deprecated Since v4.0.0 - Use `value === null` instead. + */ + export function isNull(object: unknown): object is null; + /** + * Returns `true` if the given `object` is `null` or `undefined`. Otherwise, + * returns `false`. + * + * ```js + * const util = require('util'); + * + * util.isNullOrUndefined(0); + * // Returns: false + * util.isNullOrUndefined(undefined); + * // Returns: true + * util.isNullOrUndefined(null); + * // Returns: true + * ``` + * @since v0.11.5 + * @deprecated Since v4.0.0 - Use `value === undefined || value === null` instead. + */ + export function isNullOrUndefined(object: unknown): object is null | undefined; + /** + * Returns `true` if the given `object` is a `Number`. Otherwise, returns `false`. + * + * ```js + * const util = require('util'); + * + * util.isNumber(false); + * // Returns: false + * util.isNumber(Infinity); + * // Returns: true + * util.isNumber(0); + * // Returns: true + * util.isNumber(NaN); + * // Returns: true + * ``` + * @since v0.11.5 + * @deprecated Since v4.0.0 - Use `typeof value === 'number'` instead. + */ + export function isNumber(object: unknown): object is number; + /** + * Returns `true` if the given `object` is strictly an `Object`**and** not a`Function` (even though functions are objects in JavaScript). + * Otherwise, returns `false`. + * + * ```js + * const util = require('util'); + * + * util.isObject(5); + * // Returns: false + * util.isObject(null); + * // Returns: false + * util.isObject({}); + * // Returns: true + * util.isObject(() => {}); + * // Returns: false + * ``` + * @since v0.11.5 + * @deprecated Since v4.0.0 - Deprecated: Use `value !== null && typeof value === 'object'` instead. + */ + export function isObject(object: unknown): boolean; + /** + * Returns `true` if the given `object` is a primitive type. Otherwise, returns`false`. + * + * ```js + * const util = require('util'); + * + * util.isPrimitive(5); + * // Returns: true + * util.isPrimitive('foo'); + * // Returns: true + * util.isPrimitive(false); + * // Returns: true + * util.isPrimitive(null); + * // Returns: true + * util.isPrimitive(undefined); + * // Returns: true + * util.isPrimitive({}); + * // Returns: false + * util.isPrimitive(() => {}); + * // Returns: false + * util.isPrimitive(/^$/); + * // Returns: false + * util.isPrimitive(new Date()); + * // Returns: false + * ``` + * @since v0.11.5 + * @deprecated Since v4.0.0 - Use `(typeof value !== 'object' && typeof value !== 'function') || value === null` instead. + */ + export function isPrimitive(object: unknown): boolean; + /** + * Returns `true` if the given `object` is a `string`. Otherwise, returns `false`. + * + * ```js + * const util = require('util'); + * + * util.isString(''); + * // Returns: true + * util.isString('foo'); + * // Returns: true + * util.isString(String('foo')); + * // Returns: true + * util.isString(5); + * // Returns: false + * ``` + * @since v0.11.5 + * @deprecated Since v4.0.0 - Use `typeof value === 'string'` instead. + */ + export function isString(object: unknown): object is string; + /** + * Returns `true` if the given `object` is a `Symbol`. Otherwise, returns `false`. + * + * ```js + * const util = require('util'); + * + * util.isSymbol(5); + * // Returns: false + * util.isSymbol('foo'); + * // Returns: false + * util.isSymbol(Symbol('foo')); + * // Returns: true + * ``` + * @since v0.11.5 + * @deprecated Since v4.0.0 - Use `typeof value === 'symbol'` instead. + */ + export function isSymbol(object: unknown): object is symbol; + /** + * Returns `true` if the given `object` is `undefined`. Otherwise, returns `false`. + * + * ```js + * const util = require('util'); + * + * const foo = undefined; + * util.isUndefined(5); + * // Returns: false + * util.isUndefined(foo); + * // Returns: true + * util.isUndefined(null); + * // Returns: false + * ``` + * @since v0.11.5 + * @deprecated Since v4.0.0 - Use `value === undefined` instead. + */ + export function isUndefined(object: unknown): object is undefined; + /** + * The `util.deprecate()` method wraps `fn` (which may be a function or class) in + * such a way that it is marked as deprecated. + * + * ```js + * const util = require('util'); + * + * exports.obsoleteFunction = util.deprecate(() => { + * // Do something here. + * }, 'obsoleteFunction() is deprecated. Use newShinyFunction() instead.'); + * ``` + * + * When called, `util.deprecate()` will return a function that will emit a`DeprecationWarning` using the `'warning'` event. The warning will + * be emitted and printed to `stderr` the first time the returned function is + * called. After the warning is emitted, the wrapped function is called without + * emitting a warning. + * + * If the same optional `code` is supplied in multiple calls to `util.deprecate()`, + * the warning will be emitted only once for that `code`. + * + * ```js + * const util = require('util'); + * + * const fn1 = util.deprecate(someFunction, someMessage, 'DEP0001'); + * const fn2 = util.deprecate(someOtherFunction, someOtherMessage, 'DEP0001'); + * fn1(); // Emits a deprecation warning with code DEP0001 + * fn2(); // Does not emit a deprecation warning because it has the same code + * ``` + * + * If either the `--no-deprecation` or `--no-warnings` command-line flags are + * used, or if the `process.noDeprecation` property is set to `true`_prior_ to + * the first deprecation warning, the `util.deprecate()` method does nothing. + * + * If the `--trace-deprecation` or `--trace-warnings` command-line flags are set, + * or the `process.traceDeprecation` property is set to `true`, a warning and a + * stack trace are printed to `stderr` the first time the deprecated function is + * called. + * + * If the `--throw-deprecation` command-line flag is set, or the`process.throwDeprecation` property is set to `true`, then an exception will be + * thrown when the deprecated function is called. + * + * The `--throw-deprecation` command-line flag and `process.throwDeprecation`property take precedence over `--trace-deprecation` and`process.traceDeprecation`. + * @since v0.8.0 + * @param fn The function that is being deprecated. + * @param msg A warning message to display when the deprecated function is invoked. + * @param code A deprecation code. See the `list of deprecated APIs` for a list of codes. + * @return The deprecated function wrapped to emit a warning. + */ + export function deprecate(fn: T, msg: string, code?: string): T; + /** + * Returns `true` if there is deep strict equality between `val1` and `val2`. + * Otherwise, returns `false`. + * + * See `assert.deepStrictEqual()` for more information about deep strict + * equality. + * @since v9.0.0 + */ + export function isDeepStrictEqual(val1: unknown, val2: unknown): boolean; + /** + * Returns `str` with any ANSI escape codes removed. + * + * ```js + * console.log(util.stripVTControlCharacters('\u001B[4mvalue\u001B[0m')); + * // Prints "value" + * ``` + * @since v16.11.0 + */ + export function stripVTControlCharacters(str: string): string; + /** + * Takes an `async` function (or a function that returns a `Promise`) and returns a + * function following the error-first callback style, i.e. taking + * an `(err, value) => ...` callback as the last argument. In the callback, the + * first argument will be the rejection reason (or `null` if the `Promise`resolved), and the second argument will be the resolved value. + * + * ```js + * const util = require('util'); + * + * async function fn() { + * return 'hello world'; + * } + * const callbackFunction = util.callbackify(fn); + * + * callbackFunction((err, ret) => { + * if (err) throw err; + * console.log(ret); + * }); + * ``` + * + * Will print: + * + * ```text + * hello world + * ``` + * + * The callback is executed asynchronously, and will have a limited stack trace. + * If the callback throws, the process will emit an `'uncaughtException'` event, and if not handled will exit. + * + * Since `null` has a special meaning as the first argument to a callback, if a + * wrapped function rejects a `Promise` with a falsy value as a reason, the value + * is wrapped in an `Error` with the original value stored in a field named`reason`. + * + * ```js + * function fn() { + * return Promise.reject(null); + * } + * const callbackFunction = util.callbackify(fn); + * + * callbackFunction((err, ret) => { + * // When the Promise was rejected with `null` it is wrapped with an Error and + * // the original value is stored in `reason`. + * err && Object.hasOwn(err, 'reason') && err.reason === null; // true + * }); + * ``` + * @since v8.2.0 + * @param fn An `async` function + * @return a callback style function + */ + export function callbackify(fn: () => Promise): (callback: (err: NodeJS.ErrnoException) => void) => void; + export function callbackify(fn: () => Promise): (callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void; + export function callbackify(fn: (arg1: T1) => Promise): (arg1: T1, callback: (err: NodeJS.ErrnoException) => void) => void; + export function callbackify(fn: (arg1: T1) => Promise): (arg1: T1, callback: (err: NodeJS.ErrnoException, result: TResult) => void) => void; + export function callbackify(fn: (arg1: T1, arg2: T2) => Promise): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException) => void) => void; + export function callbackify(fn: (arg1: T1, arg2: T2) => Promise): (arg1: T1, arg2: T2, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; + export function callbackify(fn: (arg1: T1, arg2: T2, arg3: T3) => Promise): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException) => void) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3) => Promise + ): (arg1: T1, arg2: T2, arg3: T3, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException) => void) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException) => void) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: NodeJS.ErrnoException) => void) => void; + export function callbackify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6) => Promise + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, arg6: T6, callback: (err: NodeJS.ErrnoException | null, result: TResult) => void) => void; + export interface CustomPromisifyLegacy extends Function { + __promisify__: TCustom; + } + export interface CustomPromisifySymbol extends Function { + [promisify.custom]: TCustom; + } + export type CustomPromisify = CustomPromisifySymbol | CustomPromisifyLegacy; + /** + * Takes a function following the common error-first callback style, i.e. taking + * an `(err, value) => ...` callback as the last argument, and returns a version + * that returns promises. + * + * ```js + * const util = require('util'); + * const fs = require('fs'); + * + * const stat = util.promisify(fs.stat); + * stat('.').then((stats) => { + * // Do something with `stats` + * }).catch((error) => { + * // Handle the error. + * }); + * ``` + * + * Or, equivalently using `async function`s: + * + * ```js + * const util = require('util'); + * const fs = require('fs'); + * + * const stat = util.promisify(fs.stat); + * + * async function callStat() { + * const stats = await stat('.'); + * console.log(`This directory is owned by ${stats.uid}`); + * } + * ``` + * + * If there is an `original[util.promisify.custom]` property present, `promisify`will return its value, see `Custom promisified functions`. + * + * `promisify()` assumes that `original` is a function taking a callback as its + * final argument in all cases. If `original` is not a function, `promisify()`will throw an error. If `original` is a function but its last argument is not + * an error-first callback, it will still be passed an error-first + * callback as its last argument. + * + * Using `promisify()` on class methods or other methods that use `this` may not + * work as expected unless handled specially: + * + * ```js + * const util = require('util'); + * + * class Foo { + * constructor() { + * this.a = 42; + * } + * + * bar(callback) { + * callback(null, this.a); + * } + * } + * + * const foo = new Foo(); + * + * const naiveBar = util.promisify(foo.bar); + * // TypeError: Cannot read property 'a' of undefined + * // naiveBar().then(a => console.log(a)); + * + * naiveBar.call(foo).then((a) => console.log(a)); // '42' + * + * const bindBar = naiveBar.bind(foo); + * bindBar().then((a) => console.log(a)); // '42' + * ``` + * @since v8.0.0 + */ + export function promisify(fn: CustomPromisify): TCustom; + export function promisify(fn: (callback: (err: any, result: TResult) => void) => void): () => Promise; + export function promisify(fn: (callback: (err?: any) => void) => void): () => Promise; + export function promisify(fn: (arg1: T1, callback: (err: any, result: TResult) => void) => void): (arg1: T1) => Promise; + export function promisify(fn: (arg1: T1, callback: (err?: any) => void) => void): (arg1: T1) => Promise; + export function promisify(fn: (arg1: T1, arg2: T2, callback: (err: any, result: TResult) => void) => void): (arg1: T1, arg2: T2) => Promise; + export function promisify(fn: (arg1: T1, arg2: T2, callback: (err?: any) => void) => void): (arg1: T1, arg2: T2) => Promise; + export function promisify(fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err: any, result: TResult) => void) => void): (arg1: T1, arg2: T2, arg3: T3) => Promise; + export function promisify(fn: (arg1: T1, arg2: T2, arg3: T3, callback: (err?: any) => void) => void): (arg1: T1, arg2: T2, arg3: T3) => Promise; + export function promisify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err: any, result: TResult) => void) => void + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise; + export function promisify(fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, callback: (err?: any) => void) => void): (arg1: T1, arg2: T2, arg3: T3, arg4: T4) => Promise; + export function promisify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err: any, result: TResult) => void) => void + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise; + export function promisify( + fn: (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5, callback: (err?: any) => void) => void + ): (arg1: T1, arg2: T2, arg3: T3, arg4: T4, arg5: T5) => Promise; + export function promisify(fn: Function): Function; + export namespace promisify { + /** + * That can be used to declare custom promisified variants of functions. + */ + const custom: unique symbol; + } + /** + * An implementation of the [WHATWG Encoding Standard](https://encoding.spec.whatwg.org/) `TextDecoder` API. + * + * ```js + * const decoder = new TextDecoder(); + * const u8arr = new Uint8Array([72, 101, 108, 108, 111]); + * console.log(decoder.decode(u8arr)); // Hello + * ``` + * @since v8.3.0 + */ + export class TextDecoder { + /** + * The encoding supported by the `TextDecoder` instance. + */ + readonly encoding: string; + /** + * The value will be `true` if decoding errors result in a `TypeError` being + * thrown. + */ + readonly fatal: boolean; + /** + * The value will be `true` if the decoding result will include the byte order + * mark. + */ + readonly ignoreBOM: boolean; + constructor( + encoding?: string, + options?: { + fatal?: boolean | undefined; + ignoreBOM?: boolean | undefined; + } + ); + /** + * Decodes the `input` and returns a string. If `options.stream` is `true`, any + * incomplete byte sequences occurring at the end of the `input` are buffered + * internally and emitted after the next call to `textDecoder.decode()`. + * + * If `textDecoder.fatal` is `true`, decoding errors that occur will result in a`TypeError` being thrown. + * @param input An `ArrayBuffer`, `DataView` or `TypedArray` instance containing the encoded data. + */ + decode( + input?: NodeJS.ArrayBufferView | ArrayBuffer | null, + options?: { + stream?: boolean | undefined; + } + ): string; + } + export interface EncodeIntoResult { + /** + * The read Unicode code units of input. + */ + read: number; + /** + * The written UTF-8 bytes of output. + */ + written: number; + } + export { types }; + + //// TextEncoder/Decoder + /** + * An implementation of the [WHATWG Encoding Standard](https://encoding.spec.whatwg.org/) `TextEncoder` API. All + * instances of `TextEncoder` only support UTF-8 encoding. + * + * ```js + * const encoder = new TextEncoder(); + * const uint8array = encoder.encode('this is some data'); + * ``` + * + * The `TextEncoder` class is also available on the global object. + * @since v8.3.0 + */ + export class TextEncoder { + /** + * The encoding supported by the `TextEncoder` instance. Always set to `'utf-8'`. + */ + readonly encoding: string; + /** + * UTF-8 encodes the `input` string and returns a `Uint8Array` containing the + * encoded bytes. + * @param [input='an empty string'] The text to encode. + */ + encode(input?: string): Uint8Array; + /** + * UTF-8 encodes the `src` string to the `dest` Uint8Array and returns an object + * containing the read Unicode code units and written UTF-8 bytes. + * + * ```js + * const encoder = new TextEncoder(); + * const src = 'this is some data'; + * const dest = new Uint8Array(10); + * const { read, written } = encoder.encodeInto(src, dest); + * ``` + * @param src The text to encode. + * @param dest The array to hold the encode result. + */ + encodeInto(src: string, dest: Uint8Array): EncodeIntoResult; + } + + import { TextDecoder as _TextDecoder, TextEncoder as _TextEncoder } from 'util'; + global { + /** + * `TextDecoder` class is a global reference for `require('util').TextDecoder` + * https://nodejs.org/api/globals.html#textdecoder + * @since v11.0.0 + */ + var TextDecoder: typeof globalThis extends { + onmessage: any; + TextDecoder: infer TextDecoder; + } + ? TextDecoder + : typeof _TextDecoder; + + /** + * `TextEncoder` class is a global reference for `require('util').TextEncoder` + * https://nodejs.org/api/globals.html#textencoder + * @since v11.0.0 + */ + var TextEncoder: typeof globalThis extends { + onmessage: any; + TextEncoder: infer TextEncoder; + } + ? TextEncoder + : typeof _TextEncoder; + } + + //// parseArgs + /** + * Provides a high-level API for command-line argument parsing. Takes a + * specification for the expected arguments and returns a structured object + * with the parsed values and positionals. + * + * `config` provides arguments for parsing and configures the parser. It + * supports the following properties: + * + * - `args` The array of argument strings. **Default:** `process.argv` with + * `execPath` and `filename` removed. + * - `options` Arguments known to the parser. Keys of `options` are the long + * names of options and values are objects accepting the following properties: + * + * - `type` Type of argument, which must be either `boolean` (for options + * which do not take values) or `string` (for options which do). + * - `multiple` Whether this option can be provided multiple + * times. If `true`, all values will be collected in an array. If + * `false`, values for the option are last-wins. **Default:** `false`. + * - `short` A single character alias for the option. + * - `default` The default option value when it is not set by args. It + * must be of the same type as the `type` property. When `multiple` + * is `true`, it must be an array. + * + * - `strict`: Whether an error should be thrown when unknown arguments + * are encountered, or when arguments are passed that do not match the + * `type` configured in `options`. **Default:** `true`. + * - `allowPositionals`: Whether this command accepts positional arguments. + * **Default:** `false` if `strict` is `true`, otherwise `true`. + * - `tokens`: Whether tokens {boolean} Return the parsed tokens. This is useful + * for extending the built-in behavior, from adding additional checks through + * to reprocessing the tokens in different ways. + * **Default:** `false`. + * + * @returns The parsed command line arguments: + * + * - `values` A mapping of parsed option names with their string + * or boolean values. + * - `positionals` Positional arguments. + * - `tokens` Detailed parse information (only if `tokens` was specified). + * + */ + export function parseArgs(config?: T): ParsedResults; + + interface ParseArgsOptionConfig { + /** + * Type of argument. + */ + type: 'string' | 'boolean'; + /** + * Whether this option can be provided multiple times. + * If `true`, all values will be collected in an array. + * If `false`, values for the option are last-wins. + * @default false. + */ + multiple?: boolean | undefined; + /** + * A single character alias for the option. + */ + short?: string | undefined; + /** + * The default option value when it is not set by args. + * It must be of the same type as the the `type` property. + * When `multiple` is `true`, it must be an array. + * @since v18.11.0 + */ + default?: string | boolean | string[] | boolean[] | undefined; + } + + interface ParseArgsOptionsConfig { + [longOption: string]: ParseArgsOptionConfig; + } + + export interface ParseArgsConfig { + /** + * Array of argument strings. + */ + args?: string[] | undefined; + /** + * Used to describe arguments known to the parser. + */ + options?: ParseArgsOptionsConfig | undefined; + /** + * Should an error be thrown when unknown arguments are encountered, + * or when arguments are passed that do not match the `type` configured in `options`. + * @default true + */ + strict?: boolean | undefined; + /** + * Whether this command accepts positional arguments. + */ + allowPositionals?: boolean | undefined; + /** + * Return the parsed tokens. This is useful for extending the built-in behavior, + * from adding additional checks through to reprocessing the tokens in different ways. + * @default false + */ + tokens?: boolean | undefined; + } + + /* + IfDefaultsTrue and IfDefaultsFalse are helpers to handle default values for missing boolean properties. + TypeScript does not have exact types for objects: https://github.com/microsoft/TypeScript/issues/12936 + This means it is impossible to distinguish between "field X is definitely not present" and "field X may or may not be present". + But we expect users to generally provide their config inline or `as const`, which means TS will always know whether a given field is present. + So this helper treats "not definitely present" (i.e., not `extends boolean`) as being "definitely not present", i.e. it should have its default value. + This is technically incorrect but is a much nicer UX for the common case. + The IfDefaultsTrue version is for things which default to true; the IfDefaultsFalse version is for things which default to false. + */ + type IfDefaultsTrue = T extends true + ? IfTrue + : T extends false + ? IfFalse + : IfTrue; + + // we put the `extends false` condition first here because `undefined` compares like `any` when `strictNullChecks: false` + type IfDefaultsFalse = T extends false + ? IfFalse + : T extends true + ? IfTrue + : IfFalse; + + type ExtractOptionValue = IfDefaultsTrue< + T['strict'], + O['type'] extends 'string' ? string : O['type'] extends 'boolean' ? boolean : string | boolean, + string | boolean + >; + + type ParsedValues = + & IfDefaultsTrue + & (T['options'] extends ParseArgsOptionsConfig + ? { + -readonly [LongOption in keyof T['options']]: IfDefaultsFalse< + T['options'][LongOption]['multiple'], + undefined | Array>, + undefined | ExtractOptionValue + >; + } + : {}); + + type ParsedPositionals = IfDefaultsTrue< + T['strict'], + IfDefaultsFalse, + IfDefaultsTrue + >; + + type PreciseTokenForOptions< + K extends string, + O extends ParseArgsOptionConfig, + > = O['type'] extends 'string' + ? { + kind: 'option'; + index: number; + name: K; + rawName: string; + value: string; + inlineValue: boolean; + } + : O['type'] extends 'boolean' + ? { + kind: 'option'; + index: number; + name: K; + rawName: string; + value: undefined; + inlineValue: undefined; + } + : OptionToken & { name: K }; + + type TokenForOptions< + T extends ParseArgsConfig, + K extends keyof T['options'] = keyof T['options'], + > = K extends unknown + ? T['options'] extends ParseArgsOptionsConfig + ? PreciseTokenForOptions + : OptionToken + : never; + + type ParsedOptionToken = IfDefaultsTrue, OptionToken>; + + type ParsedPositionalToken = IfDefaultsTrue< + T['strict'], + IfDefaultsFalse, + IfDefaultsTrue + >; + + type ParsedTokens = Array< + ParsedOptionToken | ParsedPositionalToken | { kind: 'option-terminator'; index: number } + >; + + type PreciseParsedResults = IfDefaultsFalse< + T['tokens'], + { + values: ParsedValues; + positionals: ParsedPositionals; + tokens: ParsedTokens; + }, + { + values: ParsedValues; + positionals: ParsedPositionals; + } + >; + + type OptionToken = + | { kind: 'option'; index: number; name: string; rawName: string; value: string; inlineValue: boolean } + | { + kind: 'option'; + index: number; + name: string; + rawName: string; + value: undefined; + inlineValue: undefined; + }; + + type Token = + | OptionToken + | { kind: 'positional'; index: number; value: string } + | { kind: 'option-terminator'; index: number }; + + // If ParseArgsConfig extends T, then the user passed config constructed elsewhere. + // So we can't rely on the `"not definitely present" implies "definitely not present"` assumption mentioned above. + type ParsedResults = ParseArgsConfig extends T + ? { + values: { [longOption: string]: undefined | string | boolean | Array }; + positionals: string[]; + tokens?: Token[]; + } + : PreciseParsedResults; +} +declare module 'util/types' { + export * from 'util/types'; +} +declare module 'util/types' { + import { KeyObject, webcrypto } from 'node:crypto'; + /** + * Returns `true` if the value is a built-in [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) or + * [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instance. + * + * See also `util.types.isArrayBuffer()` and `util.types.isSharedArrayBuffer()`. + * + * ```js + * util.types.isAnyArrayBuffer(new ArrayBuffer()); // Returns true + * util.types.isAnyArrayBuffer(new SharedArrayBuffer()); // Returns true + * ``` + * @since v10.0.0 + */ + function isAnyArrayBuffer(object: unknown): object is ArrayBufferLike; + /** + * Returns `true` if the value is an `arguments` object. + * + * ```js + * function foo() { + * util.types.isArgumentsObject(arguments); // Returns true + * } + * ``` + * @since v10.0.0 + */ + function isArgumentsObject(object: unknown): object is IArguments; + /** + * Returns `true` if the value is a built-in [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) instance. + * This does _not_ include [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instances. Usually, it is + * desirable to test for both; See `util.types.isAnyArrayBuffer()` for that. + * + * ```js + * util.types.isArrayBuffer(new ArrayBuffer()); // Returns true + * util.types.isArrayBuffer(new SharedArrayBuffer()); // Returns false + * ``` + * @since v10.0.0 + */ + function isArrayBuffer(object: unknown): object is ArrayBuffer; + /** + * Returns `true` if the value is an instance of one of the [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) views, such as typed + * array objects or [`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView). Equivalent to + * [`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView). + * + * ```js + * util.types.isArrayBufferView(new Int8Array()); // true + * util.types.isArrayBufferView(Buffer.from('hello world')); // true + * util.types.isArrayBufferView(new DataView(new ArrayBuffer(16))); // true + * util.types.isArrayBufferView(new ArrayBuffer()); // false + * ``` + * @since v10.0.0 + */ + function isArrayBufferView(object: unknown): object is NodeJS.ArrayBufferView; + /** + * Returns `true` if the value is an [async function](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function). + * This only reports back what the JavaScript engine is seeing; + * in particular, the return value may not match the original source code if + * a transpilation tool was used. + * + * ```js + * util.types.isAsyncFunction(function foo() {}); // Returns false + * util.types.isAsyncFunction(async function foo() {}); // Returns true + * ``` + * @since v10.0.0 + */ + function isAsyncFunction(object: unknown): boolean; + /** + * Returns `true` if the value is a `BigInt64Array` instance. + * + * ```js + * util.types.isBigInt64Array(new BigInt64Array()); // Returns true + * util.types.isBigInt64Array(new BigUint64Array()); // Returns false + * ``` + * @since v10.0.0 + */ + function isBigInt64Array(value: unknown): value is BigInt64Array; + /** + * Returns `true` if the value is a `BigUint64Array` instance. + * + * ```js + * util.types.isBigUint64Array(new BigInt64Array()); // Returns false + * util.types.isBigUint64Array(new BigUint64Array()); // Returns true + * ``` + * @since v10.0.0 + */ + function isBigUint64Array(value: unknown): value is BigUint64Array; + /** + * Returns `true` if the value is a boolean object, e.g. created + * by `new Boolean()`. + * + * ```js + * util.types.isBooleanObject(false); // Returns false + * util.types.isBooleanObject(true); // Returns false + * util.types.isBooleanObject(new Boolean(false)); // Returns true + * util.types.isBooleanObject(new Boolean(true)); // Returns true + * util.types.isBooleanObject(Boolean(false)); // Returns false + * util.types.isBooleanObject(Boolean(true)); // Returns false + * ``` + * @since v10.0.0 + */ + function isBooleanObject(object: unknown): object is Boolean; + /** + * Returns `true` if the value is any boxed primitive object, e.g. created + * by `new Boolean()`, `new String()` or `Object(Symbol())`. + * + * For example: + * + * ```js + * util.types.isBoxedPrimitive(false); // Returns false + * util.types.isBoxedPrimitive(new Boolean(false)); // Returns true + * util.types.isBoxedPrimitive(Symbol('foo')); // Returns false + * util.types.isBoxedPrimitive(Object(Symbol('foo'))); // Returns true + * util.types.isBoxedPrimitive(Object(BigInt(5))); // Returns true + * ``` + * @since v10.11.0 + */ + function isBoxedPrimitive(object: unknown): object is String | Number | BigInt | Boolean | Symbol; + /** + * Returns `true` if the value is a built-in [`DataView`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DataView) instance. + * + * ```js + * const ab = new ArrayBuffer(20); + * util.types.isDataView(new DataView(ab)); // Returns true + * util.types.isDataView(new Float64Array()); // Returns false + * ``` + * + * See also [`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView). + * @since v10.0.0 + */ + function isDataView(object: unknown): object is DataView; + /** + * Returns `true` if the value is a built-in [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) instance. + * + * ```js + * util.types.isDate(new Date()); // Returns true + * ``` + * @since v10.0.0 + */ + function isDate(object: unknown): object is Date; + /** + * Returns `true` if the value is a native `External` value. + * + * A native `External` value is a special type of object that contains a + * raw C++ pointer (`void*`) for access from native code, and has no other + * properties. Such objects are created either by Node.js internals or native + * addons. In JavaScript, they are [frozen](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze) objects with a`null` prototype. + * + * ```c + * #include + * #include + * napi_value result; + * static napi_value MyNapi(napi_env env, napi_callback_info info) { + * int* raw = (int*) malloc(1024); + * napi_status status = napi_create_external(env, (void*) raw, NULL, NULL, &result); + * if (status != napi_ok) { + * napi_throw_error(env, NULL, "napi_create_external failed"); + * return NULL; + * } + * return result; + * } + * ... + * DECLARE_NAPI_PROPERTY("myNapi", MyNapi) + * ... + * ``` + * + * ```js + * const native = require('napi_addon.node'); + * const data = native.myNapi(); + * util.types.isExternal(data); // returns true + * util.types.isExternal(0); // returns false + * util.types.isExternal(new String('foo')); // returns false + * ``` + * + * For further information on `napi_create_external`, refer to `napi_create_external()`. + * @since v10.0.0 + */ + function isExternal(object: unknown): boolean; + /** + * Returns `true` if the value is a built-in [`Float32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float32Array) instance. + * + * ```js + * util.types.isFloat32Array(new ArrayBuffer()); // Returns false + * util.types.isFloat32Array(new Float32Array()); // Returns true + * util.types.isFloat32Array(new Float64Array()); // Returns false + * ``` + * @since v10.0.0 + */ + function isFloat32Array(object: unknown): object is Float32Array; + /** + * Returns `true` if the value is a built-in [`Float64Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Float64Array) instance. + * + * ```js + * util.types.isFloat64Array(new ArrayBuffer()); // Returns false + * util.types.isFloat64Array(new Uint8Array()); // Returns false + * util.types.isFloat64Array(new Float64Array()); // Returns true + * ``` + * @since v10.0.0 + */ + function isFloat64Array(object: unknown): object is Float64Array; + /** + * Returns `true` if the value is a generator function. + * This only reports back what the JavaScript engine is seeing; + * in particular, the return value may not match the original source code if + * a transpilation tool was used. + * + * ```js + * util.types.isGeneratorFunction(function foo() {}); // Returns false + * util.types.isGeneratorFunction(function* foo() {}); // Returns true + * ``` + * @since v10.0.0 + */ + function isGeneratorFunction(object: unknown): object is GeneratorFunction; + /** + * Returns `true` if the value is a generator object as returned from a + * built-in generator function. + * This only reports back what the JavaScript engine is seeing; + * in particular, the return value may not match the original source code if + * a transpilation tool was used. + * + * ```js + * function* foo() {} + * const generator = foo(); + * util.types.isGeneratorObject(generator); // Returns true + * ``` + * @since v10.0.0 + */ + function isGeneratorObject(object: unknown): object is Generator; + /** + * Returns `true` if the value is a built-in [`Int8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int8Array) instance. + * + * ```js + * util.types.isInt8Array(new ArrayBuffer()); // Returns false + * util.types.isInt8Array(new Int8Array()); // Returns true + * util.types.isInt8Array(new Float64Array()); // Returns false + * ``` + * @since v10.0.0 + */ + function isInt8Array(object: unknown): object is Int8Array; + /** + * Returns `true` if the value is a built-in [`Int16Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int16Array) instance. + * + * ```js + * util.types.isInt16Array(new ArrayBuffer()); // Returns false + * util.types.isInt16Array(new Int16Array()); // Returns true + * util.types.isInt16Array(new Float64Array()); // Returns false + * ``` + * @since v10.0.0 + */ + function isInt16Array(object: unknown): object is Int16Array; + /** + * Returns `true` if the value is a built-in [`Int32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array) instance. + * + * ```js + * util.types.isInt32Array(new ArrayBuffer()); // Returns false + * util.types.isInt32Array(new Int32Array()); // Returns true + * util.types.isInt32Array(new Float64Array()); // Returns false + * ``` + * @since v10.0.0 + */ + function isInt32Array(object: unknown): object is Int32Array; + /** + * Returns `true` if the value is a built-in [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) instance. + * + * ```js + * util.types.isMap(new Map()); // Returns true + * ``` + * @since v10.0.0 + */ + function isMap(object: T | {}): object is T extends ReadonlyMap ? (unknown extends T ? never : ReadonlyMap) : Map; + /** + * Returns `true` if the value is an iterator returned for a built-in [`Map`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) instance. + * + * ```js + * const map = new Map(); + * util.types.isMapIterator(map.keys()); // Returns true + * util.types.isMapIterator(map.values()); // Returns true + * util.types.isMapIterator(map.entries()); // Returns true + * util.types.isMapIterator(map[Symbol.iterator]()); // Returns true + * ``` + * @since v10.0.0 + */ + function isMapIterator(object: unknown): boolean; + /** + * Returns `true` if the value is an instance of a [Module Namespace Object](https://tc39.github.io/ecma262/#sec-module-namespace-exotic-objects). + * + * ```js + * import * as ns from './a.js'; + * + * util.types.isModuleNamespaceObject(ns); // Returns true + * ``` + * @since v10.0.0 + */ + function isModuleNamespaceObject(value: unknown): boolean; + /** + * Returns `true` if the value is an instance of a built-in `Error` type. + * + * ```js + * util.types.isNativeError(new Error()); // Returns true + * util.types.isNativeError(new TypeError()); // Returns true + * util.types.isNativeError(new RangeError()); // Returns true + * ``` + * @since v10.0.0 + */ + function isNativeError(object: unknown): object is Error; + /** + * Returns `true` if the value is a number object, e.g. created + * by `new Number()`. + * + * ```js + * util.types.isNumberObject(0); // Returns false + * util.types.isNumberObject(new Number(0)); // Returns true + * ``` + * @since v10.0.0 + */ + function isNumberObject(object: unknown): object is Number; + /** + * Returns `true` if the value is a built-in [`Promise`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise). + * + * ```js + * util.types.isPromise(Promise.resolve(42)); // Returns true + * ``` + * @since v10.0.0 + */ + function isPromise(object: unknown): object is Promise; + /** + * Returns `true` if the value is a [`Proxy`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) instance. + * + * ```js + * const target = {}; + * const proxy = new Proxy(target, {}); + * util.types.isProxy(target); // Returns false + * util.types.isProxy(proxy); // Returns true + * ``` + * @since v10.0.0 + */ + function isProxy(object: unknown): boolean; + /** + * Returns `true` if the value is a regular expression object. + * + * ```js + * util.types.isRegExp(/abc/); // Returns true + * util.types.isRegExp(new RegExp('abc')); // Returns true + * ``` + * @since v10.0.0 + */ + function isRegExp(object: unknown): object is RegExp; + /** + * Returns `true` if the value is a built-in [`Set`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) instance. + * + * ```js + * util.types.isSet(new Set()); // Returns true + * ``` + * @since v10.0.0 + */ + function isSet(object: T | {}): object is T extends ReadonlySet ? (unknown extends T ? never : ReadonlySet) : Set; + /** + * Returns `true` if the value is an iterator returned for a built-in [`Set`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set) instance. + * + * ```js + * const set = new Set(); + * util.types.isSetIterator(set.keys()); // Returns true + * util.types.isSetIterator(set.values()); // Returns true + * util.types.isSetIterator(set.entries()); // Returns true + * util.types.isSetIterator(set[Symbol.iterator]()); // Returns true + * ``` + * @since v10.0.0 + */ + function isSetIterator(object: unknown): boolean; + /** + * Returns `true` if the value is a built-in [`SharedArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer) instance. + * This does _not_ include [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer) instances. Usually, it is + * desirable to test for both; See `util.types.isAnyArrayBuffer()` for that. + * + * ```js + * util.types.isSharedArrayBuffer(new ArrayBuffer()); // Returns false + * util.types.isSharedArrayBuffer(new SharedArrayBuffer()); // Returns true + * ``` + * @since v10.0.0 + */ + function isSharedArrayBuffer(object: unknown): object is SharedArrayBuffer; + /** + * Returns `true` if the value is a string object, e.g. created + * by `new String()`. + * + * ```js + * util.types.isStringObject('foo'); // Returns false + * util.types.isStringObject(new String('foo')); // Returns true + * ``` + * @since v10.0.0 + */ + function isStringObject(object: unknown): object is String; + /** + * Returns `true` if the value is a symbol object, created + * by calling `Object()` on a `Symbol` primitive. + * + * ```js + * const symbol = Symbol('foo'); + * util.types.isSymbolObject(symbol); // Returns false + * util.types.isSymbolObject(Object(symbol)); // Returns true + * ``` + * @since v10.0.0 + */ + function isSymbolObject(object: unknown): object is Symbol; + /** + * Returns `true` if the value is a built-in [`TypedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray) instance. + * + * ```js + * util.types.isTypedArray(new ArrayBuffer()); // Returns false + * util.types.isTypedArray(new Uint8Array()); // Returns true + * util.types.isTypedArray(new Float64Array()); // Returns true + * ``` + * + * See also [`ArrayBuffer.isView()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer/isView). + * @since v10.0.0 + */ + function isTypedArray(object: unknown): object is NodeJS.TypedArray; + /** + * Returns `true` if the value is a built-in [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) instance. + * + * ```js + * util.types.isUint8Array(new ArrayBuffer()); // Returns false + * util.types.isUint8Array(new Uint8Array()); // Returns true + * util.types.isUint8Array(new Float64Array()); // Returns false + * ``` + * @since v10.0.0 + */ + function isUint8Array(object: unknown): object is Uint8Array; + /** + * Returns `true` if the value is a built-in [`Uint8ClampedArray`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray) instance. + * + * ```js + * util.types.isUint8ClampedArray(new ArrayBuffer()); // Returns false + * util.types.isUint8ClampedArray(new Uint8ClampedArray()); // Returns true + * util.types.isUint8ClampedArray(new Float64Array()); // Returns false + * ``` + * @since v10.0.0 + */ + function isUint8ClampedArray(object: unknown): object is Uint8ClampedArray; + /** + * Returns `true` if the value is a built-in [`Uint16Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint16Array) instance. + * + * ```js + * util.types.isUint16Array(new ArrayBuffer()); // Returns false + * util.types.isUint16Array(new Uint16Array()); // Returns true + * util.types.isUint16Array(new Float64Array()); // Returns false + * ``` + * @since v10.0.0 + */ + function isUint16Array(object: unknown): object is Uint16Array; + /** + * Returns `true` if the value is a built-in [`Uint32Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint32Array) instance. + * + * ```js + * util.types.isUint32Array(new ArrayBuffer()); // Returns false + * util.types.isUint32Array(new Uint32Array()); // Returns true + * util.types.isUint32Array(new Float64Array()); // Returns false + * ``` + * @since v10.0.0 + */ + function isUint32Array(object: unknown): object is Uint32Array; + /** + * Returns `true` if the value is a built-in [`WeakMap`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap) instance. + * + * ```js + * util.types.isWeakMap(new WeakMap()); // Returns true + * ``` + * @since v10.0.0 + */ + function isWeakMap(object: unknown): object is WeakMap; + /** + * Returns `true` if the value is a built-in [`WeakSet`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakSet) instance. + * + * ```js + * util.types.isWeakSet(new WeakSet()); // Returns true + * ``` + * @since v10.0.0 + */ + function isWeakSet(object: unknown): object is WeakSet; + /** + * Returns `true` if `value` is a `KeyObject`, `false` otherwise. + * @since v16.2.0 + */ + function isKeyObject(object: unknown): object is KeyObject; + /** + * Returns `true` if `value` is a `CryptoKey`, `false` otherwise. + * @since v16.2.0 + */ + function isCryptoKey(object: unknown): object is webcrypto.CryptoKey; +} +declare module 'node:util' { + export * from 'util'; +} +declare module 'node:util/types' { + export * from 'util/types'; +} diff --git a/node_modules/@types/node/ts4.8/v8.d.ts b/node_modules/@types/node/ts4.8/v8.d.ts new file mode 100644 index 0000000..6685dc2 --- /dev/null +++ b/node_modules/@types/node/ts4.8/v8.d.ts @@ -0,0 +1,396 @@ +/** + * The `v8` module exposes APIs that are specific to the version of [V8](https://developers.google.com/v8/) built into the Node.js binary. It can be accessed using: + * + * ```js + * const v8 = require('v8'); + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/v8.js) + */ +declare module 'v8' { + import { Readable } from 'node:stream'; + interface HeapSpaceInfo { + space_name: string; + space_size: number; + space_used_size: number; + space_available_size: number; + physical_space_size: number; + } + // ** Signifies if the --zap_code_space option is enabled or not. 1 == enabled, 0 == disabled. */ + type DoesZapCodeSpaceFlag = 0 | 1; + interface HeapInfo { + total_heap_size: number; + total_heap_size_executable: number; + total_physical_size: number; + total_available_size: number; + used_heap_size: number; + heap_size_limit: number; + malloced_memory: number; + peak_malloced_memory: number; + does_zap_garbage: DoesZapCodeSpaceFlag; + number_of_native_contexts: number; + number_of_detached_contexts: number; + } + interface HeapCodeStatistics { + code_and_metadata_size: number; + bytecode_and_metadata_size: number; + external_script_source_size: number; + } + /** + * Returns an integer representing a version tag derived from the V8 version, + * command-line flags, and detected CPU features. This is useful for determining + * whether a `vm.Script` `cachedData` buffer is compatible with this instance + * of V8. + * + * ```js + * console.log(v8.cachedDataVersionTag()); // 3947234607 + * // The value returned by v8.cachedDataVersionTag() is derived from the V8 + * // version, command-line flags, and detected CPU features. Test that the value + * // does indeed update when flags are toggled. + * v8.setFlagsFromString('--allow_natives_syntax'); + * console.log(v8.cachedDataVersionTag()); // 183726201 + * ``` + * @since v8.0.0 + */ + function cachedDataVersionTag(): number; + /** + * Returns an object with the following properties: + * + * `does_zap_garbage` is a 0/1 boolean, which signifies whether the`--zap_code_space` option is enabled or not. This makes V8 overwrite heap + * garbage with a bit pattern. The RSS footprint (resident set size) gets bigger + * because it continuously touches all heap pages and that makes them less likely + * to get swapped out by the operating system. + * + * `number_of_native_contexts` The value of native\_context is the number of the + * top-level contexts currently active. Increase of this number over time indicates + * a memory leak. + * + * `number_of_detached_contexts` The value of detached\_context is the number + * of contexts that were detached and not yet garbage collected. This number + * being non-zero indicates a potential memory leak. + * + * ```js + * { + * total_heap_size: 7326976, + * total_heap_size_executable: 4194304, + * total_physical_size: 7326976, + * total_available_size: 1152656, + * used_heap_size: 3476208, + * heap_size_limit: 1535115264, + * malloced_memory: 16384, + * peak_malloced_memory: 1127496, + * does_zap_garbage: 0, + * number_of_native_contexts: 1, + * number_of_detached_contexts: 0 + * } + * ``` + * @since v1.0.0 + */ + function getHeapStatistics(): HeapInfo; + /** + * Returns statistics about the V8 heap spaces, i.e. the segments which make up + * the V8 heap. Neither the ordering of heap spaces, nor the availability of a + * heap space can be guaranteed as the statistics are provided via the + * V8[`GetHeapSpaceStatistics`](https://v8docs.nodesource.com/node-13.2/d5/dda/classv8_1_1_isolate.html#ac673576f24fdc7a33378f8f57e1d13a4) function and may change from one V8 version to the + * next. + * + * The value returned is an array of objects containing the following properties: + * + * ```json + * [ + * { + * "space_name": "new_space", + * "space_size": 2063872, + * "space_used_size": 951112, + * "space_available_size": 80824, + * "physical_space_size": 2063872 + * }, + * { + * "space_name": "old_space", + * "space_size": 3090560, + * "space_used_size": 2493792, + * "space_available_size": 0, + * "physical_space_size": 3090560 + * }, + * { + * "space_name": "code_space", + * "space_size": 1260160, + * "space_used_size": 644256, + * "space_available_size": 960, + * "physical_space_size": 1260160 + * }, + * { + * "space_name": "map_space", + * "space_size": 1094160, + * "space_used_size": 201608, + * "space_available_size": 0, + * "physical_space_size": 1094160 + * }, + * { + * "space_name": "large_object_space", + * "space_size": 0, + * "space_used_size": 0, + * "space_available_size": 1490980608, + * "physical_space_size": 0 + * } + * ] + * ``` + * @since v6.0.0 + */ + function getHeapSpaceStatistics(): HeapSpaceInfo[]; + /** + * The `v8.setFlagsFromString()` method can be used to programmatically set + * V8 command-line flags. This method should be used with care. Changing settings + * after the VM has started may result in unpredictable behavior, including + * crashes and data loss; or it may simply do nothing. + * + * The V8 options available for a version of Node.js may be determined by running`node --v8-options`. + * + * Usage: + * + * ```js + * // Print GC events to stdout for one minute. + * const v8 = require('v8'); + * v8.setFlagsFromString('--trace_gc'); + * setTimeout(() => { v8.setFlagsFromString('--notrace_gc'); }, 60e3); + * ``` + * @since v1.0.0 + */ + function setFlagsFromString(flags: string): void; + /** + * Generates a snapshot of the current V8 heap and returns a Readable + * Stream that may be used to read the JSON serialized representation. + * This JSON stream format is intended to be used with tools such as + * Chrome DevTools. The JSON schema is undocumented and specific to the + * V8 engine. Therefore, the schema may change from one version of V8 to the next. + * + * Creating a heap snapshot requires memory about twice the size of the heap at + * the time the snapshot is created. This results in the risk of OOM killers + * terminating the process. + * + * Generating a snapshot is a synchronous operation which blocks the event loop + * for a duration depending on the heap size. + * + * ```js + * // Print heap snapshot to the console + * const v8 = require('v8'); + * const stream = v8.getHeapSnapshot(); + * stream.pipe(process.stdout); + * ``` + * @since v11.13.0 + * @return A Readable Stream containing the V8 heap snapshot + */ + function getHeapSnapshot(): Readable; + /** + * Generates a snapshot of the current V8 heap and writes it to a JSON + * file. This file is intended to be used with tools such as Chrome + * DevTools. The JSON schema is undocumented and specific to the V8 + * engine, and may change from one version of V8 to the next. + * + * A heap snapshot is specific to a single V8 isolate. When using `worker threads`, a heap snapshot generated from the main thread will + * not contain any information about the workers, and vice versa. + * + * Creating a heap snapshot requires memory about twice the size of the heap at + * the time the snapshot is created. This results in the risk of OOM killers + * terminating the process. + * + * Generating a snapshot is a synchronous operation which blocks the event loop + * for a duration depending on the heap size. + * + * ```js + * const { writeHeapSnapshot } = require('v8'); + * const { + * Worker, + * isMainThread, + * parentPort + * } = require('worker_threads'); + * + * if (isMainThread) { + * const worker = new Worker(__filename); + * + * worker.once('message', (filename) => { + * console.log(`worker heapdump: ${filename}`); + * // Now get a heapdump for the main thread. + * console.log(`main thread heapdump: ${writeHeapSnapshot()}`); + * }); + * + * // Tell the worker to create a heapdump. + * worker.postMessage('heapdump'); + * } else { + * parentPort.once('message', (message) => { + * if (message === 'heapdump') { + * // Generate a heapdump for the worker + * // and return the filename to the parent. + * parentPort.postMessage(writeHeapSnapshot()); + * } + * }); + * } + * ``` + * @since v11.13.0 + * @param filename The file path where the V8 heap snapshot is to be saved. If not specified, a file name with the pattern `'Heap-${yyyymmdd}-${hhmmss}-${pid}-${thread_id}.heapsnapshot'` will be + * generated, where `{pid}` will be the PID of the Node.js process, `{thread_id}` will be `0` when `writeHeapSnapshot()` is called from the main Node.js thread or the id of a + * worker thread. + * @return The filename where the snapshot was saved. + */ + function writeHeapSnapshot(filename?: string): string; + /** + * Returns an object with the following properties: + * + * ```js + * { + * code_and_metadata_size: 212208, + * bytecode_and_metadata_size: 161368, + * external_script_source_size: 1410794 + * } + * ``` + * @since v12.8.0 + */ + function getHeapCodeStatistics(): HeapCodeStatistics; + /** + * @since v8.0.0 + */ + class Serializer { + /** + * Writes out a header, which includes the serialization format version. + */ + writeHeader(): void; + /** + * Serializes a JavaScript value and adds the serialized representation to the + * internal buffer. + * + * This throws an error if `value` cannot be serialized. + */ + writeValue(val: any): boolean; + /** + * Returns the stored internal buffer. This serializer should not be used once + * the buffer is released. Calling this method results in undefined behavior + * if a previous write has failed. + */ + releaseBuffer(): Buffer; + /** + * Marks an `ArrayBuffer` as having its contents transferred out of band. + * Pass the corresponding `ArrayBuffer` in the deserializing context to `deserializer.transferArrayBuffer()`. + * @param id A 32-bit unsigned integer. + * @param arrayBuffer An `ArrayBuffer` instance. + */ + transferArrayBuffer(id: number, arrayBuffer: ArrayBuffer): void; + /** + * Write a raw 32-bit unsigned integer. + * For use inside of a custom `serializer._writeHostObject()`. + */ + writeUint32(value: number): void; + /** + * Write a raw 64-bit unsigned integer, split into high and low 32-bit parts. + * For use inside of a custom `serializer._writeHostObject()`. + */ + writeUint64(hi: number, lo: number): void; + /** + * Write a JS `number` value. + * For use inside of a custom `serializer._writeHostObject()`. + */ + writeDouble(value: number): void; + /** + * Write raw bytes into the serializer’s internal buffer. The deserializer + * will require a way to compute the length of the buffer. + * For use inside of a custom `serializer._writeHostObject()`. + */ + writeRawBytes(buffer: NodeJS.TypedArray): void; + } + /** + * A subclass of `Serializer` that serializes `TypedArray`(in particular `Buffer`) and `DataView` objects as host objects, and only + * stores the part of their underlying `ArrayBuffer`s that they are referring to. + * @since v8.0.0 + */ + class DefaultSerializer extends Serializer {} + /** + * @since v8.0.0 + */ + class Deserializer { + constructor(data: NodeJS.TypedArray); + /** + * Reads and validates a header (including the format version). + * May, for example, reject an invalid or unsupported wire format. In that case, + * an `Error` is thrown. + */ + readHeader(): boolean; + /** + * Deserializes a JavaScript value from the buffer and returns it. + */ + readValue(): any; + /** + * Marks an `ArrayBuffer` as having its contents transferred out of band. + * Pass the corresponding `ArrayBuffer` in the serializing context to `serializer.transferArrayBuffer()` (or return the `id` from `serializer._getSharedArrayBufferId()` in the case of + * `SharedArrayBuffer`s). + * @param id A 32-bit unsigned integer. + * @param arrayBuffer An `ArrayBuffer` instance. + */ + transferArrayBuffer(id: number, arrayBuffer: ArrayBuffer): void; + /** + * Reads the underlying wire format version. Likely mostly to be useful to + * legacy code reading old wire format versions. May not be called before`.readHeader()`. + */ + getWireFormatVersion(): number; + /** + * Read a raw 32-bit unsigned integer and return it. + * For use inside of a custom `deserializer._readHostObject()`. + */ + readUint32(): number; + /** + * Read a raw 64-bit unsigned integer and return it as an array `[hi, lo]`with two 32-bit unsigned integer entries. + * For use inside of a custom `deserializer._readHostObject()`. + */ + readUint64(): [number, number]; + /** + * Read a JS `number` value. + * For use inside of a custom `deserializer._readHostObject()`. + */ + readDouble(): number; + /** + * Read raw bytes from the deserializer’s internal buffer. The `length` parameter + * must correspond to the length of the buffer that was passed to `serializer.writeRawBytes()`. + * For use inside of a custom `deserializer._readHostObject()`. + */ + readRawBytes(length: number): Buffer; + } + /** + * A subclass of `Deserializer` corresponding to the format written by `DefaultSerializer`. + * @since v8.0.0 + */ + class DefaultDeserializer extends Deserializer {} + /** + * Uses a `DefaultSerializer` to serialize `value` into a buffer. + * + * `ERR_BUFFER_TOO_LARGE` will be thrown when trying to + * serialize a huge object which requires buffer + * larger than `buffer.constants.MAX_LENGTH`. + * @since v8.0.0 + */ + function serialize(value: any): Buffer; + /** + * Uses a `DefaultDeserializer` with default options to read a JS value + * from a buffer. + * @since v8.0.0 + * @param buffer A buffer returned by {@link serialize}. + */ + function deserialize(buffer: NodeJS.TypedArray): any; + /** + * The `v8.takeCoverage()` method allows the user to write the coverage started by `NODE_V8_COVERAGE` to disk on demand. This method can be invoked multiple + * times during the lifetime of the process. Each time the execution counter will + * be reset and a new coverage report will be written to the directory specified + * by `NODE_V8_COVERAGE`. + * + * When the process is about to exit, one last coverage will still be written to + * disk unless {@link stopCoverage} is invoked before the process exits. + * @since v15.1.0, v14.18.0, v12.22.0 + */ + function takeCoverage(): void; + /** + * The `v8.stopCoverage()` method allows the user to stop the coverage collection + * started by `NODE_V8_COVERAGE`, so that V8 can release the execution count + * records and optimize code. This can be used in conjunction with {@link takeCoverage} if the user wants to collect the coverage on demand. + * @since v15.1.0, v14.18.0, v12.22.0 + */ + function stopCoverage(): void; +} +declare module 'node:v8' { + export * from 'v8'; +} diff --git a/node_modules/@types/node/ts4.8/vm.d.ts b/node_modules/@types/node/ts4.8/vm.d.ts new file mode 100644 index 0000000..c96513a --- /dev/null +++ b/node_modules/@types/node/ts4.8/vm.d.ts @@ -0,0 +1,509 @@ +/** + * The `vm` module enables compiling and running code within V8 Virtual + * Machine contexts. + * + * **The `vm` module is not a security** + * **mechanism. Do not use it to run untrusted code.** + * + * JavaScript code can be compiled and run immediately or + * compiled, saved, and run later. + * + * A common use case is to run the code in a different V8 Context. This means + * invoked code has a different global object than the invoking code. + * + * One can provide the context by `contextifying` an + * object. The invoked code treats any property in the context like a + * global variable. Any changes to global variables caused by the invoked + * code are reflected in the context object. + * + * ```js + * const vm = require('vm'); + * + * const x = 1; + * + * const context = { x: 2 }; + * vm.createContext(context); // Contextify the object. + * + * const code = 'x += 40; var y = 17;'; + * // `x` and `y` are global variables in the context. + * // Initially, x has the value 2 because that is the value of context.x. + * vm.runInContext(code, context); + * + * console.log(context.x); // 42 + * console.log(context.y); // 17 + * + * console.log(x); // 1; y is not defined. + * ``` + * @see [source](https://github.com/nodejs/node/blob/v18.0.0/lib/vm.js) + */ +declare module 'vm' { + interface Context extends NodeJS.Dict {} + interface BaseOptions { + /** + * Specifies the filename used in stack traces produced by this script. + * Default: `''`. + */ + filename?: string | undefined; + /** + * Specifies the line number offset that is displayed in stack traces produced by this script. + * Default: `0`. + */ + lineOffset?: number | undefined; + /** + * Specifies the column number offset that is displayed in stack traces produced by this script. + * @default 0 + */ + columnOffset?: number | undefined; + } + interface ScriptOptions extends BaseOptions { + displayErrors?: boolean | undefined; + timeout?: number | undefined; + cachedData?: Buffer | undefined; + /** @deprecated in favor of `script.createCachedData()` */ + produceCachedData?: boolean | undefined; + } + interface RunningScriptOptions extends BaseOptions { + /** + * When `true`, if an `Error` occurs while compiling the `code`, the line of code causing the error is attached to the stack trace. + * Default: `true`. + */ + displayErrors?: boolean | undefined; + /** + * Specifies the number of milliseconds to execute code before terminating execution. + * If execution is terminated, an `Error` will be thrown. This value must be a strictly positive integer. + */ + timeout?: number | undefined; + /** + * If `true`, the execution will be terminated when `SIGINT` (Ctrl+C) is received. + * Existing handlers for the event that have been attached via `process.on('SIGINT')` will be disabled during script execution, but will continue to work after that. + * If execution is terminated, an `Error` will be thrown. + * Default: `false`. + */ + breakOnSigint?: boolean | undefined; + /** + * If set to `afterEvaluate`, microtasks will be run immediately after the script has run. + */ + microtaskMode?: 'afterEvaluate' | undefined; + } + interface CompileFunctionOptions extends BaseOptions { + /** + * Provides an optional data with V8's code cache data for the supplied source. + */ + cachedData?: Buffer | undefined; + /** + * Specifies whether to produce new cache data. + * Default: `false`, + */ + produceCachedData?: boolean | undefined; + /** + * The sandbox/context in which the said function should be compiled in. + */ + parsingContext?: Context | undefined; + /** + * An array containing a collection of context extensions (objects wrapping the current scope) to be applied while compiling + */ + contextExtensions?: Object[] | undefined; + } + interface CreateContextOptions { + /** + * Human-readable name of the newly created context. + * @default 'VM Context i' Where i is an ascending numerical index of the created context. + */ + name?: string | undefined; + /** + * Corresponds to the newly created context for display purposes. + * The origin should be formatted like a `URL`, but with only the scheme, host, and port (if necessary), + * like the value of the `url.origin` property of a URL object. + * Most notably, this string should omit the trailing slash, as that denotes a path. + * @default '' + */ + origin?: string | undefined; + codeGeneration?: + | { + /** + * If set to false any calls to eval or function constructors (Function, GeneratorFunction, etc) + * will throw an EvalError. + * @default true + */ + strings?: boolean | undefined; + /** + * If set to false any attempt to compile a WebAssembly module will throw a WebAssembly.CompileError. + * @default true + */ + wasm?: boolean | undefined; + } + | undefined; + /** + * If set to `afterEvaluate`, microtasks will be run immediately after the script has run. + */ + microtaskMode?: 'afterEvaluate' | undefined; + } + type MeasureMemoryMode = 'summary' | 'detailed'; + interface MeasureMemoryOptions { + /** + * @default 'summary' + */ + mode?: MeasureMemoryMode | undefined; + context?: Context | undefined; + } + interface MemoryMeasurement { + total: { + jsMemoryEstimate: number; + jsMemoryRange: [number, number]; + }; + } + /** + * Instances of the `vm.Script` class contain precompiled scripts that can be + * executed in specific contexts. + * @since v0.3.1 + */ + class Script { + constructor(code: string, options?: ScriptOptions); + /** + * Runs the compiled code contained by the `vm.Script` object within the given`contextifiedObject` and returns the result. Running code does not have access + * to local scope. + * + * The following example compiles code that increments a global variable, sets + * the value of another global variable, then execute the code multiple times. + * The globals are contained in the `context` object. + * + * ```js + * const vm = require('vm'); + * + * const context = { + * animal: 'cat', + * count: 2 + * }; + * + * const script = new vm.Script('count += 1; name = "kitty";'); + * + * vm.createContext(context); + * for (let i = 0; i < 10; ++i) { + * script.runInContext(context); + * } + * + * console.log(context); + * // Prints: { animal: 'cat', count: 12, name: 'kitty' } + * ``` + * + * Using the `timeout` or `breakOnSigint` options will result in new event loops + * and corresponding threads being started, which have a non-zero performance + * overhead. + * @since v0.3.1 + * @param contextifiedObject A `contextified` object as returned by the `vm.createContext()` method. + * @return the result of the very last statement executed in the script. + */ + runInContext(contextifiedObject: Context, options?: RunningScriptOptions): any; + /** + * First contextifies the given `contextObject`, runs the compiled code contained + * by the `vm.Script` object within the created context, and returns the result. + * Running code does not have access to local scope. + * + * The following example compiles code that sets a global variable, then executes + * the code multiple times in different contexts. The globals are set on and + * contained within each individual `context`. + * + * ```js + * const vm = require('vm'); + * + * const script = new vm.Script('globalVar = "set"'); + * + * const contexts = [{}, {}, {}]; + * contexts.forEach((context) => { + * script.runInNewContext(context); + * }); + * + * console.log(contexts); + * // Prints: [{ globalVar: 'set' }, { globalVar: 'set' }, { globalVar: 'set' }] + * ``` + * @since v0.3.1 + * @param contextObject An object that will be `contextified`. If `undefined`, a new object will be created. + * @return the result of the very last statement executed in the script. + */ + runInNewContext(contextObject?: Context, options?: RunningScriptOptions): any; + /** + * Runs the compiled code contained by the `vm.Script` within the context of the + * current `global` object. Running code does not have access to local scope, but _does_ have access to the current `global` object. + * + * The following example compiles code that increments a `global` variable then + * executes that code multiple times: + * + * ```js + * const vm = require('vm'); + * + * global.globalVar = 0; + * + * const script = new vm.Script('globalVar += 1', { filename: 'myfile.vm' }); + * + * for (let i = 0; i < 1000; ++i) { + * script.runInThisContext(); + * } + * + * console.log(globalVar); + * + * // 1000 + * ``` + * @since v0.3.1 + * @return the result of the very last statement executed in the script. + */ + runInThisContext(options?: RunningScriptOptions): any; + /** + * Creates a code cache that can be used with the `Script` constructor's`cachedData` option. Returns a `Buffer`. This method may be called at any + * time and any number of times. + * + * ```js + * const script = new vm.Script(` + * function add(a, b) { + * return a + b; + * } + * + * const x = add(1, 2); + * `); + * + * const cacheWithoutX = script.createCachedData(); + * + * script.runInThisContext(); + * + * const cacheWithX = script.createCachedData(); + * ``` + * @since v10.6.0 + */ + createCachedData(): Buffer; + /** @deprecated in favor of `script.createCachedData()` */ + cachedDataProduced?: boolean | undefined; + cachedDataRejected?: boolean | undefined; + cachedData?: Buffer | undefined; + } + /** + * If given a `contextObject`, the `vm.createContext()` method will `prepare + * that object` so that it can be used in calls to {@link runInContext} or `script.runInContext()`. Inside such scripts, + * the `contextObject` will be the global object, retaining all of its existing + * properties but also having the built-in objects and functions any standard [global object](https://es5.github.io/#x15.1) has. Outside of scripts run by the vm module, global variables + * will remain unchanged. + * + * ```js + * const vm = require('vm'); + * + * global.globalVar = 3; + * + * const context = { globalVar: 1 }; + * vm.createContext(context); + * + * vm.runInContext('globalVar *= 2;', context); + * + * console.log(context); + * // Prints: { globalVar: 2 } + * + * console.log(global.globalVar); + * // Prints: 3 + * ``` + * + * If `contextObject` is omitted (or passed explicitly as `undefined`), a new, + * empty `contextified` object will be returned. + * + * The `vm.createContext()` method is primarily useful for creating a single + * context that can be used to run multiple scripts. For instance, if emulating a + * web browser, the method can be used to create a single context representing a + * window's global object, then run all ` +``` + +Using unpkg CDN: + +```html + +``` + +## Example + +> **Note** CommonJS usage +> In order to gain the TypeScript typings (for intellisense / autocomplete) while using CommonJS imports with `require()`, use the following approach: + +```js +import axios from 'axios'; +//const axios = require('axios'); // legacy way + +// Make a request for a user with a given ID +axios.get('/user?ID=12345') + .then(function (response) { + // handle success + console.log(response); + }) + .catch(function (error) { + // handle error + console.log(error); + }) + .finally(function () { + // always executed + }); + +// Optionally the request above could also be done as +axios.get('/user', { + params: { + ID: 12345 + } + }) + .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 { + const response = await axios.get('/user?ID=12345'); + console.log(response); + } catch (error) { + console.error(error); + } +} +``` + +> **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 +axios.post('/user', { + firstName: 'Fred', + lastName: 'Flintstone' + }) + .then(function (response) { + console.log(response); + }) + .catch(function (error) { + console.log(error); + }); +``` + +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 +axios({ + method: 'get', + url: 'https://bit.ly/2mTM3nY', + responseType: 'stream' +}) + .then(function (response) { + 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 + +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. + // It can be convenient to set `baseURL` for an instance of axios to pass relative URLs + // to methods of that instance. + baseURL: 'https://some-domain.com/api/', + + // `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; + }], + + // `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 in charge of serializing `params` + paramsSerializer: { + encode?: (param: string): string => { /* Do custom ops here and return transformed string */ }, // custom encoder function; sends Key/Values in an iterative fashion + serialize?: (params: Record, options?: ParamsSerializerOptions ), // mimic pre 1.x behavior and send entire params object to a custom serializer func. Allows consumer to control how params are serialized. + indexes: false // array indexes format (null - no brackets, false (default) - empty brackets, true - brackets with indexes) + }, + + // `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, 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' + }, + + // 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 + 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) { + /* ... */ + }, + + // `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 + responseEncoding: 'utf8', // default + + // `xsrfCookieName` is the name of the cookie to use as a value for 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 + + // `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, + + // `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.auth = "user:password"; + } + }, + + // `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. + socketPath: null, // 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. + 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. + // This will set an `Proxy-Authorization` header, overwriting any existing + // `Proxy-Authorization` custom headers you have set using `headers`. + // If the proxy server uses HTTPS, then you must set the protocol to `https`. + 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 (Note: responseType must be set to 'json') + 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, + }, + + 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 + }, + + // http adapter only (node.js) + maxRate: [ + 100 * 1024, // 100KB/s upload limit, + 100 * 1024 // 100KB/s download limit + ] +} +``` + +## Response Schema + +The response for 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 +axios.get('/user/12345') + .then(function (response) { + 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.js](https://github.com/axios/axios/blob/master/lib/defaults/index.js#L28), 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 they are handled by `then` or `catch`. + +```js +// Add a request interceptor +axios.interceptors.request.use(function (config) { + // Do something before request is sent + return config; + }, function (error) { + // Do something with request error + return Promise.reject(error); + }); + +// Add a response interceptor +axios.interceptors.response.use(function (response) { + // Any status code that lie within the range of 2xx cause this function to trigger + // Do something with response data + return response; + }, function (error) { + // Any status codes that falls 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 myInterceptor = axios.interceptors.request.use(function () {/*...*/}); +axios.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 on 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 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 }); +``` + +### Multiple Interceptors + +Given 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) for seeing all this in 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()); + }); +``` + +## Cancellation + +### AbortController + +Starting from `v0.22.0` Axios supports AbortController to cancel requests in 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` format](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST) 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 + var 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/formdata` 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', new Buffer(10)); +form.append('my_file', fs.createReadStream('/foo/bar.jpg')); + +axios.post('https://example.com', form) +``` + +### 🆕 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: new Buffer(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`) + +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 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. + +```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 currently 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 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 +}); +``` + +## Semver + +Until axios reaches a `1.0` release, breaking changes will be released with a new minor version. For example `0.5.1`, and `0.5.4` will have the same API, but `0.6.0` will have breaking changes. + +## 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"`. + +## 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) + + +## 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 + +[MIT](LICENSE) diff --git a/node_modules/axios/SECURITY.md b/node_modules/axios/SECURITY.md new file mode 100644 index 0000000..a5a2b7d --- /dev/null +++ b/node_modules/axios/SECURITY.md @@ -0,0 +1,6 @@ +# Reporting a Vulnerability + +If you discover a security vulnerability in axios please disclose it via [our huntr page](https://huntr.dev/repos/axios/axios/). Bounty eligibility, CVE assignment, response times and past reports are all there. + + +Thank you for improving the security of axios. diff --git a/node_modules/axios/dist/axios.js b/node_modules/axios/dist/axios.js new file mode 100644 index 0000000..b7e7bf7 --- /dev/null +++ b/node_modules/axios/dist/axios.js @@ -0,0 +1,2959 @@ +// Axios v1.3.1 Copyright (c) 2023 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 _typeof(obj) { + "@babel/helpers - typeof"; + + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); + } + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", { + writable: false + }); + return Constructor; + } + function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); + } + function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; + } + function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + var _s, _e; + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; + } + 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 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 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 an Array + * + * @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(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 = 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) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val); + }; + + /** + * 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 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 File, 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(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 + */ + var isFormData = function isFormData(thing) { + var pattern = '[object FormData]'; + return thing && (typeof FormData === 'function' && thing instanceof FormData || toString.call(thing) === pattern || isFunction(thing.toString) && thing.toString() === pattern); + }; + + /** + * 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'); + + /** + * 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 {Boolean} [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 { + // 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); + } + } + } + function findKey(obj, key) { + 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 + * var 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 /* obj1, obj2, obj3, ... */ + merge() { + var _ref2 = isContextDefined(this) && this || {}, + caseless = _ref2.caseless; + var result = {}; + var assignValue = function assignValue(val, key) { + var targetKey = caseless && findKey(result, key) || key; + if (isPlainObject(result[targetKey]) && isPlainObject(val)) { + result[targetKey] = merge(result[targetKey], val); + } else if (isPlainObject(val)) { + result[targetKey] = merge({}, val); + } else if (isArray(val)) { + result[targetKey] = val.slice(); + } else { + result[targetKey] = val; + } + }; + for (var i = 0, l = arguments.length; i < l; i++) { + arguments[i] && forEach(arguments[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 {Boolean} [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(val)) { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }, { + 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); + constructor.prototype.constructor = constructor; + Object.defineProperty(constructor, 'super', { + 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[Symbol.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) { + if (reducer(descriptor, name, obj) !== false) { + reducedDescriptors[name] = 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(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) { + return false; + } + var value = obj[name]; + if (!isFunction(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 + '\''); + }; + } + }); + }; + 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) { + value = +value; + return Number.isFinite(value) ? value : defaultValue; + }; + var ALPHA = 'abcdefghijklmnopqrstuvwxyz'; + var DIGIT = '0123456789'; + var ALPHABET = { + DIGIT: DIGIT, + ALPHA: ALPHA, + ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT + }; + var generateString = function generateString() { + var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 16; + var alphabet = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ALPHABET.ALPHA_DIGIT; + var str = ''; + var length = alphabet.length; + while (size--) { + str += alphabet[Math.random() * length | 0]; + } + return str; + }; + + /** + * 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[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]); + } + var toJSONObject = function toJSONObject(obj) { + var stack = new Array(10); + var visit = function visit(source, i) { + if (isObject(source)) { + if (stack.indexOf(source) >= 0) { + return; + } + if (!('toJSON' in source)) { + stack[i] = source; + var target = isArray(source) ? [] : {}; + forEach(source, function (value, key) { + var reducedValue = visit(value, i + 1); + !isUndefined(reducedValue) && (target[key] = reducedValue); + }); + stack[i] = undefined; + return target; + } + } + return source; + }; + return visit(obj, 0); + }; + var utils = { + isArray: isArray, + isArrayBuffer: isArrayBuffer, + isBuffer: isBuffer, + isFormData: isFormData, + isArrayBufferView: isArrayBufferView, + isString: isString, + isNumber: isNumber, + isBoolean: isBoolean, + isObject: isObject, + isPlainObject: isPlainObject, + isUndefined: isUndefined, + isDate: isDate, + isFile: isFile, + isBlob: isBlob, + isRegExp: isRegExp, + isFunction: isFunction, + 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, + ALPHABET: ALPHABET, + generateString: generateString, + isSpecCompliantForm: isSpecCompliantForm, + toJSONObject: toJSONObject + }; + + /** + * 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) { + Error.call(this); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + this.stack = new Error().stack; + } + this.message = message; + this.name = 'AxiosError'; + code && (this.code = code); + config && (this.config = config); + request && (this.request = request); + response && (this.response = response); + } + utils.inherits(AxiosError, Error, { + toJSON: function toJSON() { + 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: utils.toJSONObject(this.config), + code: this.code, + status: this.response && this.response.status ? this.response.status : null + }; + } + }); + var prototype$1 = AxiosError.prototype; + var descriptors = {}; + ['ERR_BAD_OPTION_VALUE', 'ERR_BAD_OPTION', 'ECONNABORTED', 'ETIMEDOUT', 'ERR_NETWORK', 'ERR_FR_TOO_MANY_REDIRECTS', 'ERR_DEPRECATED', 'ERR_BAD_RESPONSE', 'ERR_BAD_REQUEST', 'ERR_CANCELED', 'ERR_NOT_SUPPORT', 'ERR_INVALID_URL' + // eslint-disable-next-line func-names + ].forEach(function (code) { + descriptors[code] = { + value: code + }; + }); + Object.defineProperties(AxiosError, descriptors); + Object.defineProperty(prototype$1, 'isAxiosError', { + value: true + }); + + // eslint-disable-next-line func-names + AxiosError.from = function (error, code, config, request, response, customProps) { + var axiosError = Object.create(prototype$1); + utils.toFlatObject(error, axiosError, function filter(obj) { + return obj !== Error.prototype; + }, function (prop) { + return prop !== 'isAxiosError'; + }); + AxiosError.call(axiosError, error.message, code, config, request, response); + axiosError.cause = error; + axiosError.name = error.name; + customProps && Object.assign(axiosError, customProps); + return axiosError; + }; + + // 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.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); + } + var 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 (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]); + }); + 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 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 (!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) { + var arr = value; + 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; + } + var stack = []; + var exposedHelpers = Object.assign(predicates, { + defaultVisitor: defaultVisitor, + convertValue: convertValue, + isVisitable: isVisitable + }); + function build(value, path) { + if (utils.isUndefined(value)) return; + if (stack.indexOf(value) !== -1) { + throw Error('Circular reference detected in ' + path.join('.')); + } + stack.push(value); + utils.forEach(value, function each(el, key) { + var 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]); + } + }); + stack.pop(); + } + if (!utils.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': '+', + '%00': '\x00' + }; + return encodeURIComponent(str).replace(/[!'()~]|%20|%00/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 all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their + * URI encoded 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, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']'); + } + + /** + * 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} options + * + * @returns {string} The formatted url + */ + function buildURL(url, params, options) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + var _encode = options && options.encode || encode; + var serializeFn = options && options.serialize; + var serializedParams; + if (serializeFn) { + serializedParams = serializeFn(params, options); + } else { + serializedParams = utils.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` + * + * @return {Number} An ID used to remove interceptor later + */ + _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 {Boolean} `true` if the interceptor was removed, `false` otherwise + */ + }, { + 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.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); + } + }]); + return InterceptorManager; + }(); + var InterceptorManager$1 = InterceptorManager; + + var transitionalDefaults = { + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false + }; + + var URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams; + + var FormData$1 = FormData; + + /** + * 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 isStandardBrowserEnv = function () { + var product; + if (typeof navigator !== 'undefined' && ((product = navigator.product) === 'ReactNative' || product === 'NativeScript' || product === 'NS')) { + return false; + } + return typeof window !== 'undefined' && typeof document !== 'undefined'; + }(); + + /** + * 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 isStandardBrowserWebWorkerEnv = function () { + return typeof WorkerGlobalScope !== 'undefined' && + // eslint-disable-next-line no-undef + self instanceof WorkerGlobalScope && typeof self.importScripts === 'function'; + }(); + var platform = { + isBrowser: true, + classes: { + URLSearchParams: URLSearchParams$1, + FormData: FormData$1, + Blob: Blob + }, + isStandardBrowserEnv: isStandardBrowserEnv, + isStandardBrowserWebWorkerEnv: isStandardBrowserWebWorkerEnv, + protocols: ['http', 'https', 'file', 'blob', 'url', 'data'] + }; + + function toURLEncodedForm(data, options) { + return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({ + visitor: function visitor(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)); + } + + /** + * 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(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++]; + var isNumericKey = Number.isFinite(+name); + var isLast = index >= path.length; + name = !name && utils.isArray(target) ? target.length : name; + if (isLast) { + if (utils.hasOwnProp(target, name)) { + target[name] = [target[name], value]; + } else { + target[name] = value; + } + return !isNumericKey; + } + if (!target[name] || !utils.isObject(target[name])) { + target[name] = []; + } + var 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)) { + var obj = {}; + utils.forEachEntry(formData, function (name, value) { + buildPath(parsePropPath(name), value, obj, 0); + }); + return obj; + } + return null; + } + + var DEFAULT_CONTENT_TYPE = { + 'Content-Type': 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); + } + var defaults = { + transitional: transitionalDefaults, + adapter: ['xhr', 'http'], + transformRequest: [function transformRequest(data, headers) { + var contentType = headers.getContentType() || ''; + var hasJSONContentType = contentType.indexOf('application/json') > -1; + var isObjectPayload = utils.isObject(data); + if (isObjectPayload && utils.isHTMLForm(data)) { + data = new FormData(data); + } + var isFormData = utils.isFormData(data); + if (isFormData) { + if (!hasJSONContentType) { + return data; + } + return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data; + } + if (utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(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(); + } + var isFileList; + if (isObjectPayload) { + if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { + return toURLEncodedForm(data, this.formSerializer).toString(); + } + if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) { + var _FormData = this.env && this.env.FormData; + return toFormData(isFileList ? { + 'files[]': data + } : data, _FormData && new _FormData(), this.formSerializer); + } + } + if (isObjectPayload || hasJSONContentType) { + headers.setContentType('application/json', false); + return stringifySafely(data); + } + return data; + }], + transformResponse: [function transformResponse(data) { + var transitional = this.transitional || defaults.transitional; + var forcedJSONParsing = transitional && transitional.forcedJSONParsing; + var JSONRequested = this.responseType === 'json'; + if (data && utils.isString(data) && (forcedJSONParsing && !this.responseType || JSONRequested)) { + var silentJSONParsing = transitional && transitional.silentJSONParsing; + var strictJSONParsing = !silentJSONParsing && JSONRequested; + try { + return JSON.parse(data); + } catch (e) { + if (strictJSONParsing) { + if (e.name === 'SyntaxError') { + throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, 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, */*' + } + } + }; + utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { + defaults.headers[method] = {}; + }); + utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); + }); + var defaults$1 = defaults; + + // RawAxiosHeaders whose duplicates are ignored by node + // c.f. https://nodejs.org/api/http.html#http_message_headers + var 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 + */ + 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; + }); + + 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.isArray(value) ? value.map(normalizeValue) : 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; + } + function isValidHeaderName(str) { + return /^[-_a-zA-Z]+$/.test(str.trim()); + } + function matchHeaderValue(context, value, header, filter) { + if (utils.isFunction(filter)) { + return filter.call(this, 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, function (w, _char, str) { + return _char.toUpperCase() + str; + }); + } + function buildAccessors(obj, header) { + var accessorName = utils.toCamelCase(' ' + header); + ['get', 'set', 'has'].forEach(function (methodName) { + Object.defineProperty(obj, methodName + accessorName, { + value: function value(arg1, arg2, arg3) { + return this[methodName].call(this, header, arg1, arg2, arg3); + }, + configurable: true + }); + }); + } + var AxiosHeaders = /*#__PURE__*/function (_Symbol$iterator, _Symbol$toStringTag) { + function AxiosHeaders(headers) { + _classCallCheck(this, AxiosHeaders); + headers && this.set(headers); + } + _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.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.forEach(headers, function (_value, _header) { + return 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 { + header != null && setHeader(valueOrRewrite, header, rewrite); + } + return this; + } + }, { + key: "get", + value: function get(header, parser) { + header = normalizeHeader(header); + if (header) { + var key = utils.findKey(this, header); + if (key) { + var 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'); + } + } + } + }, { + key: "has", + value: function has(header, matcher) { + header = normalizeHeader(header); + if (header) { + var key = utils.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.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; + } + }, { + 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)) { + delete this[key]; + deleted = true; + } + } + return deleted; + } + }, { + key: "normalize", + value: function normalize(format) { + var self = this; + var headers = {}; + utils.forEach(this, function (value, header) { + var key = utils.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.forEach(this, function (value, header) { + value != null && value !== false && (obj[header] = asStrings && utils.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: _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.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header); + return this; + } + }]); + return AxiosHeaders; + }(Symbol.iterator, Symbol.toStringTag); + AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']); + utils.freezeMethods(AxiosHeaders.prototype); + utils.freezeMethods(AxiosHeaders); + var AxiosHeaders$1 = AxiosHeaders; + + /** + * 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$1; + var context = response || config; + var headers = AxiosHeaders$1.from(context.headers); + var data = context.data; + utils.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__); + } + + /** + * 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) { + // eslint-disable-next-line no-eq-null,eqeqeq + AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request); + this.name = 'CanceledError'; + } + utils.inherits(CanceledError, AxiosError, { + __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) { + 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, [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], response.config, response.request, response)); + } + } + + var cookies = platform.isStandardBrowserEnv ? + // Standard browser envs support document.cookie + function standardBrowserEnv() { + return { + write: function write(name, value, expires, path, domain, secure) { + var cookie = []; + cookie.push(name + '=' + encodeURIComponent(value)); + if (utils.isNumber(expires)) { + cookie.push('expires=' + new Date(expires).toGMTString()); + } + if (utils.isString(path)) { + cookie.push('path=' + path); + } + if (utils.isString(domain)) { + cookie.push('domain=' + domain); + } + if (secure === true) { + cookie.push('secure'); + } + document.cookie = cookie.join('; '); + }, + read: function read(name) { + var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return match ? decodeURIComponent(match[3]) : null; + }, + remove: function remove(name) { + this.write(name, '', Date.now() - 86400000); + } + }; + }() : + // Non standard browser env (web workers, react-native) lack needed support. + function nonStandardBrowserEnv() { + return { + 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. + 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) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; + } + + var isURLSameOrigin = platform.isStandardBrowserEnv ? + // Standard browser envs have full support of the APIs needed to test + // whether the request URL is of the same origin as current location. + function standardBrowserEnv() { + var msie = /(msie|trident)/i.test(navigator.userAgent); + var urlParsingNode = document.createElement('a'); + var originURL; + + /** + * Parse a URL to discover it's components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + var href = url; + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname + }; + } + originURL = resolveURL(window.location.href); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL; + return parsed.protocol === originURL.protocol && parsed.host === originURL.host; + }; + }() : + // Non standard browser envs (web workers, react-native) lack needed support. + function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + }(); + + 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; + }; + } + + function progressEventReducer(listener, isDownloadStream) { + var bytesNotified = 0; + var _speedometer = speedometer(50, 250); + return function (e) { + var loaded = e.loaded; + var total = e.lengthComputable ? e.total : undefined; + var progressBytes = loaded - bytesNotified; + var rate = _speedometer(progressBytes); + var inRange = loaded <= total; + bytesNotified = loaded; + var data = { + loaded: loaded, + total: total, + progress: total ? loaded / total : undefined, + bytes: progressBytes, + rate: rate ? rate : undefined, + estimated: rate && total && inRange ? (total - loaded) / rate : undefined, + event: e + }; + data[isDownloadStream ? 'download' : 'upload'] = true; + listener(data); + }; + } + var isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; + var xhrAdapter = isXHRAdapterSupported && function (config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + var requestData = config.data; + var requestHeaders = AxiosHeaders$1.from(config.headers).normalize(); + var responseType = config.responseType; + var onCanceled; + function done() { + if (config.cancelToken) { + config.cancelToken.unsubscribe(onCanceled); + } + if (config.signal) { + config.signal.removeEventListener('abort', onCanceled); + } + } + if (utils.isFormData(requestData) && (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv)) { + requestHeaders.setContentType(false); // Let the browser set it + } + + var request = new XMLHttpRequest(); + + // HTTP basic authentication + if (config.auth) { + var username = config.auth.username || ''; + var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ''; + requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password)); + } + var fullPath = buildFullPath(config.baseURL, config.url); + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + + // Set the request timeout in MS + request.timeout = config.timeout; + function onloadend() { + if (!request) { + return; + } + // Prepare the response + var responseHeaders = AxiosHeaders$1.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.indexOf('file:') === 0)) { + 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)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request)); + + // Clean up request + 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)); + + // Clean up request + request = null; + }; + + // 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.isStandardBrowserEnv) { + // Add xsrf header + var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName && cookies.read(config.xsrfCookieName); + if (xsrfValue) { + requestHeaders.set(config.xsrfHeaderName, xsrfValue); + } + } + + // Remove Content-Type if data is undefined + requestData === undefined && requestHeaders.setContentType(null); + + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders.toJSON(), 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 (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true)); + } + + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress)); + } + 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(); + request = null; + }; + config.cancelToken && config.cancelToken.subscribe(onCanceled); + if (config.signal) { + config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled); + } + } + var protocol = parseProtocol(fullPath); + if (protocol && platform.protocols.indexOf(protocol) === -1) { + reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config)); + return; + } + + // Send the request + request.send(requestData || null); + }); + }; + + var knownAdapters = { + http: httpAdapter, + xhr: xhrAdapter + }; + utils.forEach(knownAdapters, function (fn, value) { + if (fn) { + try { + Object.defineProperty(fn, 'name', { + value: value + }); + } catch (e) { + // eslint-disable-next-line no-empty + } + Object.defineProperty(fn, 'adapterName', { + value: value + }); + } + }); + var adapters = { + getAdapter: function getAdapter(adapters) { + adapters = utils.isArray(adapters) ? adapters : [adapters]; + var _adapters = adapters, + length = _adapters.length; + var nameOrAdapter; + var adapter; + for (var i = 0; i < length; i++) { + nameOrAdapter = adapters[i]; + if (adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter) { + break; + } + } + if (!adapter) { + if (adapter === false) { + throw new AxiosError("Adapter ".concat(nameOrAdapter, " is not supported by the environment"), 'ERR_NOT_SUPPORT'); + } + throw new Error(utils.hasOwnProp(knownAdapters, nameOrAdapter) ? "Adapter '".concat(nameOrAdapter, "' is not available in the build") : "Unknown adapter '".concat(nameOrAdapter, "'")); + } + if (!utils.isFunction(adapter)) { + throw new TypeError('adapter is not a function'); + } + return adapter; + }, + 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$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); + } + var adapter = adapters.getAdapter(config.adapter || defaults$1.adapter); + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData.call(config, config.transformResponse, response); + response.headers = AxiosHeaders$1.from(response.headers); + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData.call(config, config.transformResponse, reason.response); + reason.response.headers = AxiosHeaders$1.from(reason.response.headers); + } + } + return Promise.reject(reason); + }); + } + + var headersToObject = function headersToObject(thing) { + return thing instanceof AxiosHeaders$1 ? thing.toJSON() : 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 || {}; + var config = {}; + function getMergedValue(target, source, caseless) { + if (utils.isPlainObject(target) && utils.isPlainObject(source)) { + return utils.merge.call({ + caseless: caseless + }, target, source); + } else if (utils.isPlainObject(source)) { + return utils.merge({}, source); + } else if (utils.isArray(source)) { + return source.slice(); + } + return source; + } + + // eslint-disable-next-line consistent-return + function mergeDeepProperties(a, b, caseless) { + if (!utils.isUndefined(b)) { + return getMergedValue(a, b, caseless); + } else if (!utils.isUndefined(a)) { + return getMergedValue(undefined, a, 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 (prop in config2) { + return getMergedValue(a, b); + } else if (prop in config1) { + 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, + 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, + responseEncoding: defaultToConfig2, + validateStatus: mergeDirectKeys, + headers: function headers(a, b) { + return mergeDeepProperties(headersToObject(a), headersToObject(b), true); + } + }; + utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) { + var merge = mergeMap[prop] || mergeDeepProperties; + var configValue = merge(config1[prop], config2[prop], prop); + utils.isUndefined(configValue) && merge !== mergeDirectKeys || (config[prop] = configValue); + }); + return config; + } + + var VERSION = "1.3.1"; + + 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; + }; + }; + + /** + * 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]; + var validator = schema[opt]; + 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$1(), + response: new InterceptorManager$1() + }; + } + + /** + * 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 + */ + _createClass(Axios, [{ + 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"]) + }, false); + } + if (paramsSerializer !== undefined) { + validator.assertOptions(paramsSerializer, { + encode: validators["function"], + serialize: validators["function"] + }, true); + } + + // Set config.method + config.method = (config.method || this.defaults.method || 'get').toLowerCase(); + var contextHeaders; + + // Flatten headers + contextHeaders = headers && utils.merge(headers.common, headers[config.method]); + contextHeaders && utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function (method) { + delete headers[method]; + }); + config.headers = AxiosHeaders$1.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; + requestInterceptorChain.unshift(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; + i = 0; + 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); + return buildURL(fullPath, config.params, config.paramsSerializer); + } + }]); + return Axios; + }(); // 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: method, + url: url, + data: (config || {}).data + })); + }; + }); + utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + + 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(); + Axios.prototype[method + 'Form'] = generateHTTPMethod(true); + }); + var Axios$1 = Axios; + + /** + * 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. + */ + _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); + } + } + + /** + * 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 + }; + } + }]); + return CancelToken; + }(); + var CancelToken$1 = CancelToken; + + /** + * 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) {} + * var 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.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 + }; + Object.entries(HttpStatusCode).forEach(function (_ref) { + var _ref2 = _slicedToArray(_ref, 2), + key = _ref2[0], + value = _ref2[1]; + HttpStatusCode[value] = key; + }); + var HttpStatusCode$1 = HttpStatusCode; + + /** + * 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$1(defaultConfig); + var instance = bind(Axios$1.prototype.request, context); + + // Copy axios.prototype to instance + utils.extend(instance, Axios$1.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 + var axios = createInstance(defaults$1); + + // Expose Axios class to allow class inheritance + axios.Axios = Axios$1; + + // Expose Cancel & CancelToken + axios.CanceledError = CanceledError; + axios.CancelToken = CancelToken$1; + 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$1; + axios.formToJSON = function (thing) { + return formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing); + }; + axios.HttpStatusCode = HttpStatusCode$1; + 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 new file mode 100644 index 0000000..9018867 --- /dev/null +++ b/node_modules/axios/dist/axios.js.map @@ -0,0 +1 @@ +{"version":3,"file":"axios.js","sources":["../lib/helpers/bind.js","../lib/utils.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/index.js","../lib/helpers/toURLEncodedForm.js","../lib/helpers/formDataToJSON.js","../lib/defaults/index.js","../lib/helpers/parseHeaders.js","../lib/core/AxiosHeaders.js","../lib/core/transformData.js","../lib/cancel/isCancel.js","../lib/cancel/CanceledError.js","../lib/core/settle.js","../lib/helpers/cookies.js","../lib/helpers/isAbsoluteURL.js","../lib/helpers/combineURLs.js","../lib/core/buildFullPath.js","../lib/helpers/isURLSameOrigin.js","../lib/helpers/parseProtocol.js","../lib/helpers/speedometer.js","../lib/adapters/xhr.js","../lib/adapters/adapters.js","../lib/core/dispatchRequest.js","../lib/core/mergeConfig.js","../lib/env/data.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\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;\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 an Array\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 val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\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/**\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 (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\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 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 File, 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 */\nconst isFormData = (thing) => {\n const pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\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\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) => str.trim ?\n 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 {Boolean} [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 // 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\nfunction findKey(obj, key) {\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 * var 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(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[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 {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\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 constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\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/**\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[Symbol.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,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(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 if (reducer(descriptor, name, obj) !== false) {\n reducedDescriptors[name] = 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'].indexOf(name) !== -1) {\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\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 value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\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 while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\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 !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\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 ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject\n};\n","'use strict';\n\nimport utils from '../utils.js';\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 */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\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: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\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.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\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(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\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 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 (!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 (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) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : 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) {\n if (utils.isUndefined(value)) return;\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 = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\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 '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/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 ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\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 all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\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} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\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 *\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 {Boolean} `true` if the interceptor was removed, `false` otherwise\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};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default FormData;\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\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 isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\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 */\n const isStandardBrowserWebWorkerEnv = (() => {\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\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\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(), Object.assign({\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","'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 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] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!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 DEFAULT_CONTENT_TYPE = {\n 'Content-Type': undefined\n};\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\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [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 if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(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 if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.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 transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\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 }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nexport default defaults;\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', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', '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 && 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';\nimport parseHeaders from '../helpers/parseHeaders.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) : 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\nfunction isValidHeaderName(str) {\n return /^[-_a-zA-Z]+$/.test(str.trim());\n}\n\nfunction matchHeaderValue(context, value, header, filter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, 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.trim()\n .toLowerCase().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 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(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\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 {\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 !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\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)) {\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 && value !== false && (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()).map(([header, value]) => header + ': ' + value).join('\\n');\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 = this[$internals] = (this[$internals] = {\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(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\nutils.freezeMethods(AxiosHeaders.prototype);\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\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';\nimport utils from '../utils.js';\n\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 */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\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 [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\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 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) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\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","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.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 speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n 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 && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n const responseType = config.responseType;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv)) {\n requestHeaders.setContentType(false); // Let the browser set it\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), 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 = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : 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(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\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 (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\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\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\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 if (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\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(requestHeaders.toJSON(), 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 (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\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 request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if(fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) {\n break;\n }\n }\n\n if (!adapter) {\n if (adapter === false) {\n throw new AxiosError(\n `Adapter ${nameOrAdapter} is not supported by the environment`,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n throw new Error(\n utils.hasOwnProp(knownAdapters, nameOrAdapter) ?\n `Adapter '${nameOrAdapter}' is not available in the build` :\n `Unknown adapter '${nameOrAdapter}'`\n );\n }\n\n if (!utils.isFunction(adapter)) {\n throw new TypeError('adapter is not a function');\n }\n\n return adapter;\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(\n config,\n config.transformRequest\n );\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);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : 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 const config = {};\n\n function getMergedValue(target, source, 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 // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, 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 (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\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 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 responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.3.1\";","'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 '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\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\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 const validator = schema[opt];\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('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\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';\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 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(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer !== undefined) {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n let contextHeaders;\n\n // Flatten headers\n contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n contextHeaders && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\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 requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\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.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, 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 i = 0;\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);\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(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\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 /**\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 * var 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};\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 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.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","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","Symbol","toStringTag","iterator","isDate","isFile","isBlob","isFileList","isStream","pipe","isFormData","pattern","FormData","isURLSearchParams","trim","replace","forEach","obj","allOwnKeys","i","l","length","keys","getOwnPropertyNames","len","key","findKey","_key","_global","globalThis","self","window","global","isContextDefined","context","merge","caseless","assignValue","targetKey","extend","a","b","stripBOM","content","charCodeAt","inherits","superConstructor","props","descriptors","defineProperty","value","assign","toFlatObject","sourceObj","destObj","filter","propFilter","prop","merged","endsWith","searchString","position","String","undefined","lastIndex","indexOf","toArray","arr","isTypedArray","TypedArray","Uint8Array","forEachEntry","generator","next","done","pair","matchAll","regExp","matches","exec","push","isHTMLForm","toCamelCase","replacer","m","p1","p2","toUpperCase","hasOwnProperty","isRegExp","reduceDescriptors","reducer","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","defineProperties","freezeMethods","enumerable","writable","set","Error","toObjectSet","arrayOrString","delimiter","define","split","noop","toFiniteNumber","defaultValue","Number","isFinite","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","generateString","size","alphabet","Math","random","isSpecCompliantForm","append","toJSONObject","stack","visit","source","target","reducedValue","hasOwnProp","AxiosError","message","code","config","request","response","captureStackTrace","utils","toJSON","description","number","fileName","lineNumber","columnNumber","status","from","error","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","path","dots","concat","map","each","token","join","isFlatArray","some","predicates","test","toFormData","formData","options","TypeError","metaTokens","indexes","defined","option","visitor","defaultVisitor","_Blob","Blob","useBlob","convertValue","toISOString","Buffer","JSON","stringify","el","index","exposedHelpers","build","pop","encode","charMap","encodeURIComponent","match","AxiosURLSearchParams","params","_pairs","encoder","_encode","buildURL","url","serializeFn","serialize","serializedParams","hashmarkIndex","InterceptorManager","handlers","fulfilled","rejected","synchronous","runWhen","id","forEachHandler","h","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","URLSearchParams","isStandardBrowserEnv","product","navigator","document","isStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","isBrowser","classes","protocols","toURLEncodedForm","data","platform","helpers","isNode","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","entries","DEFAULT_CONTENT_TYPE","stringifySafely","rawValue","parser","parse","e","defaults","transitional","transitionalDefaults","adapter","transformRequest","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","formSerializer","_FormData","env","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","forEachMethodNoData","method","forEachMethodWithData","ignoreDuplicateOf","rawHeaders","parsed","line","substring","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","formatHeader","w","char","buildAccessors","accessorName","methodName","arg1","arg2","arg3","configurable","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","parseHeaders","matcher","deleted","deleteHeader","format","normalized","targets","asStrings","first","computed","internals","accessors","defineAccessor","accessor","transformData","fns","transform","normalize","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","settle","resolve","reject","ERR_BAD_REQUEST","floor","standardBrowserEnv","write","expires","domain","secure","cookie","Date","toGMTString","read","RegExp","decodeURIComponent","remove","now","nonStandardBrowserEnv","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","msie","userAgent","urlParsingNode","createElement","originURL","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","location","isURLSameOrigin","requestURL","parseProtocol","speedometer","samplesCount","min","bytes","timestamps","head","tail","firstSampleTS","chunkLength","startedAt","bytesCount","passed","round","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","lengthComputable","progressBytes","rate","inRange","progress","estimated","event","isXHRAdapterSupported","XMLHttpRequest","Promise","dispatchXhrRequest","requestData","requestHeaders","onCanceled","cancelToken","unsubscribe","signal","removeEventListener","auth","username","password","unescape","btoa","fullPath","open","paramsSerializer","onloadend","responseHeaders","getAllResponseHeaders","responseData","responseText","statusText","_resolve","_reject","err","onreadystatechange","handleLoad","readyState","responseURL","setTimeout","onabort","handleAbort","ECONNABORTED","onerror","handleError","ERR_NETWORK","ontimeout","handleTimeout","timeoutErrorMessage","ETIMEDOUT","xsrfValue","withCredentials","cookies","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","abort","subscribe","aborted","send","knownAdapters","http","httpAdapter","xhr","xhrAdapter","getAdapter","adapters","nameOrAdapter","throwIfCancellationRequested","throwIfRequested","dispatchRequest","then","onAdapterResolution","onAdapterRejection","reason","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","computeConfigValue","configValue","VERSION","validators","validator","deprecatedWarnings","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","console","warn","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","configOrUrl","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","unshiftRequestInterceptors","interceptor","unshift","responseInterceptorChain","pushResponseInterceptors","promise","chain","newConfig","onFulfilled","onRejected","generateHTTPMethod","isForm","httpMethod","CancelToken","executor","resolvePromise","promiseExecutor","_listeners","onfulfilled","splice","c","spread","callback","isAxiosError","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","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 new file mode 100644 index 0000000..1cef06a --- /dev/null +++ b/node_modules/axios/dist/axios.min.js @@ -0,0 +1,2 @@ +!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(t){return e="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(t)}function t(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function n(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n2&&void 0!==arguments[2]?arguments[2]:{},a=i.allOwnKeys,s=void 0!==a&&a;if(null!=t)if("object"!==e(t)&&(t=[t]),h(t))for(r=0,o=t.length;r0;)if(t===(n=r[o]).toLowerCase())return n;return null}var N="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,x=function(e){return!p(e)&&e!==N};var C,P=(C="undefined"!=typeof Uint8Array&&c(Uint8Array),function(e){return C&&e instanceof C}),k=l("HTMLFormElement"),U=function(e){var t=Object.prototype.hasOwnProperty;return function(e,n){return t.call(e,n)}}(),_=l("RegExp"),L=function(e,t){var n=Object.getOwnPropertyDescriptors(e),r={};T(n,(function(n,o){!1!==t(n,o,e)&&(r[o]=n)})),Object.defineProperties(e,r)},B="abcdefghijklmnopqrstuvwxyz",F="0123456789",D={DIGIT:F,ALPHA:B,ALPHA_DIGIT:B+B.toUpperCase()+F};var I={isArray:h,isArrayBuffer:m,isBuffer:function(e){return null!==e&&!p(e)&&null!==e.constructor&&!p(e.constructor)&&v(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:function(e){var t="[object FormData]";return e&&("function"==typeof FormData&&e instanceof FormData||u.call(e)===t||v(e.toString)&&e.toString()===t)},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&m(e.buffer)},isString:y,isNumber:b,isBoolean:function(e){return!0===e||!1===e},isObject:g,isPlainObject:w,isUndefined:p,isDate:E,isFile:O,isBlob:S,isRegExp:_,isFunction:v,isStream:function(e){return g(e)&&v(e.pipe)},isURLSearchParams:A,isTypedArray:P,isFileList:R,forEach:T,merge:function e(){for(var t=x(this)&&this||{},n=t.caseless,r={},o=function(t,o){var i=n&&j(r,o)||o;w(r[i])&&w(t)?r[i]=e(r[i],t):w(t)?r[i]=e({},t):h(t)?r[i]=t.slice():r[i]=t},i=0,a=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{},o=r.allOwnKeys;return T(t,(function(t,r){n&&v(t)?e[r]=a(t,n):e[r]=t}),{allOwnKeys:o}),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),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},toFlatObject:function(e,t,n,r){var o,i,a,s={};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)||s[a]||(t[a]=e[a],s[a]=!0);e=!1!==n&&c(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},kindOf:f,kindOfTest:l,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(h(e))return e;var t=e.length;if(!b(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[Symbol.iterator]).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:k,hasOwnProperty:U,hasOwnProp:U,reduceDescriptors:L,freezeMethods:function(e){L(e,(function(t,n){if(v(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;var r=e[n];v(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 h(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 e=+e,Number.isFinite(e)?e:t},findKey:j,global:N,isContextDefined:x,ALPHABET:D,generateString:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:D.ALPHA_DIGIT,n="",r=t.length;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&v(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:function(e){var t=new Array(10);return function e(n,r){if(g(n)){if(t.indexOf(n)>=0)return;if(!("toJSON"in n)){t[r]=n;var o=h(n)?[]:{};return T(n,(function(t,n){var i=e(t,r+1);!p(i)&&(o[n]=i)})),t[r]=void 0,o}}return n}(e,0)}};function q(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o)}I.inherits(q,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:I.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var M=q.prototype,z={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(e){z[e]={value:e}})),Object.defineProperties(q,z),Object.defineProperty(M,"isAxiosError",{value:!0}),q.from=function(e,t,n,r,o,i){var a=Object.create(M);return I.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(function(e){return"isAxiosError"!==e})),q.call(a,e.message,t,n,r,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};function H(e){return I.isPlainObject(e)||I.isArray(e)}function J(e){return I.endsWith(e,"[]")?e.slice(0,-2):e}function W(e,t,n){return e?e.concat(t).map((function(e,t){return e=J(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}var K=I.toFlatObject(I,{},null,(function(e){return/^is[A-Z]/.test(e)}));function V(t,n,r){if(!I.isObject(t))throw new TypeError("target must be an object");n=n||new FormData;var o=(r=I.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!I.isUndefined(t[e])}))).metaTokens,i=r.visitor||f,a=r.dots,s=r.indexes,u=(r.Blob||"undefined"!=typeof Blob&&Blob)&&I.isSpecCompliantForm(n);if(!I.isFunction(i))throw new TypeError("visitor must be a function");function c(e){if(null===e)return"";if(I.isDate(e))return e.toISOString();if(!u&&I.isBlob(e))throw new q("Blob is not supported. Use a Buffer instead.");return I.isArrayBuffer(e)||I.isTypedArray(e)?u&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function f(t,r,i){var u=t;if(t&&!i&&"object"===e(t))if(I.endsWith(r,"{}"))r=o?r:r.slice(0,-2),t=JSON.stringify(t);else if(I.isArray(t)&&function(e){return I.isArray(e)&&!e.some(H)}(t)||(I.isFileList(t)||I.endsWith(r,"[]"))&&(u=I.toArray(t)))return r=J(r),u.forEach((function(e,t){!I.isUndefined(e)&&null!==e&&n.append(!0===s?W([r],t,a):null===s?r:r+"[]",c(e))})),!1;return!!H(t)||(n.append(W(i,r,a),c(t)),!1)}var l=[],d=Object.assign(K,{defaultVisitor:f,convertValue:c,isVisitable:H});if(!I.isObject(t))throw new TypeError("data must be an object");return function e(t,r){if(!I.isUndefined(t)){if(-1!==l.indexOf(t))throw Error("Circular reference detected in "+r.join("."));l.push(t),I.forEach(t,(function(t,o){!0===(!(I.isUndefined(t)||null===t)&&i.call(n,t,I.isString(o)?o.trim():o,r,d))&&e(t,r?r.concat(o):[o])})),l.pop()}}(t),n}function G(e){var t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function $(e,t){this._pairs=[],e&&V(e,this,t)}var X=$.prototype;function Q(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Z(e,t,n){if(!t)return e;var r,o=n&&n.encode||Q,i=n&&n.serialize;if(r=i?i(t,n):I.isURLSearchParams(t)?t.toString():new $(t,n).toString(o)){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+r}return e}X.append=function(e,t){this._pairs.push([e,t])},X.toString=function(e){var t=e?function(t){return e.call(this,t,G)}:G;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var Y,ee=function(){function e(){t(this,e),this.handlers=[]}return r(e,[{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){I.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}]),e}(),te={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},ne="undefined"!=typeof URLSearchParams?URLSearchParams:$,re=FormData,oe=("undefined"==typeof navigator||"ReactNative"!==(Y=navigator.product)&&"NativeScript"!==Y&&"NS"!==Y)&&"undefined"!=typeof window&&"undefined"!=typeof document,ie="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,ae={isBrowser:!0,classes:{URLSearchParams:ne,FormData:re,Blob:Blob},isStandardBrowserEnv:oe,isStandardBrowserWebWorkerEnv:ie,protocols:["http","https","file","blob","url","data"]};function se(e){function t(e,n,r,o){var i=e[o++],a=Number.isFinite(+i),s=o>=e.length;return i=!i&&I.isArray(r)?r.length:i,s?(I.hasOwnProp(r,i)?r[i]=[r[i],n]:r[i]=n,!a):(r[i]&&I.isObject(r[i])||(r[i]=[]),t(e,n,r[i],o)&&I.isArray(r[i])&&(r[i]=function(e){var t,n,r={},o=Object.keys(e),i=o.length;for(t=0;t-1,i=I.isObject(e);if(i&&I.isHTMLForm(e)&&(e=new FormData(e)),I.isFormData(e))return o&&o?JSON.stringify(se(e)):e;if(I.isArrayBuffer(e)||I.isBuffer(e)||I.isStream(e)||I.isFile(e)||I.isBlob(e))return e;if(I.isArrayBufferView(e))return e.buffer;if(I.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();if(i){if(r.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return V(e,new ae.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return ae.isNode&&I.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((n=I.isFileList(e))||r.indexOf("multipart/form-data")>-1){var a=this.env&&this.env.FormData;return V(n?{"files[]":e}:e,a&&new a,this.formSerializer)}}return i||o?(t.setContentType("application/json",!1),function(e,t,n){if(I.isString(e))try{return(t||JSON.parse)(e),I.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||ce.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(e&&I.isString(e)&&(n&&!this.responseType||r)){var o=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(o){if("SyntaxError"===e.name)throw q.from(e,q.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:ae.classes.FormData,Blob:ae.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};I.forEach(["delete","get","head"],(function(e){ce.headers[e]={}})),I.forEach(["post","put","patch"],(function(e){ce.headers[e]=I.merge(ue)}));var fe=ce,le=I.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"]),de=Symbol("internals");function he(e){return e&&String(e).trim().toLowerCase()}function pe(e){return!1===e||null==e?e:I.isArray(e)?e.map(pe):String(e)}function me(e,t,n,r){return I.isFunction(r)?r.call(this,t,n):I.isString(t)?I.isString(r)?-1!==t.indexOf(r):I.isRegExp(r)?r.test(t):void 0:void 0}var ye=function(e,n){function i(e){t(this,i),e&&this.set(e)}return r(i,[{key:"set",value:function(e,t,n){var r=this;function o(e,t,n){var o=he(t);if(!o)throw new Error("header name must be a non-empty string");var i=I.findKey(r,o);(!i||void 0===r[i]||!0===n||void 0===n&&!1!==r[i])&&(r[i||t]=pe(e))}var i,a,s,u,c,f=function(e,t){return I.forEach(e,(function(e,n){return o(e,n,t)}))};return I.isPlainObject(e)||e instanceof this.constructor?f(e,t):I.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z]+$/.test(e.trim())?f((c={},(i=e)&&i.split("\n").forEach((function(e){u=e.indexOf(":"),a=e.substring(0,u).trim().toLowerCase(),s=e.substring(u+1).trim(),!a||c[a]&&le[a]||("set-cookie"===a?c[a]?c[a].push(s):c[a]=[s]:c[a]=c[a]?c[a]+", "+s:s)})),c),t):null!=e&&o(t,e,n),this}},{key:"get",value:function(e,t){if(e=he(e)){var n=I.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(I.isFunction(t))return t.call(this,r,n);if(I.isRegExp(t))return t.exec(r);throw new TypeError("parser must be boolean|regexp|function")}}}},{key:"has",value:function(e,t){if(e=he(e)){var n=I.findKey(this,e);return!(!n||void 0===this[n]||t&&!me(0,this[n],n,t))}return!1}},{key:"delete",value:function(e,t){var n=this,r=!1;function o(e){if(e=he(e)){var o=I.findKey(n,e);!o||t&&!me(0,n[o],o,t)||(delete n[o],r=!0)}}return I.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&&!me(0,this[o],o,e)||(delete this[o],r=!0)}return r}},{key:"normalize",value:function(e){var t=this,n={};return I.forEach(this,(function(r,o){var i=I.findKey(n,o);if(i)return t[i]=pe(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]=pe(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;){var a=o[i],s=n[a];if(s){var u=t[a],c=void 0===u||s(u,a,t);if(!0!==c)throw new q("option "+a+" must be "+c,q.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new q("Unknown option "+a,q.ERR_BAD_OPTION)}},validators:ke},Le=_e.validators,Be=function(){function e(n){t(this,e),this.defaults=n,this.interceptors={request:new ee,response:new ee}}return r(e,[{key:"request",value:function(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{};var n,r=t=Ce(this.defaults,t),o=r.transitional,i=r.paramsSerializer,a=r.headers;void 0!==o&&_e.assertOptions(o,{silentJSONParsing:Le.transitional(Le.boolean),forcedJSONParsing:Le.transitional(Le.boolean),clarifyTimeoutError:Le.transitional(Le.boolean)},!1),void 0!==i&&_e.assertOptions(i,{encode:Le.function,serialize:Le.function},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase(),(n=a&&I.merge(a.common,a[t.method]))&&I.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete a[e]})),t.headers=ve.concat(n,a);var s=[],u=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(u=u&&e.synchronous,s.unshift(e.fulfilled,e.rejected))}));var c,f=[];this.interceptors.response.forEach((function(e){f.push(e.fulfilled,e.rejected)}));var l,d=0;if(!u){var h=[Ne.bind(this),void 0];for(h.unshift.apply(h,s),h.push.apply(h,f),l=h.length,c=Promise.resolve(t);d0;)o._listeners[t](e);o._listeners=null}})),this.promise.then=function(e){var t,n=new Promise((function(e){o.subscribe(e),t=e})).then(e);return n.cancel=function(){o.unsubscribe(t)},n},n((function(e,t,n){o.reason||(o.reason=new we(e,t,n),r(o.reason))}))}return r(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:"source",value:function(){var t;return{token:new e((function(e){t=e})),cancel:t}}}]),e}();var Ie={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};Object.entries(Ie).forEach((function(e){var t=o(e,2),n=t[0],r=t[1];Ie[r]=n}));var qe=Ie;var Me=function e(t){var n=new Fe(t),r=a(Fe.prototype.request,n);return I.extend(r,Fe.prototype,n,{allOwnKeys:!0}),I.extend(r,n,null,{allOwnKeys:!0}),r.create=function(n){return e(Ce(t,n))},r}(fe);return Me.Axios=Fe,Me.CanceledError=we,Me.CancelToken=De,Me.isCancel=ge,Me.VERSION=Pe,Me.toFormData=V,Me.AxiosError=q,Me.Cancel=Me.CanceledError,Me.all=function(e){return Promise.all(e)},Me.spread=function(e){return function(t){return e.apply(null,t)}},Me.isAxiosError=function(e){return I.isObject(e)&&!0===e.isAxiosError},Me.mergeConfig=Ce,Me.AxiosHeaders=ve,Me.formToJSON=function(e){return se(I.isHTMLForm(e)?new FormData(e):e)},Me.HttpStatusCode=qe,Me.default=Me,Me})); +//# 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 new file mode 100644 index 0000000..f926a49 --- /dev/null +++ b/node_modules/axios/dist/axios.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"axios.min.js","sources":["../lib/helpers/bind.js","../lib/utils.js","../lib/core/AxiosError.js","../lib/helpers/toFormData.js","../lib/helpers/AxiosURLSearchParams.js","../lib/helpers/buildURL.js","../lib/core/InterceptorManager.js","../lib/platform/browser/index.js","../lib/defaults/transitional.js","../lib/platform/browser/classes/URLSearchParams.js","../lib/platform/browser/classes/FormData.js","../lib/helpers/formDataToJSON.js","../lib/defaults/index.js","../lib/helpers/toURLEncodedForm.js","../lib/helpers/parseHeaders.js","../lib/core/AxiosHeaders.js","../lib/core/transformData.js","../lib/cancel/isCancel.js","../lib/cancel/CanceledError.js","../lib/helpers/cookies.js","../lib/core/buildFullPath.js","../lib/helpers/isAbsoluteURL.js","../lib/helpers/combineURLs.js","../lib/helpers/isURLSameOrigin.js","../lib/adapters/xhr.js","../lib/helpers/speedometer.js","../lib/adapters/adapters.js","../lib/helpers/null.js","../lib/core/settle.js","../lib/helpers/parseProtocol.js","../lib/core/dispatchRequest.js","../lib/core/mergeConfig.js","../lib/env/data.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\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;\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 an Array\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 val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\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/**\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 (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\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 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 File, 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 */\nconst isFormData = (thing) => {\n const pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\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\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) => str.trim ?\n 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 {Boolean} [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 // 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\nfunction findKey(obj, key) {\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 * var 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(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[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 {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\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 constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\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/**\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[Symbol.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,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(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 if (reducer(descriptor, name, obj) !== false) {\n reducedDescriptors[name] = 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'].indexOf(name) !== -1) {\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\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 value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\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 while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\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 !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\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 ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject\n};\n","'use strict';\n\nimport utils from '../utils.js';\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 */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\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: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\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.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\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(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\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 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 (!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 (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) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : 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) {\n if (utils.isUndefined(value)) return;\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 = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\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 '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/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 ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\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 all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\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} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\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 *\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 {Boolean} `true` if the interceptor was removed, `false` otherwise\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","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\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 isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\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 */\n const isStandardBrowserWebWorkerEnv = (() => {\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\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default FormData;\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 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] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!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 DEFAULT_CONTENT_TYPE = {\n 'Content-Type': undefined\n};\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\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [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 if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(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 if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.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 transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\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 }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\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(), Object.assign({\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","'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', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', '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 && 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';\nimport parseHeaders from '../helpers/parseHeaders.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) : 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\nfunction isValidHeaderName(str) {\n return /^[-_a-zA-Z]+$/.test(str.trim());\n}\n\nfunction matchHeaderValue(context, value, header, filter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, 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.trim()\n .toLowerCase().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 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(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\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 {\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 !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\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)) {\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 && value !== false && (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()).map(([header, value]) => header + ': ' + value).join('\\n');\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 = this[$internals] = (this[$internals] = {\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(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\nutils.freezeMethods(AxiosHeaders.prototype);\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\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';\nimport utils from '../utils.js';\n\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 */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\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) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\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 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 platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.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 speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n 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 && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n const responseType = config.responseType;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv)) {\n requestHeaders.setContentType(false); // Let the browser set it\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), 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 = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : 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(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\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 (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\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\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\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 if (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\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(requestHeaders.toJSON(), 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 (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\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 request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\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","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if(fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) {\n break;\n }\n }\n\n if (!adapter) {\n if (adapter === false) {\n throw new AxiosError(\n `Adapter ${nameOrAdapter} is not supported by the environment`,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n throw new Error(\n utils.hasOwnProp(knownAdapters, nameOrAdapter) ?\n `Adapter '${nameOrAdapter}' is not available in the build` :\n `Unknown adapter '${nameOrAdapter}'`\n );\n }\n\n if (!utils.isFunction(adapter)) {\n throw new TypeError('adapter is not a function');\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\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 [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\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\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(\n config,\n config.transformRequest\n );\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);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : 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 const config = {};\n\n function getMergedValue(target, source, 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 // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, 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 (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\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 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 responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.3.1\";","'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 '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\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\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 const validator = schema[opt];\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('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\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';\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 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(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer !== undefined) {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n let contextHeaders;\n\n // Flatten headers\n contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n contextHeaders && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\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 requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\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.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, 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 i = 0;\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);\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(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\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 /**\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};\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 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.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 * var 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","kindOf","create","thing","str","call","slice","toLowerCase","kindOfTest","type","typeOfTest","_typeof","isArray","Array","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isObject","isPlainObject","val","Symbol","toStringTag","iterator","isDate","isFile","isBlob","isFileList","isURLSearchParams","forEach","obj","i","l","_ref","length","undefined","_ref$allOwnKeys","allOwnKeys","key","keys","getOwnPropertyNames","len","findKey","_key","_global","globalThis","self","window","global","isContextDefined","context","TypedArray","isTypedArray","Uint8Array","isHTMLForm","hasOwnProperty","_ref4","prop","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","defineProperties","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","toUpperCase","utils","isBuffer","constructor","isFormData","pattern","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","merge","this","caseless","result","assignValue","targetKey","extend","a","b","_ref3","trim","replace","stripBOM","content","charCodeAt","inherits","superConstructor","props","defineProperty","value","assign","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","String","lastIndex","indexOf","toArray","arr","forEachEntry","next","done","pair","matchAll","regExp","matches","exec","push","hasOwnProp","freezeMethods","enumerable","writable","set","Error","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","m","p1","p2","noop","toFiniteNumber","defaultValue","Number","isFinite","generateString","size","alphabet","Math","random","isSpecCompliantForm","append","toJSONObject","stack","visit","source","target","reducedValue","AxiosError","message","code","config","request","response","captureStackTrace","toJSON","description","number","fileName","lineNumber","columnNumber","status","from","error","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","path","dots","concat","map","token","join","predicates","test","toFormData","formData","options","TypeError","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","JSON","stringify","some","isFlatArray","el","index","exposedHelpers","build","pop","encode","charMap","encodeURIComponent","match","AxiosURLSearchParams","params","_pairs","buildURL","url","serializedParams","_encode","serializeFn","serialize","hashmarkIndex","encoder","product","InterceptorManager$1","InterceptorManager","_classCallCheck","handlers","_createClass","fulfilled","rejected","synchronous","runWhen","id","h","transitionalDefaults","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","URLSearchParams$1","URLSearchParams","FormData$1","isStandardBrowserEnv","navigator","document","isStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","platform","isBrowser","classes","protocols","formDataToJSON","buildPath","isNumericKey","isLast","arrayToObject","entries","parsePropPath","DEFAULT_CONTENT_TYPE","defaults","transitional","adapter","transformRequest","data","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","parse","e","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","method","defaults$1","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","AxiosHeaders","_Symbol$iterator","_Symbol$toStringTag","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","rawHeaders","parsed","setHeaders","line","substring","tokens","tokensRE","parseTokens","matcher","deleted","deleteHeader","format","normalized","w","char","formatHeader","_this$constructor","_len","targets","asStrings","_ref2","_slicedToArray","get","first","computed","_len2","_key2","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","configurable","buildAccessors","accessor","AxiosHeaders$1","transformData","fns","normalize","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","write","expires","domain","secure","cookie","Date","toGMTString","read","RegExp","decodeURIComponent","remove","now","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","originURL","msie","userAgent","urlParsingNode","createElement","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","location","requestURL","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","samplesCount","min","firstSampleTS","bytes","timestamps","head","tail","chunkLength","startedAt","bytesCount","passed","round","speedometer","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","event","knownAdapters","http","xhr","XMLHttpRequest","Promise","resolve","reject","onCanceled","requestData","requestHeaders","cancelToken","unsubscribe","signal","removeEventListener","auth","username","password","unescape","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","ERR_BAD_REQUEST","floor","settle","err","responseText","statusText","open","paramsSerializer","onreadystatechange","readyState","responseURL","setTimeout","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","xsrfValue","withCredentials","isURLSameOrigin","cookies","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","abort","subscribe","aborted","send","adapters","nameOrAdapter","throwIfCancellationRequested","throwIfRequested","dispatchRequest","then","reason","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","VERSION","validators","deprecatedWarnings","validators$1","validator","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","console","warn","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","configOrUrl","contextHeaders","_config","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","promise","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","generateHTTPMethod","isForm","Axios$1","CancelToken$1","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","splice","c","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","HttpStatusCode$1","axios","createInstance","defaultConfig","instance","Cancel","all","promises","spread","callback","isAxiosError","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 new file mode 100644 index 0000000..dbecc42 --- /dev/null +++ b/node_modules/axios/dist/browser/axios.cjs @@ -0,0 +1,3185 @@ +// Axios v1.3.1 Copyright (c) 2023 Matt Zabriskie and contributors +'use strict'; + +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 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 an Array + * + * @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) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val); +}; + +/** + * 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 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 File, 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 + */ +const isFormData = (thing) => { + const pattern = '[object FormData]'; + return thing && ( + (typeof FormData === 'function' && thing instanceof FormData) || + toString.call(thing) === pattern || + (isFunction(thing.toString) && thing.toString() === pattern) + ); +}; + +/** + * 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'); + +/** + * 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) => 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 {Boolean} [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 { + // 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); + } + } +} + +function findKey(obj, key) { + 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 + * var 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(/* obj1, obj2, obj3, ... */) { + const {caseless} = isContextDefined(this) && this || {}; + const result = {}; + const assignValue = (val, key) => { + const targetKey = caseless && findKey(result, key) || key; + if (isPlainObject(result[targetKey]) && isPlainObject(val)) { + result[targetKey] = merge(result[targetKey], val); + } else if (isPlainObject(val)) { + result[targetKey] = merge({}, val); + } else if (isArray(val)) { + result[targetKey] = val.slice(); + } else { + result[targetKey] = val; + } + }; + + for (let i = 0, l = arguments.length; i < l; i++) { + arguments[i] && forEach(arguments[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 {Boolean} [allOwnKeys] + * @returns {Object} The resulting value of object a + */ +const extend = (a, b, thisArg, {allOwnKeys}= {}) => { + forEach(b, (val, key) => { + if (thisArg && isFunction(val)) { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }, {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); + constructor.prototype.constructor = constructor; + Object.defineProperty(constructor, 'super', { + 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[Symbol.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) => { + if (reducer(descriptor, name, obj) !== false) { + reducedDescriptors[name] = 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'].indexOf(name) !== -1) { + 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 + '\''); + }; + } + }); +}; + +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) => { + value = +value; + return Number.isFinite(value) ? value : defaultValue; +}; + +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; + while (size--) { + str += alphabet[Math.random() * length|0]; + } + + return str; +}; + +/** + * 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[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]); +} + +const toJSONObject = (obj) => { + const stack = new Array(10); + + const visit = (source, i) => { + + if (isObject(source)) { + if (stack.indexOf(source) >= 0) { + return; + } + + if(!('toJSON' in source)) { + stack[i] = source; + const target = isArray(source) ? [] : {}; + + forEach(source, (value, key) => { + const reducedValue = visit(value, i + 1); + !isUndefined(reducedValue) && (target[key] = reducedValue); + }); + + stack[i] = undefined; + + return target; + } + } + + return source; + }; + + return visit(obj, 0); +}; + +var utils = { + isArray, + isArrayBuffer, + isBuffer, + isFormData, + isArrayBufferView, + isString, + isNumber, + isBoolean, + isObject, + isPlainObject, + isUndefined, + isDate, + isFile, + 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, + ALPHABET, + generateString, + isSpecCompliantForm, + toJSONObject +}; + +/** + * 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) { + Error.call(this); + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + this.stack = (new Error()).stack; + } + + this.message = message; + this.name = 'AxiosError'; + code && (this.code = code); + config && (this.config = config); + request && (this.request = request); + response && (this.response = response); +} + +utils.inherits(AxiosError, Error, { + toJSON: function toJSON() { + 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: utils.toJSONObject(this.config), + code: this.code, + status: this.response && this.response.status ? this.response.status : null + }; + } +}); + +const prototype$1 = AxiosError.prototype; +const descriptors = {}; + +[ + 'ERR_BAD_OPTION_VALUE', + 'ERR_BAD_OPTION', + 'ECONNABORTED', + 'ETIMEDOUT', + 'ERR_NETWORK', + 'ERR_FR_TOO_MANY_REDIRECTS', + 'ERR_DEPRECATED', + 'ERR_BAD_RESPONSE', + 'ERR_BAD_REQUEST', + 'ERR_CANCELED', + 'ERR_NOT_SUPPORT', + 'ERR_INVALID_URL' +// eslint-disable-next-line func-names +].forEach(code => { + descriptors[code] = {value: code}; +}); + +Object.defineProperties(AxiosError, descriptors); +Object.defineProperty(prototype$1, 'isAxiosError', {value: true}); + +// eslint-disable-next-line func-names +AxiosError.from = (error, code, config, request, response, customProps) => { + const axiosError = Object.create(prototype$1); + + utils.toFlatObject(error, axiosError, function filter(obj) { + return obj !== Error.prototype; + }, prop => { + return prop !== 'isAxiosError'; + }); + + AxiosError.call(axiosError, error.message, code, config, request, response); + + axiosError.cause = error; + + axiosError.name = error.name; + + customProps && Object.assign(axiosError, customProps); + + return axiosError; +}; + +// 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.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 (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 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 (!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 (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) { + if (utils.isUndefined(value)) return; + + 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]); + } + }); + + stack.pop(); + } + + if (!utils.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': '+', + '%00': '\x00' + }; + return encodeURIComponent(str).replace(/[!'()~]|%20|%00/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 all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their + * URI encoded 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, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); +} + +/** + * 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} options + * + * @returns {string} The formatted url + */ +function buildURL(url, params, options) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + + const _encode = options && options.encode || encode; + + 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; +} + +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` + * + * @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 {Boolean} `true` if the interceptor was removed, `false` otherwise + */ + 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); + } + }); + } +} + +var InterceptorManager$1 = InterceptorManager; + +var transitionalDefaults = { + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false +}; + +var URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams; + +var FormData$1 = FormData; + +/** + * 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 isStandardBrowserEnv = (() => { + let product; + if (typeof navigator !== 'undefined' && ( + (product = navigator.product) === 'ReactNative' || + product === 'NativeScript' || + product === 'NS') + ) { + return false; + } + + return typeof window !== 'undefined' && typeof document !== 'undefined'; +})(); + +/** + * 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 isStandardBrowserWebWorkerEnv = (() => { + return ( + typeof WorkerGlobalScope !== 'undefined' && + // eslint-disable-next-line no-undef + self instanceof WorkerGlobalScope && + typeof self.importScripts === 'function' + ); +})(); + + +var platform = { + isBrowser: true, + classes: { + URLSearchParams: URLSearchParams$1, + FormData: FormData$1, + Blob + }, + isStandardBrowserEnv, + isStandardBrowserWebWorkerEnv, + protocols: ['http', 'https', 'file', 'blob', 'url', 'data'] +}; + +function toURLEncodedForm(data, options) { + return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({ + 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)); +} + +/** + * 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++]; + 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] = [target[name], value]; + } else { + target[name] = value; + } + + return !isNumericKey; + } + + if (!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; +} + +const DEFAULT_CONTENT_TYPE = { + 'Content-Type': 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'], + + 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) { + if (!hasJSONContentType) { + return data; + } + return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data; + } + + if (utils.isArrayBuffer(data) || + utils.isBuffer(data) || + utils.isStream(data) || + utils.isFile(data) || + utils.isBlob(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) { + if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { + return toURLEncodedForm(data, this.formSerializer).toString(); + } + + if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) { + const _FormData = this.env && this.env.FormData; + + return toFormData( + isFileList ? {'files[]': data} : data, + _FormData && new _FormData(), + this.formSerializer + ); + } + } + + if (isObjectPayload || hasJSONContentType ) { + headers.setContentType('application/json', false); + return stringifySafely(data); + } + + return data; + }], + + transformResponse: [function transformResponse(data) { + const transitional = this.transitional || defaults.transitional; + const forcedJSONParsing = transitional && transitional.forcedJSONParsing; + const JSONRequested = this.responseType === 'json'; + + if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) { + const silentJSONParsing = transitional && transitional.silentJSONParsing; + const strictJSONParsing = !silentJSONParsing && JSONRequested; + + try { + return JSON.parse(data); + } catch (e) { + if (strictJSONParsing) { + if (e.name === 'SyntaxError') { + throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, 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, */*' + } + } +}; + +utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { + defaults.headers[method] = {}; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); +}); + +var defaults$1 = defaults; + +// 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 + */ +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; +}; + +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) : 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; +} + +function isValidHeaderName(str) { + return /^[-_a-zA-Z]+$/.test(str.trim()); +} + +function matchHeaderValue(context, value, header, filter) { + if (utils.isFunction(filter)) { + return filter.call(this, 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, { + 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 { + 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)) { + 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'); + } + + 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']); + +utils.freezeMethods(AxiosHeaders.prototype); +utils.freezeMethods(AxiosHeaders); + +var AxiosHeaders$1 = AxiosHeaders; + +/** + * 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$1; + const context = response || config; + const headers = AxiosHeaders$1.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; +} + +function isCancel(value) { + return !!(value && value.__CANCEL__); +} + +/** + * 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) { + // eslint-disable-next-line no-eq-null,eqeqeq + AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request); + this.name = 'CanceledError'; +} + +utils.inherits(CanceledError, AxiosError, { + __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, + [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], + response.config, + response.request, + response + )); + } +} + +var cookies = platform.isStandardBrowserEnv ? + +// Standard browser envs support document.cookie + (function standardBrowserEnv() { + return { + write: function write(name, value, expires, path, domain, secure) { + const cookie = []; + cookie.push(name + '=' + encodeURIComponent(value)); + + if (utils.isNumber(expires)) { + cookie.push('expires=' + new Date(expires).toGMTString()); + } + + if (utils.isString(path)) { + cookie.push('path=' + path); + } + + if (utils.isString(domain)) { + cookie.push('domain=' + domain); + } + + if (secure === true) { + cookie.push('secure'); + } + + document.cookie = cookie.join('; '); + }, + + read: function read(name) { + const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return (match ? decodeURIComponent(match[3]) : null); + }, + + remove: function remove(name) { + this.write(name, '', Date.now() - 86400000); + } + }; + })() : + +// Non standard browser env (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return { + 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. + 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) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +} + +var isURLSameOrigin = platform.isStandardBrowserEnv ? + +// Standard browser envs have full support of the APIs needed to test +// whether the request URL is of the same origin as current location. + (function standardBrowserEnv() { + const msie = /(msie|trident)/i.test(navigator.userAgent); + const urlParsingNode = document.createElement('a'); + let originURL; + + /** + * Parse a URL to discover it's components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + let href = url; + + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') ? + urlParsingNode.pathname : + '/' + urlParsingNode.pathname + }; + } + + originURL = resolveURL(window.location.href); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; + return (parsed.protocol === originURL.protocol && + parsed.host === originURL.host); + }; + })() : + + // Non standard browser envs (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + })(); + +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; + }; +} + +function progressEventReducer(listener, isDownloadStream) { + let bytesNotified = 0; + const _speedometer = speedometer(50, 250); + + return e => { + const loaded = e.loaded; + const total = e.lengthComputable ? e.total : undefined; + const progressBytes = loaded - bytesNotified; + const rate = _speedometer(progressBytes); + const inRange = loaded <= total; + + bytesNotified = loaded; + + const data = { + loaded, + total, + progress: total ? (loaded / total) : undefined, + bytes: progressBytes, + rate: rate ? rate : undefined, + estimated: rate && total && inRange ? (total - loaded) / rate : undefined, + event: e + }; + + data[isDownloadStream ? 'download' : 'upload'] = true; + + listener(data); + }; +} + +const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; + +var xhrAdapter = isXHRAdapterSupported && function (config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + let requestData = config.data; + const requestHeaders = AxiosHeaders$1.from(config.headers).normalize(); + const responseType = config.responseType; + let onCanceled; + function done() { + if (config.cancelToken) { + config.cancelToken.unsubscribe(onCanceled); + } + + if (config.signal) { + config.signal.removeEventListener('abort', onCanceled); + } + } + + if (utils.isFormData(requestData) && (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv)) { + requestHeaders.setContentType(false); // Let the browser set it + } + + let request = new XMLHttpRequest(); + + // HTTP basic authentication + if (config.auth) { + const username = config.auth.username || ''; + const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ''; + requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password)); + } + + const fullPath = buildFullPath(config.baseURL, config.url); + + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), 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.indexOf('file:') === 0)) { + 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)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request)); + + // Clean up request + 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)); + + // Clean up request + request = null; + }; + + // 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.isStandardBrowserEnv) { + // Add xsrf header + const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) + && config.xsrfCookieName && cookies.read(config.xsrfCookieName); + + if (xsrfValue) { + requestHeaders.set(config.xsrfHeaderName, xsrfValue); + } + } + + // Remove Content-Type if data is undefined + requestData === undefined && requestHeaders.setContentType(null); + + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders.toJSON(), 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 (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true)); + } + + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress)); + } + + 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(); + request = null; + }; + + config.cancelToken && config.cancelToken.subscribe(onCanceled); + if (config.signal) { + config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled); + } + } + + const protocol = parseProtocol(fullPath); + + if (protocol && platform.protocols.indexOf(protocol) === -1) { + reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config)); + return; + } + + + // Send the request + request.send(requestData || null); + }); +}; + +const knownAdapters = { + http: httpAdapter, + xhr: xhrAdapter +}; + +utils.forEach(knownAdapters, (fn, value) => { + if(fn) { + try { + Object.defineProperty(fn, 'name', {value}); + } catch (e) { + // eslint-disable-next-line no-empty + } + Object.defineProperty(fn, 'adapterName', {value}); + } +}); + +var adapters = { + getAdapter: (adapters) => { + adapters = utils.isArray(adapters) ? adapters : [adapters]; + + const {length} = adapters; + let nameOrAdapter; + let adapter; + + for (let i = 0; i < length; i++) { + nameOrAdapter = adapters[i]; + if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) { + break; + } + } + + if (!adapter) { + if (adapter === false) { + throw new AxiosError( + `Adapter ${nameOrAdapter} is not supported by the environment`, + 'ERR_NOT_SUPPORT' + ); + } + + throw new Error( + utils.hasOwnProp(knownAdapters, nameOrAdapter) ? + `Adapter '${nameOrAdapter}' is not available in the build` : + `Unknown adapter '${nameOrAdapter}'` + ); + } + + if (!utils.isFunction(adapter)) { + throw new TypeError('adapter is not a function'); + } + + return adapter; + }, + 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$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$1.adapter); + + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData.call( + config, + config.transformResponse, + response + ); + + response.headers = AxiosHeaders$1.from(response.headers); + + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData.call( + config, + config.transformResponse, + reason.response + ); + reason.response.headers = AxiosHeaders$1.from(reason.response.headers); + } + } + + return Promise.reject(reason); + }); +} + +const headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? thing.toJSON() : 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 || {}; + const config = {}; + + function getMergedValue(target, source, 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; + } + + // eslint-disable-next-line consistent-return + function mergeDeepProperties(a, b, caseless) { + if (!utils.isUndefined(b)) { + return getMergedValue(a, b, caseless); + } else if (!utils.isUndefined(a)) { + return getMergedValue(undefined, a, 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 (prop in config2) { + return getMergedValue(a, b); + } else if (prop in config1) { + 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, + 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, + responseEncoding: defaultToConfig2, + validateStatus: mergeDirectKeys, + headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true) + }; + + utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) { + const merge = mergeMap[prop] || mergeDeepProperties; + const configValue = merge(config1[prop], config2[prop], prop); + (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue); + }); + + return config; +} + +const VERSION = "1.3.1"; + +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; + }; +}; + +/** + * 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]; + const validator = schema[opt]; + 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$1(), + response: new InterceptorManager$1() + }; + } + + /** + * 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 + */ + 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) + }, false); + } + + if (paramsSerializer !== undefined) { + validator.assertOptions(paramsSerializer, { + encode: validators.function, + serialize: validators.function + }, true); + } + + // Set config.method + config.method = (config.method || this.defaults.method || 'get').toLowerCase(); + + let contextHeaders; + + // Flatten headers + contextHeaders = headers && utils.merge( + headers.common, + headers[config.method] + ); + + contextHeaders && utils.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', '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; + + requestInterceptorChain.unshift(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.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; + + let newConfig = config; + + i = 0; + + 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); + 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'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + + 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(); + + Axios.prototype[method + 'Form'] = generateHTTPMethod(true); +}); + +var Axios$1 = Axios; + +/** + * 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); + } + } + + /** + * 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 + }; + } +} + +var CancelToken$1 = CancelToken; + +/** + * 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) {} + * var 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.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, +}; + +Object.entries(HttpStatusCode).forEach(([key, value]) => { + HttpStatusCode[value] = key; +}); + +var HttpStatusCode$1 = HttpStatusCode; + +/** + * 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.extend(instance, Axios$1.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$1); + +// Expose Axios class to allow class inheritance +axios.Axios = Axios$1; + +// Expose Cancel & CancelToken +axios.CanceledError = CanceledError; +axios.CancelToken = CancelToken$1; +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$1; + +axios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing); + +axios.HttpStatusCode = HttpStatusCode$1; + +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 new file mode 100644 index 0000000..6ec4697 --- /dev/null +++ b/node_modules/axios/dist/browser/axios.cjs.map @@ -0,0 +1 @@ +{"version":3,"file":"axios.cjs","sources":["../../lib/helpers/bind.js","../../lib/utils.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/index.js","../../lib/helpers/toURLEncodedForm.js","../../lib/helpers/formDataToJSON.js","../../lib/defaults/index.js","../../lib/helpers/parseHeaders.js","../../lib/core/AxiosHeaders.js","../../lib/core/transformData.js","../../lib/cancel/isCancel.js","../../lib/cancel/CanceledError.js","../../lib/core/settle.js","../../lib/helpers/cookies.js","../../lib/helpers/isAbsoluteURL.js","../../lib/helpers/combineURLs.js","../../lib/core/buildFullPath.js","../../lib/helpers/isURLSameOrigin.js","../../lib/helpers/parseProtocol.js","../../lib/helpers/speedometer.js","../../lib/adapters/xhr.js","../../lib/adapters/adapters.js","../../lib/core/dispatchRequest.js","../../lib/core/mergeConfig.js","../../lib/env/data.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\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;\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 an Array\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 val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\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/**\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 (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\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 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 File, 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 */\nconst isFormData = (thing) => {\n const pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\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\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) => str.trim ?\n 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 {Boolean} [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 // 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\nfunction findKey(obj, key) {\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 * var 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(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[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 {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\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 constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\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/**\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[Symbol.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,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(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 if (reducer(descriptor, name, obj) !== false) {\n reducedDescriptors[name] = 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'].indexOf(name) !== -1) {\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\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 value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\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 while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\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 !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\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 ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject\n};\n","'use strict';\n\nimport utils from '../utils.js';\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 */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\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: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\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.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\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(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\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 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 (!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 (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) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : 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) {\n if (utils.isUndefined(value)) return;\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 = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\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 '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/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 ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\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 all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\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} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\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 *\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 {Boolean} `true` if the interceptor was removed, `false` otherwise\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};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default FormData;\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\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 isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\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 */\n const isStandardBrowserWebWorkerEnv = (() => {\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\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\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(), Object.assign({\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","'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 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] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!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 DEFAULT_CONTENT_TYPE = {\n 'Content-Type': undefined\n};\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\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [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 if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(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 if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.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 transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\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 }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nexport default defaults;\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', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', '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 && 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';\nimport parseHeaders from '../helpers/parseHeaders.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) : 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\nfunction isValidHeaderName(str) {\n return /^[-_a-zA-Z]+$/.test(str.trim());\n}\n\nfunction matchHeaderValue(context, value, header, filter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, 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.trim()\n .toLowerCase().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 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(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\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 {\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 !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\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)) {\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 && value !== false && (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()).map(([header, value]) => header + ': ' + value).join('\\n');\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 = this[$internals] = (this[$internals] = {\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(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\nutils.freezeMethods(AxiosHeaders.prototype);\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\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';\nimport utils from '../utils.js';\n\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 */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\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 [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\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 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) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\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","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.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 speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n 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 && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n const responseType = config.responseType;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv)) {\n requestHeaders.setContentType(false); // Let the browser set it\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), 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 = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : 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(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\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 (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\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\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\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 if (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\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(requestHeaders.toJSON(), 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 (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\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 request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if(fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) {\n break;\n }\n }\n\n if (!adapter) {\n if (adapter === false) {\n throw new AxiosError(\n `Adapter ${nameOrAdapter} is not supported by the environment`,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n throw new Error(\n utils.hasOwnProp(knownAdapters, nameOrAdapter) ?\n `Adapter '${nameOrAdapter}' is not available in the build` :\n `Unknown adapter '${nameOrAdapter}'`\n );\n }\n\n if (!utils.isFunction(adapter)) {\n throw new TypeError('adapter is not a function');\n }\n\n return adapter;\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(\n config,\n config.transformRequest\n );\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);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : 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 const config = {};\n\n function getMergedValue(target, source, 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 // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, 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 (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\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 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 responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.3.1\";","'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 '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\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\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 const validator = schema[opt];\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('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\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';\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 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(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer !== undefined) {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n let contextHeaders;\n\n // Flatten headers\n contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n contextHeaders && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\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 requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\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.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, 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 i = 0;\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);\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(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\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 /**\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 * var 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};\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 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.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n"],"names":["prototype","encode","URLSearchParams","FormData","defaults","AxiosHeaders","validators","InterceptorManager","Axios","CancelToken","HttpStatusCode"],"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 new file mode 100644 index 0000000..c4ce9c3 --- /dev/null +++ b/node_modules/axios/dist/esm/axios.js @@ -0,0 +1,3207 @@ +// Axios v1.3.1 Copyright (c) 2023 Matt Zabriskie and contributors +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 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 an Array + * + * @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) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val); +}; + +/** + * 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 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 File, 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 + */ +const isFormData = (thing) => { + const pattern = '[object FormData]'; + return thing && ( + (typeof FormData === 'function' && thing instanceof FormData) || + toString.call(thing) === pattern || + (isFunction(thing.toString) && thing.toString() === pattern) + ); +}; + +/** + * 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'); + +/** + * 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) => 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 {Boolean} [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 { + // 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); + } + } +} + +function findKey(obj, key) { + 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 + * var 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(/* obj1, obj2, obj3, ... */) { + const {caseless} = isContextDefined(this) && this || {}; + const result = {}; + const assignValue = (val, key) => { + const targetKey = caseless && findKey(result, key) || key; + if (isPlainObject(result[targetKey]) && isPlainObject(val)) { + result[targetKey] = merge(result[targetKey], val); + } else if (isPlainObject(val)) { + result[targetKey] = merge({}, val); + } else if (isArray(val)) { + result[targetKey] = val.slice(); + } else { + result[targetKey] = val; + } + }; + + for (let i = 0, l = arguments.length; i < l; i++) { + arguments[i] && forEach(arguments[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 {Boolean} [allOwnKeys] + * @returns {Object} The resulting value of object a + */ +const extend = (a, b, thisArg, {allOwnKeys}= {}) => { + forEach(b, (val, key) => { + if (thisArg && isFunction(val)) { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }, {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); + constructor.prototype.constructor = constructor; + Object.defineProperty(constructor, 'super', { + 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[Symbol.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) => { + if (reducer(descriptor, name, obj) !== false) { + reducedDescriptors[name] = 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'].indexOf(name) !== -1) { + 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 + '\''); + }; + } + }); +}; + +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) => { + value = +value; + return Number.isFinite(value) ? value : defaultValue; +}; + +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; + while (size--) { + str += alphabet[Math.random() * length|0]; + } + + return str; +}; + +/** + * 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[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]); +} + +const toJSONObject = (obj) => { + const stack = new Array(10); + + const visit = (source, i) => { + + if (isObject(source)) { + if (stack.indexOf(source) >= 0) { + return; + } + + if(!('toJSON' in source)) { + stack[i] = source; + const target = isArray(source) ? [] : {}; + + forEach(source, (value, key) => { + const reducedValue = visit(value, i + 1); + !isUndefined(reducedValue) && (target[key] = reducedValue); + }); + + stack[i] = undefined; + + return target; + } + } + + return source; + }; + + return visit(obj, 0); +}; + +const utils = { + isArray, + isArrayBuffer, + isBuffer, + isFormData, + isArrayBufferView, + isString, + isNumber, + isBoolean, + isObject, + isPlainObject, + isUndefined, + isDate, + isFile, + 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, + ALPHABET, + generateString, + isSpecCompliantForm, + toJSONObject +}; + +/** + * 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$1(message, code, config, request, response) { + Error.call(this); + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + this.stack = (new Error()).stack; + } + + this.message = message; + this.name = 'AxiosError'; + code && (this.code = code); + config && (this.config = config); + request && (this.request = request); + response && (this.response = response); +} + +utils.inherits(AxiosError$1, Error, { + toJSON: function toJSON() { + 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: utils.toJSONObject(this.config), + code: this.code, + status: this.response && this.response.status ? this.response.status : null + }; + } +}); + +const prototype$1 = AxiosError$1.prototype; +const descriptors = {}; + +[ + 'ERR_BAD_OPTION_VALUE', + 'ERR_BAD_OPTION', + 'ECONNABORTED', + 'ETIMEDOUT', + 'ERR_NETWORK', + 'ERR_FR_TOO_MANY_REDIRECTS', + 'ERR_DEPRECATED', + 'ERR_BAD_RESPONSE', + 'ERR_BAD_REQUEST', + 'ERR_CANCELED', + 'ERR_NOT_SUPPORT', + 'ERR_INVALID_URL' +// eslint-disable-next-line func-names +].forEach(code => { + descriptors[code] = {value: code}; +}); + +Object.defineProperties(AxiosError$1, descriptors); +Object.defineProperty(prototype$1, 'isAxiosError', {value: true}); + +// eslint-disable-next-line func-names +AxiosError$1.from = (error, code, config, request, response, customProps) => { + const axiosError = Object.create(prototype$1); + + utils.toFlatObject(error, axiosError, function filter(obj) { + return obj !== Error.prototype; + }, prop => { + return prop !== 'isAxiosError'; + }); + + AxiosError$1.call(axiosError, error.message, code, config, request, response); + + axiosError.cause = error; + + axiosError.name = error.name; + + customProps && Object.assign(axiosError, customProps); + + return axiosError; +}; + +// eslint-disable-next-line strict +const 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.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$1(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 (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 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 (!useBlob && utils.isBlob(value)) { + throw new AxiosError$1('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 (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) { + if (utils.isUndefined(value)) return; + + 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]); + } + }); + + stack.pop(); + } + + if (!utils.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': '+', + '%00': '\x00' + }; + return encodeURIComponent(str).replace(/[!'()~]|%20|%00/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 all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their + * URI encoded 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, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); +} + +/** + * 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} options + * + * @returns {string} The formatted url + */ +function buildURL(url, params, options) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + + const _encode = options && options.encode || encode; + + 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; +} + +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` + * + * @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 {Boolean} `true` if the interceptor was removed, `false` otherwise + */ + 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); + } + }); + } +} + +const InterceptorManager$1 = InterceptorManager; + +const transitionalDefaults = { + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false +}; + +const URLSearchParams$1 = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams; + +const FormData$1 = FormData; + +/** + * 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 isStandardBrowserEnv = (() => { + let product; + if (typeof navigator !== 'undefined' && ( + (product = navigator.product) === 'ReactNative' || + product === 'NativeScript' || + product === 'NS') + ) { + return false; + } + + return typeof window !== 'undefined' && typeof document !== 'undefined'; +})(); + +/** + * 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 isStandardBrowserWebWorkerEnv = (() => { + return ( + typeof WorkerGlobalScope !== 'undefined' && + // eslint-disable-next-line no-undef + self instanceof WorkerGlobalScope && + typeof self.importScripts === 'function' + ); +})(); + + +const platform = { + isBrowser: true, + classes: { + URLSearchParams: URLSearchParams$1, + FormData: FormData$1, + Blob + }, + isStandardBrowserEnv, + isStandardBrowserWebWorkerEnv, + protocols: ['http', 'https', 'file', 'blob', 'url', 'data'] +}; + +function toURLEncodedForm(data, options) { + return toFormData$1(data, new platform.classes.URLSearchParams(), Object.assign({ + 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)); +} + +/** + * 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++]; + 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] = [target[name], value]; + } else { + target[name] = value; + } + + return !isNumericKey; + } + + if (!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; +} + +const DEFAULT_CONTENT_TYPE = { + 'Content-Type': 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'], + + 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) { + if (!hasJSONContentType) { + return data; + } + return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data; + } + + if (utils.isArrayBuffer(data) || + utils.isBuffer(data) || + utils.isStream(data) || + utils.isFile(data) || + utils.isBlob(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) { + if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { + return toURLEncodedForm(data, this.formSerializer).toString(); + } + + if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) { + const _FormData = this.env && this.env.FormData; + + return toFormData$1( + isFileList ? {'files[]': data} : data, + _FormData && new _FormData(), + this.formSerializer + ); + } + } + + if (isObjectPayload || hasJSONContentType ) { + headers.setContentType('application/json', false); + return stringifySafely(data); + } + + return data; + }], + + transformResponse: [function transformResponse(data) { + const transitional = this.transitional || defaults.transitional; + const forcedJSONParsing = transitional && transitional.forcedJSONParsing; + const JSONRequested = this.responseType === 'json'; + + if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) { + const silentJSONParsing = transitional && transitional.silentJSONParsing; + const strictJSONParsing = !silentJSONParsing && JSONRequested; + + try { + return JSON.parse(data); + } catch (e) { + if (strictJSONParsing) { + if (e.name === 'SyntaxError') { + throw AxiosError$1.from(e, AxiosError$1.ERR_BAD_RESPONSE, this, null, 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, */*' + } + } +}; + +utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { + defaults.headers[method] = {}; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); +}); + +const defaults$1 = defaults; + +// 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 + */ +const 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; +}; + +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) : 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; +} + +function isValidHeaderName(str) { + return /^[-_a-zA-Z]+$/.test(str.trim()); +} + +function matchHeaderValue(context, value, header, filter) { + if (utils.isFunction(filter)) { + return filter.call(this, 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, { + value: function(arg1, arg2, arg3) { + return this[methodName].call(this, header, arg1, arg2, arg3); + }, + configurable: true + }); + }); +} + +class AxiosHeaders$1 { + 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 { + 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)) { + 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'); + } + + 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$1.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']); + +utils.freezeMethods(AxiosHeaders$1.prototype); +utils.freezeMethods(AxiosHeaders$1); + +const AxiosHeaders$2 = AxiosHeaders$1; + +/** + * 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$1; + const context = response || config; + const headers = AxiosHeaders$2.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; +} + +function isCancel$1(value) { + return !!(value && value.__CANCEL__); +} + +/** + * 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$1(message, config, request) { + // eslint-disable-next-line no-eq-null,eqeqeq + AxiosError$1.call(this, message == null ? 'canceled' : message, AxiosError$1.ERR_CANCELED, config, request); + this.name = 'CanceledError'; +} + +utils.inherits(CanceledError$1, AxiosError$1, { + __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, + [AxiosError$1.ERR_BAD_REQUEST, AxiosError$1.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], + response.config, + response.request, + response + )); + } +} + +const cookies = platform.isStandardBrowserEnv ? + +// Standard browser envs support document.cookie + (function standardBrowserEnv() { + return { + write: function write(name, value, expires, path, domain, secure) { + const cookie = []; + cookie.push(name + '=' + encodeURIComponent(value)); + + if (utils.isNumber(expires)) { + cookie.push('expires=' + new Date(expires).toGMTString()); + } + + if (utils.isString(path)) { + cookie.push('path=' + path); + } + + if (utils.isString(domain)) { + cookie.push('domain=' + domain); + } + + if (secure === true) { + cookie.push('secure'); + } + + document.cookie = cookie.join('; '); + }, + + read: function read(name) { + const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return (match ? decodeURIComponent(match[3]) : null); + }, + + remove: function remove(name) { + this.write(name, '', Date.now() - 86400000); + } + }; + })() : + +// Non standard browser env (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return { + 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. + 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) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +} + +const isURLSameOrigin = platform.isStandardBrowserEnv ? + +// Standard browser envs have full support of the APIs needed to test +// whether the request URL is of the same origin as current location. + (function standardBrowserEnv() { + const msie = /(msie|trident)/i.test(navigator.userAgent); + const urlParsingNode = document.createElement('a'); + let originURL; + + /** + * Parse a URL to discover it's components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + let href = url; + + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') ? + urlParsingNode.pathname : + '/' + urlParsingNode.pathname + }; + } + + originURL = resolveURL(window.location.href); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; + return (parsed.protocol === originURL.protocol && + parsed.host === originURL.host); + }; + })() : + + // Non standard browser envs (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + })(); + +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; + }; +} + +function progressEventReducer(listener, isDownloadStream) { + let bytesNotified = 0; + const _speedometer = speedometer(50, 250); + + return e => { + const loaded = e.loaded; + const total = e.lengthComputable ? e.total : undefined; + const progressBytes = loaded - bytesNotified; + const rate = _speedometer(progressBytes); + const inRange = loaded <= total; + + bytesNotified = loaded; + + const data = { + loaded, + total, + progress: total ? (loaded / total) : undefined, + bytes: progressBytes, + rate: rate ? rate : undefined, + estimated: rate && total && inRange ? (total - loaded) / rate : undefined, + event: e + }; + + data[isDownloadStream ? 'download' : 'upload'] = true; + + listener(data); + }; +} + +const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; + +const xhrAdapter = isXHRAdapterSupported && function (config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + let requestData = config.data; + const requestHeaders = AxiosHeaders$2.from(config.headers).normalize(); + const responseType = config.responseType; + let onCanceled; + function done() { + if (config.cancelToken) { + config.cancelToken.unsubscribe(onCanceled); + } + + if (config.signal) { + config.signal.removeEventListener('abort', onCanceled); + } + } + + if (utils.isFormData(requestData) && (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv)) { + requestHeaders.setContentType(false); // Let the browser set it + } + + let request = new XMLHttpRequest(); + + // HTTP basic authentication + if (config.auth) { + const username = config.auth.username || ''; + const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ''; + requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password)); + } + + const fullPath = buildFullPath(config.baseURL, config.url); + + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + + // Set the request timeout in MS + request.timeout = config.timeout; + + function onloadend() { + if (!request) { + return; + } + // Prepare the response + const responseHeaders = AxiosHeaders$2.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.indexOf('file:') === 0)) { + 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)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(new AxiosError$1('Network Error', AxiosError$1.ERR_NETWORK, config, request)); + + // Clean up request + 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)); + + // Clean up request + request = null; + }; + + // 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.isStandardBrowserEnv) { + // Add xsrf header + const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) + && config.xsrfCookieName && cookies.read(config.xsrfCookieName); + + if (xsrfValue) { + requestHeaders.set(config.xsrfHeaderName, xsrfValue); + } + } + + // Remove Content-Type if data is undefined + requestData === undefined && requestHeaders.setContentType(null); + + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders.toJSON(), 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 (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true)); + } + + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress)); + } + + 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(); + request = null; + }; + + config.cancelToken && config.cancelToken.subscribe(onCanceled); + if (config.signal) { + config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled); + } + } + + const protocol = parseProtocol(fullPath); + + if (protocol && platform.protocols.indexOf(protocol) === -1) { + reject(new AxiosError$1('Unsupported protocol ' + protocol + ':', AxiosError$1.ERR_BAD_REQUEST, config)); + return; + } + + + // Send the request + request.send(requestData || null); + }); +}; + +const knownAdapters = { + http: httpAdapter, + xhr: xhrAdapter +}; + +utils.forEach(knownAdapters, (fn, value) => { + if(fn) { + try { + Object.defineProperty(fn, 'name', {value}); + } catch (e) { + // eslint-disable-next-line no-empty + } + Object.defineProperty(fn, 'adapterName', {value}); + } +}); + +const adapters = { + getAdapter: (adapters) => { + adapters = utils.isArray(adapters) ? adapters : [adapters]; + + const {length} = adapters; + let nameOrAdapter; + let adapter; + + for (let i = 0; i < length; i++) { + nameOrAdapter = adapters[i]; + if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) { + break; + } + } + + if (!adapter) { + if (adapter === false) { + throw new AxiosError$1( + `Adapter ${nameOrAdapter} is not supported by the environment`, + 'ERR_NOT_SUPPORT' + ); + } + + throw new Error( + utils.hasOwnProp(knownAdapters, nameOrAdapter) ? + `Adapter '${nameOrAdapter}' is not available in the build` : + `Unknown adapter '${nameOrAdapter}'` + ); + } + + if (!utils.isFunction(adapter)) { + throw new TypeError('adapter is not a function'); + } + + return adapter; + }, + 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$2.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$1.adapter); + + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData.call( + config, + config.transformResponse, + response + ); + + response.headers = AxiosHeaders$2.from(response.headers); + + return response; + }, function onAdapterRejection(reason) { + if (!isCancel$1(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData.call( + config, + config.transformResponse, + reason.response + ); + reason.response.headers = AxiosHeaders$2.from(reason.response.headers); + } + } + + return Promise.reject(reason); + }); +} + +const headersToObject = (thing) => thing instanceof AxiosHeaders$2 ? thing.toJSON() : 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 || {}; + const config = {}; + + function getMergedValue(target, source, 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; + } + + // eslint-disable-next-line consistent-return + function mergeDeepProperties(a, b, caseless) { + if (!utils.isUndefined(b)) { + return getMergedValue(a, b, caseless); + } else if (!utils.isUndefined(a)) { + return getMergedValue(undefined, a, 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 (prop in config2) { + return getMergedValue(a, b); + } else if (prop in config1) { + 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, + 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, + responseEncoding: defaultToConfig2, + validateStatus: mergeDirectKeys, + headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true) + }; + + utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) { + const merge = mergeMap[prop] || mergeDeepProperties; + const configValue = merge(config1[prop], config2[prop], prop); + (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue); + }); + + return config; +} + +const VERSION$1 = "1.3.1"; + +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; + }; +}; + +/** + * 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]; + const validator = schema[opt]; + 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); + } + } +} + +const 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$1 { + constructor(instanceConfig) { + this.defaults = instanceConfig; + this.interceptors = { + request: new InterceptorManager$1(), + response: new InterceptorManager$1() + }; + } + + /** + * 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 + */ + 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) + }, false); + } + + if (paramsSerializer !== undefined) { + validator.assertOptions(paramsSerializer, { + encode: validators.function, + serialize: validators.function + }, true); + } + + // Set config.method + config.method = (config.method || this.defaults.method || 'get').toLowerCase(); + + let contextHeaders; + + // Flatten headers + contextHeaders = headers && utils.merge( + headers.common, + headers[config.method] + ); + + contextHeaders && utils.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], + (method) => { + delete headers[method]; + } + ); + + config.headers = AxiosHeaders$2.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; + + requestInterceptorChain.unshift(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.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; + + let newConfig = config; + + i = 0; + + 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); + 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$1.prototype[method] = function(url, config) { + return this.request(mergeConfig$1(config || {}, { + method, + url, + data: (config || {}).data + })); + }; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + + 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(); + + Axios$1.prototype[method + 'Form'] = generateHTTPMethod(true); +}); + +const Axios$2 = Axios$1; + +/** + * 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$1 { + 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); + } + } + + /** + * 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$1(function executor(c) { + cancel = c; + }); + return { + token, + cancel + }; + } +} + +const CancelToken$2 = CancelToken$1; + +/** + * 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) {} + * var 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.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, +}; + +Object.entries(HttpStatusCode$1).forEach(([key, value]) => { + HttpStatusCode$1[value] = key; +}); + +const HttpStatusCode$2 = HttpStatusCode$1; + +/** + * 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$2(defaultConfig); + const instance = bind(Axios$2.prototype.request, context); + + // Copy axios.prototype to instance + utils.extend(instance, Axios$2.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$1(defaultConfig, instanceConfig)); + }; + + return instance; +} + +// Create the default instance to be exported +const axios = createInstance(defaults$1); + +// Expose Axios class to allow class inheritance +axios.Axios = Axios$2; + +// Expose Cancel & CancelToken +axios.CanceledError = CanceledError$1; +axios.CancelToken = CancelToken$2; +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$2; + +axios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing); + +axios.HttpStatusCode = HttpStatusCode$2; + +axios.default = axios; + +// this module should only have a default export +const axios$1 = 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, + mergeConfig +} = axios$1; + +export { Axios, AxiosError, AxiosHeaders, Cancel, CancelToken, CanceledError, HttpStatusCode, VERSION, all, axios$1 as default, formToJSON, 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 new file mode 100644 index 0000000..75516ef --- /dev/null +++ b/node_modules/axios/dist/esm/axios.js.map @@ -0,0 +1 @@ +{"version":3,"file":"axios.js","sources":["../../lib/helpers/bind.js","../../lib/utils.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/index.js","../../lib/helpers/toURLEncodedForm.js","../../lib/helpers/formDataToJSON.js","../../lib/defaults/index.js","../../lib/helpers/parseHeaders.js","../../lib/core/AxiosHeaders.js","../../lib/core/transformData.js","../../lib/cancel/isCancel.js","../../lib/cancel/CanceledError.js","../../lib/core/settle.js","../../lib/helpers/cookies.js","../../lib/helpers/isAbsoluteURL.js","../../lib/helpers/combineURLs.js","../../lib/core/buildFullPath.js","../../lib/helpers/isURLSameOrigin.js","../../lib/helpers/parseProtocol.js","../../lib/helpers/speedometer.js","../../lib/adapters/xhr.js","../../lib/adapters/adapters.js","../../lib/core/dispatchRequest.js","../../lib/core/mergeConfig.js","../../lib/env/data.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\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;\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 an Array\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 val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\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/**\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 (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\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 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 File, 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 */\nconst isFormData = (thing) => {\n const pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\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\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) => str.trim ?\n 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 {Boolean} [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 // 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\nfunction findKey(obj, key) {\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 * var 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(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[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 {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\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 constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\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/**\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[Symbol.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,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(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 if (reducer(descriptor, name, obj) !== false) {\n reducedDescriptors[name] = 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'].indexOf(name) !== -1) {\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\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 value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\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 while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\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 !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\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 ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject\n};\n","'use strict';\n\nimport utils from '../utils.js';\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 */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\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: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\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.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\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(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\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 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 (!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 (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) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : 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) {\n if (utils.isUndefined(value)) return;\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 = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\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 '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/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 ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\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 all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\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} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\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 *\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 {Boolean} `true` if the interceptor was removed, `false` otherwise\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};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default FormData;\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\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 isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\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 */\n const isStandardBrowserWebWorkerEnv = (() => {\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\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\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(), Object.assign({\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","'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 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] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!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 DEFAULT_CONTENT_TYPE = {\n 'Content-Type': undefined\n};\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\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [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 if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(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 if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.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 transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\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 }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nexport default defaults;\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', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', '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 && 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';\nimport parseHeaders from '../helpers/parseHeaders.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) : 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\nfunction isValidHeaderName(str) {\n return /^[-_a-zA-Z]+$/.test(str.trim());\n}\n\nfunction matchHeaderValue(context, value, header, filter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, 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.trim()\n .toLowerCase().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 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(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\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 {\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 !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\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)) {\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 && value !== false && (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()).map(([header, value]) => header + ': ' + value).join('\\n');\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 = this[$internals] = (this[$internals] = {\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(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\nutils.freezeMethods(AxiosHeaders.prototype);\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\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';\nimport utils from '../utils.js';\n\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 */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\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 [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\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 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) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\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","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.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 speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n 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 && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n const responseType = config.responseType;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv)) {\n requestHeaders.setContentType(false); // Let the browser set it\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), 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 = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : 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(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\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 (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\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\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\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 if (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\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(requestHeaders.toJSON(), 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 (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\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 request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if(fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) {\n break;\n }\n }\n\n if (!adapter) {\n if (adapter === false) {\n throw new AxiosError(\n `Adapter ${nameOrAdapter} is not supported by the environment`,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n throw new Error(\n utils.hasOwnProp(knownAdapters, nameOrAdapter) ?\n `Adapter '${nameOrAdapter}' is not available in the build` :\n `Unknown adapter '${nameOrAdapter}'`\n );\n }\n\n if (!utils.isFunction(adapter)) {\n throw new TypeError('adapter is not a function');\n }\n\n return adapter;\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(\n config,\n config.transformRequest\n );\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);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : 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 const config = {};\n\n function getMergedValue(target, source, 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 // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, 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 (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\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 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 responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.3.1\";","'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 '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\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\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 const validator = schema[opt];\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('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\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';\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 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(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer !== undefined) {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n let contextHeaders;\n\n // Flatten headers\n contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n contextHeaders && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\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 requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\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.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, 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 i = 0;\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);\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(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\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 /**\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 * var 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};\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 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.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 mergeConfig\n} = axios;\n\nexport {\n axios as default,\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 mergeConfig\n}\n"],"names":["AxiosError","prototype","toFormData","encode","URLSearchParams","FormData","AxiosHeaders","defaults","isCancel","CanceledError","mergeConfig","VERSION","validators","Axios","InterceptorManager","CancelToken","spread","isAxiosError","HttpStatusCode","axios"],"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 new file mode 100644 index 0000000..e52326d --- /dev/null +++ b/node_modules/axios/dist/esm/axios.min.js @@ -0,0 +1,2 @@ +function e(e,t){return function(){return e.apply(t,arguments)}}const{toString:t}=Object.prototype,{getPrototypeOf:n}=Object,r=(o=Object.create(null),e=>{const n=t.call(e);return o[n]||(o[n]=n.slice(8,-1).toLowerCase())});var o;const s=e=>(e=e.toLowerCase(),t=>r(t)===e),i=e=>t=>typeof t===e,{isArray:a}=Array,c=i("undefined");const u=s("ArrayBuffer");const l=i("string"),f=i("function"),d=i("number"),p=e=>null!==e&&"object"==typeof e,h=e=>{if("object"!==r(e))return!1;const t=n(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)},m=s("Date"),y=s("File"),g=s("Blob"),b=s("FileList"),E=s("URLSearchParams");function w(e,t,{allOwnKeys:n=!1}={}){if(null==e)return;let r,o;if("object"!=typeof e&&(e=[e]),a(e))for(r=0,o=e.length;r0;)if(r=n[o],t===r.toLowerCase())return r;return null}const S="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,R=e=>!c(e)&&e!==S;const A=(T="undefined"!=typeof Uint8Array&&n(Uint8Array),e=>T&&e instanceof T);var T;const N=s("HTMLFormElement"),C=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),j=s("RegExp"),v=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),r={};w(n,((n,o)=>{!1!==t(n,o,e)&&(r[o]=n)})),Object.defineProperties(e,r)},x="abcdefghijklmnopqrstuvwxyz",P={DIGIT:"0123456789",ALPHA:x,ALPHA_DIGIT:x+x.toUpperCase()+"0123456789"};const U={isArray:a,isArrayBuffer:u,isBuffer:function(e){return null!==e&&!c(e)&&null!==e.constructor&&!c(e.constructor)&&f(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:e=>{const n="[object FormData]";return e&&("function"==typeof FormData&&e instanceof FormData||t.call(e)===n||f(e.toString)&&e.toString()===n)},isArrayBufferView:function(e){let t;return t="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&u(e.buffer),t},isString:l,isNumber:d,isBoolean:e=>!0===e||!1===e,isObject:p,isPlainObject:h,isUndefined:c,isDate:m,isFile:y,isBlob:g,isRegExp:j,isFunction:f,isStream:e=>p(e)&&f(e.pipe),isURLSearchParams:E,isTypedArray:A,isFileList:b,forEach:w,merge:function e(){const{caseless:t}=R(this)&&this||{},n={},r=(r,o)=>{const s=t&&O(n,o)||o;h(n[s])&&h(r)?n[s]=e(n[s],r):h(r)?n[s]=e({},r):a(r)?n[s]=r.slice():n[s]=r};for(let e=0,t=arguments.length;e(w(n,((n,o)=>{r&&f(n)?t[o]=e(n,r):t[o]=n}),{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),e.prototype.constructor=e,Object.defineProperty(e,"super",{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:r,kindOfTest:s,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(a(e))return e;let t=e.length;if(!d(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},forEachEntry:(e,t)=>{const n=(e&&e[Symbol.iterator]).call(e);let r;for(;(r=n.next())&&!r.done;){const n=r.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:N,hasOwnProperty:C,hasOwnProp:C,reduceDescriptors:v,freezeMethods:e=>{v(e,((t,n)=>{if(f(e)&&-1!==["arguments","caller","callee"].indexOf(n))return!1;const r=e[n];f(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 a(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)=>(e=+e,Number.isFinite(e)?e:t),findKey:O,global:S,isContextDefined:R,ALPHABET:P,generateString:(e=16,t=P.ALPHA_DIGIT)=>{let n="";const{length:r}=t;for(;e--;)n+=t[Math.random()*r|0];return n},isSpecCompliantForm:function(e){return!!(e&&f(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:e=>{const t=new Array(10),n=(e,r)=>{if(p(e)){if(t.indexOf(e)>=0)return;if(!("toJSON"in e)){t[r]=e;const o=a(e)?[]:{};return w(e,((e,t)=>{const s=n(e,r+1);!c(s)&&(o[t]=s)})),t[r]=void 0,o}}return e};return n(e,0)}};function _(e,t,n,r,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),o&&(this.response=o)}U.inherits(_,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:U.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const F=_.prototype,L={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((e=>{L[e]={value:e}})),Object.defineProperties(_,L),Object.defineProperty(F,"isAxiosError",{value:!0}),_.from=(e,t,n,r,o,s)=>{const i=Object.create(F);return U.toFlatObject(e,i,(function(e){return e!==Error.prototype}),(e=>"isAxiosError"!==e)),_.call(i,e.message,t,n,r,o),i.cause=e,i.name=e.name,s&&Object.assign(i,s),i};function B(e){return U.isPlainObject(e)||U.isArray(e)}function D(e){return U.endsWith(e,"[]")?e.slice(0,-2):e}function k(e,t,n){return e?e.concat(t).map((function(e,t){return e=D(e),!n&&t?"["+e+"]":e})).join(n?".":""):t}const q=U.toFlatObject(U,{},null,(function(e){return/^is[A-Z]/.test(e)}));function I(e,t,n){if(!U.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;const r=(n=U.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!U.isUndefined(t[e])}))).metaTokens,o=n.visitor||u,s=n.dots,i=n.indexes,a=(n.Blob||"undefined"!=typeof Blob&&Blob)&&U.isSpecCompliantForm(t);if(!U.isFunction(o))throw new TypeError("visitor must be a function");function c(e){if(null===e)return"";if(U.isDate(e))return e.toISOString();if(!a&&U.isBlob(e))throw new _("Blob is not supported. Use a Buffer instead.");return U.isArrayBuffer(e)||U.isTypedArray(e)?a&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function u(e,n,o){let a=e;if(e&&!o&&"object"==typeof e)if(U.endsWith(n,"{}"))n=r?n:n.slice(0,-2),e=JSON.stringify(e);else if(U.isArray(e)&&function(e){return U.isArray(e)&&!e.some(B)}(e)||(U.isFileList(e)||U.endsWith(n,"[]"))&&(a=U.toArray(e)))return n=D(n),a.forEach((function(e,r){!U.isUndefined(e)&&null!==e&&t.append(!0===i?k([n],r,s):null===i?n:n+"[]",c(e))})),!1;return!!B(e)||(t.append(k(o,n,s),c(e)),!1)}const l=[],f=Object.assign(q,{defaultVisitor:u,convertValue:c,isVisitable:B});if(!U.isObject(e))throw new TypeError("data must be an object");return function e(n,r){if(!U.isUndefined(n)){if(-1!==l.indexOf(n))throw Error("Circular reference detected in "+r.join("."));l.push(n),U.forEach(n,(function(n,s){!0===(!(U.isUndefined(n)||null===n)&&o.call(t,n,U.isString(s)?s.trim():s,r,f))&&e(n,r?r.concat(s):[s])})),l.pop()}}(e),t}function M(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function z(e,t){this._pairs=[],e&&I(e,this,t)}const H=z.prototype;function J(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function V(e,t,n){if(!t)return e;const r=n&&n.encode||J,o=n&&n.serialize;let s;if(s=o?o(t,n):U.isURLSearchParams(t)?t.toString():new z(t,n).toString(r),s){const t=e.indexOf("#");-1!==t&&(e=e.slice(0,t)),e+=(-1===e.indexOf("?")?"?":"&")+s}return e}H.append=function(e,t){this._pairs.push([e,t])},H.toString=function(e){const t=e?function(t){return e.call(this,t,M)}:M;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};const W=class{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){U.forEach(this.handlers,(function(t){null!==t&&e(t)}))}},K={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},G="undefined"!=typeof URLSearchParams?URLSearchParams:z,$=FormData,X=(()=>{let e;return("undefined"==typeof navigator||"ReactNative"!==(e=navigator.product)&&"NativeScript"!==e&&"NS"!==e)&&("undefined"!=typeof window&&"undefined"!=typeof document)})(),Q="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Z={isBrowser:!0,classes:{URLSearchParams:G,FormData:$,Blob:Blob},isStandardBrowserEnv:X,isStandardBrowserWebWorkerEnv:Q,protocols:["http","https","file","blob","url","data"]};function Y(e){function t(e,n,r,o){let s=e[o++];const i=Number.isFinite(+s),a=o>=e.length;if(s=!s&&U.isArray(r)?r.length:s,a)return U.hasOwnProp(r,s)?r[s]=[r[s],n]:r[s]=n,!i;r[s]&&U.isObject(r[s])||(r[s]=[]);return t(e,n,r[s],o)&&U.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 U.matchAll(/\w+|\[(\w*)]/g,e).map((e=>"[]"===e[0]?"":e[1]||e[0]))}(e),r,n,0)})),n}return null}const ee={"Content-Type":void 0};const te={transitional:K,adapter:["xhr","http"],transformRequest:[function(e,t){const n=t.getContentType()||"",r=n.indexOf("application/json")>-1,o=U.isObject(e);o&&U.isHTMLForm(e)&&(e=new FormData(e));if(U.isFormData(e))return r&&r?JSON.stringify(Y(e)):e;if(U.isArrayBuffer(e)||U.isBuffer(e)||U.isStream(e)||U.isFile(e)||U.isBlob(e))return e;if(U.isArrayBufferView(e))return e.buffer;if(U.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();let s;if(o){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return I(e,new Z.classes.URLSearchParams,Object.assign({visitor:function(e,t,n,r){return Z.isNode&&U.isBuffer(e)?(this.append(t,e.toString("base64")),!1):r.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((s=U.isFileList(e))||n.indexOf("multipart/form-data")>-1){const t=this.env&&this.env.FormData;return I(s?{"files[]":e}:e,t&&new t,this.formSerializer)}}return o||r?(t.setContentType("application/json",!1),function(e,t,n){if(U.isString(e))try{return(t||JSON.parse)(e),U.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(n||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){const t=this.transitional||te.transitional,n=t&&t.forcedJSONParsing,r="json"===this.responseType;if(e&&U.isString(e)&&(n&&!this.responseType||r)){const n=!(t&&t.silentJSONParsing)&&r;try{return JSON.parse(e)}catch(e){if(n){if("SyntaxError"===e.name)throw _.from(e,_.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Z.classes.FormData,Blob:Z.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};U.forEach(["delete","get","head"],(function(e){te.headers[e]={}})),U.forEach(["post","put","patch"],(function(e){te.headers[e]=U.merge(ee)}));const ne=te,re=U.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"]),oe=Symbol("internals");function se(e){return e&&String(e).trim().toLowerCase()}function ie(e){return!1===e||null==e?e:U.isArray(e)?e.map(ie):String(e)}function ae(e,t,n,r){return U.isFunction(r)?r.call(this,t,n):U.isString(t)?U.isString(r)?-1!==t.indexOf(r):U.isRegExp(r)?r.test(t):void 0:void 0}class ce{constructor(e){e&&this.set(e)}set(e,t,n){const r=this;function o(e,t,n){const o=se(t);if(!o)throw new Error("header name must be a non-empty string");const s=U.findKey(r,o);(!s||void 0===r[s]||!0===n||void 0===n&&!1!==r[s])&&(r[s||t]=ie(e))}const s=(e,t)=>U.forEach(e,((e,n)=>o(e,n,t)));return U.isPlainObject(e)||e instanceof this.constructor?s(e,t):U.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z]+$/.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]&&re[n]||("set-cookie"===n?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+", "+r:r)})),t})(e),t):null!=e&&o(t,e,n),this}get(e,t){if(e=se(e)){const n=U.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(U.isFunction(t))return t.call(this,e,n);if(U.isRegExp(t))return t.exec(e);throw new TypeError("parser must be boolean|regexp|function")}}}has(e,t){if(e=se(e)){const n=U.findKey(this,e);return!(!n||void 0===this[n]||t&&!ae(0,this[n],n,t))}return!1}delete(e,t){const n=this;let r=!1;function o(e){if(e=se(e)){const o=U.findKey(n,e);!o||t&&!ae(0,n[o],o,t)||(delete n[o],r=!0)}}return U.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&&!ae(0,this[o],o,e)||(delete this[o],r=!0)}return r}normalize(e){const t=this,n={};return U.forEach(this,((r,o)=>{const s=U.findKey(n,o);if(s)return t[s]=ie(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]=ie(r),n[i]=!0})),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){const t=Object.create(null);return U.forEach(this,((n,r)=>{null!=n&&!1!==n&&(t[r]=e&&U.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")}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[oe]=this[oe]={accessors:{}}).accessors,n=this.prototype;function r(e){const r=se(e);t[r]||(!function(e,t){const n=U.toCamelCase(" "+t);["get","set","has"].forEach((r=>{Object.defineProperty(e,r+n,{value:function(e,n,o){return this[r].call(this,t,e,n,o)},configurable:!0})}))}(n,e),t[r]=!0)}return U.isArray(e)?e.forEach(r):r(e),this}}ce.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),U.freezeMethods(ce.prototype),U.freezeMethods(ce);const ue=ce;function le(e,t){const n=this||ne,r=t||n,o=ue.from(r.headers);let s=r.data;return U.forEach(e,(function(e){s=e.call(n,s,o.normalize(),t?t.status:void 0)})),o.normalize(),s}function fe(e){return!(!e||!e.__CANCEL__)}function de(e,t,n){_.call(this,null==e?"canceled":e,_.ERR_CANCELED,t,n),this.name="CanceledError"}U.inherits(de,_,{__CANCEL__:!0});const pe=Z.isStandardBrowserEnv?{write:function(e,t,n,r,o,s){const i=[];i.push(e+"="+encodeURIComponent(t)),U.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),U.isString(r)&&i.push("path="+r),U.isString(o)&&i.push("domain="+o),!0===s&&i.push("secure"),document.cookie=i.join("; ")},read:function(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}};function he(e,t){return e&&!/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)?function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}(e,t):t}const me=Z.isStandardBrowserEnv?function(){const e=/(msie|trident)/i.test(navigator.userAgent),t=document.createElement("a");let n;function r(n){let r=n;return e&&(t.setAttribute("href",r),r=t.href),t.setAttribute("href",r),{href:t.href,protocol:t.protocol?t.protocol.replace(/:$/,""):"",host:t.host,search:t.search?t.search.replace(/^\?/,""):"",hash:t.hash?t.hash.replace(/^#/,""):"",hostname:t.hostname,port:t.port,pathname:"/"===t.pathname.charAt(0)?t.pathname:"/"+t.pathname}}return n=r(window.location.href),function(e){const t=U.isString(e)?r(e):e;return t.protocol===n.protocol&&t.host===n.host}}():function(){return!0};function ye(e,t){let n=0;const r=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(),u=r[i];o||(o=c),n[s]=a,r[s]=c;let l=i,f=0;for(;l!==s;)f+=n[l++],l%=e;if(s=(s+1)%e,s===i&&(i=(i+1)%e),c-o{const s=o.loaded,i=o.lengthComputable?o.total:void 0,a=s-n,c=r(a);n=s;const u={loaded:s,total:i,progress:i?s/i:void 0,bytes:a,rate:c||void 0,estimated:c&&i&&s<=i?(i-s)/c:void 0,event:o};u[t?"download":"upload"]=!0,e(u)}}const ge={http:null,xhr:"undefined"!=typeof XMLHttpRequest&&function(e){return new Promise((function(t,n){let r=e.data;const o=ue.from(e.headers).normalize(),s=e.responseType;let i;function a(){e.cancelToken&&e.cancelToken.unsubscribe(i),e.signal&&e.signal.removeEventListener("abort",i)}U.isFormData(r)&&(Z.isStandardBrowserEnv||Z.isStandardBrowserWebWorkerEnv)&&o.setContentType(!1);let c=new XMLHttpRequest;if(e.auth){const t=e.auth.username||"",n=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";o.set("Authorization","Basic "+btoa(t+":"+n))}const u=he(e.baseURL,e.url);function l(){if(!c)return;const r=ue.from("getAllResponseHeaders"in c&&c.getAllResponseHeaders());!function(e,t,n){const r=n.config.validateStatus;n.status&&r&&!r(n.status)?t(new _("Request failed with status code "+n.status,[_.ERR_BAD_REQUEST,_.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):e(n)}((function(e){t(e),a()}),(function(e){n(e),a()}),{data:s&&"text"!==s&&"json"!==s?c.response:c.responseText,status:c.status,statusText:c.statusText,headers:r,config:e,request:c}),c=null}if(c.open(e.method.toUpperCase(),V(u,e.params,e.paramsSerializer),!0),c.timeout=e.timeout,"onloadend"in c?c.onloadend=l:c.onreadystatechange=function(){c&&4===c.readyState&&(0!==c.status||c.responseURL&&0===c.responseURL.indexOf("file:"))&&setTimeout(l)},c.onabort=function(){c&&(n(new _("Request aborted",_.ECONNABORTED,e,c)),c=null)},c.onerror=function(){n(new _("Network Error",_.ERR_NETWORK,e,c)),c=null},c.ontimeout=function(){let t=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const r=e.transitional||K;e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),n(new _(t,r.clarifyTimeoutError?_.ETIMEDOUT:_.ECONNABORTED,e,c)),c=null},Z.isStandardBrowserEnv){const t=(e.withCredentials||me(u))&&e.xsrfCookieName&&pe.read(e.xsrfCookieName);t&&o.set(e.xsrfHeaderName,t)}void 0===r&&o.setContentType(null),"setRequestHeader"in c&&U.forEach(o.toJSON(),(function(e,t){c.setRequestHeader(t,e)})),U.isUndefined(e.withCredentials)||(c.withCredentials=!!e.withCredentials),s&&"json"!==s&&(c.responseType=e.responseType),"function"==typeof e.onDownloadProgress&&c.addEventListener("progress",ye(e.onDownloadProgress,!0)),"function"==typeof e.onUploadProgress&&c.upload&&c.upload.addEventListener("progress",ye(e.onUploadProgress)),(e.cancelToken||e.signal)&&(i=t=>{c&&(n(!t||t.type?new de(null,e,c):t),c.abort(),c=null)},e.cancelToken&&e.cancelToken.subscribe(i),e.signal&&(e.signal.aborted?i():e.signal.addEventListener("abort",i)));const f=function(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}(u);f&&-1===Z.protocols.indexOf(f)?n(new _("Unsupported protocol "+f+":",_.ERR_BAD_REQUEST,e)):c.send(r||null)}))}};U.forEach(ge,((e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch(e){}Object.defineProperty(e,"adapterName",{value:t})}}));const be=e=>{e=U.isArray(e)?e:[e];const{length:t}=e;let n,r;for(let o=0;oe instanceof ue?e.toJSON():e;function Se(e,t){t=t||{};const n={};function r(e,t,n){return U.isPlainObject(e)&&U.isPlainObject(t)?U.merge.call({caseless:n},e,t):U.isPlainObject(t)?U.merge({},t):U.isArray(t)?t.slice():t}function o(e,t,n){return U.isUndefined(t)?U.isUndefined(e)?void 0:r(void 0,e,n):r(e,t,n)}function s(e,t){if(!U.isUndefined(t))return r(void 0,t)}function i(e,t){return U.isUndefined(t)?U.isUndefined(e)?void 0:r(void 0,e):r(void 0,t)}function a(n,o,s){return s in t?r(n,o):s in e?r(void 0,n):void 0}const c={url:s,method:s,data:s,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials: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,responseEncoding:i,validateStatus:a,headers:(e,t)=>o(Oe(e),Oe(t),!0)};return U.forEach(Object.keys(e).concat(Object.keys(t)),(function(r){const s=c[r]||o,i=s(e[r],t[r],r);U.isUndefined(i)&&s!==a||(n[r]=i)})),n}const Re={};["object","boolean","number","function","string","symbol"].forEach(((e,t)=>{Re[e]=function(n){return typeof n===e||"a"+(t<1?"n ":" ")+e}}));const Ae={};Re.transitional=function(e,t,n){function r(e,t){return"[Axios v1.3.1] Transitional option '"+e+"'"+t+(n?". "+n:"")}return(n,o,s)=>{if(!1===e)throw new _(r(o," has been removed"+(t?" in "+t:"")),_.ERR_DEPRECATED);return t&&!Ae[o]&&(Ae[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)}};const Te={assertOptions:function(e,t,n){if("object"!=typeof e)throw new _("options must be an object",_.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const s=r[o],i=t[s];if(i){const t=e[s],n=void 0===t||i(t,s,e);if(!0!==n)throw new _("option "+s+" must be "+n,_.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new _("Unknown option "+s,_.ERR_BAD_OPTION)}},validators:Re},Ne=Te.validators;class Ce{constructor(e){this.defaults=e,this.interceptors={request:new W,response:new W}}request(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},t=Se(this.defaults,t);const{transitional:n,paramsSerializer:r,headers:o}=t;let s;void 0!==n&&Te.assertOptions(n,{silentJSONParsing:Ne.transitional(Ne.boolean),forcedJSONParsing:Ne.transitional(Ne.boolean),clarifyTimeoutError:Ne.transitional(Ne.boolean)},!1),void 0!==r&&Te.assertOptions(r,{encode:Ne.function,serialize:Ne.function},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase(),s=o&&U.merge(o.common,o[t.method]),s&&U.forEach(["delete","get","head","post","put","patch","common"],(e=>{delete o[e]})),t.headers=ue.concat(s,o);const i=[];let a=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(a=a&&e.synchronous,i.unshift(e.fulfilled,e.rejected))}));const c=[];let u;this.interceptors.response.forEach((function(e){c.push(e.fulfilled,e.rejected)}));let l,f=0;if(!a){const e=[we.bind(this),void 0];for(e.unshift.apply(e,i),e.push.apply(e,c),l=e.length,u=Promise.resolve(t);f{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 de(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)}static source(){let e;return{token:new ve((function(t){e=t})),cancel:e}}}const xe=ve;const Pe={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};Object.entries(Pe).forEach((([e,t])=>{Pe[t]=e}));const Ue=Pe;const _e=function t(n){const r=new je(n),o=e(je.prototype.request,r);return U.extend(o,je.prototype,r,{allOwnKeys:!0}),U.extend(o,r,null,{allOwnKeys:!0}),o.create=function(e){return t(Se(n,e))},o}(ne);_e.Axios=je,_e.CanceledError=de,_e.CancelToken=xe,_e.isCancel=fe,_e.VERSION="1.3.1",_e.toFormData=I,_e.AxiosError=_,_e.Cancel=_e.CanceledError,_e.all=function(e){return Promise.all(e)},_e.spread=function(e){return function(t){return e.apply(null,t)}},_e.isAxiosError=function(e){return U.isObject(e)&&!0===e.isAxiosError},_e.mergeConfig=Se,_e.AxiosHeaders=ue,_e.formToJSON=e=>Y(U.isHTMLForm(e)?new FormData(e):e),_e.HttpStatusCode=Ue,_e.default=_e;const Fe=_e,{Axios:Le,AxiosError:Be,CanceledError:De,isCancel:ke,CancelToken:qe,VERSION:Ie,all:Me,Cancel:ze,isAxiosError:He,spread:Je,toFormData:Ve,AxiosHeaders:We,HttpStatusCode:Ke,formToJSON:Ge,mergeConfig:$e}=Fe;export{Le as Axios,Be as AxiosError,We as AxiosHeaders,ze as Cancel,qe as CancelToken,De as CanceledError,Ke as HttpStatusCode,Ie as VERSION,Me as all,Fe as default,Ge as formToJSON,He as isAxiosError,ke as isCancel,$e as mergeConfig,Je as spread,Ve 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 new file mode 100644 index 0000000..6ef3bb2 --- /dev/null +++ b/node_modules/axios/dist/esm/axios.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"axios.min.js","sources":["../../lib/helpers/bind.js","../../lib/utils.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/classes/URLSearchParams.js","../../lib/platform/browser/classes/FormData.js","../../lib/platform/browser/index.js","../../lib/helpers/formDataToJSON.js","../../lib/defaults/index.js","../../lib/helpers/toURLEncodedForm.js","../../lib/helpers/parseHeaders.js","../../lib/core/AxiosHeaders.js","../../lib/core/transformData.js","../../lib/cancel/isCancel.js","../../lib/cancel/CanceledError.js","../../lib/helpers/cookies.js","../../lib/core/buildFullPath.js","../../lib/helpers/isAbsoluteURL.js","../../lib/helpers/combineURLs.js","../../lib/helpers/isURLSameOrigin.js","../../lib/adapters/xhr.js","../../lib/helpers/speedometer.js","../../lib/adapters/adapters.js","../../lib/helpers/null.js","../../lib/core/settle.js","../../lib/helpers/parseProtocol.js","../../lib/core/dispatchRequest.js","../../lib/core/mergeConfig.js","../../lib/env/data.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","../../index.js"],"sourcesContent":["'use strict';\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;\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 an Array\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 val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\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/**\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 (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\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 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 File, 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 */\nconst isFormData = (thing) => {\n const pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\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\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) => str.trim ?\n 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 {Boolean} [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 // 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\nfunction findKey(obj, key) {\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 * var 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(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[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 {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\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 constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\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/**\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[Symbol.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,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(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 if (reducer(descriptor, name, obj) !== false) {\n reducedDescriptors[name] = 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'].indexOf(name) !== -1) {\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\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 value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\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 while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\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 !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\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 ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject\n};\n","'use strict';\n\nimport utils from '../utils.js';\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 */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\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: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\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.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\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(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\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 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 (!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 (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) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : 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) {\n if (utils.isUndefined(value)) return;\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 = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\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 '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/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 ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\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 all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\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} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\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 *\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 {Boolean} `true` if the interceptor was removed, `false` otherwise\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};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default FormData;\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\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 isStandardBrowserEnv = (() => {\n let product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n})();\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 */\n const isStandardBrowserWebWorkerEnv = (() => {\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\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n isStandardBrowserEnv,\n isStandardBrowserWebWorkerEnv,\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\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 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] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!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 DEFAULT_CONTENT_TYPE = {\n 'Content-Type': undefined\n};\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\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [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 if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(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 if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.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 transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\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 }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\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(), Object.assign({\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","'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', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', '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 && 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';\nimport parseHeaders from '../helpers/parseHeaders.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) : 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\nfunction isValidHeaderName(str) {\n return /^[-_a-zA-Z]+$/.test(str.trim());\n}\n\nfunction matchHeaderValue(context, value, header, filter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, 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.trim()\n .toLowerCase().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 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(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\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 {\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 !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\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)) {\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 && value !== false && (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()).map(([header, value]) => header + ': ' + value).join('\\n');\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 = this[$internals] = (this[$internals] = {\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(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\nutils.freezeMethods(AxiosHeaders.prototype);\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\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';\nimport utils from '../utils.js';\n\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 */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\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) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\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 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 platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.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 speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n 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 && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n const responseType = config.responseType;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv)) {\n requestHeaders.setContentType(false); // Let the browser set it\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), 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 = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : 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(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\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 (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\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\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\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 if (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\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(requestHeaders.toJSON(), 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 (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\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 request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\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","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if(fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) {\n break;\n }\n }\n\n if (!adapter) {\n if (adapter === false) {\n throw new AxiosError(\n `Adapter ${nameOrAdapter} is not supported by the environment`,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n throw new Error(\n utils.hasOwnProp(knownAdapters, nameOrAdapter) ?\n `Adapter '${nameOrAdapter}' is not available in the build` :\n `Unknown adapter '${nameOrAdapter}'`\n );\n }\n\n if (!utils.isFunction(adapter)) {\n throw new TypeError('adapter is not a function');\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\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 [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\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\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(\n config,\n config.transformRequest\n );\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);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : 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 const config = {};\n\n function getMergedValue(target, source, 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 // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, 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 (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\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 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 responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.3.1\";","'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 '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\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\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 const validator = schema[opt];\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('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\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';\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 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(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer !== undefined) {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n let contextHeaders;\n\n // Flatten headers\n contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n contextHeaders && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\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 requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\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.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, 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 i = 0;\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);\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(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\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 /**\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};\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 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.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 * var 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 mergeConfig\n} = axios;\n\nexport {\n axios as default,\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 mergeConfig\n}\n"],"names":["bind","fn","thisArg","apply","arguments","toString","Object","prototype","getPrototypeOf","kindOf","cache","create","thing","str","call","slice","toLowerCase","kindOfTest","type","typeOfTest","isArray","Array","isUndefined","isArrayBuffer","isString","isFunction","isNumber","isObject","isPlainObject","val","Symbol","toStringTag","iterator","isDate","isFile","isBlob","isFileList","isURLSearchParams","forEach","obj","allOwnKeys","i","l","length","keys","getOwnPropertyNames","len","key","findKey","_key","_global","globalThis","self","window","global","isContextDefined","context","isTypedArray","TypedArray","Uint8Array","isHTMLForm","hasOwnProperty","prop","isRegExp","reduceDescriptors","reducer","descriptors","getOwnPropertyDescriptors","reducedDescriptors","descriptor","name","defineProperties","ALPHA","ALPHABET","DIGIT","ALPHA_DIGIT","toUpperCase","utils","isBuffer","constructor","isFormData","pattern","FormData","isArrayBufferView","result","ArrayBuffer","isView","buffer","isBoolean","isStream","pipe","merge","caseless","this","assignValue","targetKey","extend","a","b","trim","replace","stripBOM","content","charCodeAt","inherits","superConstructor","props","defineProperty","value","assign","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","String","undefined","lastIndex","indexOf","toArray","arr","forEachEntry","next","done","pair","matchAll","regExp","matches","exec","push","hasOwnProp","freezeMethods","enumerable","writable","set","Error","toObjectSet","arrayOrString","delimiter","define","split","toCamelCase","m","p1","p2","noop","toFiniteNumber","defaultValue","Number","isFinite","generateString","size","alphabet","Math","random","isSpecCompliantForm","append","toJSONObject","stack","visit","source","target","reducedValue","AxiosError","message","code","config","request","response","captureStackTrace","toJSON","description","number","fileName","lineNumber","columnNumber","status","from","error","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","path","dots","concat","map","token","join","predicates","test","toFormData","formData","options","TypeError","metaTokens","indexes","option","visitor","defaultVisitor","useBlob","Blob","convertValue","toISOString","Buffer","JSON","stringify","some","isFlatArray","el","index","exposedHelpers","build","pop","encode","charMap","encodeURIComponent","match","AxiosURLSearchParams","params","_pairs","buildURL","url","_encode","serializeFn","serialize","serializedParams","hashmarkIndex","encoder","InterceptorManager$1","handlers","use","fulfilled","rejected","synchronous","runWhen","eject","id","clear","h","transitionalDefaults","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","URLSearchParams$1","URLSearchParams","FormData$1","isStandardBrowserEnv","product","navigator","document","isStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","platform","isBrowser","classes","protocols","formDataToJSON","buildPath","isNumericKey","isLast","arrayToObject","entries","parsePropPath","DEFAULT_CONTENT_TYPE","defaults","transitional","adapter","transformRequest","data","headers","contentType","getContentType","hasJSONContentType","isObjectPayload","setContentType","helpers","isNode","toURLEncodedForm","formSerializer","_FormData","env","rawValue","parser","parse","e","stringifySafely","transformResponse","JSONRequested","responseType","strictJSONParsing","ERR_BAD_RESPONSE","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","Accept","method","defaults$1","ignoreDuplicateOf","$internals","normalizeHeader","header","normalizeValue","matchHeaderValue","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","rawHeaders","parsed","line","substring","parseHeaders","get","tokens","tokensRE","parseTokens","has","matcher","delete","deleted","deleteHeader","normalize","format","normalized","w","char","formatHeader","targets","asStrings","static","first","computed","accessors","defineAccessor","accessorName","methodName","arg1","arg2","arg3","configurable","buildAccessors","accessor","AxiosHeaders$2","transformData","fns","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","cookies","write","expires","domain","secure","cookie","Date","toGMTString","read","RegExp","decodeURIComponent","remove","now","buildFullPath","baseURL","requestedURL","relativeURL","combineURLs","isURLSameOrigin","msie","userAgent","urlParsingNode","createElement","originURL","resolveURL","href","setAttribute","protocol","host","search","hash","hostname","port","pathname","charAt","location","requestURL","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","samplesCount","min","bytes","timestamps","firstSampleTS","head","tail","chunkLength","startedAt","bytesCount","passed","round","speedometer","loaded","total","lengthComputable","progressBytes","rate","progress","estimated","event","knownAdapters","http","xhr","XMLHttpRequest","Promise","resolve","reject","requestData","requestHeaders","onCanceled","cancelToken","unsubscribe","signal","removeEventListener","auth","username","password","unescape","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","ERR_BAD_REQUEST","floor","settle","err","responseText","statusText","open","paramsSerializer","onreadystatechange","readyState","responseURL","setTimeout","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","ETIMEDOUT","xsrfValue","withCredentials","setRequestHeader","onDownloadProgress","addEventListener","onUploadProgress","upload","cancel","abort","subscribe","aborted","parseProtocol","send","adapters","nameOrAdapter","throwIfCancellationRequested","throwIfRequested","dispatchRequest","then","reason","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","configValue","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","ERR_DEPRECATED","console","warn","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","InterceptorManager","configOrUrl","contextHeaders","boolean","function","requestInterceptorChain","synchronousRequestInterceptors","interceptor","unshift","responseInterceptorChain","promise","chain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","Axios$2","CancelToken","executor","resolvePromise","_listeners","onfulfilled","_resolve","splice","c","CancelToken$2","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","HttpStatusCode$2","axios","createInstance","defaultConfig","instance","VERSION","Cancel","all","promises","spread","callback","isAxiosError","payload","formToJSON","default","axios$1"],"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 new file mode 100644 index 0000000..cbb0c2d --- /dev/null +++ b/node_modules/axios/dist/node/axios.cjs @@ -0,0 +1,4178 @@ +// Axios v1.3.1 Copyright (c) 2023 Matt Zabriskie and contributors +'use strict'; + +const FormData$1 = require('form-data'); +const url = require('url'); +const proxyFromEnv = require('proxy-from-env'); +const http = require('http'); +const https = require('https'); +const util = require('util'); +const followRedirects = require('follow-redirects'); +const zlib = require('zlib'); +const stream = require('stream'); +const EventEmitter = require('events'); + +function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + +const FormData__default = /*#__PURE__*/_interopDefaultLegacy(FormData$1); +const url__default = /*#__PURE__*/_interopDefaultLegacy(url); +const http__default = /*#__PURE__*/_interopDefaultLegacy(http); +const https__default = /*#__PURE__*/_interopDefaultLegacy(https); +const util__default = /*#__PURE__*/_interopDefaultLegacy(util); +const followRedirects__default = /*#__PURE__*/_interopDefaultLegacy(followRedirects); +const zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib); +const stream__default = /*#__PURE__*/_interopDefaultLegacy(stream); +const EventEmitter__default = /*#__PURE__*/_interopDefaultLegacy(EventEmitter); + +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 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 an Array + * + * @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) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val); +}; + +/** + * 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 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 File, 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 + */ +const isFormData = (thing) => { + const pattern = '[object FormData]'; + return thing && ( + (typeof FormData === 'function' && thing instanceof FormData) || + toString.call(thing) === pattern || + (isFunction(thing.toString) && thing.toString() === pattern) + ); +}; + +/** + * 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'); + +/** + * 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) => 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 {Boolean} [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 { + // 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); + } + } +} + +function findKey(obj, key) { + 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 + * var 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(/* obj1, obj2, obj3, ... */) { + const {caseless} = isContextDefined(this) && this || {}; + const result = {}; + const assignValue = (val, key) => { + const targetKey = caseless && findKey(result, key) || key; + if (isPlainObject(result[targetKey]) && isPlainObject(val)) { + result[targetKey] = merge(result[targetKey], val); + } else if (isPlainObject(val)) { + result[targetKey] = merge({}, val); + } else if (isArray(val)) { + result[targetKey] = val.slice(); + } else { + result[targetKey] = val; + } + }; + + for (let i = 0, l = arguments.length; i < l; i++) { + arguments[i] && forEach(arguments[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 {Boolean} [allOwnKeys] + * @returns {Object} The resulting value of object a + */ +const extend = (a, b, thisArg, {allOwnKeys}= {}) => { + forEach(b, (val, key) => { + if (thisArg && isFunction(val)) { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }, {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); + constructor.prototype.constructor = constructor; + Object.defineProperty(constructor, 'super', { + 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[Symbol.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) => { + if (reducer(descriptor, name, obj) !== false) { + reducedDescriptors[name] = 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'].indexOf(name) !== -1) { + 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 + '\''); + }; + } + }); +}; + +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) => { + value = +value; + return Number.isFinite(value) ? value : defaultValue; +}; + +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; + while (size--) { + str += alphabet[Math.random() * length|0]; + } + + return str; +}; + +/** + * 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[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]); +} + +const toJSONObject = (obj) => { + const stack = new Array(10); + + const visit = (source, i) => { + + if (isObject(source)) { + if (stack.indexOf(source) >= 0) { + return; + } + + if(!('toJSON' in source)) { + stack[i] = source; + const target = isArray(source) ? [] : {}; + + forEach(source, (value, key) => { + const reducedValue = visit(value, i + 1); + !isUndefined(reducedValue) && (target[key] = reducedValue); + }); + + stack[i] = undefined; + + return target; + } + } + + return source; + }; + + return visit(obj, 0); +}; + +const utils = { + isArray, + isArrayBuffer, + isBuffer, + isFormData, + isArrayBufferView, + isString, + isNumber, + isBoolean, + isObject, + isPlainObject, + isUndefined, + isDate, + isFile, + 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, + ALPHABET, + generateString, + isSpecCompliantForm, + toJSONObject +}; + +/** + * 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) { + Error.call(this); + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + this.stack = (new Error()).stack; + } + + this.message = message; + this.name = 'AxiosError'; + code && (this.code = code); + config && (this.config = config); + request && (this.request = request); + response && (this.response = response); +} + +utils.inherits(AxiosError, Error, { + toJSON: function toJSON() { + 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: utils.toJSONObject(this.config), + code: this.code, + status: this.response && this.response.status ? this.response.status : null + }; + } +}); + +const prototype$1 = AxiosError.prototype; +const descriptors = {}; + +[ + 'ERR_BAD_OPTION_VALUE', + 'ERR_BAD_OPTION', + 'ECONNABORTED', + 'ETIMEDOUT', + 'ERR_NETWORK', + 'ERR_FR_TOO_MANY_REDIRECTS', + 'ERR_DEPRECATED', + 'ERR_BAD_RESPONSE', + 'ERR_BAD_REQUEST', + 'ERR_CANCELED', + 'ERR_NOT_SUPPORT', + 'ERR_INVALID_URL' +// eslint-disable-next-line func-names +].forEach(code => { + descriptors[code] = {value: code}; +}); + +Object.defineProperties(AxiosError, descriptors); +Object.defineProperty(prototype$1, 'isAxiosError', {value: true}); + +// eslint-disable-next-line func-names +AxiosError.from = (error, code, config, request, response, customProps) => { + const axiosError = Object.create(prototype$1); + + utils.toFlatObject(error, axiosError, function filter(obj) { + return obj !== Error.prototype; + }, prop => { + return prop !== 'isAxiosError'; + }); + + AxiosError.call(axiosError, error.message, code, config, request, response); + + axiosError.cause = error; + + axiosError.name = error.name; + + customProps && Object.assign(axiosError, customProps); + + return axiosError; +}; + +/** + * 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 (FormData__default["default"] || 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 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 (!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 (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) { + if (utils.isUndefined(value)) return; + + 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]); + } + }); + + stack.pop(); + } + + if (!utils.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': '+', + '%00': '\x00' + }; + return encodeURIComponent(str).replace(/[!'()~]|%20|%00/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 all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their + * URI encoded 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, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); +} + +/** + * 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} options + * + * @returns {string} The formatted url + */ +function buildURL(url, params, options) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + + const _encode = options && options.encode || encode; + + 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; +} + +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` + * + * @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 {Boolean} `true` if the interceptor was removed, `false` otherwise + */ + 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); + } + }); + } +} + +const InterceptorManager$1 = InterceptorManager; + +const transitionalDefaults = { + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false +}; + +const URLSearchParams = url__default["default"].URLSearchParams; + +const platform = { + isNode: true, + classes: { + URLSearchParams, + FormData: FormData__default["default"], + Blob: typeof Blob !== 'undefined' && Blob || null + }, + protocols: [ 'http', 'https', 'file', 'data' ] +}; + +function toURLEncodedForm(data, options) { + return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({ + visitor: function(value, key, path, helpers) { + if (utils.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.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++]; + 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] = [target[name], value]; + } else { + target[name] = value; + } + + return !isNumericKey; + } + + if (!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; +} + +const DEFAULT_CONTENT_TYPE = { + 'Content-Type': 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'], + + 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) { + if (!hasJSONContentType) { + return data; + } + return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data; + } + + if (utils.isArrayBuffer(data) || + utils.isBuffer(data) || + utils.isStream(data) || + utils.isFile(data) || + utils.isBlob(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) { + if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { + return toURLEncodedForm(data, this.formSerializer).toString(); + } + + if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) { + const _FormData = this.env && this.env.FormData; + + return toFormData( + isFileList ? {'files[]': data} : data, + _FormData && new _FormData(), + this.formSerializer + ); + } + } + + if (isObjectPayload || hasJSONContentType ) { + headers.setContentType('application/json', false); + return stringifySafely(data); + } + + return data; + }], + + transformResponse: [function transformResponse(data) { + const transitional = this.transitional || defaults.transitional; + const forcedJSONParsing = transitional && transitional.forcedJSONParsing; + const JSONRequested = this.responseType === 'json'; + + if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) { + const silentJSONParsing = transitional && transitional.silentJSONParsing; + const strictJSONParsing = !silentJSONParsing && JSONRequested; + + try { + return JSON.parse(data); + } catch (e) { + if (strictJSONParsing) { + if (e.name === 'SyntaxError') { + throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, 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, */*' + } + } +}; + +utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { + defaults.headers[method] = {}; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); +}); + +const defaults$1 = defaults; + +// 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 + */ +const 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; +}; + +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) : 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; +} + +function isValidHeaderName(str) { + return /^[-_a-zA-Z]+$/.test(str.trim()); +} + +function matchHeaderValue(context, value, header, filter) { + if (utils.isFunction(filter)) { + return filter.call(this, 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, { + 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 { + 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)) { + 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'); + } + + 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']); + +utils.freezeMethods(AxiosHeaders.prototype); +utils.freezeMethods(AxiosHeaders); + +const AxiosHeaders$1 = AxiosHeaders; + +/** + * 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$1; + const context = response || config; + const headers = AxiosHeaders$1.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; +} + +function isCancel(value) { + return !!(value && value.__CANCEL__); +} + +/** + * 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) { + // eslint-disable-next-line no-eq-null,eqeqeq + AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request); + this.name = 'CanceledError'; +} + +utils.inherits(CanceledError, AxiosError, { + __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, + [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], + 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. + 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) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +} + +const VERSION = "1.3.1"; + +function parseProtocol(url) { + const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); + return match && match[1] || ''; +} + +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 mime = match[1]; + const isBase64 = match[2]; + const body = match[3]; + const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8'); + + 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); +} + +/** + * Throttle decorator + * @param {Function} fn + * @param {Number} freq + * @return {Function} + */ +function throttle(fn, freq) { + let timestamp = 0; + const threshold = 1000 / freq; + let timer = null; + return function throttled(force, args) { + const now = Date.now(); + if (force || now - timestamp > threshold) { + if (timer) { + clearTimeout(timer); + timer = null; + } + timestamp = now; + return fn.apply(null, args); + } + if (!timer) { + timer = setTimeout(() => { + timer = null; + timestamp = Date.now(); + return fn.apply(null, args); + }, threshold - (now - timestamp)); + } + }; +} + +/** + * 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; + }; +} + +const kInternals = Symbol('internals'); + +class AxiosTransformStream extends stream__default["default"].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 self = this; + + const internals = this[kInternals] = { + length: options.length, + timeWindow: options.timeWindow, + ticksRate: options.ticksRate, + chunkSize: options.chunkSize, + maxRate: options.maxRate, + minChunkSize: options.minChunkSize, + bytesSeen: 0, + isCaptured: false, + notifiedBytesLoaded: 0, + ts: Date.now(), + bytes: 0, + onReadCallback: null + }; + + const _speedometer = speedometer(internals.ticksRate * options.samplesCount, internals.timeWindow); + + this.on('newListener', event => { + if (event === 'progress') { + if (!internals.isCaptured) { + internals.isCaptured = true; + } + } + }); + + let bytesNotified = 0; + + internals.updateProgress = throttle(function throttledHandler() { + const totalBytes = internals.length; + const bytesTransferred = internals.bytesSeen; + const progressBytes = bytesTransferred - bytesNotified; + if (!progressBytes || self.destroyed) return; + + const rate = _speedometer(progressBytes); + + bytesNotified = bytesTransferred; + + process.nextTick(() => { + self.emit('progress', { + 'loaded': bytesTransferred, + 'total': totalBytes, + 'progress': totalBytes ? (bytesTransferred / totalBytes) : undefined, + 'bytes': progressBytes, + 'rate': rate ? rate : undefined, + 'estimated': rate && totalBytes && bytesTransferred <= totalBytes ? + (totalBytes - bytesTransferred) / rate : undefined + }); + }); + }, internals.ticksRate); + + const onFinish = () => { + internals.updateProgress(true); + }; + + this.once('end', onFinish); + this.once('error', onFinish); + } + + _read(size) { + const internals = this[kInternals]; + + if (internals.onReadCallback) { + internals.onReadCallback(); + } + + return super._read(size); + } + + _transform(chunk, encoding, callback) { + const self = this; + 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; + + function pushChunk(_chunk, _callback) { + const bytes = Buffer.byteLength(_chunk); + internals.bytesSeen += bytes; + internals.bytes += bytes; + + if (internals.isCaptured) { + internals.updateProgress(); + } + + if (self.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); + } + }); + } + + setLength(length) { + this[kInternals].length = +length; + return this; + } +} + +const AxiosTransformStream$1 = AxiosTransformStream; + +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 readBlob$1 = readBlob; + +const BOUNDARY_ALPHABET = utils.ALPHABET.ALPHA_DIGIT + '-_'; + +const textEncoder = new 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 { + headers += `Content-Type: ${value.type || "application/octet-stream"}${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$1(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 + '-' + utils.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 10-70 characters long') + } + + const boundaryBytes = textEncoder.encode('--' + boundary + CRLF); + const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF + 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 stream.Readable.from((async function *() { + for(const part of parts) { + yield boundaryBytes; + yield* part.encode(); + } + + yield footerBytes; + })()); +}; + +const formDataToStream$1 = formDataToStream; + +class ZlibHeaderTransformStream extends stream__default["default"].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 ZlibHeaderTransformStream$1 = ZlibHeaderTransformStream; + +const zlibOptions = { + flush: zlib__default["default"].constants.Z_SYNC_FLUSH, + finishFlush: zlib__default["default"].constants.Z_SYNC_FLUSH +}; + +const brotliOptions = { + flush: zlib__default["default"].constants.BROTLI_OPERATION_FLUSH, + finishFlush: zlib__default["default"].constants.BROTLI_OPERATION_FLUSH +}; + +const isBrotliSupported = utils.isFunction(zlib__default["default"].createBrotliDecompress); + +const {http: httpFollow, https: httpsFollow} = followRedirects__default["default"]; + +const isHttps = /https:?/; + +const supportedProtocols = platform.protocols.map(protocol => { + return protocol + ':'; +}); + +/** + * 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) { + if (options.beforeRedirects.proxy) { + options.beforeRedirects.proxy(options); + } + if (options.beforeRedirects.config) { + options.beforeRedirects.config(options); + } +} + +/** + * 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) { + let proxy = configProxy; + if (!proxy && proxy !== false) { + const proxyUrl = proxyFromEnv.getProxyForUrl(location); + if (proxyUrl) { + proxy = new URL(proxyUrl); + } + } + if (proxy) { + // Basic proxy authorization + if (proxy.username) { + proxy.auth = (proxy.username || '') + ':' + (proxy.password || ''); + } + + if (proxy.auth) { + // Support proxy auth object form + if (proxy.auth.username || proxy.auth.password) { + proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || ''); + } + const base64 = Buffer + .from(proxy.auth, 'utf8') + .toString('base64'); + options.headers['Proxy-Authorization'] = 'Basic ' + base64; + } + + options.headers.host = options.hostname + (options.port ? ':' + options.port : ''); + const proxyHost = proxy.hostname || proxy.host; + options.hostname = proxyHost; + // Replace 'host' since options is not a URL object + options.host = proxyHost; + options.port = proxy.port; + options.path = location; + if (proxy.protocol) { + options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`; + } + } + + 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); + }; +} + +const isHttpAdapterSupported = typeof process !== 'undefined' && utils.kindOf(process) === 'process'; + +/*eslint consistent-return:0*/ +const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) { + /*eslint no-async-promise-executor:0*/ + return new Promise(async function dispatchHttpRequest(resolvePromise, rejectPromise) { + let data = config.data; + const responseType = config.responseType; + const responseEncoding = config.responseEncoding; + const method = config.method.toUpperCase(); + let isFinished; + let isDone; + let rejected = false; + let req; + + // temporary internal emitter until the AxiosRequest class will be implemented + const emitter = new EventEmitter__default["default"](); + + function onFinished() { + if (isFinished) return; + isFinished = true; + + if (config.cancelToken) { + config.cancelToken.unsubscribe(abort); + } + + if (config.signal) { + config.signal.removeEventListener('abort', abort); + } + + emitter.removeAllListeners(); + } + + function done(value, isRejected) { + if (isDone) return; + + isDone = true; + + if (isRejected) { + rejected = true; + onFinished(); + } + + isRejected ? rejectPromise(value) : resolvePromise(value); + } + + const resolve = function resolve(value) { + done(value); + }; + + const reject = function reject(value) { + done(value, true); + }; + + function abort(reason) { + emitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason); + } + + emitter.once('abort', reject); + + if (config.cancelToken || config.signal) { + config.cancelToken && config.cancelToken.subscribe(abort); + if (config.signal) { + config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort); + } + } + + // Parse url + const fullPath = buildFullPath(config.baseURL, config.url); + const parsed = new URL(fullPath); + const protocol = parsed.protocol || supportedProtocols[0]; + + if (protocol === 'data:') { + 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__default["default"].Readable.from(convertedData); + } + + return settle(resolve, reject, { + data: convertedData, + status: 200, + statusText: 'OK', + headers: new AxiosHeaders$1(), + config + }); + } + + if (supportedProtocols.indexOf(protocol) === -1) { + return reject(new AxiosError( + 'Unsupported protocol ' + protocol, + AxiosError.ERR_BAD_REQUEST, + config + )); + } + + const headers = AxiosHeaders$1.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 onDownloadProgress = config.onDownloadProgress; + const onUploadProgress = config.onUploadProgress; + 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$1(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)) { + headers.set(data.getHeaders()); + + if (!headers.hasContentLength()) { + try { + const knownLength = await util__default["default"].promisify(data.getLength).call(data); + headers.setContentLength(knownLength); + /*eslint no-empty:0*/ + } catch (e) { + } + } + } else if (utils.isBlob(data)) { + data.size && headers.setContentType(data.type || 'application/octet-stream'); + headers.setContentLength(data.size || 0); + data = stream__default["default"].Readable.from(readBlob$1(data)); + } else if (data && !utils.isStream(data)) { + if (Buffer.isBuffer(data)) ; 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__default["default"].Readable.from(data, {objectMode: false}); + } + + data = stream__default["default"].pipeline([data, new AxiosTransformStream$1({ + length: contentLength, + maxRate: utils.toFiniteNumber(maxUploadRate) + })], utils.noop); + + onUploadProgress && data.on('progress', progress => { + onUploadProgress(Object.assign(progress, { + upload: true + })); + }); + } + + // HTTP basic authentication + let auth = undefined; + if (config.auth) { + const username = config.auth.username || ''; + const password = config.auth.password || ''; + auth = username + ':' + password; + } + + if (!auth && parsed.username) { + const urlUsername = parsed.username; + const urlPassword = 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 + ); + + const options = { + path, + method: method, + headers: headers.toJSON(), + agents: { http: config.httpAgent, https: config.httpsAgent }, + auth, + protocol, + beforeRedirect: dispatchBeforeRedirect, + beforeRedirects: {} + }; + + if (config.socketPath) { + options.socketPath = config.socketPath; + } else { + options.hostname = parsed.hostname; + options.port = parsed.port; + setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path); + } + + let transport; + const isHttpsRequest = isHttps.test(options.protocol); + options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent; + if (config.transport) { + transport = config.transport; + } else if (config.maxRedirects === 0) { + transport = isHttpsRequest ? https__default["default"] : http__default["default"]; + } else { + if (config.maxRedirects) { + options.maxRedirects = config.maxRedirects; + } + if (config.beforeRedirect) { + options.beforeRedirects.config = config.beforeRedirect; + } + 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; + } + + if (config.insecureHTTPParser) { + options.insecureHTTPParser = config.insecureHTTPParser; + } + + // Create the request + req = transport.request(options, function handleResponse(res) { + if (req.destroyed) return; + + const streams = [res]; + + const responseLength = +res.headers['content-length']; + + if (onDownloadProgress) { + const transformStream = new AxiosTransformStream$1({ + length: utils.toFiniteNumber(responseLength), + maxRate: utils.toFiniteNumber(maxDownloadRate) + }); + + onDownloadProgress && transformStream.on('progress', progress => { + onDownloadProgress(Object.assign(progress, { + download: true + })); + }); + + 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']) { + /*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__default["default"].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$1()); + + // add the unzipper to the body stream processing pipeline + streams.push(zlib__default["default"].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__default["default"].createBrotliDecompress(brotliOptions)); + delete res.headers['content-encoding']; + } + } + } + + responseStream = streams.length > 1 ? stream__default["default"].pipeline(streams, utils.noop) : streams[0]; + + const offListeners = stream__default["default"].finished(responseStream, () => { + offListeners(); + onFinished(); + }); + + const response = { + status: res.statusCode, + statusText: res.statusMessage, + headers: new AxiosHeaders$1(res.headers), + config, + request: lastRequest + }; + + if (responseType === 'stream') { + 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(); + reject(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( + 'maxContentLength size of ' + config.maxContentLength + ' exceeded', + AxiosError.ERR_BAD_RESPONSE, + config, + lastRequest + ); + responseStream.destroy(err); + reject(err); + }); + + responseStream.on('error', function handleStreamError(err) { + if (req.destroyed) return; + reject(AxiosError.from(err, null, config, lastRequest)); + }); + + 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) { + reject(AxiosError.from(err, null, config, response.request, response)); + } + settle(resolve, reject, response); + }); + } + + emitter.once('abort', err => { + if (!responseStream.destroyed) { + responseStream.emit('error', err); + responseStream.destroy(); + } + }); + }); + + emitter.once('abort', err => { + reject(err); + req.destroy(err); + }); + + // Handle errors + req.on('error', function handleRequestError(err) { + // @todo remove + // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return; + reject(AxiosError.from(err, null, config, req)); + }); + + // set tcp keep alive to prevent drop connection by peer + req.on('socket', function handleRequestSocket(socket) { + // default interval of sending ack packet is 1 minute + socket.setKeepAlive(true, 1000 * 60); + }); + + // 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 (isNaN(timeout)) { + reject(new AxiosError( + 'error trying to parse `config.timeout` to int', + AxiosError.ERR_BAD_OPTION_VALUE, + config, + req + )); + + return; + } + + // 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, function handleRequestTimeout() { + if (isDone) return; + 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, + req + )); + abort(); + }); + } + + + // 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)); + } + }); + + data.pipe(req); + } else { + req.end(data); + } + }); +}; + +const cookies = platform.isStandardBrowserEnv ? + +// Standard browser envs support document.cookie + (function standardBrowserEnv() { + return { + write: function write(name, value, expires, path, domain, secure) { + const cookie = []; + cookie.push(name + '=' + encodeURIComponent(value)); + + if (utils.isNumber(expires)) { + cookie.push('expires=' + new Date(expires).toGMTString()); + } + + if (utils.isString(path)) { + cookie.push('path=' + path); + } + + if (utils.isString(domain)) { + cookie.push('domain=' + domain); + } + + if (secure === true) { + cookie.push('secure'); + } + + document.cookie = cookie.join('; '); + }, + + read: function read(name) { + const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return (match ? decodeURIComponent(match[3]) : null); + }, + + remove: function remove(name) { + this.write(name, '', Date.now() - 86400000); + } + }; + })() : + +// Non standard browser env (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return { + write: function write() {}, + read: function read() { return null; }, + remove: function remove() {} + }; + })(); + +const isURLSameOrigin = platform.isStandardBrowserEnv ? + +// Standard browser envs have full support of the APIs needed to test +// whether the request URL is of the same origin as current location. + (function standardBrowserEnv() { + const msie = /(msie|trident)/i.test(navigator.userAgent); + const urlParsingNode = document.createElement('a'); + let originURL; + + /** + * Parse a URL to discover it's components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + let href = url; + + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') ? + urlParsingNode.pathname : + '/' + urlParsingNode.pathname + }; + } + + originURL = resolveURL(window.location.href); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; + return (parsed.protocol === originURL.protocol && + parsed.host === originURL.host); + }; + })() : + + // Non standard browser envs (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + })(); + +function progressEventReducer(listener, isDownloadStream) { + let bytesNotified = 0; + const _speedometer = speedometer(50, 250); + + return e => { + const loaded = e.loaded; + const total = e.lengthComputable ? e.total : undefined; + const progressBytes = loaded - bytesNotified; + const rate = _speedometer(progressBytes); + const inRange = loaded <= total; + + bytesNotified = loaded; + + const data = { + loaded, + total, + progress: total ? (loaded / total) : undefined, + bytes: progressBytes, + rate: rate ? rate : undefined, + estimated: rate && total && inRange ? (total - loaded) / rate : undefined, + event: e + }; + + data[isDownloadStream ? 'download' : 'upload'] = true; + + listener(data); + }; +} + +const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; + +const xhrAdapter = isXHRAdapterSupported && function (config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + let requestData = config.data; + const requestHeaders = AxiosHeaders$1.from(config.headers).normalize(); + const responseType = config.responseType; + let onCanceled; + function done() { + if (config.cancelToken) { + config.cancelToken.unsubscribe(onCanceled); + } + + if (config.signal) { + config.signal.removeEventListener('abort', onCanceled); + } + } + + if (utils.isFormData(requestData) && (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv)) { + requestHeaders.setContentType(false); // Let the browser set it + } + + let request = new XMLHttpRequest(); + + // HTTP basic authentication + if (config.auth) { + const username = config.auth.username || ''; + const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ''; + requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password)); + } + + const fullPath = buildFullPath(config.baseURL, config.url); + + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), 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.indexOf('file:') === 0)) { + 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)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request)); + + // Clean up request + 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)); + + // Clean up request + request = null; + }; + + // 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.isStandardBrowserEnv) { + // Add xsrf header + const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) + && config.xsrfCookieName && cookies.read(config.xsrfCookieName); + + if (xsrfValue) { + requestHeaders.set(config.xsrfHeaderName, xsrfValue); + } + } + + // Remove Content-Type if data is undefined + requestData === undefined && requestHeaders.setContentType(null); + + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders.toJSON(), 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 (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true)); + } + + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress)); + } + + 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(); + request = null; + }; + + config.cancelToken && config.cancelToken.subscribe(onCanceled); + if (config.signal) { + config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled); + } + } + + const protocol = parseProtocol(fullPath); + + if (protocol && platform.protocols.indexOf(protocol) === -1) { + reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config)); + return; + } + + + // Send the request + request.send(requestData || null); + }); +}; + +const knownAdapters = { + http: httpAdapter, + xhr: xhrAdapter +}; + +utils.forEach(knownAdapters, (fn, value) => { + if(fn) { + try { + Object.defineProperty(fn, 'name', {value}); + } catch (e) { + // eslint-disable-next-line no-empty + } + Object.defineProperty(fn, 'adapterName', {value}); + } +}); + +const adapters = { + getAdapter: (adapters) => { + adapters = utils.isArray(adapters) ? adapters : [adapters]; + + const {length} = adapters; + let nameOrAdapter; + let adapter; + + for (let i = 0; i < length; i++) { + nameOrAdapter = adapters[i]; + if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) { + break; + } + } + + if (!adapter) { + if (adapter === false) { + throw new AxiosError( + `Adapter ${nameOrAdapter} is not supported by the environment`, + 'ERR_NOT_SUPPORT' + ); + } + + throw new Error( + utils.hasOwnProp(knownAdapters, nameOrAdapter) ? + `Adapter '${nameOrAdapter}' is not available in the build` : + `Unknown adapter '${nameOrAdapter}'` + ); + } + + if (!utils.isFunction(adapter)) { + throw new TypeError('adapter is not a function'); + } + + return adapter; + }, + 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$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$1.adapter); + + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData.call( + config, + config.transformResponse, + response + ); + + response.headers = AxiosHeaders$1.from(response.headers); + + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData.call( + config, + config.transformResponse, + reason.response + ); + reason.response.headers = AxiosHeaders$1.from(reason.response.headers); + } + } + + return Promise.reject(reason); + }); +} + +const headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? thing.toJSON() : 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 || {}; + const config = {}; + + function getMergedValue(target, source, 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; + } + + // eslint-disable-next-line consistent-return + function mergeDeepProperties(a, b, caseless) { + if (!utils.isUndefined(b)) { + return getMergedValue(a, b, caseless); + } else if (!utils.isUndefined(a)) { + return getMergedValue(undefined, a, 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 (prop in config2) { + return getMergedValue(a, b); + } else if (prop in config1) { + 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, + 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, + responseEncoding: defaultToConfig2, + validateStatus: mergeDirectKeys, + headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true) + }; + + utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) { + const merge = mergeMap[prop] || mergeDeepProperties; + const configValue = merge(config1[prop], config2[prop], prop); + (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue); + }); + + return config; +} + +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; + }; +}; + +/** + * 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]; + const validator = schema[opt]; + 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); + } + } +} + +const 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$1(), + response: new InterceptorManager$1() + }; + } + + /** + * 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 + */ + 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) + }, false); + } + + if (paramsSerializer !== undefined) { + validator.assertOptions(paramsSerializer, { + encode: validators.function, + serialize: validators.function + }, true); + } + + // Set config.method + config.method = (config.method || this.defaults.method || 'get').toLowerCase(); + + let contextHeaders; + + // Flatten headers + contextHeaders = headers && utils.merge( + headers.common, + headers[config.method] + ); + + contextHeaders && utils.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', '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; + + requestInterceptorChain.unshift(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.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; + + let newConfig = config; + + i = 0; + + 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); + 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'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + + 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(); + + Axios.prototype[method + 'Form'] = generateHTTPMethod(true); +}); + +const Axios$1 = Axios; + +/** + * 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); + } + } + + /** + * 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 + }; + } +} + +const CancelToken$1 = CancelToken; + +/** + * 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) {} + * var 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.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, +}; + +Object.entries(HttpStatusCode).forEach(([key, value]) => { + HttpStatusCode[value] = key; +}); + +const HttpStatusCode$1 = HttpStatusCode; + +/** + * 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.extend(instance, Axios$1.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$1); + +// Expose Axios class to allow class inheritance +axios.Axios = Axios$1; + +// Expose Cancel & CancelToken +axios.CanceledError = CanceledError; +axios.CancelToken = CancelToken$1; +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$1; + +axios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing); + +axios.HttpStatusCode = HttpStatusCode$1; + +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 new file mode 100644 index 0000000..555dea0 --- /dev/null +++ b/node_modules/axios/dist/node/axios.cjs.map @@ -0,0 +1 @@ +{"version":3,"file":"axios.cjs","sources":["../../lib/helpers/bind.js","../../lib/utils.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/helpers/toURLEncodedForm.js","../../lib/helpers/formDataToJSON.js","../../lib/defaults/index.js","../../lib/helpers/parseHeaders.js","../../lib/core/AxiosHeaders.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","../../lib/env/data.js","../../lib/helpers/parseProtocol.js","../../lib/helpers/fromDataURI.js","../../lib/helpers/throttle.js","../../lib/helpers/speedometer.js","../../lib/helpers/AxiosTransformStream.js","../../lib/helpers/readBlob.js","../../lib/helpers/formDataToStream.js","../../lib/helpers/ZlibHeaderTransformStream.js","../../lib/adapters/http.js","../../lib/helpers/cookies.js","../../lib/helpers/isURLSameOrigin.js","../../lib/adapters/xhr.js","../../lib/adapters/adapters.js","../../lib/core/dispatchRequest.js","../../lib/core/mergeConfig.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\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;\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 an Array\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 val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\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/**\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 (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\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 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 File, 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 */\nconst isFormData = (thing) => {\n const pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\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\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) => str.trim ?\n 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 {Boolean} [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 // 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\nfunction findKey(obj, key) {\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 * var 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(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[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 {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\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 constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\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/**\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[Symbol.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,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(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 if (reducer(descriptor, name, obj) !== false) {\n reducedDescriptors[name] = 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'].indexOf(name) !== -1) {\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\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 value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\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 while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\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 !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\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 ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject\n};\n","'use strict';\n\nimport utils from '../utils.js';\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 */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\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: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\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.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\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(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\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 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 (!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 (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) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : 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) {\n if (utils.isUndefined(value)) return;\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 = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\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 '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/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 ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\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 all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\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} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\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 *\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 {Boolean} `true` if the interceptor was removed, `false` otherwise\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};\n","'use strict';\n\nimport url from 'url';\nexport default url.URLSearchParams;\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\n\nexport default {\n isNode: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob: typeof Blob !== 'undefined' && Blob || null\n },\n protocols: [ 'http', 'https', 'file', 'data' ]\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(), Object.assign({\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","'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 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] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!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 DEFAULT_CONTENT_TYPE = {\n 'Content-Type': undefined\n};\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\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [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 if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(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 if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.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 transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\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 }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nexport default defaults;\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', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', '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 && 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';\nimport parseHeaders from '../helpers/parseHeaders.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) : 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\nfunction isValidHeaderName(str) {\n return /^[-_a-zA-Z]+$/.test(str.trim());\n}\n\nfunction matchHeaderValue(context, value, header, filter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, 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.trim()\n .toLowerCase().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 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(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\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 {\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 !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\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)) {\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 && value !== false && (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()).map(([header, value]) => header + ': ' + value).join('\\n');\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 = this[$internals] = (this[$internals] = {\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(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\nutils.freezeMethods(AxiosHeaders.prototype);\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\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';\nimport utils from '../utils.js';\n\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 */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\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 [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\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 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) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","export const VERSION = \"1.3.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\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 mime = match[1];\n const isBase64 = match[2];\n const body = match[3];\n const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8');\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\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 const threshold = 1000 / freq;\n let timer = null;\n return function throttled(force, args) {\n const now = Date.now();\n if (force || now - timestamp > threshold) {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n timestamp = now;\n return fn.apply(null, args);\n }\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n timestamp = Date.now();\n return fn.apply(null, args);\n }, threshold - (now - timestamp));\n }\n };\n}\n\nexport default throttle;\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","'use strict';\n\nimport stream from 'stream';\nimport utils from '../utils.js';\nimport throttle from './throttle.js';\nimport speedometer from './speedometer.js';\n\nconst kInternals = Symbol('internals');\n\nclass AxiosTransformStream extends stream.Transform{\n constructor(options) {\n options = utils.toFlatObject(options, {\n maxRate: 0,\n chunkSize: 64 * 1024,\n minChunkSize: 100,\n timeWindow: 500,\n ticksRate: 2,\n samplesCount: 15\n }, null, (prop, source) => {\n return !utils.isUndefined(source[prop]);\n });\n\n super({\n readableHighWaterMark: options.chunkSize\n });\n\n const self = this;\n\n const internals = this[kInternals] = {\n length: options.length,\n timeWindow: options.timeWindow,\n ticksRate: options.ticksRate,\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 const _speedometer = speedometer(internals.ticksRate * options.samplesCount, internals.timeWindow);\n\n this.on('newListener', event => {\n if (event === 'progress') {\n if (!internals.isCaptured) {\n internals.isCaptured = true;\n }\n }\n });\n\n let bytesNotified = 0;\n\n internals.updateProgress = throttle(function throttledHandler() {\n const totalBytes = internals.length;\n const bytesTransferred = internals.bytesSeen;\n const progressBytes = bytesTransferred - bytesNotified;\n if (!progressBytes || self.destroyed) return;\n\n const rate = _speedometer(progressBytes);\n\n bytesNotified = bytesTransferred;\n\n process.nextTick(() => {\n self.emit('progress', {\n 'loaded': bytesTransferred,\n 'total': totalBytes,\n 'progress': totalBytes ? (bytesTransferred / totalBytes) : undefined,\n 'bytes': progressBytes,\n 'rate': rate ? rate : undefined,\n 'estimated': rate && totalBytes && bytesTransferred <= totalBytes ?\n (totalBytes - bytesTransferred) / rate : undefined\n });\n });\n }, internals.ticksRate);\n\n const onFinish = () => {\n internals.updateProgress(true);\n };\n\n this.once('end', onFinish);\n this.once('error', onFinish);\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 self = this;\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 = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0;\n\n function pushChunk(_chunk, _callback) {\n const bytes = Buffer.byteLength(_chunk);\n internals.bytesSeen += bytes;\n internals.bytes += bytes;\n\n if (internals.isCaptured) {\n internals.updateProgress();\n }\n\n if (self.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(_chunk, chunkRemainder ? () => {\n process.nextTick(_callback, null, chunkRemainder);\n } : _callback);\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 setLength(length) {\n this[kInternals].length = +length;\n return this;\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 {Readable} from 'stream';\nimport utils from \"../utils.js\";\nimport readBlob from \"./readBlob.js\";\n\nconst BOUNDARY_ALPHABET = utils.ALPHABET.ALPHA_DIGIT + '-_';\n\nconst textEncoder = new 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 headers += `Content-Type: ${value.type || \"application/octet-stream\"}${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(/[\\r\\n\"]/g, (match) => ({\n '\\r' : '%0D',\n '\\n' : '%0A',\n '\"' : '%22',\n }[match]));\n }\n}\n\nconst formDataToStream = (form, headersHandler, options) => {\n const {\n tag = 'form-data-boundary',\n size = 25,\n boundary = tag + '-' + utils.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 10-70 characters long')\n }\n\n const boundaryBytes = textEncoder.encode('--' + boundary + CRLF);\n const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF + 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((async function *() {\n for(const part of parts) {\n yield boundaryBytes;\n yield* part.encode();\n }\n\n yield footerBytes;\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) { // 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","'use strict';\n\nimport 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 http from 'http';\nimport https from 'https';\nimport util from 'util';\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';\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:?/;\n\nconst supportedProtocols = platform.protocols.map(protocol => {\n return protocol + ':';\n});\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) {\n if (options.beforeRedirects.proxy) {\n options.beforeRedirects.proxy(options);\n }\n if (options.beforeRedirects.config) {\n options.beforeRedirects.config(options);\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) {\n let proxy = configProxy;\n if (!proxy && proxy !== false) {\n const proxyUrl = getProxyForUrl(location);\n if (proxyUrl) {\n proxy = new URL(proxyUrl);\n }\n }\n if (proxy) {\n // Basic proxy authorization\n if (proxy.username) {\n proxy.auth = (proxy.username || '') + ':' + (proxy.password || '');\n }\n\n if (proxy.auth) {\n // Support proxy auth object form\n if (proxy.auth.username || proxy.auth.password) {\n proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || '');\n }\n const base64 = Buffer\n .from(proxy.auth, 'utf8')\n .toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n options.headers.host = options.hostname + (options.port ? ':' + options.port : '');\n const proxyHost = proxy.hostname || proxy.host;\n options.hostname = proxyHost;\n // Replace 'host' since options is not a URL object\n options.host = proxyHost;\n options.port = proxy.port;\n options.path = location;\n if (proxy.protocol) {\n options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`;\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);\n };\n}\n\nconst isHttpAdapterSupported = typeof process !== 'undefined' && utils.kindOf(process) === 'process';\n\n/*eslint consistent-return:0*/\nexport default isHttpAdapterSupported && function httpAdapter(config) {\n /*eslint no-async-promise-executor:0*/\n return new Promise(async function dispatchHttpRequest(resolvePromise, rejectPromise) {\n let data = config.data;\n const responseType = config.responseType;\n const responseEncoding = config.responseEncoding;\n const method = config.method.toUpperCase();\n let isFinished;\n let isDone;\n let rejected = false;\n let req;\n\n // temporary internal emitter until the AxiosRequest class will be implemented\n const emitter = new EventEmitter();\n\n function onFinished() {\n if (isFinished) return;\n isFinished = true;\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 emitter.removeAllListeners();\n }\n\n function done(value, isRejected) {\n if (isDone) return;\n\n isDone = true;\n\n if (isRejected) {\n rejected = true;\n onFinished();\n }\n\n isRejected ? rejectPromise(value) : resolvePromise(value);\n }\n\n const resolve = function resolve(value) {\n done(value);\n };\n\n const reject = function reject(value) {\n done(value, true);\n };\n\n function abort(reason) {\n emitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason);\n }\n\n emitter.once('abort', reject);\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 // Parse url\n const fullPath = buildFullPath(config.baseURL, config.url);\n const parsed = new URL(fullPath);\n const protocol = parsed.protocol || supportedProtocols[0];\n\n if (protocol === 'data:') {\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(new AxiosError(\n 'Unsupported protocol ' + protocol,\n AxiosError.ERR_BAD_REQUEST,\n 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 onDownloadProgress = config.onDownloadProgress;\n const onUploadProgress = config.onUploadProgress;\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(data, (formHeaders) => {\n headers.set(formHeaders);\n }, {\n tag: `axios-${VERSION}-boundary`,\n boundary: userBoundary && userBoundary[1] || undefined\n });\n // support for https://www.npmjs.com/package/form-data api\n } else if (utils.isFormData(data) && utils.isFunction(data.getHeaders)) {\n headers.set(data.getHeaders());\n\n if (!headers.hasContentLength()) {\n try {\n const knownLength = await util.promisify(data.getLength).call(data);\n headers.setContentLength(knownLength);\n /*eslint no-empty:0*/\n } catch (e) {\n }\n }\n } else if (utils.isBlob(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(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 // 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(new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config\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([data, new AxiosTransformStream({\n length: contentLength,\n maxRate: utils.toFiniteNumber(maxUploadRate)\n })], utils.noop);\n\n onUploadProgress && data.on('progress', progress => {\n onUploadProgress(Object.assign(progress, {\n upload: true\n }));\n });\n }\n\n // HTTP basic authentication\n let auth = undefined;\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n if (!auth && parsed.username) {\n const urlUsername = parsed.username;\n const urlPassword = 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' : ''), false\n );\n\n const options = {\n path,\n method: method,\n headers: headers.toJSON(),\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth,\n protocol,\n beforeRedirect: dispatchBeforeRedirect,\n beforeRedirects: {}\n };\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname;\n options.port = parsed.port;\n setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n let transport;\n const isHttpsRequest = isHttps.test(options.protocol);\n options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsRequest ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n if (config.beforeRedirect) {\n options.beforeRedirects.config = config.beforeRedirect;\n }\n transport = isHttpsRequest ? httpsFollow : httpFollow;\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 if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n req = transport.request(options, function handleResponse(res) {\n if (req.destroyed) return;\n\n const streams = [res];\n\n const responseLength = +res.headers['content-length'];\n\n if (onDownloadProgress) {\n const transformStream = new AxiosTransformStream({\n length: utils.toFiniteNumber(responseLength),\n maxRate: utils.toFiniteNumber(maxDownloadRate)\n });\n\n onDownloadProgress && transformStream.on('progress', progress => {\n onDownloadProgress(Object.assign(progress, {\n download: true\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']) {\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 offListeners = stream.finished(responseStream, () => {\n offListeners();\n onFinished();\n });\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 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 reject(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE, config, lastRequest));\n }\n });\n\n responseStream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n\n const err = new AxiosError(\n 'maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n lastRequest\n );\n responseStream.destroy(err);\n reject(err);\n });\n\n responseStream.on('error', function handleStreamError(err) {\n if (req.destroyed) return;\n reject(AxiosError.from(err, null, config, lastRequest));\n });\n\n responseStream.on('end', function handleStreamEnd() {\n try {\n let responseData = 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 reject(AxiosError.from(err, null, config, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n\n emitter.once('abort', err => {\n if (!responseStream.destroyed) {\n responseStream.emit('error', err);\n responseStream.destroy();\n }\n });\n });\n\n emitter.once('abort', err => {\n reject(err);\n req.destroy(err);\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n // @todo remove\n // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return;\n reject(AxiosError.from(err, null, config, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\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\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 (isNaN(timeout)) {\n reject(new AxiosError(\n 'error trying to parse `config.timeout` to int',\n AxiosError.ERR_BAD_OPTION_VALUE,\n config,\n req\n ));\n\n return;\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, function handleRequestTimeout() {\n if (isDone) return;\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n req\n ));\n abort();\n });\n }\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 data.pipe(req);\n } else {\n req.end(data);\n }\n });\n}\n\nexport const __setProxy = setProxy;\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n const cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n// Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })();\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.isStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.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 speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n 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 && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n const responseType = config.responseType;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv)) {\n requestHeaders.setContentType(false); // Let the browser set it\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), 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 = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : 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(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\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 (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\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\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\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 if (platform.isStandardBrowserEnv) {\n // Add xsrf header\n const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath))\n && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\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(requestHeaders.toJSON(), 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 (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\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 request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if(fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) {\n break;\n }\n }\n\n if (!adapter) {\n if (adapter === false) {\n throw new AxiosError(\n `Adapter ${nameOrAdapter} is not supported by the environment`,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n throw new Error(\n utils.hasOwnProp(knownAdapters, nameOrAdapter) ?\n `Adapter '${nameOrAdapter}' is not available in the build` :\n `Unknown adapter '${nameOrAdapter}'`\n );\n }\n\n if (!utils.isFunction(adapter)) {\n throw new TypeError('adapter is not a function');\n }\n\n return adapter;\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(\n config,\n config.transformRequest\n );\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);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : 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 const config = {};\n\n function getMergedValue(target, source, 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 // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, 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 (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\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 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 responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\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 '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\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\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 const validator = schema[opt];\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('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\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';\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 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(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer !== undefined) {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n let contextHeaders;\n\n // Flatten headers\n contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n contextHeaders && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\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 requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\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.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, 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 i = 0;\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);\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(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\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 /**\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 * var 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};\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 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.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n"],"names":["prototype","PlatformFormData","encode","url","FormData","defaults","AxiosHeaders","stream","readBlob","Readable","zlib","followRedirects","getProxyForUrl","EventEmitter","formDataToStream","util","AxiosTransformStream","https","http","ZlibHeaderTransformStream","validators","InterceptorManager","Axios","CancelToken","HttpStatusCode"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/axios/index.d.cts b/node_modules/axios/index.d.cts new file mode 100644 index 0000000..0aee7aa --- /dev/null +++ b/node_modules/axios/index.d.cts @@ -0,0 +1,528 @@ +type AxiosHeaderValue = AxiosHeaders | string | string[] | number | boolean | null; + +interface RawAxiosHeaders { + [key: string]: AxiosHeaderValue; +} + +type MethodsHeaders = Partial<{ + [Key in axios.Method as Lowercase]: AxiosHeaders; +} & {common: AxiosHeaders}>; + +type AxiosHeaderMatcher = (this: AxiosHeaders, value: string, name: string, headers: RawAxiosHeaders) => boolean; + +type CommonRequestHeadersList = 'Accept' | 'Content-Length' | 'User-Agent'| 'Content-Encoding' | 'Authorization'; + +type ContentType = 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'; + +declare class AxiosHeaders { + constructor( + headers?: RawAxiosHeaders | AxiosHeaders + ); + + [key: string]: any; + + set(headerName?: string, value?: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + set(headers?: RawAxiosHeaders | AxiosHeaders, rewrite?: boolean): AxiosHeaders; + + get(headerName: string, parser: RegExp): RegExpExecArray | null; + get(headerName: string, matcher?: true | AxiosHeaderMatcher): AxiosHeaderValue; + + has(header: string, matcher?: true | 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; + + [Symbol.iterator](): IterableIterator<[string, 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; + 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 ECONNABORTED = "ECONNABORTED"; + 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; +} + +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; + + type RawAxiosRequestHeaders = Partial; + + type AxiosRequestHeaders = RawAxiosRequestHeaders & AxiosHeaders; + + type RawCommonResponseHeaders = { + [Key in CommonResponseHeadersList]: 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?: { + username: string; + password: string; + }; + protocol?: string; + } + + type Method = + | 'get' | 'GET' + | 'delete' | 'DELETE' + | 'head' | 'HEAD' + | 'options' | 'OPTIONS' + | 'post' | 'POST' + | 'put' | 'PUT' + | 'patch' | 'PATCH' + | 'purge' | 'PURGE' + | 'link' | 'LINK' + | 'unlink' | 'UNLINK'; + + type ResponseType = + | 'arraybuffer' + | 'blob' + | 'document' + | 'json' + | 'text' + | 'stream'; + + type responseEncoding = + | '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'; + + interface TransitionalOptions { + silentJSONParsing?: boolean; + forcedJSONParsing?: boolean; + clarifyTimeoutError?: 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; + + type BrowserProgressEvent = any; + + interface AxiosProgressEvent { + loaded: number; + total?: number; + progress?: number; + bytes: number; + rate?: number; + estimated?: number; + upload?: boolean; + download?: boolean; + event?: BrowserProgressEvent; + } + + type Milliseconds = number; + + type AxiosAdapterName = 'xhr' | 'http' | string; + + type AxiosAdapterConfig = AxiosAdapter | AxiosAdapterName; + + interface AxiosRequestConfig { + url?: string; + method?: Method | string; + baseURL?: string; + transformRequest?: AxiosRequestTransformer | AxiosRequestTransformer[]; + transformResponse?: AxiosResponseTransformer | AxiosResponseTransformer[]; + headers?: (RawAxiosRequestHeaders & MethodsHeaders) | AxiosHeaders; + params?: any; + paramsSerializer?: ParamsSerializerOptions; + 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}) => void; + socketPath?: string | null; + httpAgent?: any; + httpsAgent?: any; + proxy?: AxiosProxyConfig | false; + cancelToken?: CancelToken; + decompress?: boolean; + transitional?: TransitionalOptions; + signal?: GenericAbortSignal; + insecureHTTPParser?: boolean; + env?: { + FormData?: new (...args: any[]) => object; + }; + formSerializer?: FormSerializerOptions; + } + + // 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; + } + + 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: 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; + } + + interface AxiosInterceptorManager { + use(onFulfilled?: (value: V) => V | Promise, onRejected?: (error: any) => any, options?: AxiosInterceptorOptions): number; + eject(id: number): void; + clear(): void; + } + + interface AxiosInstance extends Axios { + , D = any>(config: AxiosRequestConfig): Promise; + , D = any>(url: string, config?: AxiosRequestConfig): Promise; + + 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 { + create(config?: CreateAxiosDefaults): 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; + AxiosHeaders: typeof AxiosHeaders; + } +} + +declare const axios: axios.AxiosStatic; + +export = axios; diff --git a/node_modules/axios/index.d.ts b/node_modules/axios/index.d.ts new file mode 100644 index 0000000..be5f182 --- /dev/null +++ b/node_modules/axios/index.d.ts @@ -0,0 +1,543 @@ +// TypeScript Version: 4.7 +type AxiosHeaderValue = AxiosHeaders | string | string[] | number | boolean | null; + +interface RawAxiosHeaders { + [key: string]: AxiosHeaderValue; +} + +type MethodsHeaders = Partial<{ + [Key in Method as Lowercase]: AxiosHeaders; +} & {common: AxiosHeaders}>; + +type AxiosHeaderMatcher = (this: AxiosHeaders, value: string, name: string, headers: RawAxiosHeaders) => boolean; + +export class AxiosHeaders { + constructor( + headers?: RawAxiosHeaders | AxiosHeaders + ); + + [key: string]: any; + + set(headerName?: string, value?: AxiosHeaderValue, rewrite?: boolean | AxiosHeaderMatcher): AxiosHeaders; + set(headers?: RawAxiosHeaders | AxiosHeaders, rewrite?: boolean): AxiosHeaders; + + get(headerName: string, parser: RegExp): RegExpExecArray | null; + get(headerName: string, matcher?: true | AxiosHeaderMatcher): AxiosHeaderValue; + + has(header: string, matcher?: true | 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; + + [Symbol.iterator](): IterableIterator<[string, AxiosHeaderValue]>; +} + +type CommonRequestHeadersList = 'Accept' | 'Content-Length' | 'User-Agent' | 'Content-Encoding' | 'Authorization'; + +type ContentType = AxiosHeaderValue | 'text/html' | 'text/plain' | 'multipart/form-data' | 'application/json' | 'application/x-www-form-urlencoded' | 'application/octet-stream'; + +export type RawAxiosRequestHeaders = Partial; + +export type AxiosRequestHeaders = RawAxiosRequestHeaders & AxiosHeaders; + +type CommonResponseHeadersList = 'Server' | 'Content-Type' | 'Content-Length' | 'Cache-Control'| 'Content-Encoding'; + +type RawCommonResponseHeaders = { + [Key in CommonResponseHeadersList]: 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?: { + username: string; + password: string; + }; + 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, +} + +export type Method = + | 'get' | 'GET' + | 'delete' | 'DELETE' + | 'head' | 'HEAD' + | 'options' | 'OPTIONS' + | 'post' | 'POST' + | 'put' | 'PUT' + | 'patch' | 'PATCH' + | 'purge' | 'PURGE' + | 'link' | 'LINK' + | 'unlink' | 'UNLINK'; + +export type ResponseType = + | 'arraybuffer' + | 'blob' + | 'document' + | 'json' + | 'text' + | 'stream'; + +export type responseEncoding = + | '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'; + +export interface TransitionalOptions { + silentJSONParsing?: boolean; + forcedJSONParsing?: boolean; + clarifyTimeoutError?: 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; +} + +type Milliseconds = number; + +type AxiosAdapterName = 'xhr' | 'http' | string; + +type AxiosAdapterConfig = AxiosAdapter | AxiosAdapterName; + +export interface AxiosRequestConfig { + url?: string; + method?: Method | string; + baseURL?: string; + transformRequest?: AxiosRequestTransformer | AxiosRequestTransformer[]; + transformResponse?: AxiosResponseTransformer | AxiosResponseTransformer[]; + headers?: (RawAxiosRequestHeaders & MethodsHeaders) | AxiosHeaders; + params?: any; + paramsSerializer?: ParamsSerializerOptions; + 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}) => void; + socketPath?: string | null; + httpAgent?: any; + httpsAgent?: any; + proxy?: AxiosProxyConfig | false; + cancelToken?: CancelToken; + decompress?: boolean; + transitional?: TransitionalOptions; + signal?: GenericAbortSignal; + insecureHTTPParser?: boolean; + env?: { + FormData?: new (...args: any[]) => object; + }; + formSerializer?: FormSerializerOptions; +} + +// 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; +} + +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: 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; + 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 ECONNABORTED = "ECONNABORTED"; + static readonly ETIMEDOUT = "ETIMEDOUT"; +} + +export class CanceledError extends AxiosError { +} + +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; +} + +export interface AxiosInterceptorManager { + use(onFulfilled?: ((value: V) => V | Promise) | null, onRejected?: ((error: any) => any) | null, options?: AxiosInterceptorOptions): number; + eject(id: number): void; + clear(): void; +} + +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; +} + +export interface AxiosInstance extends Axios { + , D = any>(config: AxiosRequestConfig): Promise; + , D = any>(url: string, config?: AxiosRequestConfig): Promise; + + 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 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 Cancel; + +export function all(values: Array>): Promise; + +export interface AxiosStatic extends AxiosInstance { + create(config?: CreateAxiosDefaults): 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; + CanceledError: typeof CanceledError; + AxiosHeaders: typeof AxiosHeaders; +} + +declare const axios: AxiosStatic; + +export default axios; diff --git a/node_modules/axios/index.js b/node_modules/axios/index.js new file mode 100644 index 0000000..4920f55 --- /dev/null +++ b/node_modules/axios/index.js @@ -0,0 +1,41 @@ +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, + mergeConfig +} = axios; + +export { + axios as default, + Axios, + AxiosError, + CanceledError, + isCancel, + CancelToken, + VERSION, + all, + Cancel, + isAxiosError, + spread, + toFormData, + AxiosHeaders, + HttpStatusCode, + formToJSON, + mergeConfig +} diff --git a/node_modules/axios/lib/adapters/README.md b/node_modules/axios/lib/adapters/README.md new file mode 100644 index 0000000..68f1118 --- /dev/null +++ b/node_modules/axios/lib/adapters/README.md @@ -0,0 +1,37 @@ +# 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 new file mode 100644 index 0000000..e31fca1 --- /dev/null +++ b/node_modules/axios/lib/adapters/adapters.js @@ -0,0 +1,59 @@ +import utils from '../utils.js'; +import httpAdapter from './http.js'; +import xhrAdapter from './xhr.js'; +import AxiosError from "../core/AxiosError.js"; + +const knownAdapters = { + http: httpAdapter, + xhr: xhrAdapter +} + +utils.forEach(knownAdapters, (fn, value) => { + if(fn) { + try { + Object.defineProperty(fn, 'name', {value}); + } catch (e) { + // eslint-disable-next-line no-empty + } + Object.defineProperty(fn, 'adapterName', {value}); + } +}); + +export default { + getAdapter: (adapters) => { + adapters = utils.isArray(adapters) ? adapters : [adapters]; + + const {length} = adapters; + let nameOrAdapter; + let adapter; + + for (let i = 0; i < length; i++) { + nameOrAdapter = adapters[i]; + if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) { + break; + } + } + + if (!adapter) { + if (adapter === false) { + throw new AxiosError( + `Adapter ${nameOrAdapter} is not supported by the environment`, + 'ERR_NOT_SUPPORT' + ); + } + + throw new Error( + utils.hasOwnProp(knownAdapters, nameOrAdapter) ? + `Adapter '${nameOrAdapter}' is not available in the build` : + `Unknown adapter '${nameOrAdapter}'` + ); + } + + if (!utils.isFunction(adapter)) { + throw new TypeError('adapter is not a function'); + } + + return adapter; + }, + adapters: knownAdapters +} diff --git a/node_modules/axios/lib/adapters/http.js b/node_modules/axios/lib/adapters/http.js new file mode 100644 index 0000000..d03db3a --- /dev/null +++ b/node_modules/axios/lib/adapters/http.js @@ -0,0 +1,644 @@ +'use strict'; + +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 http from 'http'; +import https from 'https'; +import util from 'util'; +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'; + +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 supportedProtocols = platform.protocols.map(protocol => { + return protocol + ':'; +}); + +/** + * 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) { + if (options.beforeRedirects.proxy) { + options.beforeRedirects.proxy(options); + } + if (options.beforeRedirects.config) { + options.beforeRedirects.config(options); + } +} + +/** + * 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) { + let proxy = configProxy; + if (!proxy && proxy !== false) { + const proxyUrl = getProxyForUrl(location); + if (proxyUrl) { + proxy = new URL(proxyUrl); + } + } + if (proxy) { + // Basic proxy authorization + if (proxy.username) { + proxy.auth = (proxy.username || '') + ':' + (proxy.password || ''); + } + + if (proxy.auth) { + // Support proxy auth object form + if (proxy.auth.username || proxy.auth.password) { + proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || ''); + } + const base64 = Buffer + .from(proxy.auth, 'utf8') + .toString('base64'); + options.headers['Proxy-Authorization'] = 'Basic ' + base64; + } + + options.headers.host = options.hostname + (options.port ? ':' + options.port : ''); + const proxyHost = proxy.hostname || proxy.host; + options.hostname = proxyHost; + // Replace 'host' since options is not a URL object + options.host = proxyHost; + options.port = proxy.port; + options.path = location; + if (proxy.protocol) { + options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`; + } + } + + 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); + }; +} + +const isHttpAdapterSupported = typeof process !== 'undefined' && utils.kindOf(process) === 'process'; + +/*eslint consistent-return:0*/ +export default isHttpAdapterSupported && function httpAdapter(config) { + /*eslint no-async-promise-executor:0*/ + return new Promise(async function dispatchHttpRequest(resolvePromise, rejectPromise) { + let data = config.data; + const responseType = config.responseType; + const responseEncoding = config.responseEncoding; + const method = config.method.toUpperCase(); + let isFinished; + let isDone; + let rejected = false; + let req; + + // temporary internal emitter until the AxiosRequest class will be implemented + const emitter = new EventEmitter(); + + function onFinished() { + if (isFinished) return; + isFinished = true; + + if (config.cancelToken) { + config.cancelToken.unsubscribe(abort); + } + + if (config.signal) { + config.signal.removeEventListener('abort', abort); + } + + emitter.removeAllListeners(); + } + + function done(value, isRejected) { + if (isDone) return; + + isDone = true; + + if (isRejected) { + rejected = true; + onFinished(); + } + + isRejected ? rejectPromise(value) : resolvePromise(value); + } + + const resolve = function resolve(value) { + done(value); + }; + + const reject = function reject(value) { + done(value, true); + }; + + function abort(reason) { + emitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason); + } + + emitter.once('abort', reject); + + if (config.cancelToken || config.signal) { + config.cancelToken && config.cancelToken.subscribe(abort); + if (config.signal) { + config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort); + } + } + + // Parse url + const fullPath = buildFullPath(config.baseURL, config.url); + const parsed = new URL(fullPath); + const protocol = parsed.protocol || supportedProtocols[0]; + + if (protocol === 'data:') { + 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 onDownloadProgress = config.onDownloadProgress; + const onUploadProgress = config.onUploadProgress; + 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)) { + headers.set(data.getHeaders()); + + if (!headers.hasContentLength()) { + try { + const knownLength = await util.promisify(data.getLength).call(data); + headers.setContentLength(knownLength); + /*eslint no-empty:0*/ + } catch (e) { + } + } + } else if (utils.isBlob(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({ + length: contentLength, + maxRate: utils.toFiniteNumber(maxUploadRate) + })], utils.noop); + + onUploadProgress && data.on('progress', progress => { + onUploadProgress(Object.assign(progress, { + upload: true + })); + }); + } + + // HTTP basic authentication + let auth = undefined; + if (config.auth) { + const username = config.auth.username || ''; + const password = config.auth.password || ''; + auth = username + ':' + password; + } + + if (!auth && parsed.username) { + const urlUsername = parsed.username; + const urlPassword = 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 + ); + + const options = { + path, + method: method, + headers: headers.toJSON(), + agents: { http: config.httpAgent, https: config.httpsAgent }, + auth, + protocol, + beforeRedirect: dispatchBeforeRedirect, + beforeRedirects: {} + }; + + if (config.socketPath) { + options.socketPath = config.socketPath; + } else { + options.hostname = parsed.hostname; + options.port = parsed.port; + setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path); + } + + let transport; + const isHttpsRequest = isHttps.test(options.protocol); + options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent; + if (config.transport) { + transport = config.transport; + } else if (config.maxRedirects === 0) { + transport = isHttpsRequest ? https : http; + } else { + if (config.maxRedirects) { + options.maxRedirects = config.maxRedirects; + } + if (config.beforeRedirect) { + options.beforeRedirects.config = config.beforeRedirect; + } + 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; + } + + if (config.insecureHTTPParser) { + options.insecureHTTPParser = config.insecureHTTPParser; + } + + // Create the request + req = transport.request(options, function handleResponse(res) { + if (req.destroyed) return; + + const streams = [res]; + + const responseLength = +res.headers['content-length']; + + if (onDownloadProgress) { + const transformStream = new AxiosTransformStream({ + length: utils.toFiniteNumber(responseLength), + maxRate: utils.toFiniteNumber(maxDownloadRate) + }); + + onDownloadProgress && transformStream.on('progress', progress => { + onDownloadProgress(Object.assign(progress, { + download: true + })); + }); + + 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']) { + /*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 offListeners = stream.finished(responseStream, () => { + offListeners(); + onFinished(); + }); + + const response = { + status: res.statusCode, + statusText: res.statusMessage, + headers: new AxiosHeaders(res.headers), + config, + request: lastRequest + }; + + if (responseType === 'stream') { + 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(); + reject(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( + 'maxContentLength size of ' + config.maxContentLength + ' exceeded', + AxiosError.ERR_BAD_RESPONSE, + config, + lastRequest + ); + responseStream.destroy(err); + reject(err); + }); + + responseStream.on('error', function handleStreamError(err) { + if (req.destroyed) return; + reject(AxiosError.from(err, null, config, lastRequest)); + }); + + 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) { + reject(AxiosError.from(err, null, config, response.request, response)); + } + settle(resolve, reject, response); + }); + } + + emitter.once('abort', err => { + if (!responseStream.destroyed) { + responseStream.emit('error', err); + responseStream.destroy(); + } + }); + }); + + emitter.once('abort', err => { + reject(err); + req.destroy(err); + }); + + // Handle errors + req.on('error', function handleRequestError(err) { + // @todo remove + // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return; + reject(AxiosError.from(err, null, config, req)); + }); + + // set tcp keep alive to prevent drop connection by peer + req.on('socket', function handleRequestSocket(socket) { + // default interval of sending ack packet is 1 minute + socket.setKeepAlive(true, 1000 * 60); + }); + + // 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 (isNaN(timeout)) { + reject(new AxiosError( + 'error trying to parse `config.timeout` to int', + AxiosError.ERR_BAD_OPTION_VALUE, + config, + req + )); + + return; + } + + // 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, function handleRequestTimeout() { + if (isDone) return; + 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, + req + )); + abort(); + }); + } + + + // 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)); + } + }); + + data.pipe(req); + } else { + req.end(data); + } + }); +} + +export const __setProxy = setProxy; diff --git a/node_modules/axios/lib/adapters/xhr.js b/node_modules/axios/lib/adapters/xhr.js new file mode 100644 index 0000000..021da2a --- /dev/null +++ b/node_modules/axios/lib/adapters/xhr.js @@ -0,0 +1,249 @@ +'use strict'; + +import utils from './../utils.js'; +import settle from './../core/settle.js'; +import cookies from './../helpers/cookies.js'; +import buildURL from './../helpers/buildURL.js'; +import buildFullPath from '../core/buildFullPath.js'; +import isURLSameOrigin from './../helpers/isURLSameOrigin.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 speedometer from '../helpers/speedometer.js'; + +function progressEventReducer(listener, isDownloadStream) { + let bytesNotified = 0; + const _speedometer = speedometer(50, 250); + + return e => { + const loaded = e.loaded; + const total = e.lengthComputable ? e.total : undefined; + const progressBytes = loaded - bytesNotified; + const rate = _speedometer(progressBytes); + const inRange = loaded <= total; + + bytesNotified = loaded; + + const data = { + loaded, + total, + progress: total ? (loaded / total) : undefined, + bytes: progressBytes, + rate: rate ? rate : undefined, + estimated: rate && total && inRange ? (total - loaded) / rate : undefined, + event: e + }; + + data[isDownloadStream ? 'download' : 'upload'] = true; + + listener(data); + }; +} + +const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; + +export default isXHRAdapterSupported && function (config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + let requestData = config.data; + const requestHeaders = AxiosHeaders.from(config.headers).normalize(); + const responseType = config.responseType; + let onCanceled; + function done() { + if (config.cancelToken) { + config.cancelToken.unsubscribe(onCanceled); + } + + if (config.signal) { + config.signal.removeEventListener('abort', onCanceled); + } + } + + if (utils.isFormData(requestData) && (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv)) { + requestHeaders.setContentType(false); // Let the browser set it + } + + let request = new XMLHttpRequest(); + + // HTTP basic authentication + if (config.auth) { + const username = config.auth.username || ''; + const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ''; + requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password)); + } + + const fullPath = buildFullPath(config.baseURL, config.url); + + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), 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.indexOf('file:') === 0)) { + 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)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request)); + + // Clean up request + 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)); + + // Clean up request + request = null; + }; + + // 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.isStandardBrowserEnv) { + // Add xsrf header + const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) + && config.xsrfCookieName && cookies.read(config.xsrfCookieName); + + if (xsrfValue) { + requestHeaders.set(config.xsrfHeaderName, xsrfValue); + } + } + + // Remove Content-Type if data is undefined + requestData === undefined && requestHeaders.setContentType(null); + + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders.toJSON(), 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 (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true)); + } + + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress)); + } + + 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(); + request = null; + }; + + config.cancelToken && config.cancelToken.subscribe(onCanceled); + if (config.signal) { + config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled); + } + } + + const protocol = parseProtocol(fullPath); + + if (protocol && platform.protocols.indexOf(protocol) === -1) { + 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 new file mode 100644 index 0000000..c97e062 --- /dev/null +++ b/node_modules/axios/lib/axios.js @@ -0,0 +1,86 @@ +'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 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.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 new file mode 100644 index 0000000..20d8f68 --- /dev/null +++ b/node_modules/axios/lib/cancel/CancelToken.js @@ -0,0 +1,121 @@ +'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); + } + } + + /** + * 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 new file mode 100644 index 0000000..880066e --- /dev/null +++ b/node_modules/axios/lib/cancel/CanceledError.js @@ -0,0 +1,25 @@ +'use strict'; + +import AxiosError from '../core/AxiosError.js'; +import utils from '../utils.js'; + +/** + * 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) { + // eslint-disable-next-line no-eq-null,eqeqeq + AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request); + this.name = 'CanceledError'; +} + +utils.inherits(CanceledError, AxiosError, { + __CANCEL__: true +}); + +export default CanceledError; diff --git a/node_modules/axios/lib/cancel/isCancel.js b/node_modules/axios/lib/cancel/isCancel.js new file mode 100644 index 0000000..a444a12 --- /dev/null +++ b/node_modules/axios/lib/cancel/isCancel.js @@ -0,0 +1,5 @@ +'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 new file mode 100644 index 0000000..ff602ba --- /dev/null +++ b/node_modules/axios/lib/core/Axios.js @@ -0,0 +1,197 @@ +'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'; + +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 + */ + 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) + }, false); + } + + if (paramsSerializer !== undefined) { + validator.assertOptions(paramsSerializer, { + encode: validators.function, + serialize: validators.function + }, true); + } + + // Set config.method + config.method = (config.method || this.defaults.method || 'get').toLowerCase(); + + let contextHeaders; + + // Flatten headers + contextHeaders = headers && utils.merge( + headers.common, + headers[config.method] + ); + + contextHeaders && utils.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', '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; + + requestInterceptorChain.unshift(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.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; + + let newConfig = config; + + i = 0; + + 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); + 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'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + + 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(); + + 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 new file mode 100644 index 0000000..7141a8c --- /dev/null +++ b/node_modules/axios/lib/core/AxiosError.js @@ -0,0 +1,100 @@ +'use strict'; + +import utils from '../utils.js'; + +/** + * 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) { + Error.call(this); + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + this.stack = (new Error()).stack; + } + + this.message = message; + this.name = 'AxiosError'; + code && (this.code = code); + config && (this.config = config); + request && (this.request = request); + response && (this.response = response); +} + +utils.inherits(AxiosError, Error, { + toJSON: function toJSON() { + 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: utils.toJSONObject(this.config), + code: this.code, + status: this.response && this.response.status ? this.response.status : null + }; + } +}); + +const prototype = AxiosError.prototype; +const descriptors = {}; + +[ + 'ERR_BAD_OPTION_VALUE', + 'ERR_BAD_OPTION', + 'ECONNABORTED', + 'ETIMEDOUT', + 'ERR_NETWORK', + 'ERR_FR_TOO_MANY_REDIRECTS', + 'ERR_DEPRECATED', + 'ERR_BAD_RESPONSE', + 'ERR_BAD_REQUEST', + 'ERR_CANCELED', + 'ERR_NOT_SUPPORT', + 'ERR_INVALID_URL' +// eslint-disable-next-line func-names +].forEach(code => { + descriptors[code] = {value: code}; +}); + +Object.defineProperties(AxiosError, descriptors); +Object.defineProperty(prototype, 'isAxiosError', {value: true}); + +// eslint-disable-next-line func-names +AxiosError.from = (error, code, config, request, response, customProps) => { + const axiosError = Object.create(prototype); + + utils.toFlatObject(error, axiosError, function filter(obj) { + return obj !== Error.prototype; + }, prop => { + return prop !== 'isAxiosError'; + }); + + AxiosError.call(axiosError, error.message, code, config, request, response); + + axiosError.cause = error; + + axiosError.name = error.name; + + customProps && Object.assign(axiosError, customProps); + + return axiosError; +}; + +export default AxiosError; diff --git a/node_modules/axios/lib/core/AxiosHeaders.js b/node_modules/axios/lib/core/AxiosHeaders.js new file mode 100644 index 0000000..1cf84b9 --- /dev/null +++ b/node_modules/axios/lib/core/AxiosHeaders.js @@ -0,0 +1,286 @@ +'use strict'; + +import utils from '../utils.js'; +import parseHeaders from '../helpers/parseHeaders.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) : 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; +} + +function isValidHeaderName(str) { + return /^[-_a-zA-Z]+$/.test(str.trim()); +} + +function matchHeaderValue(context, value, header, filter) { + if (utils.isFunction(filter)) { + return filter.call(this, 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, { + 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 { + 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)) { + 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'); + } + + 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']); + +utils.freezeMethods(AxiosHeaders.prototype); +utils.freezeMethods(AxiosHeaders); + +export default AxiosHeaders; diff --git a/node_modules/axios/lib/core/InterceptorManager.js b/node_modules/axios/lib/core/InterceptorManager.js new file mode 100644 index 0000000..6657a9d --- /dev/null +++ b/node_modules/axios/lib/core/InterceptorManager.js @@ -0,0 +1,71 @@ +'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` + * + * @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 {Boolean} `true` if the interceptor was removed, `false` otherwise + */ + 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 new file mode 100644 index 0000000..84559ce --- /dev/null +++ b/node_modules/axios/lib/core/README.md @@ -0,0 +1,8 @@ +# 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 new file mode 100644 index 0000000..b60927c --- /dev/null +++ b/node_modules/axios/lib/core/buildFullPath.js @@ -0,0 +1,21 @@ +'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) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +} diff --git a/node_modules/axios/lib/core/dispatchRequest.js b/node_modules/axios/lib/core/dispatchRequest.js new file mode 100644 index 0000000..9e306aa --- /dev/null +++ b/node_modules/axios/lib/core/dispatchRequest.js @@ -0,0 +1,81 @@ +'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); + + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData.call( + config, + config.transformResponse, + response + ); + + response.headers = AxiosHeaders.from(response.headers); + + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData.call( + config, + config.transformResponse, + reason.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 new file mode 100644 index 0000000..2aee6b8 --- /dev/null +++ b/node_modules/axios/lib/core/mergeConfig.js @@ -0,0 +1,105 @@ +'use strict'; + +import utils from '../utils.js'; +import AxiosHeaders from "./AxiosHeaders.js"; + +const headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : 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 || {}; + const config = {}; + + function getMergedValue(target, source, 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; + } + + // eslint-disable-next-line consistent-return + function mergeDeepProperties(a, b, caseless) { + if (!utils.isUndefined(b)) { + return getMergedValue(a, b, caseless); + } else if (!utils.isUndefined(a)) { + return getMergedValue(undefined, a, 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 (prop in config2) { + return getMergedValue(a, b); + } else if (prop in config1) { + 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, + 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, + responseEncoding: defaultToConfig2, + validateStatus: mergeDirectKeys, + headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true) + }; + + utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) { + const merge = mergeMap[prop] || mergeDeepProperties; + const configValue = merge(config1[prop], config2[prop], 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 new file mode 100644 index 0000000..ac905c4 --- /dev/null +++ b/node_modules/axios/lib/core/settle.js @@ -0,0 +1,27 @@ +'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, + [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], + response.config, + response.request, + response + )); + } +} diff --git a/node_modules/axios/lib/core/transformData.js b/node_modules/axios/lib/core/transformData.js new file mode 100644 index 0000000..eeb5a8a --- /dev/null +++ b/node_modules/axios/lib/core/transformData.js @@ -0,0 +1,28 @@ +'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 new file mode 100644 index 0000000..0b47602 --- /dev/null +++ b/node_modules/axios/lib/defaults/index.js @@ -0,0 +1,166 @@ +'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 DEFAULT_CONTENT_TYPE = { + 'Content-Type': 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'], + + 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) { + if (!hasJSONContentType) { + return data; + } + return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data; + } + + if (utils.isArrayBuffer(data) || + utils.isBuffer(data) || + utils.isStream(data) || + utils.isFile(data) || + utils.isBlob(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) { + if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { + return toURLEncodedForm(data, this.formSerializer).toString(); + } + + if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) { + const _FormData = this.env && this.env.FormData; + + return toFormData( + isFileList ? {'files[]': data} : data, + _FormData && new _FormData(), + this.formSerializer + ); + } + } + + if (isObjectPayload || hasJSONContentType ) { + headers.setContentType('application/json', false); + return stringifySafely(data); + } + + return data; + }], + + transformResponse: [function transformResponse(data) { + const transitional = this.transitional || defaults.transitional; + const forcedJSONParsing = transitional && transitional.forcedJSONParsing; + const JSONRequested = this.responseType === 'json'; + + if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) { + const silentJSONParsing = transitional && transitional.silentJSONParsing; + const strictJSONParsing = !silentJSONParsing && JSONRequested; + + try { + return JSON.parse(data); + } catch (e) { + if (strictJSONParsing) { + if (e.name === 'SyntaxError') { + throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, 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, */*' + } + } +}; + +utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { + defaults.headers[method] = {}; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); +}); + +export default defaults; diff --git a/node_modules/axios/lib/defaults/transitional.js b/node_modules/axios/lib/defaults/transitional.js new file mode 100644 index 0000000..f891331 --- /dev/null +++ b/node_modules/axios/lib/defaults/transitional.js @@ -0,0 +1,7 @@ +'use strict'; + +export default { + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false +}; diff --git a/node_modules/axios/lib/env/README.md b/node_modules/axios/lib/env/README.md new file mode 100644 index 0000000..b41baff --- /dev/null +++ b/node_modules/axios/lib/env/README.md @@ -0,0 +1,3 @@ +# 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 new file mode 100644 index 0000000..862adb9 --- /dev/null +++ b/node_modules/axios/lib/env/classes/FormData.js @@ -0,0 +1,2 @@ +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 new file mode 100644 index 0000000..ff72d4c --- /dev/null +++ b/node_modules/axios/lib/env/data.js @@ -0,0 +1 @@ +export const VERSION = "1.3.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 new file mode 100644 index 0000000..8e8c6d4 --- /dev/null +++ b/node_modules/axios/lib/helpers/AxiosTransformStream.js @@ -0,0 +1,191 @@ +'use strict'; + +import stream from 'stream'; +import utils from '../utils.js'; +import throttle from './throttle.js'; +import speedometer from './speedometer.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 self = this; + + const internals = this[kInternals] = { + length: options.length, + timeWindow: options.timeWindow, + ticksRate: options.ticksRate, + chunkSize: options.chunkSize, + maxRate: options.maxRate, + minChunkSize: options.minChunkSize, + bytesSeen: 0, + isCaptured: false, + notifiedBytesLoaded: 0, + ts: Date.now(), + bytes: 0, + onReadCallback: null + }; + + const _speedometer = speedometer(internals.ticksRate * options.samplesCount, internals.timeWindow); + + this.on('newListener', event => { + if (event === 'progress') { + if (!internals.isCaptured) { + internals.isCaptured = true; + } + } + }); + + let bytesNotified = 0; + + internals.updateProgress = throttle(function throttledHandler() { + const totalBytes = internals.length; + const bytesTransferred = internals.bytesSeen; + const progressBytes = bytesTransferred - bytesNotified; + if (!progressBytes || self.destroyed) return; + + const rate = _speedometer(progressBytes); + + bytesNotified = bytesTransferred; + + process.nextTick(() => { + self.emit('progress', { + 'loaded': bytesTransferred, + 'total': totalBytes, + 'progress': totalBytes ? (bytesTransferred / totalBytes) : undefined, + 'bytes': progressBytes, + 'rate': rate ? rate : undefined, + 'estimated': rate && totalBytes && bytesTransferred <= totalBytes ? + (totalBytes - bytesTransferred) / rate : undefined + }); + }); + }, internals.ticksRate); + + const onFinish = () => { + internals.updateProgress(true); + }; + + this.once('end', onFinish); + this.once('error', onFinish); + } + + _read(size) { + const internals = this[kInternals]; + + if (internals.onReadCallback) { + internals.onReadCallback(); + } + + return super._read(size); + } + + _transform(chunk, encoding, callback) { + const self = this; + 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; + + function pushChunk(_chunk, _callback) { + const bytes = Buffer.byteLength(_chunk); + internals.bytesSeen += bytes; + internals.bytes += bytes; + + if (internals.isCaptured) { + internals.updateProgress(); + } + + if (self.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); + } + }); + } + + setLength(length) { + this[kInternals].length = +length; + return this; + } +} + +export default AxiosTransformStream; diff --git a/node_modules/axios/lib/helpers/AxiosURLSearchParams.js b/node_modules/axios/lib/helpers/AxiosURLSearchParams.js new file mode 100644 index 0000000..b9aa9f0 --- /dev/null +++ b/node_modules/axios/lib/helpers/AxiosURLSearchParams.js @@ -0,0 +1,58 @@ +'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': '+', + '%00': '\x00' + }; + return encodeURIComponent(str).replace(/[!'()~]|%20|%00/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 new file mode 100644 index 0000000..b3e7adc --- /dev/null +++ b/node_modules/axios/lib/helpers/HttpStatusCode.js @@ -0,0 +1,71 @@ +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, +}; + +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 new file mode 100644 index 0000000..4ae3419 --- /dev/null +++ b/node_modules/axios/lib/helpers/README.md @@ -0,0 +1,7 @@ +# 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 new file mode 100644 index 0000000..d1791f0 --- /dev/null +++ b/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js @@ -0,0 +1,28 @@ +"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 new file mode 100644 index 0000000..b3aa83b --- /dev/null +++ b/node_modules/axios/lib/helpers/bind.js @@ -0,0 +1,7 @@ +'use strict'; + +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 new file mode 100644 index 0000000..d769fdf --- /dev/null +++ b/node_modules/axios/lib/helpers/buildURL.js @@ -0,0 +1,63 @@ +'use strict'; + +import utils from '../utils.js'; +import AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js'; + +/** + * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their + * URI encoded 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, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); +} + +/** + * 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} options + * + * @returns {string} The formatted url + */ +export default function buildURL(url, params, options) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + + const _encode = options && options.encode || encode; + + 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/combineURLs.js b/node_modules/axios/lib/helpers/combineURLs.js new file mode 100644 index 0000000..cba9a23 --- /dev/null +++ b/node_modules/axios/lib/helpers/combineURLs.js @@ -0,0 +1,15 @@ +'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/cookies.js b/node_modules/axios/lib/helpers/cookies.js new file mode 100644 index 0000000..361493a --- /dev/null +++ b/node_modules/axios/lib/helpers/cookies.js @@ -0,0 +1,52 @@ +'use strict'; + +import utils from './../utils.js'; +import platform from '../platform/index.js'; + +export default platform.isStandardBrowserEnv ? + +// Standard browser envs support document.cookie + (function standardBrowserEnv() { + return { + write: function write(name, value, expires, path, domain, secure) { + const cookie = []; + cookie.push(name + '=' + encodeURIComponent(value)); + + if (utils.isNumber(expires)) { + cookie.push('expires=' + new Date(expires).toGMTString()); + } + + if (utils.isString(path)) { + cookie.push('path=' + path); + } + + if (utils.isString(domain)) { + cookie.push('domain=' + domain); + } + + if (secure === true) { + cookie.push('secure'); + } + + document.cookie = cookie.join('; '); + }, + + read: function read(name) { + const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return (match ? decodeURIComponent(match[3]) : null); + }, + + remove: function remove(name) { + this.write(name, '', Date.now() - 86400000); + } + }; + })() : + +// Non standard browser env (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return { + write: function write() {}, + read: function read() { return null; }, + remove: function remove() {} + }; + })(); diff --git a/node_modules/axios/lib/helpers/deprecatedMethod.js b/node_modules/axios/lib/helpers/deprecatedMethod.js new file mode 100644 index 0000000..9e8fae6 --- /dev/null +++ b/node_modules/axios/lib/helpers/deprecatedMethod.js @@ -0,0 +1,26 @@ +'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/formDataToJSON.js b/node_modules/axios/lib/helpers/formDataToJSON.js new file mode 100644 index 0000000..f4581df --- /dev/null +++ b/node_modules/axios/lib/helpers/formDataToJSON.js @@ -0,0 +1,92 @@ +'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++]; + 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] = [target[name], value]; + } else { + target[name] = value; + } + + return !isNumericKey; + } + + if (!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 new file mode 100644 index 0000000..3849935 --- /dev/null +++ b/node_modules/axios/lib/helpers/formDataToStream.js @@ -0,0 +1,110 @@ +import {Readable} from 'stream'; +import utils from "../utils.js"; +import readBlob from "./readBlob.js"; + +const BOUNDARY_ALPHABET = utils.ALPHABET.ALPHA_DIGIT + '-_'; + +const textEncoder = new 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 { + headers += `Content-Type: ${value.type || "application/octet-stream"}${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 + '-' + utils.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 10-70 characters long') + } + + const boundaryBytes = textEncoder.encode('--' + boundary + CRLF); + const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF + 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 new file mode 100644 index 0000000..eb71d3f --- /dev/null +++ b/node_modules/axios/lib/helpers/fromDataURI.js @@ -0,0 +1,53 @@ +'use strict'; + +import AxiosError from '../core/AxiosError.js'; +import parseProtocol from './parseProtocol.js'; +import platform from '../platform/index.js'; + +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 mime = match[1]; + const isBase64 = match[2]; + const body = match[3]; + const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8'); + + 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 new file mode 100644 index 0000000..4747a45 --- /dev/null +++ b/node_modules/axios/lib/helpers/isAbsoluteURL.js @@ -0,0 +1,15 @@ +'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. + 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 new file mode 100644 index 0000000..da6cd63 --- /dev/null +++ b/node_modules/axios/lib/helpers/isAxiosError.js @@ -0,0 +1,14 @@ +'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 new file mode 100644 index 0000000..18db03b --- /dev/null +++ b/node_modules/axios/lib/helpers/isURLSameOrigin.js @@ -0,0 +1,67 @@ +'use strict'; + +import utils from './../utils.js'; +import platform from '../platform/index.js'; + +export default platform.isStandardBrowserEnv ? + +// Standard browser envs have full support of the APIs needed to test +// whether the request URL is of the same origin as current location. + (function standardBrowserEnv() { + const msie = /(msie|trident)/i.test(navigator.userAgent); + const urlParsingNode = document.createElement('a'); + let originURL; + + /** + * Parse a URL to discover it's components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + let href = url; + + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') ? + urlParsingNode.pathname : + '/' + urlParsingNode.pathname + }; + } + + originURL = resolveURL(window.location.href); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; + return (parsed.protocol === originURL.protocol && + parsed.host === originURL.host); + }; + })() : + + // Non standard browser envs (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + })(); diff --git a/node_modules/axios/lib/helpers/null.js b/node_modules/axios/lib/helpers/null.js new file mode 100644 index 0000000..b9f82c4 --- /dev/null +++ b/node_modules/axios/lib/helpers/null.js @@ -0,0 +1,2 @@ +// 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 new file mode 100644 index 0000000..50af948 --- /dev/null +++ b/node_modules/axios/lib/helpers/parseHeaders.js @@ -0,0 +1,55 @@ +'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 new file mode 100644 index 0000000..586ec96 --- /dev/null +++ b/node_modules/axios/lib/helpers/parseProtocol.js @@ -0,0 +1,6 @@ +'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/readBlob.js b/node_modules/axios/lib/helpers/readBlob.js new file mode 100644 index 0000000..6de748e --- /dev/null +++ b/node_modules/axios/lib/helpers/readBlob.js @@ -0,0 +1,15 @@ +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/speedometer.js b/node_modules/axios/lib/helpers/speedometer.js new file mode 100644 index 0000000..3b3c666 --- /dev/null +++ b/node_modules/axios/lib/helpers/speedometer.js @@ -0,0 +1,55 @@ +'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 new file mode 100644 index 0000000..13479cb --- /dev/null +++ b/node_modules/axios/lib/helpers/spread.js @@ -0,0 +1,28 @@ +'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) {} + * var 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 new file mode 100644 index 0000000..6969df1 --- /dev/null +++ b/node_modules/axios/lib/helpers/throttle.js @@ -0,0 +1,33 @@ +'use strict'; + +/** + * Throttle decorator + * @param {Function} fn + * @param {Number} freq + * @return {Function} + */ +function throttle(fn, freq) { + let timestamp = 0; + const threshold = 1000 / freq; + let timer = null; + return function throttled(force, args) { + const now = Date.now(); + if (force || now - timestamp > threshold) { + if (timer) { + clearTimeout(timer); + timer = null; + } + timestamp = now; + return fn.apply(null, args); + } + if (!timer) { + timer = setTimeout(() => { + timer = null; + timestamp = Date.now(); + return fn.apply(null, args); + }, threshold - (now - timestamp)); + } + }; +} + +export default throttle; diff --git a/node_modules/axios/lib/helpers/toFormData.js b/node_modules/axios/lib/helpers/toFormData.js new file mode 100644 index 0000000..a41e966 --- /dev/null +++ b/node_modules/axios/lib/helpers/toFormData.js @@ -0,0 +1,219 @@ +'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 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 (!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 (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) { + if (utils.isUndefined(value)) return; + + 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]); + } + }); + + 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 new file mode 100644 index 0000000..988a38a --- /dev/null +++ b/node_modules/axios/lib/helpers/toURLEncodedForm.js @@ -0,0 +1,18 @@ +'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(), Object.assign({ + 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/validator.js b/node_modules/axios/lib/helpers/validator.js new file mode 100644 index 0000000..14b4696 --- /dev/null +++ b/node_modules/axios/lib/helpers/validator.js @@ -0,0 +1,91 @@ +'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; + }; +}; + +/** + * 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]; + const validator = schema[opt]; + 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/FormData.js b/node_modules/axios/lib/platform/browser/classes/FormData.js new file mode 100644 index 0000000..4369056 --- /dev/null +++ b/node_modules/axios/lib/platform/browser/classes/FormData.js @@ -0,0 +1,3 @@ +'use strict'; + +export default FormData; diff --git a/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js b/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js new file mode 100644 index 0000000..b7dae95 --- /dev/null +++ b/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js @@ -0,0 +1,4 @@ +'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 new file mode 100644 index 0000000..3de84af --- /dev/null +++ b/node_modules/axios/lib/platform/browser/index.js @@ -0,0 +1,63 @@ +import URLSearchParams from './classes/URLSearchParams.js' +import FormData from './classes/FormData.js' + +/** + * 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 isStandardBrowserEnv = (() => { + let product; + if (typeof navigator !== 'undefined' && ( + (product = navigator.product) === 'ReactNative' || + product === 'NativeScript' || + product === 'NS') + ) { + return false; + } + + return typeof window !== 'undefined' && typeof document !== 'undefined'; +})(); + +/** + * 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 isStandardBrowserWebWorkerEnv = (() => { + return ( + typeof WorkerGlobalScope !== 'undefined' && + // eslint-disable-next-line no-undef + self instanceof WorkerGlobalScope && + typeof self.importScripts === 'function' + ); +})(); + + +export default { + isBrowser: true, + classes: { + URLSearchParams, + FormData, + Blob + }, + isStandardBrowserEnv, + isStandardBrowserWebWorkerEnv, + protocols: ['http', 'https', 'file', 'blob', 'url', 'data'] +}; diff --git a/node_modules/axios/lib/platform/index.js b/node_modules/axios/lib/platform/index.js new file mode 100644 index 0000000..5e9d005 --- /dev/null +++ b/node_modules/axios/lib/platform/index.js @@ -0,0 +1,3 @@ +import platform from './node/index.js'; + +export {platform as default} diff --git a/node_modules/axios/lib/platform/node/classes/FormData.js b/node_modules/axios/lib/platform/node/classes/FormData.js new file mode 100644 index 0000000..b07f947 --- /dev/null +++ b/node_modules/axios/lib/platform/node/classes/FormData.js @@ -0,0 +1,3 @@ +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 new file mode 100644 index 0000000..fba5842 --- /dev/null +++ b/node_modules/axios/lib/platform/node/classes/URLSearchParams.js @@ -0,0 +1,4 @@ +'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 new file mode 100644 index 0000000..aef514a --- /dev/null +++ b/node_modules/axios/lib/platform/node/index.js @@ -0,0 +1,12 @@ +import URLSearchParams from './classes/URLSearchParams.js' +import FormData from './classes/FormData.js' + +export default { + isNode: true, + classes: { + URLSearchParams, + FormData, + Blob: typeof Blob !== 'undefined' && Blob || null + }, + protocols: [ 'http', 'https', 'file', 'data' ] +}; diff --git a/node_modules/axios/lib/utils.js b/node_modules/axios/lib/utils.js new file mode 100644 index 0000000..6a38872 --- /dev/null +++ b/node_modules/axios/lib/utils.js @@ -0,0 +1,711 @@ +'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 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 an Array + * + * @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) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val); +} + +/** + * 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 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 File, 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 + */ +const isFormData = (thing) => { + const pattern = '[object FormData]'; + return thing && ( + (typeof FormData === 'function' && thing instanceof FormData) || + toString.call(thing) === pattern || + (isFunction(thing.toString) && thing.toString() === pattern) + ); +} + +/** + * 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'); + +/** + * 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) => 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 {Boolean} [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 { + // 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); + } + } +} + +function findKey(obj, key) { + 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 + * var 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(/* obj1, obj2, obj3, ... */) { + const {caseless} = isContextDefined(this) && this || {}; + const result = {}; + const assignValue = (val, key) => { + const targetKey = caseless && findKey(result, key) || key; + if (isPlainObject(result[targetKey]) && isPlainObject(val)) { + result[targetKey] = merge(result[targetKey], val); + } else if (isPlainObject(val)) { + result[targetKey] = merge({}, val); + } else if (isArray(val)) { + result[targetKey] = val.slice(); + } else { + result[targetKey] = val; + } + } + + for (let i = 0, l = arguments.length; i < l; i++) { + arguments[i] && forEach(arguments[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 {Boolean} [allOwnKeys] + * @returns {Object} The resulting value of object a + */ +const extend = (a, b, thisArg, {allOwnKeys}= {}) => { + forEach(b, (val, key) => { + if (thisArg && isFunction(val)) { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }, {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); + constructor.prototype.constructor = constructor; + Object.defineProperty(constructor, 'super', { + 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[Symbol.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) => { + if (reducer(descriptor, name, obj) !== false) { + reducedDescriptors[name] = 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'].indexOf(name) !== -1) { + 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 + '\''); + }; + } + }); +} + +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) => { + value = +value; + return Number.isFinite(value) ? value : defaultValue; +} + +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; + while (size--) { + str += alphabet[Math.random() * length|0] + } + + return str; +} + +/** + * 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[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]); +} + +const toJSONObject = (obj) => { + const stack = new Array(10); + + const visit = (source, i) => { + + if (isObject(source)) { + if (stack.indexOf(source) >= 0) { + return; + } + + if(!('toJSON' in source)) { + stack[i] = source; + const target = isArray(source) ? [] : {}; + + forEach(source, (value, key) => { + const reducedValue = visit(value, i + 1); + !isUndefined(reducedValue) && (target[key] = reducedValue); + }); + + stack[i] = undefined; + + return target; + } + } + + return source; + } + + return visit(obj, 0); +} + +export default { + isArray, + isArrayBuffer, + isBuffer, + isFormData, + isArrayBufferView, + isString, + isNumber, + isBoolean, + isObject, + isPlainObject, + isUndefined, + isDate, + isFile, + 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, + ALPHABET, + generateString, + isSpecCompliantForm, + toJSONObject +}; diff --git a/node_modules/axios/package.json b/node_modules/axios/package.json new file mode 100644 index 0000000..d547c02 --- /dev/null +++ b/node_modules/axios/package.json @@ -0,0 +1,207 @@ +{ + "name": "axios", + "version": "1.3.1", + "description": "Promise based HTTP client for the browser and node.js", + "main": "index.js", + "exports": { + ".": { + "types": { + "require": "./index.d.cts", + "default": "./index.d.ts" + }, + "browser": { + "require": "./dist/browser/axios.cjs", + "default": "./index.js" + }, + "default": { + "require": "./dist/node/axios.cjs", + "default": "./index.js" + } + }, + "./package.json": "./package.json" + }, + "type": "module", + "types": "index.d.ts", + "scripts": { + "test": "npm run test:eslint && npm run test:mocha && npm run test:karma && npm run test:dtslint && npm run test:exports", + "test:eslint": "node bin/ssl_hotfix.js eslint lib/**/*.js", + "test:dtslint": "node bin/ssl_hotfix.js dtslint", + "test:mocha": "node bin/ssl_hotfix.js mocha test/unit/**/*.js --timeout 30000 --exit", + "test:exports": "node bin/ssl_hotfix.js mocha test/module/test.js --timeout 30000 --exit", + "test:karma": "node bin/ssl_hotfix.js cross-env LISTEN_ADDR=:: karma start karma.conf.cjs --single-run", + "test:karma:server": "node bin/ssl_hotfix.js cross-env karma start karma.conf.cjs", + "test:build:version": "node ./bin/check-build-version.js", + "start": "node ./sandbox/server.js", + "preversion": "gulp version", + "version": "npm run build && git add dist && git add package.json", + "prepublishOnly": "npm run test:build:version", + "postpublish": "git push && git push --tags", + "build": "gulp clear && cross-env NODE_ENV=production rollup -c -m", + "examples": "node ./examples/server.js", + "coveralls": "cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js", + "fix": "eslint --fix lib/**/*.js", + "prepare": "husky install && npm run prepare:hooks", + "prepare:hooks": "npx husky set .husky/commit-msg \"npx commitlint --edit $1\"", + "release:dry": "release-it --dry-run --no-npm", + "release:info": "release-it --release-version", + "release:beta:no-npm": "release-it --preRelease=beta --no-npm", + "release:beta": "release-it --preRelease=beta", + "release:no-npm": "release-it --no-npm", + "release:changelog:fix": "node ./bin/injectContributorsList.js && git add CHANGELOG.md", + "release": "release-it" + }, + "repository": { + "type": "git", + "url": "https://github.com/axios/axios.git" + }, + "keywords": [ + "xhr", + "http", + "ajax", + "promise", + "node" + ], + "author": "Matt Zabriskie", + "license": "MIT", + "bugs": { + "url": "https://github.com/axios/axios/issues" + }, + "homepage": "https://axios-http.com", + "devDependencies": { + "@babel/core": "^7.18.2", + "@babel/preset-env": "^7.18.2", + "@commitlint/cli": "^17.3.0", + "@commitlint/config-conventional": "^17.3.0", + "@release-it/conventional-changelog": "^5.1.1", + "@rollup/plugin-babel": "^5.3.1", + "@rollup/plugin-commonjs": "^15.1.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-multi-entry": "^4.0.0", + "@rollup/plugin-node-resolve": "^9.0.0", + "abortcontroller-polyfill": "^1.7.3", + "auto-changelog": "^2.4.0", + "body-parser": "^1.20.0", + "chalk": "^5.2.0", + "coveralls": "^3.1.1", + "cross-env": "^7.0.3", + "dev-null": "^0.1.1", + "dtslint": "^4.2.1", + "es6-promise": "^4.2.8", + "eslint": "^8.17.0", + "express": "^4.18.1", + "formdata-node": "^5.0.0", + "formidable": "^2.0.1", + "fs-extra": "^10.1.0", + "get-stream": "^3.0.0", + "gulp": "^4.0.2", + "gzip-size": "^7.0.0", + "handlebars": "^4.7.7", + "husky": "^8.0.2", + "istanbul-instrumenter-loader": "^3.0.1", + "jasmine-core": "^2.4.1", + "karma": "^6.3.17", + "karma-chrome-launcher": "^3.1.1", + "karma-firefox-launcher": "^2.1.2", + "karma-jasmine": "^1.1.1", + "karma-jasmine-ajax": "^0.1.13", + "karma-rollup-preprocessor": "^7.0.8", + "karma-safari-launcher": "^1.0.0", + "karma-sauce-launcher": "^4.3.6", + "karma-sinon": "^1.0.5", + "karma-sourcemap-loader": "^0.3.8", + "minimist": "^1.2.7", + "mocha": "^10.0.0", + "multer": "^1.4.4", + "pretty-bytes": "^6.0.0", + "release-it": "^15.5.1", + "rollup": "^2.67.0", + "rollup-plugin-auto-external": "^2.0.0", + "rollup-plugin-bundle-size": "^1.0.3", + "rollup-plugin-terser": "^7.0.2", + "sinon": "^4.5.0", + "stream-throttle": "^0.1.3", + "string-replace-async": "^3.0.2", + "terser-webpack-plugin": "^4.2.3", + "typescript": "^4.8.4", + "url-search-params": "^0.10.0" + }, + "browser": { + "./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" + }, + "jsdelivr": "dist/axios.min.js", + "unpkg": "dist/axios.min.js", + "typings": "./index.d.ts", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + }, + "bundlesize": [ + { + "path": "./dist/axios.min.js", + "threshold": "5kB" + } + ], + "contributors": [ + "Matt Zabriskie (https://github.com/mzabriskie)", + "Nick Uraltsev (https://github.com/nickuraltsev)", + "Jay (https://github.com/jasonsaayman)", + "Dmitriy Mozgovoy (https://github.com/DigitalBrainJS)", + "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)", + "Rikki Gibson (https://github.com/RikkiGibson)", + "Remco Haszing (https://github.com/remcohaszing)", + "Yasu Flores (https://github.com/yasuf)", + "Ben Carp (https://github.com/carpben)", + "Daniel Lopretto (https://github.com/timemachine3030)" + ], + "sideEffects": false, + "release-it": { + "git": { + "commitMessage": "chore(release): v${version}", + "push": true, + "commit": true, + "tag": true, + "requireCommits": false, + "requireCleanWorkingDir": false + }, + "github": { + "release": true, + "draft": true + }, + "npm": { + "publish": false, + "ignoreVersion": false + }, + "plugins": { + "@release-it/conventional-changelog": { + "preset": "angular", + "infile": "CHANGELOG.md", + "header": "# Changelog" + } + }, + "hooks": { + "before:init": "npm test", + "after:bump": "gulp version --bump ${version} && npm run build && npm run test:build:version && git add ./dist && git add ./package-lock.json", + "before:release": "npm run release:changelog:fix", + "after:release": "echo Successfully released ${name} v${version} to ${repo.repository}." + } + }, + "commitlint": { + "rules": { + "header-max-length": [ + 2, + "always", + 130 + ] + }, + "extends": [ + "@commitlint/config-conventional" + ] + } +} \ No newline at end of file diff --git a/node_modules/balanced-match/.github/FUNDING.yml b/node_modules/balanced-match/.github/FUNDING.yml new file mode 100644 index 0000000..cea8b16 --- /dev/null +++ b/node_modules/balanced-match/.github/FUNDING.yml @@ -0,0 +1,2 @@ +tidelift: "npm/balanced-match" +patreon: juliangruber diff --git a/node_modules/balanced-match/LICENSE.md b/node_modules/balanced-match/LICENSE.md new file mode 100644 index 0000000..2cdc8e4 --- /dev/null +++ b/node_modules/balanced-match/LICENSE.md @@ -0,0 +1,21 @@ +(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 new file mode 100644 index 0000000..d2a48b6 --- /dev/null +++ b/node_modules/balanced-match/README.md @@ -0,0 +1,97 @@ +# 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 new file mode 100644 index 0000000..c67a646 --- /dev/null +++ b/node_modules/balanced-match/index.js @@ -0,0 +1,62 @@ +'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 new file mode 100644 index 0000000..ce6073e --- /dev/null +++ b/node_modules/balanced-match/package.json @@ -0,0 +1,48 @@ +{ + "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/bluebird/LICENSE b/node_modules/bluebird/LICENSE new file mode 100644 index 0000000..b24e635 --- /dev/null +++ b/node_modules/bluebird/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2013-2018 Petka Antonov + +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/bluebird/README.md b/node_modules/bluebird/README.md new file mode 100644 index 0000000..7c1dd66 --- /dev/null +++ b/node_modules/bluebird/README.md @@ -0,0 +1,57 @@ + + Promises/A+ logo + + + +[![Build Status](https://travis-ci.org/petkaantonov/bluebird.svg?branch=master)](https://travis-ci.org/petkaantonov/bluebird) +[![coverage-98%](https://img.shields.io/badge/coverage-98%25-brightgreen.svg?style=flat)](http://petkaantonov.github.io/bluebird/coverage/debug/index.html) + +**Got a question?** Join us on [stackoverflow](http://stackoverflow.com/questions/tagged/bluebird), the [mailing list](https://groups.google.com/forum/#!forum/bluebird-js) or chat on [IRC](https://webchat.freenode.net/?channels=#promises) + +# Introduction + +Bluebird is a fully featured promise library with focus on innovative features and performance + +See the [**bluebird website**](http://bluebirdjs.com/docs/getting-started.html) for further documentation, references and instructions. See the [**API reference**](http://bluebirdjs.com/docs/api-reference.html) here. + +For bluebird 2.x documentation and files, see the [2.x tree](https://github.com/petkaantonov/bluebird/tree/2.x). + +### Note + +Promises in Node.js 10 are significantly faster than before. Bluebird still includes a lot of features like cancellation, iteration methods and warnings that native promises don't. If you are using Bluebird for performance rather than for those - please consider giving native promises a shot and running the benchmarks yourself. + +# Questions and issues + +The [github issue tracker](https://github.com/petkaantonov/bluebird/issues) is **_only_** for bug reports and feature requests. Anything else, such as questions for help in using the library, should be posted in [StackOverflow](http://stackoverflow.com/questions/tagged/bluebird) under tags `promise` and `bluebird`. + + + +## Thanks + +Thanks to BrowserStack for providing us with a free account which lets us support old browsers like IE8. + +# License + +The MIT License (MIT) + +Copyright (c) 2013-2019 Petka Antonov + +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/bluebird/changelog.md b/node_modules/bluebird/changelog.md new file mode 100644 index 0000000..73b2eb6 --- /dev/null +++ b/node_modules/bluebird/changelog.md @@ -0,0 +1 @@ +[http://bluebirdjs.com/docs/changelog.html](http://bluebirdjs.com/docs/changelog.html) diff --git a/node_modules/bluebird/js/browser/bluebird.core.js b/node_modules/bluebird/js/browser/bluebird.core.js new file mode 100644 index 0000000..24a8bf2 --- /dev/null +++ b/node_modules/bluebird/js/browser/bluebird.core.js @@ -0,0 +1,3914 @@ +/* @preserve + * The MIT License (MIT) + * + * Copyright (c) 2013-2018 Petka Antonov + * + * 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. + * + */ +/** + * bluebird build version 3.7.2 + * Features enabled: core + * Features disabled: race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each +*/ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.Promise=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof _dereq_=="function"&&_dereq_;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof _dereq_=="function"&&_dereq_;for(var o=0;o 0) { + _drainQueueStep(queue); + } +} + +function _drainQueueStep(queue) { + var fn = queue.shift(); + if (typeof fn !== "function") { + fn._settlePromises(); + } else { + var receiver = queue.shift(); + var arg = queue.shift(); + fn.call(receiver, arg); + } +} + +Async.prototype._drainQueues = function () { + _drainQueue(this._normalQueue); + this._reset(); + this._haveDrainedQueues = true; + _drainQueue(this._lateQueue); +}; + +Async.prototype._queueTick = function () { + if (!this._isTickUsed) { + this._isTickUsed = true; + this._schedule(this.drainQueues); + } +}; + +Async.prototype._reset = function () { + this._isTickUsed = false; +}; + +module.exports = Async; +module.exports.firstLineError = firstLineError; + +},{"./queue":17,"./schedule":18}],2:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) { +var calledBind = false; +var rejectThis = function(_, e) { + this._reject(e); +}; + +var targetRejected = function(e, context) { + context.promiseRejectionQueued = true; + context.bindingPromise._then(rejectThis, rejectThis, null, this, e); +}; + +var bindingResolved = function(thisArg, context) { + if (((this._bitField & 50397184) === 0)) { + this._resolveCallback(context.target); + } +}; + +var bindingRejected = function(e, context) { + if (!context.promiseRejectionQueued) this._reject(e); +}; + +Promise.prototype.bind = function (thisArg) { + if (!calledBind) { + calledBind = true; + Promise.prototype._propagateFrom = debug.propagateFromFunction(); + Promise.prototype._boundValue = debug.boundValueFunction(); + } + var maybePromise = tryConvertToPromise(thisArg); + var ret = new Promise(INTERNAL); + ret._propagateFrom(this, 1); + var target = this._target(); + ret._setBoundTo(maybePromise); + if (maybePromise instanceof Promise) { + var context = { + promiseRejectionQueued: false, + promise: ret, + target: target, + bindingPromise: maybePromise + }; + target._then(INTERNAL, targetRejected, undefined, ret, context); + maybePromise._then( + bindingResolved, bindingRejected, undefined, ret, context); + ret._setOnCancel(maybePromise); + } else { + ret._resolveCallback(target); + } + return ret; +}; + +Promise.prototype._setBoundTo = function (obj) { + if (obj !== undefined) { + this._bitField = this._bitField | 2097152; + this._boundTo = obj; + } else { + this._bitField = this._bitField & (~2097152); + } +}; + +Promise.prototype._isBound = function () { + return (this._bitField & 2097152) === 2097152; +}; + +Promise.bind = function (thisArg, value) { + return Promise.resolve(value).bind(thisArg); +}; +}; + +},{}],3:[function(_dereq_,module,exports){ +"use strict"; +var old; +if (typeof Promise !== "undefined") old = Promise; +function noConflict() { + try { if (Promise === bluebird) Promise = old; } + catch (e) {} + return bluebird; +} +var bluebird = _dereq_("./promise")(); +bluebird.noConflict = noConflict; +module.exports = bluebird; + +},{"./promise":15}],4:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, PromiseArray, apiRejection, debug) { +var util = _dereq_("./util"); +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var async = Promise._async; + +Promise.prototype["break"] = Promise.prototype.cancel = function() { + if (!debug.cancellation()) return this._warn("cancellation is disabled"); + + var promise = this; + var child = promise; + while (promise._isCancellable()) { + if (!promise._cancelBy(child)) { + if (child._isFollowing()) { + child._followee().cancel(); + } else { + child._cancelBranched(); + } + break; + } + + var parent = promise._cancellationParent; + if (parent == null || !parent._isCancellable()) { + if (promise._isFollowing()) { + promise._followee().cancel(); + } else { + promise._cancelBranched(); + } + break; + } else { + if (promise._isFollowing()) promise._followee().cancel(); + promise._setWillBeCancelled(); + child = promise; + promise = parent; + } + } +}; + +Promise.prototype._branchHasCancelled = function() { + this._branchesRemainingToCancel--; +}; + +Promise.prototype._enoughBranchesHaveCancelled = function() { + return this._branchesRemainingToCancel === undefined || + this._branchesRemainingToCancel <= 0; +}; + +Promise.prototype._cancelBy = function(canceller) { + if (canceller === this) { + this._branchesRemainingToCancel = 0; + this._invokeOnCancel(); + return true; + } else { + this._branchHasCancelled(); + if (this._enoughBranchesHaveCancelled()) { + this._invokeOnCancel(); + return true; + } + } + return false; +}; + +Promise.prototype._cancelBranched = function() { + if (this._enoughBranchesHaveCancelled()) { + this._cancel(); + } +}; + +Promise.prototype._cancel = function() { + if (!this._isCancellable()) return; + this._setCancelled(); + async.invoke(this._cancelPromises, this, undefined); +}; + +Promise.prototype._cancelPromises = function() { + if (this._length() > 0) this._settlePromises(); +}; + +Promise.prototype._unsetOnCancel = function() { + this._onCancelField = undefined; +}; + +Promise.prototype._isCancellable = function() { + return this.isPending() && !this._isCancelled(); +}; + +Promise.prototype.isCancellable = function() { + return this.isPending() && !this.isCancelled(); +}; + +Promise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) { + if (util.isArray(onCancelCallback)) { + for (var i = 0; i < onCancelCallback.length; ++i) { + this._doInvokeOnCancel(onCancelCallback[i], internalOnly); + } + } else if (onCancelCallback !== undefined) { + if (typeof onCancelCallback === "function") { + if (!internalOnly) { + var e = tryCatch(onCancelCallback).call(this._boundValue()); + if (e === errorObj) { + this._attachExtraTrace(e.e); + async.throwLater(e.e); + } + } + } else { + onCancelCallback._resultCancelled(this); + } + } +}; + +Promise.prototype._invokeOnCancel = function() { + var onCancelCallback = this._onCancel(); + this._unsetOnCancel(); + async.invoke(this._doInvokeOnCancel, this, onCancelCallback); +}; + +Promise.prototype._invokeInternalOnCancel = function() { + if (this._isCancellable()) { + this._doInvokeOnCancel(this._onCancel(), true); + this._unsetOnCancel(); + } +}; + +Promise.prototype._resultCancelled = function() { + this.cancel(); +}; + +}; + +},{"./util":21}],5:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(NEXT_FILTER) { +var util = _dereq_("./util"); +var getKeys = _dereq_("./es5").keys; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; + +function catchFilter(instances, cb, promise) { + return function(e) { + var boundTo = promise._boundValue(); + predicateLoop: for (var i = 0; i < instances.length; ++i) { + var item = instances[i]; + + if (item === Error || + (item != null && item.prototype instanceof Error)) { + if (e instanceof item) { + return tryCatch(cb).call(boundTo, e); + } + } else if (typeof item === "function") { + var matchesPredicate = tryCatch(item).call(boundTo, e); + if (matchesPredicate === errorObj) { + return matchesPredicate; + } else if (matchesPredicate) { + return tryCatch(cb).call(boundTo, e); + } + } else if (util.isObject(e)) { + var keys = getKeys(item); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + if (item[key] != e[key]) { + continue predicateLoop; + } + } + return tryCatch(cb).call(boundTo, e); + } + } + return NEXT_FILTER; + }; +} + +return catchFilter; +}; + +},{"./es5":10,"./util":21}],6:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +var longStackTraces = false; +var contextStack = []; + +Promise.prototype._promiseCreated = function() {}; +Promise.prototype._pushContext = function() {}; +Promise.prototype._popContext = function() {return null;}; +Promise._peekContext = Promise.prototype._peekContext = function() {}; + +function Context() { + this._trace = new Context.CapturedTrace(peekContext()); +} +Context.prototype._pushContext = function () { + if (this._trace !== undefined) { + this._trace._promiseCreated = null; + contextStack.push(this._trace); + } +}; + +Context.prototype._popContext = function () { + if (this._trace !== undefined) { + var trace = contextStack.pop(); + var ret = trace._promiseCreated; + trace._promiseCreated = null; + return ret; + } + return null; +}; + +function createContext() { + if (longStackTraces) return new Context(); +} + +function peekContext() { + var lastIndex = contextStack.length - 1; + if (lastIndex >= 0) { + return contextStack[lastIndex]; + } + return undefined; +} +Context.CapturedTrace = null; +Context.create = createContext; +Context.deactivateLongStackTraces = function() {}; +Context.activateLongStackTraces = function() { + var Promise_pushContext = Promise.prototype._pushContext; + var Promise_popContext = Promise.prototype._popContext; + var Promise_PeekContext = Promise._peekContext; + var Promise_peekContext = Promise.prototype._peekContext; + var Promise_promiseCreated = Promise.prototype._promiseCreated; + Context.deactivateLongStackTraces = function() { + Promise.prototype._pushContext = Promise_pushContext; + Promise.prototype._popContext = Promise_popContext; + Promise._peekContext = Promise_PeekContext; + Promise.prototype._peekContext = Promise_peekContext; + Promise.prototype._promiseCreated = Promise_promiseCreated; + longStackTraces = false; + }; + longStackTraces = true; + Promise.prototype._pushContext = Context.prototype._pushContext; + Promise.prototype._popContext = Context.prototype._popContext; + Promise._peekContext = Promise.prototype._peekContext = peekContext; + Promise.prototype._promiseCreated = function() { + var ctx = this._peekContext(); + if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this; + }; +}; +return Context; +}; + +},{}],7:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, Context, + enableAsyncHooks, disableAsyncHooks) { +var async = Promise._async; +var Warning = _dereq_("./errors").Warning; +var util = _dereq_("./util"); +var es5 = _dereq_("./es5"); +var canAttachTrace = util.canAttachTrace; +var unhandledRejectionHandled; +var possiblyUnhandledRejection; +var bluebirdFramePattern = + /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/; +var nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/; +var parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/; +var stackFramePattern = null; +var formatStack = null; +var indentStackFrames = false; +var printWarning; +var debugging = !!(util.env("BLUEBIRD_DEBUG") != 0 && + (true || + util.env("BLUEBIRD_DEBUG") || + util.env("NODE_ENV") === "development")); + +var warnings = !!(util.env("BLUEBIRD_WARNINGS") != 0 && + (debugging || util.env("BLUEBIRD_WARNINGS"))); + +var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 && + (debugging || util.env("BLUEBIRD_LONG_STACK_TRACES"))); + +var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 && + (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); + +var deferUnhandledRejectionCheck; +(function() { + var promises = []; + + function unhandledRejectionCheck() { + for (var i = 0; i < promises.length; ++i) { + promises[i]._notifyUnhandledRejection(); + } + unhandledRejectionClear(); + } + + function unhandledRejectionClear() { + promises.length = 0; + } + + deferUnhandledRejectionCheck = function(promise) { + promises.push(promise); + setTimeout(unhandledRejectionCheck, 1); + }; + + es5.defineProperty(Promise, "_unhandledRejectionCheck", { + value: unhandledRejectionCheck + }); + es5.defineProperty(Promise, "_unhandledRejectionClear", { + value: unhandledRejectionClear + }); +})(); + +Promise.prototype.suppressUnhandledRejections = function() { + var target = this._target(); + target._bitField = ((target._bitField & (~1048576)) | + 524288); +}; + +Promise.prototype._ensurePossibleRejectionHandled = function () { + if ((this._bitField & 524288) !== 0) return; + this._setRejectionIsUnhandled(); + deferUnhandledRejectionCheck(this); +}; + +Promise.prototype._notifyUnhandledRejectionIsHandled = function () { + fireRejectionEvent("rejectionHandled", + unhandledRejectionHandled, undefined, this); +}; + +Promise.prototype._setReturnedNonUndefined = function() { + this._bitField = this._bitField | 268435456; +}; + +Promise.prototype._returnedNonUndefined = function() { + return (this._bitField & 268435456) !== 0; +}; + +Promise.prototype._notifyUnhandledRejection = function () { + if (this._isRejectionUnhandled()) { + var reason = this._settledValue(); + this._setUnhandledRejectionIsNotified(); + fireRejectionEvent("unhandledRejection", + possiblyUnhandledRejection, reason, this); + } +}; + +Promise.prototype._setUnhandledRejectionIsNotified = function () { + this._bitField = this._bitField | 262144; +}; + +Promise.prototype._unsetUnhandledRejectionIsNotified = function () { + this._bitField = this._bitField & (~262144); +}; + +Promise.prototype._isUnhandledRejectionNotified = function () { + return (this._bitField & 262144) > 0; +}; + +Promise.prototype._setRejectionIsUnhandled = function () { + this._bitField = this._bitField | 1048576; +}; + +Promise.prototype._unsetRejectionIsUnhandled = function () { + this._bitField = this._bitField & (~1048576); + if (this._isUnhandledRejectionNotified()) { + this._unsetUnhandledRejectionIsNotified(); + this._notifyUnhandledRejectionIsHandled(); + } +}; + +Promise.prototype._isRejectionUnhandled = function () { + return (this._bitField & 1048576) > 0; +}; + +Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) { + return warn(message, shouldUseOwnTrace, promise || this); +}; + +Promise.onPossiblyUnhandledRejection = function (fn) { + var context = Promise._getContext(); + possiblyUnhandledRejection = util.contextBind(context, fn); +}; + +Promise.onUnhandledRejectionHandled = function (fn) { + var context = Promise._getContext(); + unhandledRejectionHandled = util.contextBind(context, fn); +}; + +var disableLongStackTraces = function() {}; +Promise.longStackTraces = function () { + if (async.haveItemsQueued() && !config.longStackTraces) { + throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + if (!config.longStackTraces && longStackTracesIsSupported()) { + var Promise_captureStackTrace = Promise.prototype._captureStackTrace; + var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; + var Promise_dereferenceTrace = Promise.prototype._dereferenceTrace; + config.longStackTraces = true; + disableLongStackTraces = function() { + if (async.haveItemsQueued() && !config.longStackTraces) { + throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + Promise.prototype._captureStackTrace = Promise_captureStackTrace; + Promise.prototype._attachExtraTrace = Promise_attachExtraTrace; + Promise.prototype._dereferenceTrace = Promise_dereferenceTrace; + Context.deactivateLongStackTraces(); + config.longStackTraces = false; + }; + Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace; + Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace; + Promise.prototype._dereferenceTrace = longStackTracesDereferenceTrace; + Context.activateLongStackTraces(); + } +}; + +Promise.hasLongStackTraces = function () { + return config.longStackTraces && longStackTracesIsSupported(); +}; + + +var legacyHandlers = { + unhandledrejection: { + before: function() { + var ret = util.global.onunhandledrejection; + util.global.onunhandledrejection = null; + return ret; + }, + after: function(fn) { + util.global.onunhandledrejection = fn; + } + }, + rejectionhandled: { + before: function() { + var ret = util.global.onrejectionhandled; + util.global.onrejectionhandled = null; + return ret; + }, + after: function(fn) { + util.global.onrejectionhandled = fn; + } + } +}; + +var fireDomEvent = (function() { + var dispatch = function(legacy, e) { + if (legacy) { + var fn; + try { + fn = legacy.before(); + return !util.global.dispatchEvent(e); + } finally { + legacy.after(fn); + } + } else { + return !util.global.dispatchEvent(e); + } + }; + try { + if (typeof CustomEvent === "function") { + var event = new CustomEvent("CustomEvent"); + util.global.dispatchEvent(event); + return function(name, event) { + name = name.toLowerCase(); + var eventData = { + detail: event, + cancelable: true + }; + var domEvent = new CustomEvent(name, eventData); + es5.defineProperty( + domEvent, "promise", {value: event.promise}); + es5.defineProperty( + domEvent, "reason", {value: event.reason}); + + return dispatch(legacyHandlers[name], domEvent); + }; + } else if (typeof Event === "function") { + var event = new Event("CustomEvent"); + util.global.dispatchEvent(event); + return function(name, event) { + name = name.toLowerCase(); + var domEvent = new Event(name, { + cancelable: true + }); + domEvent.detail = event; + es5.defineProperty(domEvent, "promise", {value: event.promise}); + es5.defineProperty(domEvent, "reason", {value: event.reason}); + return dispatch(legacyHandlers[name], domEvent); + }; + } else { + var event = document.createEvent("CustomEvent"); + event.initCustomEvent("testingtheevent", false, true, {}); + util.global.dispatchEvent(event); + return function(name, event) { + name = name.toLowerCase(); + var domEvent = document.createEvent("CustomEvent"); + domEvent.initCustomEvent(name, false, true, + event); + return dispatch(legacyHandlers[name], domEvent); + }; + } + } catch (e) {} + return function() { + return false; + }; +})(); + +var fireGlobalEvent = (function() { + if (util.isNode) { + return function() { + return process.emit.apply(process, arguments); + }; + } else { + if (!util.global) { + return function() { + return false; + }; + } + return function(name) { + var methodName = "on" + name.toLowerCase(); + var method = util.global[methodName]; + if (!method) return false; + method.apply(util.global, [].slice.call(arguments, 1)); + return true; + }; + } +})(); + +function generatePromiseLifecycleEventObject(name, promise) { + return {promise: promise}; +} + +var eventToObjectGenerator = { + promiseCreated: generatePromiseLifecycleEventObject, + promiseFulfilled: generatePromiseLifecycleEventObject, + promiseRejected: generatePromiseLifecycleEventObject, + promiseResolved: generatePromiseLifecycleEventObject, + promiseCancelled: generatePromiseLifecycleEventObject, + promiseChained: function(name, promise, child) { + return {promise: promise, child: child}; + }, + warning: function(name, warning) { + return {warning: warning}; + }, + unhandledRejection: function (name, reason, promise) { + return {reason: reason, promise: promise}; + }, + rejectionHandled: generatePromiseLifecycleEventObject +}; + +var activeFireEvent = function (name) { + var globalEventFired = false; + try { + globalEventFired = fireGlobalEvent.apply(null, arguments); + } catch (e) { + async.throwLater(e); + globalEventFired = true; + } + + var domEventFired = false; + try { + domEventFired = fireDomEvent(name, + eventToObjectGenerator[name].apply(null, arguments)); + } catch (e) { + async.throwLater(e); + domEventFired = true; + } + + return domEventFired || globalEventFired; +}; + +Promise.config = function(opts) { + opts = Object(opts); + if ("longStackTraces" in opts) { + if (opts.longStackTraces) { + Promise.longStackTraces(); + } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) { + disableLongStackTraces(); + } + } + if ("warnings" in opts) { + var warningsOption = opts.warnings; + config.warnings = !!warningsOption; + wForgottenReturn = config.warnings; + + if (util.isObject(warningsOption)) { + if ("wForgottenReturn" in warningsOption) { + wForgottenReturn = !!warningsOption.wForgottenReturn; + } + } + } + if ("cancellation" in opts && opts.cancellation && !config.cancellation) { + if (async.haveItemsQueued()) { + throw new Error( + "cannot enable cancellation after promises are in use"); + } + Promise.prototype._clearCancellationData = + cancellationClearCancellationData; + Promise.prototype._propagateFrom = cancellationPropagateFrom; + Promise.prototype._onCancel = cancellationOnCancel; + Promise.prototype._setOnCancel = cancellationSetOnCancel; + Promise.prototype._attachCancellationCallback = + cancellationAttachCancellationCallback; + Promise.prototype._execute = cancellationExecute; + propagateFromFunction = cancellationPropagateFrom; + config.cancellation = true; + } + if ("monitoring" in opts) { + if (opts.monitoring && !config.monitoring) { + config.monitoring = true; + Promise.prototype._fireEvent = activeFireEvent; + } else if (!opts.monitoring && config.monitoring) { + config.monitoring = false; + Promise.prototype._fireEvent = defaultFireEvent; + } + } + if ("asyncHooks" in opts && util.nodeSupportsAsyncResource) { + var prev = config.asyncHooks; + var cur = !!opts.asyncHooks; + if (prev !== cur) { + config.asyncHooks = cur; + if (cur) { + enableAsyncHooks(); + } else { + disableAsyncHooks(); + } + } + } + return Promise; +}; + +function defaultFireEvent() { return false; } + +Promise.prototype._fireEvent = defaultFireEvent; +Promise.prototype._execute = function(executor, resolve, reject) { + try { + executor(resolve, reject); + } catch (e) { + return e; + } +}; +Promise.prototype._onCancel = function () {}; +Promise.prototype._setOnCancel = function (handler) { ; }; +Promise.prototype._attachCancellationCallback = function(onCancel) { + ; +}; +Promise.prototype._captureStackTrace = function () {}; +Promise.prototype._attachExtraTrace = function () {}; +Promise.prototype._dereferenceTrace = function () {}; +Promise.prototype._clearCancellationData = function() {}; +Promise.prototype._propagateFrom = function (parent, flags) { + ; + ; +}; + +function cancellationExecute(executor, resolve, reject) { + var promise = this; + try { + executor(resolve, reject, function(onCancel) { + if (typeof onCancel !== "function") { + throw new TypeError("onCancel must be a function, got: " + + util.toString(onCancel)); + } + promise._attachCancellationCallback(onCancel); + }); + } catch (e) { + return e; + } +} + +function cancellationAttachCancellationCallback(onCancel) { + if (!this._isCancellable()) return this; + + var previousOnCancel = this._onCancel(); + if (previousOnCancel !== undefined) { + if (util.isArray(previousOnCancel)) { + previousOnCancel.push(onCancel); + } else { + this._setOnCancel([previousOnCancel, onCancel]); + } + } else { + this._setOnCancel(onCancel); + } +} + +function cancellationOnCancel() { + return this._onCancelField; +} + +function cancellationSetOnCancel(onCancel) { + this._onCancelField = onCancel; +} + +function cancellationClearCancellationData() { + this._cancellationParent = undefined; + this._onCancelField = undefined; +} + +function cancellationPropagateFrom(parent, flags) { + if ((flags & 1) !== 0) { + this._cancellationParent = parent; + var branchesRemainingToCancel = parent._branchesRemainingToCancel; + if (branchesRemainingToCancel === undefined) { + branchesRemainingToCancel = 0; + } + parent._branchesRemainingToCancel = branchesRemainingToCancel + 1; + } + if ((flags & 2) !== 0 && parent._isBound()) { + this._setBoundTo(parent._boundTo); + } +} + +function bindingPropagateFrom(parent, flags) { + if ((flags & 2) !== 0 && parent._isBound()) { + this._setBoundTo(parent._boundTo); + } +} +var propagateFromFunction = bindingPropagateFrom; + +function boundValueFunction() { + var ret = this._boundTo; + if (ret !== undefined) { + if (ret instanceof Promise) { + if (ret.isFulfilled()) { + return ret.value(); + } else { + return undefined; + } + } + } + return ret; +} + +function longStackTracesCaptureStackTrace() { + this._trace = new CapturedTrace(this._peekContext()); +} + +function longStackTracesAttachExtraTrace(error, ignoreSelf) { + if (canAttachTrace(error)) { + var trace = this._trace; + if (trace !== undefined) { + if (ignoreSelf) trace = trace._parent; + } + if (trace !== undefined) { + trace.attachExtraTrace(error); + } else if (!error.__stackCleaned__) { + var parsed = parseStackAndMessage(error); + util.notEnumerableProp(error, "stack", + parsed.message + "\n" + parsed.stack.join("\n")); + util.notEnumerableProp(error, "__stackCleaned__", true); + } + } +} + +function longStackTracesDereferenceTrace() { + this._trace = undefined; +} + +function checkForgottenReturns(returnValue, promiseCreated, name, promise, + parent) { + if (returnValue === undefined && promiseCreated !== null && + wForgottenReturn) { + if (parent !== undefined && parent._returnedNonUndefined()) return; + if ((promise._bitField & 65535) === 0) return; + + if (name) name = name + " "; + var handlerLine = ""; + var creatorLine = ""; + if (promiseCreated._trace) { + var traceLines = promiseCreated._trace.stack.split("\n"); + var stack = cleanStack(traceLines); + for (var i = stack.length - 1; i >= 0; --i) { + var line = stack[i]; + if (!nodeFramePattern.test(line)) { + var lineMatches = line.match(parseLinePattern); + if (lineMatches) { + handlerLine = "at " + lineMatches[1] + + ":" + lineMatches[2] + ":" + lineMatches[3] + " "; + } + break; + } + } + + if (stack.length > 0) { + var firstUserLine = stack[0]; + for (var i = 0; i < traceLines.length; ++i) { + + if (traceLines[i] === firstUserLine) { + if (i > 0) { + creatorLine = "\n" + traceLines[i - 1]; + } + break; + } + } + + } + } + var msg = "a promise was created in a " + name + + "handler " + handlerLine + "but was not returned from it, " + + "see http://goo.gl/rRqMUw" + + creatorLine; + promise._warn(msg, true, promiseCreated); + } +} + +function deprecated(name, replacement) { + var message = name + + " is deprecated and will be removed in a future version."; + if (replacement) message += " Use " + replacement + " instead."; + return warn(message); +} + +function warn(message, shouldUseOwnTrace, promise) { + if (!config.warnings) return; + var warning = new Warning(message); + var ctx; + if (shouldUseOwnTrace) { + promise._attachExtraTrace(warning); + } else if (config.longStackTraces && (ctx = Promise._peekContext())) { + ctx.attachExtraTrace(warning); + } else { + var parsed = parseStackAndMessage(warning); + warning.stack = parsed.message + "\n" + parsed.stack.join("\n"); + } + + if (!activeFireEvent("warning", warning)) { + formatAndLogError(warning, "", true); + } +} + +function reconstructStack(message, stacks) { + for (var i = 0; i < stacks.length - 1; ++i) { + stacks[i].push("From previous event:"); + stacks[i] = stacks[i].join("\n"); + } + if (i < stacks.length) { + stacks[i] = stacks[i].join("\n"); + } + return message + "\n" + stacks.join("\n"); +} + +function removeDuplicateOrEmptyJumps(stacks) { + for (var i = 0; i < stacks.length; ++i) { + if (stacks[i].length === 0 || + ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) { + stacks.splice(i, 1); + i--; + } + } +} + +function removeCommonRoots(stacks) { + var current = stacks[0]; + for (var i = 1; i < stacks.length; ++i) { + var prev = stacks[i]; + var currentLastIndex = current.length - 1; + var currentLastLine = current[currentLastIndex]; + var commonRootMeetPoint = -1; + + for (var j = prev.length - 1; j >= 0; --j) { + if (prev[j] === currentLastLine) { + commonRootMeetPoint = j; + break; + } + } + + for (var j = commonRootMeetPoint; j >= 0; --j) { + var line = prev[j]; + if (current[currentLastIndex] === line) { + current.pop(); + currentLastIndex--; + } else { + break; + } + } + current = prev; + } +} + +function cleanStack(stack) { + var ret = []; + for (var i = 0; i < stack.length; ++i) { + var line = stack[i]; + var isTraceLine = " (No stack trace)" === line || + stackFramePattern.test(line); + var isInternalFrame = isTraceLine && shouldIgnore(line); + if (isTraceLine && !isInternalFrame) { + if (indentStackFrames && line.charAt(0) !== " ") { + line = " " + line; + } + ret.push(line); + } + } + return ret; +} + +function stackFramesAsArray(error) { + var stack = error.stack.replace(/\s+$/g, "").split("\n"); + for (var i = 0; i < stack.length; ++i) { + var line = stack[i]; + if (" (No stack trace)" === line || stackFramePattern.test(line)) { + break; + } + } + if (i > 0 && error.name != "SyntaxError") { + stack = stack.slice(i); + } + return stack; +} + +function parseStackAndMessage(error) { + var stack = error.stack; + var message = error.toString(); + stack = typeof stack === "string" && stack.length > 0 + ? stackFramesAsArray(error) : [" (No stack trace)"]; + return { + message: message, + stack: error.name == "SyntaxError" ? stack : cleanStack(stack) + }; +} + +function formatAndLogError(error, title, isSoft) { + if (typeof console !== "undefined") { + var message; + if (util.isObject(error)) { + var stack = error.stack; + message = title + formatStack(stack, error); + } else { + message = title + String(error); + } + if (typeof printWarning === "function") { + printWarning(message, isSoft); + } else if (typeof console.log === "function" || + typeof console.log === "object") { + console.log(message); + } + } +} + +function fireRejectionEvent(name, localHandler, reason, promise) { + var localEventFired = false; + try { + if (typeof localHandler === "function") { + localEventFired = true; + if (name === "rejectionHandled") { + localHandler(promise); + } else { + localHandler(reason, promise); + } + } + } catch (e) { + async.throwLater(e); + } + + if (name === "unhandledRejection") { + if (!activeFireEvent(name, reason, promise) && !localEventFired) { + formatAndLogError(reason, "Unhandled rejection "); + } + } else { + activeFireEvent(name, promise); + } +} + +function formatNonError(obj) { + var str; + if (typeof obj === "function") { + str = "[function " + + (obj.name || "anonymous") + + "]"; + } else { + str = obj && typeof obj.toString === "function" + ? obj.toString() : util.toString(obj); + var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/; + if (ruselessToString.test(str)) { + try { + var newStr = JSON.stringify(obj); + str = newStr; + } + catch(e) { + + } + } + if (str.length === 0) { + str = "(empty array)"; + } + } + return ("(<" + snip(str) + ">, no stack trace)"); +} + +function snip(str) { + var maxChars = 41; + if (str.length < maxChars) { + return str; + } + return str.substr(0, maxChars - 3) + "..."; +} + +function longStackTracesIsSupported() { + return typeof captureStackTrace === "function"; +} + +var shouldIgnore = function() { return false; }; +var parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; +function parseLineInfo(line) { + var matches = line.match(parseLineInfoRegex); + if (matches) { + return { + fileName: matches[1], + line: parseInt(matches[2], 10) + }; + } +} + +function setBounds(firstLineError, lastLineError) { + if (!longStackTracesIsSupported()) return; + var firstStackLines = (firstLineError.stack || "").split("\n"); + var lastStackLines = (lastLineError.stack || "").split("\n"); + var firstIndex = -1; + var lastIndex = -1; + var firstFileName; + var lastFileName; + for (var i = 0; i < firstStackLines.length; ++i) { + var result = parseLineInfo(firstStackLines[i]); + if (result) { + firstFileName = result.fileName; + firstIndex = result.line; + break; + } + } + for (var i = 0; i < lastStackLines.length; ++i) { + var result = parseLineInfo(lastStackLines[i]); + if (result) { + lastFileName = result.fileName; + lastIndex = result.line; + break; + } + } + if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName || + firstFileName !== lastFileName || firstIndex >= lastIndex) { + return; + } + + shouldIgnore = function(line) { + if (bluebirdFramePattern.test(line)) return true; + var info = parseLineInfo(line); + if (info) { + if (info.fileName === firstFileName && + (firstIndex <= info.line && info.line <= lastIndex)) { + return true; + } + } + return false; + }; +} + +function CapturedTrace(parent) { + this._parent = parent; + this._promisesCreated = 0; + var length = this._length = 1 + (parent === undefined ? 0 : parent._length); + captureStackTrace(this, CapturedTrace); + if (length > 32) this.uncycle(); +} +util.inherits(CapturedTrace, Error); +Context.CapturedTrace = CapturedTrace; + +CapturedTrace.prototype.uncycle = function() { + var length = this._length; + if (length < 2) return; + var nodes = []; + var stackToIndex = {}; + + for (var i = 0, node = this; node !== undefined; ++i) { + nodes.push(node); + node = node._parent; + } + length = this._length = i; + for (var i = length - 1; i >= 0; --i) { + var stack = nodes[i].stack; + if (stackToIndex[stack] === undefined) { + stackToIndex[stack] = i; + } + } + for (var i = 0; i < length; ++i) { + var currentStack = nodes[i].stack; + var index = stackToIndex[currentStack]; + if (index !== undefined && index !== i) { + if (index > 0) { + nodes[index - 1]._parent = undefined; + nodes[index - 1]._length = 1; + } + nodes[i]._parent = undefined; + nodes[i]._length = 1; + var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; + + if (index < length - 1) { + cycleEdgeNode._parent = nodes[index + 1]; + cycleEdgeNode._parent.uncycle(); + cycleEdgeNode._length = + cycleEdgeNode._parent._length + 1; + } else { + cycleEdgeNode._parent = undefined; + cycleEdgeNode._length = 1; + } + var currentChildLength = cycleEdgeNode._length + 1; + for (var j = i - 2; j >= 0; --j) { + nodes[j]._length = currentChildLength; + currentChildLength++; + } + return; + } + } +}; + +CapturedTrace.prototype.attachExtraTrace = function(error) { + if (error.__stackCleaned__) return; + this.uncycle(); + var parsed = parseStackAndMessage(error); + var message = parsed.message; + var stacks = [parsed.stack]; + + var trace = this; + while (trace !== undefined) { + stacks.push(cleanStack(trace.stack.split("\n"))); + trace = trace._parent; + } + removeCommonRoots(stacks); + removeDuplicateOrEmptyJumps(stacks); + util.notEnumerableProp(error, "stack", reconstructStack(message, stacks)); + util.notEnumerableProp(error, "__stackCleaned__", true); +}; + +var captureStackTrace = (function stackDetection() { + var v8stackFramePattern = /^\s*at\s*/; + var v8stackFormatter = function(stack, error) { + if (typeof stack === "string") return stack; + + if (error.name !== undefined && + error.message !== undefined) { + return error.toString(); + } + return formatNonError(error); + }; + + if (typeof Error.stackTraceLimit === "number" && + typeof Error.captureStackTrace === "function") { + Error.stackTraceLimit += 6; + stackFramePattern = v8stackFramePattern; + formatStack = v8stackFormatter; + var captureStackTrace = Error.captureStackTrace; + + shouldIgnore = function(line) { + return bluebirdFramePattern.test(line); + }; + return function(receiver, ignoreUntil) { + Error.stackTraceLimit += 6; + captureStackTrace(receiver, ignoreUntil); + Error.stackTraceLimit -= 6; + }; + } + var err = new Error(); + + if (typeof err.stack === "string" && + err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) { + stackFramePattern = /@/; + formatStack = v8stackFormatter; + indentStackFrames = true; + return function captureStackTrace(o) { + o.stack = new Error().stack; + }; + } + + var hasStackAfterThrow; + try { throw new Error(); } + catch(e) { + hasStackAfterThrow = ("stack" in e); + } + if (!("stack" in err) && hasStackAfterThrow && + typeof Error.stackTraceLimit === "number") { + stackFramePattern = v8stackFramePattern; + formatStack = v8stackFormatter; + return function captureStackTrace(o) { + Error.stackTraceLimit += 6; + try { throw new Error(); } + catch(e) { o.stack = e.stack; } + Error.stackTraceLimit -= 6; + }; + } + + formatStack = function(stack, error) { + if (typeof stack === "string") return stack; + + if ((typeof error === "object" || + typeof error === "function") && + error.name !== undefined && + error.message !== undefined) { + return error.toString(); + } + return formatNonError(error); + }; + + return null; + +})([]); + +if (typeof console !== "undefined" && typeof console.warn !== "undefined") { + printWarning = function (message) { + console.warn(message); + }; + if (util.isNode && process.stderr.isTTY) { + printWarning = function(message, isSoft) { + var color = isSoft ? "\u001b[33m" : "\u001b[31m"; + console.warn(color + message + "\u001b[0m\n"); + }; + } else if (!util.isNode && typeof (new Error().stack) === "string") { + printWarning = function(message, isSoft) { + console.warn("%c" + message, + isSoft ? "color: darkorange" : "color: red"); + }; + } +} + +var config = { + warnings: warnings, + longStackTraces: false, + cancellation: false, + monitoring: false, + asyncHooks: false +}; + +if (longStackTraces) Promise.longStackTraces(); + +return { + asyncHooks: function() { + return config.asyncHooks; + }, + longStackTraces: function() { + return config.longStackTraces; + }, + warnings: function() { + return config.warnings; + }, + cancellation: function() { + return config.cancellation; + }, + monitoring: function() { + return config.monitoring; + }, + propagateFromFunction: function() { + return propagateFromFunction; + }, + boundValueFunction: function() { + return boundValueFunction; + }, + checkForgottenReturns: checkForgottenReturns, + setBounds: setBounds, + warn: warn, + deprecated: deprecated, + CapturedTrace: CapturedTrace, + fireDomEvent: fireDomEvent, + fireGlobalEvent: fireGlobalEvent +}; +}; + +},{"./errors":9,"./es5":10,"./util":21}],8:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +function returner() { + return this.value; +} +function thrower() { + throw this.reason; +} + +Promise.prototype["return"] = +Promise.prototype.thenReturn = function (value) { + if (value instanceof Promise) value.suppressUnhandledRejections(); + return this._then( + returner, undefined, undefined, {value: value}, undefined); +}; + +Promise.prototype["throw"] = +Promise.prototype.thenThrow = function (reason) { + return this._then( + thrower, undefined, undefined, {reason: reason}, undefined); +}; + +Promise.prototype.catchThrow = function (reason) { + if (arguments.length <= 1) { + return this._then( + undefined, thrower, undefined, {reason: reason}, undefined); + } else { + var _reason = arguments[1]; + var handler = function() {throw _reason;}; + return this.caught(reason, handler); + } +}; + +Promise.prototype.catchReturn = function (value) { + if (arguments.length <= 1) { + if (value instanceof Promise) value.suppressUnhandledRejections(); + return this._then( + undefined, returner, undefined, {value: value}, undefined); + } else { + var _value = arguments[1]; + if (_value instanceof Promise) _value.suppressUnhandledRejections(); + var handler = function() {return _value;}; + return this.caught(value, handler); + } +}; +}; + +},{}],9:[function(_dereq_,module,exports){ +"use strict"; +var es5 = _dereq_("./es5"); +var Objectfreeze = es5.freeze; +var util = _dereq_("./util"); +var inherits = util.inherits; +var notEnumerableProp = util.notEnumerableProp; + +function subError(nameProperty, defaultMessage) { + function SubError(message) { + if (!(this instanceof SubError)) return new SubError(message); + notEnumerableProp(this, "message", + typeof message === "string" ? message : defaultMessage); + notEnumerableProp(this, "name", nameProperty); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + Error.call(this); + } + } + inherits(SubError, Error); + return SubError; +} + +var _TypeError, _RangeError; +var Warning = subError("Warning", "warning"); +var CancellationError = subError("CancellationError", "cancellation error"); +var TimeoutError = subError("TimeoutError", "timeout error"); +var AggregateError = subError("AggregateError", "aggregate error"); +try { + _TypeError = TypeError; + _RangeError = RangeError; +} catch(e) { + _TypeError = subError("TypeError", "type error"); + _RangeError = subError("RangeError", "range error"); +} + +var methods = ("join pop push shift unshift slice filter forEach some " + + "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" "); + +for (var i = 0; i < methods.length; ++i) { + if (typeof Array.prototype[methods[i]] === "function") { + AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]; + } +} + +es5.defineProperty(AggregateError.prototype, "length", { + value: 0, + configurable: false, + writable: true, + enumerable: true +}); +AggregateError.prototype["isOperational"] = true; +var level = 0; +AggregateError.prototype.toString = function() { + var indent = Array(level * 4 + 1).join(" "); + var ret = "\n" + indent + "AggregateError of:" + "\n"; + level++; + indent = Array(level * 4 + 1).join(" "); + for (var i = 0; i < this.length; ++i) { + var str = this[i] === this ? "[Circular AggregateError]" : this[i] + ""; + var lines = str.split("\n"); + for (var j = 0; j < lines.length; ++j) { + lines[j] = indent + lines[j]; + } + str = lines.join("\n"); + ret += str + "\n"; + } + level--; + return ret; +}; + +function OperationalError(message) { + if (!(this instanceof OperationalError)) + return new OperationalError(message); + notEnumerableProp(this, "name", "OperationalError"); + notEnumerableProp(this, "message", message); + this.cause = message; + this["isOperational"] = true; + + if (message instanceof Error) { + notEnumerableProp(this, "message", message.message); + notEnumerableProp(this, "stack", message.stack); + } else if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + +} +inherits(OperationalError, Error); + +var errorTypes = Error["__BluebirdErrorTypes__"]; +if (!errorTypes) { + errorTypes = Objectfreeze({ + CancellationError: CancellationError, + TimeoutError: TimeoutError, + OperationalError: OperationalError, + RejectionError: OperationalError, + AggregateError: AggregateError + }); + es5.defineProperty(Error, "__BluebirdErrorTypes__", { + value: errorTypes, + writable: false, + enumerable: false, + configurable: false + }); +} + +module.exports = { + Error: Error, + TypeError: _TypeError, + RangeError: _RangeError, + CancellationError: errorTypes.CancellationError, + OperationalError: errorTypes.OperationalError, + TimeoutError: errorTypes.TimeoutError, + AggregateError: errorTypes.AggregateError, + Warning: Warning +}; + +},{"./es5":10,"./util":21}],10:[function(_dereq_,module,exports){ +var isES5 = (function(){ + "use strict"; + return this === undefined; +})(); + +if (isES5) { + module.exports = { + freeze: Object.freeze, + defineProperty: Object.defineProperty, + getDescriptor: Object.getOwnPropertyDescriptor, + keys: Object.keys, + names: Object.getOwnPropertyNames, + getPrototypeOf: Object.getPrototypeOf, + isArray: Array.isArray, + isES5: isES5, + propertyIsWritable: function(obj, prop) { + var descriptor = Object.getOwnPropertyDescriptor(obj, prop); + return !!(!descriptor || descriptor.writable || descriptor.set); + } + }; +} else { + var has = {}.hasOwnProperty; + var str = {}.toString; + var proto = {}.constructor.prototype; + + var ObjectKeys = function (o) { + var ret = []; + for (var key in o) { + if (has.call(o, key)) { + ret.push(key); + } + } + return ret; + }; + + var ObjectGetDescriptor = function(o, key) { + return {value: o[key]}; + }; + + var ObjectDefineProperty = function (o, key, desc) { + o[key] = desc.value; + return o; + }; + + var ObjectFreeze = function (obj) { + return obj; + }; + + var ObjectGetPrototypeOf = function (obj) { + try { + return Object(obj).constructor.prototype; + } + catch (e) { + return proto; + } + }; + + var ArrayIsArray = function (obj) { + try { + return str.call(obj) === "[object Array]"; + } + catch(e) { + return false; + } + }; + + module.exports = { + isArray: ArrayIsArray, + keys: ObjectKeys, + names: ObjectKeys, + defineProperty: ObjectDefineProperty, + getDescriptor: ObjectGetDescriptor, + freeze: ObjectFreeze, + getPrototypeOf: ObjectGetPrototypeOf, + isES5: isES5, + propertyIsWritable: function() { + return true; + } + }; +} + +},{}],11:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) { +var util = _dereq_("./util"); +var CancellationError = Promise.CancellationError; +var errorObj = util.errorObj; +var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER); + +function PassThroughHandlerContext(promise, type, handler) { + this.promise = promise; + this.type = type; + this.handler = handler; + this.called = false; + this.cancelPromise = null; +} + +PassThroughHandlerContext.prototype.isFinallyHandler = function() { + return this.type === 0; +}; + +function FinallyHandlerCancelReaction(finallyHandler) { + this.finallyHandler = finallyHandler; +} + +FinallyHandlerCancelReaction.prototype._resultCancelled = function() { + checkCancel(this.finallyHandler); +}; + +function checkCancel(ctx, reason) { + if (ctx.cancelPromise != null) { + if (arguments.length > 1) { + ctx.cancelPromise._reject(reason); + } else { + ctx.cancelPromise._cancel(); + } + ctx.cancelPromise = null; + return true; + } + return false; +} + +function succeed() { + return finallyHandler.call(this, this.promise._target()._settledValue()); +} +function fail(reason) { + if (checkCancel(this, reason)) return; + errorObj.e = reason; + return errorObj; +} +function finallyHandler(reasonOrValue) { + var promise = this.promise; + var handler = this.handler; + + if (!this.called) { + this.called = true; + var ret = this.isFinallyHandler() + ? handler.call(promise._boundValue()) + : handler.call(promise._boundValue(), reasonOrValue); + if (ret === NEXT_FILTER) { + return ret; + } else if (ret !== undefined) { + promise._setReturnedNonUndefined(); + var maybePromise = tryConvertToPromise(ret, promise); + if (maybePromise instanceof Promise) { + if (this.cancelPromise != null) { + if (maybePromise._isCancelled()) { + var reason = + new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason); + errorObj.e = reason; + return errorObj; + } else if (maybePromise.isPending()) { + maybePromise._attachCancellationCallback( + new FinallyHandlerCancelReaction(this)); + } + } + return maybePromise._then( + succeed, fail, undefined, this, undefined); + } + } + } + + if (promise.isRejected()) { + checkCancel(this); + errorObj.e = reasonOrValue; + return errorObj; + } else { + checkCancel(this); + return reasonOrValue; + } +} + +Promise.prototype._passThrough = function(handler, type, success, fail) { + if (typeof handler !== "function") return this.then(); + return this._then(success, + fail, + undefined, + new PassThroughHandlerContext(this, type, handler), + undefined); +}; + +Promise.prototype.lastly = +Promise.prototype["finally"] = function (handler) { + return this._passThrough(handler, + 0, + finallyHandler, + finallyHandler); +}; + + +Promise.prototype.tap = function (handler) { + return this._passThrough(handler, 1, finallyHandler); +}; + +Promise.prototype.tapCatch = function (handlerOrPredicate) { + var len = arguments.length; + if(len === 1) { + return this._passThrough(handlerOrPredicate, + 1, + undefined, + finallyHandler); + } else { + var catchInstances = new Array(len - 1), + j = 0, i; + for (i = 0; i < len - 1; ++i) { + var item = arguments[i]; + if (util.isObject(item)) { + catchInstances[j++] = item; + } else { + return Promise.reject(new TypeError( + "tapCatch statement predicate: " + + "expecting an object but got " + util.classString(item) + )); + } + } + catchInstances.length = j; + var handler = arguments[i]; + return this._passThrough(catchFilter(catchInstances, handler, this), + 1, + undefined, + finallyHandler); + } + +}; + +return PassThroughHandlerContext; +}; + +},{"./catch_filter":5,"./util":21}],12:[function(_dereq_,module,exports){ +"use strict"; +module.exports = +function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async) { +var util = _dereq_("./util"); +var canEvaluate = util.canEvaluate; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var reject; + +if (!true) { +if (canEvaluate) { + var thenCallback = function(i) { + return new Function("value", "holder", " \n\ + 'use strict'; \n\ + holder.pIndex = value; \n\ + holder.checkFulfillment(this); \n\ + ".replace(/Index/g, i)); + }; + + var promiseSetter = function(i) { + return new Function("promise", "holder", " \n\ + 'use strict'; \n\ + holder.pIndex = promise; \n\ + ".replace(/Index/g, i)); + }; + + var generateHolderClass = function(total) { + var props = new Array(total); + for (var i = 0; i < props.length; ++i) { + props[i] = "this.p" + (i+1); + } + var assignment = props.join(" = ") + " = null;"; + var cancellationCode= "var promise;\n" + props.map(function(prop) { + return " \n\ + promise = " + prop + "; \n\ + if (promise instanceof Promise) { \n\ + promise.cancel(); \n\ + } \n\ + "; + }).join("\n"); + var passedArguments = props.join(", "); + var name = "Holder$" + total; + + + var code = "return function(tryCatch, errorObj, Promise, async) { \n\ + 'use strict'; \n\ + function [TheName](fn) { \n\ + [TheProperties] \n\ + this.fn = fn; \n\ + this.asyncNeeded = true; \n\ + this.now = 0; \n\ + } \n\ + \n\ + [TheName].prototype._callFunction = function(promise) { \n\ + promise._pushContext(); \n\ + var ret = tryCatch(this.fn)([ThePassedArguments]); \n\ + promise._popContext(); \n\ + if (ret === errorObj) { \n\ + promise._rejectCallback(ret.e, false); \n\ + } else { \n\ + promise._resolveCallback(ret); \n\ + } \n\ + }; \n\ + \n\ + [TheName].prototype.checkFulfillment = function(promise) { \n\ + var now = ++this.now; \n\ + if (now === [TheTotal]) { \n\ + if (this.asyncNeeded) { \n\ + async.invoke(this._callFunction, this, promise); \n\ + } else { \n\ + this._callFunction(promise); \n\ + } \n\ + \n\ + } \n\ + }; \n\ + \n\ + [TheName].prototype._resultCancelled = function() { \n\ + [CancellationCode] \n\ + }; \n\ + \n\ + return [TheName]; \n\ + }(tryCatch, errorObj, Promise, async); \n\ + "; + + code = code.replace(/\[TheName\]/g, name) + .replace(/\[TheTotal\]/g, total) + .replace(/\[ThePassedArguments\]/g, passedArguments) + .replace(/\[TheProperties\]/g, assignment) + .replace(/\[CancellationCode\]/g, cancellationCode); + + return new Function("tryCatch", "errorObj", "Promise", "async", code) + (tryCatch, errorObj, Promise, async); + }; + + var holderClasses = []; + var thenCallbacks = []; + var promiseSetters = []; + + for (var i = 0; i < 8; ++i) { + holderClasses.push(generateHolderClass(i + 1)); + thenCallbacks.push(thenCallback(i + 1)); + promiseSetters.push(promiseSetter(i + 1)); + } + + reject = function (reason) { + this._reject(reason); + }; +}} + +Promise.join = function () { + var last = arguments.length - 1; + var fn; + if (last > 0 && typeof arguments[last] === "function") { + fn = arguments[last]; + if (!true) { + if (last <= 8 && canEvaluate) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var HolderClass = holderClasses[last - 1]; + var holder = new HolderClass(fn); + var callbacks = thenCallbacks; + + for (var i = 0; i < last; ++i) { + var maybePromise = tryConvertToPromise(arguments[i], ret); + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + maybePromise._then(callbacks[i], reject, + undefined, ret, holder); + promiseSetters[i](maybePromise, holder); + holder.asyncNeeded = false; + } else if (((bitField & 33554432) !== 0)) { + callbacks[i].call(ret, + maybePromise._value(), holder); + } else if (((bitField & 16777216) !== 0)) { + ret._reject(maybePromise._reason()); + } else { + ret._cancel(); + } + } else { + callbacks[i].call(ret, maybePromise, holder); + } + } + + if (!ret._isFateSealed()) { + if (holder.asyncNeeded) { + var context = Promise._getContext(); + holder.fn = util.contextBind(context, holder.fn); + } + ret._setAsyncGuaranteed(); + ret._setOnCancel(holder); + } + return ret; + } + } + } + var args = [].slice.call(arguments);; + if (fn) args.pop(); + var ret = new PromiseArray(args).promise(); + return fn !== undefined ? ret.spread(fn) : ret; +}; + +}; + +},{"./util":21}],13:[function(_dereq_,module,exports){ +"use strict"; +module.exports = +function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { +var util = _dereq_("./util"); +var tryCatch = util.tryCatch; + +Promise.method = function (fn) { + if (typeof fn !== "function") { + throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); + } + return function () { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._pushContext(); + var value = tryCatch(fn).apply(this, arguments); + var promiseCreated = ret._popContext(); + debug.checkForgottenReturns( + value, promiseCreated, "Promise.method", ret); + ret._resolveFromSyncValue(value); + return ret; + }; +}; + +Promise.attempt = Promise["try"] = function (fn) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._pushContext(); + var value; + if (arguments.length > 1) { + debug.deprecated("calling Promise.try with more than 1 argument"); + var arg = arguments[1]; + var ctx = arguments[2]; + value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) + : tryCatch(fn).call(ctx, arg); + } else { + value = tryCatch(fn)(); + } + var promiseCreated = ret._popContext(); + debug.checkForgottenReturns( + value, promiseCreated, "Promise.try", ret); + ret._resolveFromSyncValue(value); + return ret; +}; + +Promise.prototype._resolveFromSyncValue = function (value) { + if (value === util.errorObj) { + this._rejectCallback(value.e, false); + } else { + this._resolveCallback(value, true); + } +}; +}; + +},{"./util":21}],14:[function(_dereq_,module,exports){ +"use strict"; +var util = _dereq_("./util"); +var maybeWrapAsError = util.maybeWrapAsError; +var errors = _dereq_("./errors"); +var OperationalError = errors.OperationalError; +var es5 = _dereq_("./es5"); + +function isUntypedError(obj) { + return obj instanceof Error && + es5.getPrototypeOf(obj) === Error.prototype; +} + +var rErrorKey = /^(?:name|message|stack|cause)$/; +function wrapAsOperationalError(obj) { + var ret; + if (isUntypedError(obj)) { + ret = new OperationalError(obj); + ret.name = obj.name; + ret.message = obj.message; + ret.stack = obj.stack; + var keys = es5.keys(obj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (!rErrorKey.test(key)) { + ret[key] = obj[key]; + } + } + return ret; + } + util.markAsOriginatingFromRejection(obj); + return obj; +} + +function nodebackForPromise(promise, multiArgs) { + return function(err, value) { + if (promise === null) return; + if (err) { + var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); + promise._attachExtraTrace(wrapped); + promise._reject(wrapped); + } else if (!multiArgs) { + promise._fulfill(value); + } else { + var args = [].slice.call(arguments, 1);; + promise._fulfill(args); + } + promise = null; + }; +} + +module.exports = nodebackForPromise; + +},{"./errors":9,"./es5":10,"./util":21}],15:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function() { +var makeSelfResolutionError = function () { + return new TypeError("circular promise resolution chain\u000a\u000a See http://goo.gl/MqrFmX\u000a"); +}; +var reflectHandler = function() { + return new Promise.PromiseInspection(this._target()); +}; +var apiRejection = function(msg) { + return Promise.reject(new TypeError(msg)); +}; +function Proxyable() {} +var UNDEFINED_BINDING = {}; +var util = _dereq_("./util"); +util.setReflectHandler(reflectHandler); + +var getDomain = function() { + var domain = process.domain; + if (domain === undefined) { + return null; + } + return domain; +}; +var getContextDefault = function() { + return null; +}; +var getContextDomain = function() { + return { + domain: getDomain(), + async: null + }; +}; +var AsyncResource = util.isNode && util.nodeSupportsAsyncResource ? + _dereq_("async_hooks").AsyncResource : null; +var getContextAsyncHooks = function() { + return { + domain: getDomain(), + async: new AsyncResource("Bluebird::Promise") + }; +}; +var getContext = util.isNode ? getContextDomain : getContextDefault; +util.notEnumerableProp(Promise, "_getContext", getContext); +var enableAsyncHooks = function() { + getContext = getContextAsyncHooks; + util.notEnumerableProp(Promise, "_getContext", getContextAsyncHooks); +}; +var disableAsyncHooks = function() { + getContext = getContextDomain; + util.notEnumerableProp(Promise, "_getContext", getContextDomain); +}; + +var es5 = _dereq_("./es5"); +var Async = _dereq_("./async"); +var async = new Async(); +es5.defineProperty(Promise, "_async", {value: async}); +var errors = _dereq_("./errors"); +var TypeError = Promise.TypeError = errors.TypeError; +Promise.RangeError = errors.RangeError; +var CancellationError = Promise.CancellationError = errors.CancellationError; +Promise.TimeoutError = errors.TimeoutError; +Promise.OperationalError = errors.OperationalError; +Promise.RejectionError = errors.OperationalError; +Promise.AggregateError = errors.AggregateError; +var INTERNAL = function(){}; +var APPLY = {}; +var NEXT_FILTER = {}; +var tryConvertToPromise = _dereq_("./thenables")(Promise, INTERNAL); +var PromiseArray = + _dereq_("./promise_array")(Promise, INTERNAL, + tryConvertToPromise, apiRejection, Proxyable); +var Context = _dereq_("./context")(Promise); + /*jshint unused:false*/ +var createContext = Context.create; + +var debug = _dereq_("./debuggability")(Promise, Context, + enableAsyncHooks, disableAsyncHooks); +var CapturedTrace = debug.CapturedTrace; +var PassThroughHandlerContext = + _dereq_("./finally")(Promise, tryConvertToPromise, NEXT_FILTER); +var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER); +var nodebackForPromise = _dereq_("./nodeback"); +var errorObj = util.errorObj; +var tryCatch = util.tryCatch; +function check(self, executor) { + if (self == null || self.constructor !== Promise) { + throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + if (typeof executor !== "function") { + throw new TypeError("expecting a function but got " + util.classString(executor)); + } + +} + +function Promise(executor) { + if (executor !== INTERNAL) { + check(this, executor); + } + this._bitField = 0; + this._fulfillmentHandler0 = undefined; + this._rejectionHandler0 = undefined; + this._promise0 = undefined; + this._receiver0 = undefined; + this._resolveFromExecutor(executor); + this._promiseCreated(); + this._fireEvent("promiseCreated", this); +} + +Promise.prototype.toString = function () { + return "[object Promise]"; +}; + +Promise.prototype.caught = Promise.prototype["catch"] = function (fn) { + var len = arguments.length; + if (len > 1) { + var catchInstances = new Array(len - 1), + j = 0, i; + for (i = 0; i < len - 1; ++i) { + var item = arguments[i]; + if (util.isObject(item)) { + catchInstances[j++] = item; + } else { + return apiRejection("Catch statement predicate: " + + "expecting an object but got " + util.classString(item)); + } + } + catchInstances.length = j; + fn = arguments[i]; + + if (typeof fn !== "function") { + throw new TypeError("The last argument to .catch() " + + "must be a function, got " + util.toString(fn)); + } + return this.then(undefined, catchFilter(catchInstances, fn, this)); + } + return this.then(undefined, fn); +}; + +Promise.prototype.reflect = function () { + return this._then(reflectHandler, + reflectHandler, undefined, this, undefined); +}; + +Promise.prototype.then = function (didFulfill, didReject) { + if (debug.warnings() && arguments.length > 0 && + typeof didFulfill !== "function" && + typeof didReject !== "function") { + var msg = ".then() only accepts functions but was passed: " + + util.classString(didFulfill); + if (arguments.length > 1) { + msg += ", " + util.classString(didReject); + } + this._warn(msg); + } + return this._then(didFulfill, didReject, undefined, undefined, undefined); +}; + +Promise.prototype.done = function (didFulfill, didReject) { + var promise = + this._then(didFulfill, didReject, undefined, undefined, undefined); + promise._setIsFinal(); +}; + +Promise.prototype.spread = function (fn) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + return this.all()._then(fn, undefined, undefined, APPLY, undefined); +}; + +Promise.prototype.toJSON = function () { + var ret = { + isFulfilled: false, + isRejected: false, + fulfillmentValue: undefined, + rejectionReason: undefined + }; + if (this.isFulfilled()) { + ret.fulfillmentValue = this.value(); + ret.isFulfilled = true; + } else if (this.isRejected()) { + ret.rejectionReason = this.reason(); + ret.isRejected = true; + } + return ret; +}; + +Promise.prototype.all = function () { + if (arguments.length > 0) { + this._warn(".all() was passed arguments but it does not take any"); + } + return new PromiseArray(this).promise(); +}; + +Promise.prototype.error = function (fn) { + return this.caught(util.originatesFromRejection, fn); +}; + +Promise.getNewLibraryCopy = module.exports; + +Promise.is = function (val) { + return val instanceof Promise; +}; + +Promise.fromNode = Promise.fromCallback = function(fn) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs + : false; + var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); + if (result === errorObj) { + ret._rejectCallback(result.e, true); + } + if (!ret._isFateSealed()) ret._setAsyncGuaranteed(); + return ret; +}; + +Promise.all = function (promises) { + return new PromiseArray(promises).promise(); +}; + +Promise.cast = function (obj) { + var ret = tryConvertToPromise(obj); + if (!(ret instanceof Promise)) { + ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._setFulfilled(); + ret._rejectionHandler0 = obj; + } + return ret; +}; + +Promise.resolve = Promise.fulfilled = Promise.cast; + +Promise.reject = Promise.rejected = function (reason) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._rejectCallback(reason, true); + return ret; +}; + +Promise.setScheduler = function(fn) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + return async.setScheduler(fn); +}; + +Promise.prototype._then = function ( + didFulfill, + didReject, + _, receiver, + internalData +) { + var haveInternalData = internalData !== undefined; + var promise = haveInternalData ? internalData : new Promise(INTERNAL); + var target = this._target(); + var bitField = target._bitField; + + if (!haveInternalData) { + promise._propagateFrom(this, 3); + promise._captureStackTrace(); + if (receiver === undefined && + ((this._bitField & 2097152) !== 0)) { + if (!((bitField & 50397184) === 0)) { + receiver = this._boundValue(); + } else { + receiver = target === this ? undefined : this._boundTo; + } + } + this._fireEvent("promiseChained", this, promise); + } + + var context = getContext(); + if (!((bitField & 50397184) === 0)) { + var handler, value, settler = target._settlePromiseCtx; + if (((bitField & 33554432) !== 0)) { + value = target._rejectionHandler0; + handler = didFulfill; + } else if (((bitField & 16777216) !== 0)) { + value = target._fulfillmentHandler0; + handler = didReject; + target._unsetRejectionIsUnhandled(); + } else { + settler = target._settlePromiseLateCancellationObserver; + value = new CancellationError("late cancellation observer"); + target._attachExtraTrace(value); + handler = didReject; + } + + async.invoke(settler, target, { + handler: util.contextBind(context, handler), + promise: promise, + receiver: receiver, + value: value + }); + } else { + target._addCallbacks(didFulfill, didReject, promise, + receiver, context); + } + + return promise; +}; + +Promise.prototype._length = function () { + return this._bitField & 65535; +}; + +Promise.prototype._isFateSealed = function () { + return (this._bitField & 117506048) !== 0; +}; + +Promise.prototype._isFollowing = function () { + return (this._bitField & 67108864) === 67108864; +}; + +Promise.prototype._setLength = function (len) { + this._bitField = (this._bitField & -65536) | + (len & 65535); +}; + +Promise.prototype._setFulfilled = function () { + this._bitField = this._bitField | 33554432; + this._fireEvent("promiseFulfilled", this); +}; + +Promise.prototype._setRejected = function () { + this._bitField = this._bitField | 16777216; + this._fireEvent("promiseRejected", this); +}; + +Promise.prototype._setFollowing = function () { + this._bitField = this._bitField | 67108864; + this._fireEvent("promiseResolved", this); +}; + +Promise.prototype._setIsFinal = function () { + this._bitField = this._bitField | 4194304; +}; + +Promise.prototype._isFinal = function () { + return (this._bitField & 4194304) > 0; +}; + +Promise.prototype._unsetCancelled = function() { + this._bitField = this._bitField & (~65536); +}; + +Promise.prototype._setCancelled = function() { + this._bitField = this._bitField | 65536; + this._fireEvent("promiseCancelled", this); +}; + +Promise.prototype._setWillBeCancelled = function() { + this._bitField = this._bitField | 8388608; +}; + +Promise.prototype._setAsyncGuaranteed = function() { + if (async.hasCustomScheduler()) return; + var bitField = this._bitField; + this._bitField = bitField | + (((bitField & 536870912) >> 2) ^ + 134217728); +}; + +Promise.prototype._setNoAsyncGuarantee = function() { + this._bitField = (this._bitField | 536870912) & + (~134217728); +}; + +Promise.prototype._receiverAt = function (index) { + var ret = index === 0 ? this._receiver0 : this[ + index * 4 - 4 + 3]; + if (ret === UNDEFINED_BINDING) { + return undefined; + } else if (ret === undefined && this._isBound()) { + return this._boundValue(); + } + return ret; +}; + +Promise.prototype._promiseAt = function (index) { + return this[ + index * 4 - 4 + 2]; +}; + +Promise.prototype._fulfillmentHandlerAt = function (index) { + return this[ + index * 4 - 4 + 0]; +}; + +Promise.prototype._rejectionHandlerAt = function (index) { + return this[ + index * 4 - 4 + 1]; +}; + +Promise.prototype._boundValue = function() {}; + +Promise.prototype._migrateCallback0 = function (follower) { + var bitField = follower._bitField; + var fulfill = follower._fulfillmentHandler0; + var reject = follower._rejectionHandler0; + var promise = follower._promise0; + var receiver = follower._receiverAt(0); + if (receiver === undefined) receiver = UNDEFINED_BINDING; + this._addCallbacks(fulfill, reject, promise, receiver, null); +}; + +Promise.prototype._migrateCallbackAt = function (follower, index) { + var fulfill = follower._fulfillmentHandlerAt(index); + var reject = follower._rejectionHandlerAt(index); + var promise = follower._promiseAt(index); + var receiver = follower._receiverAt(index); + if (receiver === undefined) receiver = UNDEFINED_BINDING; + this._addCallbacks(fulfill, reject, promise, receiver, null); +}; + +Promise.prototype._addCallbacks = function ( + fulfill, + reject, + promise, + receiver, + context +) { + var index = this._length(); + + if (index >= 65535 - 4) { + index = 0; + this._setLength(0); + } + + if (index === 0) { + this._promise0 = promise; + this._receiver0 = receiver; + if (typeof fulfill === "function") { + this._fulfillmentHandler0 = util.contextBind(context, fulfill); + } + if (typeof reject === "function") { + this._rejectionHandler0 = util.contextBind(context, reject); + } + } else { + var base = index * 4 - 4; + this[base + 2] = promise; + this[base + 3] = receiver; + if (typeof fulfill === "function") { + this[base + 0] = + util.contextBind(context, fulfill); + } + if (typeof reject === "function") { + this[base + 1] = + util.contextBind(context, reject); + } + } + this._setLength(index + 1); + return index; +}; + +Promise.prototype._proxy = function (proxyable, arg) { + this._addCallbacks(undefined, undefined, arg, proxyable, null); +}; + +Promise.prototype._resolveCallback = function(value, shouldBind) { + if (((this._bitField & 117506048) !== 0)) return; + if (value === this) + return this._rejectCallback(makeSelfResolutionError(), false); + var maybePromise = tryConvertToPromise(value, this); + if (!(maybePromise instanceof Promise)) return this._fulfill(value); + + if (shouldBind) this._propagateFrom(maybePromise, 2); + + + var promise = maybePromise._target(); + + if (promise === this) { + this._reject(makeSelfResolutionError()); + return; + } + + var bitField = promise._bitField; + if (((bitField & 50397184) === 0)) { + var len = this._length(); + if (len > 0) promise._migrateCallback0(this); + for (var i = 1; i < len; ++i) { + promise._migrateCallbackAt(this, i); + } + this._setFollowing(); + this._setLength(0); + this._setFollowee(maybePromise); + } else if (((bitField & 33554432) !== 0)) { + this._fulfill(promise._value()); + } else if (((bitField & 16777216) !== 0)) { + this._reject(promise._reason()); + } else { + var reason = new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason); + this._reject(reason); + } +}; + +Promise.prototype._rejectCallback = +function(reason, synchronous, ignoreNonErrorWarnings) { + var trace = util.ensureErrorObject(reason); + var hasStack = trace === reason; + if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { + var message = "a promise was rejected with a non-error: " + + util.classString(reason); + this._warn(message, true); + } + this._attachExtraTrace(trace, synchronous ? hasStack : false); + this._reject(reason); +}; + +Promise.prototype._resolveFromExecutor = function (executor) { + if (executor === INTERNAL) return; + var promise = this; + this._captureStackTrace(); + this._pushContext(); + var synchronous = true; + var r = this._execute(executor, function(value) { + promise._resolveCallback(value); + }, function (reason) { + promise._rejectCallback(reason, synchronous); + }); + synchronous = false; + this._popContext(); + + if (r !== undefined) { + promise._rejectCallback(r, true); + } +}; + +Promise.prototype._settlePromiseFromHandler = function ( + handler, receiver, value, promise +) { + var bitField = promise._bitField; + if (((bitField & 65536) !== 0)) return; + promise._pushContext(); + var x; + if (receiver === APPLY) { + if (!value || typeof value.length !== "number") { + x = errorObj; + x.e = new TypeError("cannot .spread() a non-array: " + + util.classString(value)); + } else { + x = tryCatch(handler).apply(this._boundValue(), value); + } + } else { + x = tryCatch(handler).call(receiver, value); + } + var promiseCreated = promise._popContext(); + bitField = promise._bitField; + if (((bitField & 65536) !== 0)) return; + + if (x === NEXT_FILTER) { + promise._reject(value); + } else if (x === errorObj) { + promise._rejectCallback(x.e, false); + } else { + debug.checkForgottenReturns(x, promiseCreated, "", promise, this); + promise._resolveCallback(x); + } +}; + +Promise.prototype._target = function() { + var ret = this; + while (ret._isFollowing()) ret = ret._followee(); + return ret; +}; + +Promise.prototype._followee = function() { + return this._rejectionHandler0; +}; + +Promise.prototype._setFollowee = function(promise) { + this._rejectionHandler0 = promise; +}; + +Promise.prototype._settlePromise = function(promise, handler, receiver, value) { + var isPromise = promise instanceof Promise; + var bitField = this._bitField; + var asyncGuaranteed = ((bitField & 134217728) !== 0); + if (((bitField & 65536) !== 0)) { + if (isPromise) promise._invokeInternalOnCancel(); + + if (receiver instanceof PassThroughHandlerContext && + receiver.isFinallyHandler()) { + receiver.cancelPromise = promise; + if (tryCatch(handler).call(receiver, value) === errorObj) { + promise._reject(errorObj.e); + } + } else if (handler === reflectHandler) { + promise._fulfill(reflectHandler.call(receiver)); + } else if (receiver instanceof Proxyable) { + receiver._promiseCancelled(promise); + } else if (isPromise || promise instanceof PromiseArray) { + promise._cancel(); + } else { + receiver.cancel(); + } + } else if (typeof handler === "function") { + if (!isPromise) { + handler.call(receiver, value, promise); + } else { + if (asyncGuaranteed) promise._setAsyncGuaranteed(); + this._settlePromiseFromHandler(handler, receiver, value, promise); + } + } else if (receiver instanceof Proxyable) { + if (!receiver._isResolved()) { + if (((bitField & 33554432) !== 0)) { + receiver._promiseFulfilled(value, promise); + } else { + receiver._promiseRejected(value, promise); + } + } + } else if (isPromise) { + if (asyncGuaranteed) promise._setAsyncGuaranteed(); + if (((bitField & 33554432) !== 0)) { + promise._fulfill(value); + } else { + promise._reject(value); + } + } +}; + +Promise.prototype._settlePromiseLateCancellationObserver = function(ctx) { + var handler = ctx.handler; + var promise = ctx.promise; + var receiver = ctx.receiver; + var value = ctx.value; + if (typeof handler === "function") { + if (!(promise instanceof Promise)) { + handler.call(receiver, value, promise); + } else { + this._settlePromiseFromHandler(handler, receiver, value, promise); + } + } else if (promise instanceof Promise) { + promise._reject(value); + } +}; + +Promise.prototype._settlePromiseCtx = function(ctx) { + this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value); +}; + +Promise.prototype._settlePromise0 = function(handler, value, bitField) { + var promise = this._promise0; + var receiver = this._receiverAt(0); + this._promise0 = undefined; + this._receiver0 = undefined; + this._settlePromise(promise, handler, receiver, value); +}; + +Promise.prototype._clearCallbackDataAtIndex = function(index) { + var base = index * 4 - 4; + this[base + 2] = + this[base + 3] = + this[base + 0] = + this[base + 1] = undefined; +}; + +Promise.prototype._fulfill = function (value) { + var bitField = this._bitField; + if (((bitField & 117506048) >>> 16)) return; + if (value === this) { + var err = makeSelfResolutionError(); + this._attachExtraTrace(err); + return this._reject(err); + } + this._setFulfilled(); + this._rejectionHandler0 = value; + + if ((bitField & 65535) > 0) { + if (((bitField & 134217728) !== 0)) { + this._settlePromises(); + } else { + async.settlePromises(this); + } + this._dereferenceTrace(); + } +}; + +Promise.prototype._reject = function (reason) { + var bitField = this._bitField; + if (((bitField & 117506048) >>> 16)) return; + this._setRejected(); + this._fulfillmentHandler0 = reason; + + if (this._isFinal()) { + return async.fatalError(reason, util.isNode); + } + + if ((bitField & 65535) > 0) { + async.settlePromises(this); + } else { + this._ensurePossibleRejectionHandled(); + } +}; + +Promise.prototype._fulfillPromises = function (len, value) { + for (var i = 1; i < len; i++) { + var handler = this._fulfillmentHandlerAt(i); + var promise = this._promiseAt(i); + var receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i); + this._settlePromise(promise, handler, receiver, value); + } +}; + +Promise.prototype._rejectPromises = function (len, reason) { + for (var i = 1; i < len; i++) { + var handler = this._rejectionHandlerAt(i); + var promise = this._promiseAt(i); + var receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i); + this._settlePromise(promise, handler, receiver, reason); + } +}; + +Promise.prototype._settlePromises = function () { + var bitField = this._bitField; + var len = (bitField & 65535); + + if (len > 0) { + if (((bitField & 16842752) !== 0)) { + var reason = this._fulfillmentHandler0; + this._settlePromise0(this._rejectionHandler0, reason, bitField); + this._rejectPromises(len, reason); + } else { + var value = this._rejectionHandler0; + this._settlePromise0(this._fulfillmentHandler0, value, bitField); + this._fulfillPromises(len, value); + } + this._setLength(0); + } + this._clearCancellationData(); +}; + +Promise.prototype._settledValue = function() { + var bitField = this._bitField; + if (((bitField & 33554432) !== 0)) { + return this._rejectionHandler0; + } else if (((bitField & 16777216) !== 0)) { + return this._fulfillmentHandler0; + } +}; + +if (typeof Symbol !== "undefined" && Symbol.toStringTag) { + es5.defineProperty(Promise.prototype, Symbol.toStringTag, { + get: function () { + return "Object"; + } + }); +} + +function deferResolve(v) {this.promise._resolveCallback(v);} +function deferReject(v) {this.promise._rejectCallback(v, false);} + +Promise.defer = Promise.pending = function() { + debug.deprecated("Promise.defer", "new Promise"); + var promise = new Promise(INTERNAL); + return { + promise: promise, + resolve: deferResolve, + reject: deferReject + }; +}; + +util.notEnumerableProp(Promise, + "_makeSelfResolutionError", + makeSelfResolutionError); + +_dereq_("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection, + debug); +_dereq_("./bind")(Promise, INTERNAL, tryConvertToPromise, debug); +_dereq_("./cancel")(Promise, PromiseArray, apiRejection, debug); +_dereq_("./direct_resolve")(Promise); +_dereq_("./synchronous_inspection")(Promise); +_dereq_("./join")( + Promise, PromiseArray, tryConvertToPromise, INTERNAL, async); +Promise.Promise = Promise; +Promise.version = "3.7.2"; + + util.toFastProperties(Promise); + util.toFastProperties(Promise.prototype); + function fillTypes(value) { + var p = new Promise(INTERNAL); + p._fulfillmentHandler0 = value; + p._rejectionHandler0 = value; + p._promise0 = value; + p._receiver0 = value; + } + // Complete slack tracking, opt out of field-type tracking and + // stabilize map + fillTypes({a: 1}); + fillTypes({b: 2}); + fillTypes({c: 3}); + fillTypes(1); + fillTypes(function(){}); + fillTypes(undefined); + fillTypes(false); + fillTypes(new Promise(INTERNAL)); + debug.setBounds(Async.firstLineError, util.lastLineError); + return Promise; + +}; + +},{"./async":1,"./bind":2,"./cancel":4,"./catch_filter":5,"./context":6,"./debuggability":7,"./direct_resolve":8,"./errors":9,"./es5":10,"./finally":11,"./join":12,"./method":13,"./nodeback":14,"./promise_array":16,"./synchronous_inspection":19,"./thenables":20,"./util":21,"async_hooks":undefined}],16:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL, tryConvertToPromise, + apiRejection, Proxyable) { +var util = _dereq_("./util"); +var isArray = util.isArray; + +function toResolutionValue(val) { + switch(val) { + case -2: return []; + case -3: return {}; + case -6: return new Map(); + } +} + +function PromiseArray(values) { + var promise = this._promise = new Promise(INTERNAL); + if (values instanceof Promise) { + promise._propagateFrom(values, 3); + values.suppressUnhandledRejections(); + } + promise._setOnCancel(this); + this._values = values; + this._length = 0; + this._totalResolved = 0; + this._init(undefined, -2); +} +util.inherits(PromiseArray, Proxyable); + +PromiseArray.prototype.length = function () { + return this._length; +}; + +PromiseArray.prototype.promise = function () { + return this._promise; +}; + +PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { + var values = tryConvertToPromise(this._values, this._promise); + if (values instanceof Promise) { + values = values._target(); + var bitField = values._bitField; + ; + this._values = values; + + if (((bitField & 50397184) === 0)) { + this._promise._setAsyncGuaranteed(); + return values._then( + init, + this._reject, + undefined, + this, + resolveValueIfEmpty + ); + } else if (((bitField & 33554432) !== 0)) { + values = values._value(); + } else if (((bitField & 16777216) !== 0)) { + return this._reject(values._reason()); + } else { + return this._cancel(); + } + } + values = util.asArray(values); + if (values === null) { + var err = apiRejection( + "expecting an array or an iterable object but got " + util.classString(values)).reason(); + this._promise._rejectCallback(err, false); + return; + } + + if (values.length === 0) { + if (resolveValueIfEmpty === -5) { + this._resolveEmptyArray(); + } + else { + this._resolve(toResolutionValue(resolveValueIfEmpty)); + } + return; + } + this._iterate(values); +}; + +PromiseArray.prototype._iterate = function(values) { + var len = this.getActualLength(values.length); + this._length = len; + this._values = this.shouldCopyValues() ? new Array(len) : this._values; + var result = this._promise; + var isResolved = false; + var bitField = null; + for (var i = 0; i < len; ++i) { + var maybePromise = tryConvertToPromise(values[i], result); + + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + bitField = maybePromise._bitField; + } else { + bitField = null; + } + + if (isResolved) { + if (bitField !== null) { + maybePromise.suppressUnhandledRejections(); + } + } else if (bitField !== null) { + if (((bitField & 50397184) === 0)) { + maybePromise._proxy(this, i); + this._values[i] = maybePromise; + } else if (((bitField & 33554432) !== 0)) { + isResolved = this._promiseFulfilled(maybePromise._value(), i); + } else if (((bitField & 16777216) !== 0)) { + isResolved = this._promiseRejected(maybePromise._reason(), i); + } else { + isResolved = this._promiseCancelled(i); + } + } else { + isResolved = this._promiseFulfilled(maybePromise, i); + } + } + if (!isResolved) result._setAsyncGuaranteed(); +}; + +PromiseArray.prototype._isResolved = function () { + return this._values === null; +}; + +PromiseArray.prototype._resolve = function (value) { + this._values = null; + this._promise._fulfill(value); +}; + +PromiseArray.prototype._cancel = function() { + if (this._isResolved() || !this._promise._isCancellable()) return; + this._values = null; + this._promise._cancel(); +}; + +PromiseArray.prototype._reject = function (reason) { + this._values = null; + this._promise._rejectCallback(reason, false); +}; + +PromiseArray.prototype._promiseFulfilled = function (value, index) { + this._values[index] = value; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + this._resolve(this._values); + return true; + } + return false; +}; + +PromiseArray.prototype._promiseCancelled = function() { + this._cancel(); + return true; +}; + +PromiseArray.prototype._promiseRejected = function (reason) { + this._totalResolved++; + this._reject(reason); + return true; +}; + +PromiseArray.prototype._resultCancelled = function() { + if (this._isResolved()) return; + var values = this._values; + this._cancel(); + if (values instanceof Promise) { + values.cancel(); + } else { + for (var i = 0; i < values.length; ++i) { + if (values[i] instanceof Promise) { + values[i].cancel(); + } + } + } +}; + +PromiseArray.prototype.shouldCopyValues = function () { + return true; +}; + +PromiseArray.prototype.getActualLength = function (len) { + return len; +}; + +return PromiseArray; +}; + +},{"./util":21}],17:[function(_dereq_,module,exports){ +"use strict"; +function arrayMove(src, srcIndex, dst, dstIndex, len) { + for (var j = 0; j < len; ++j) { + dst[j + dstIndex] = src[j + srcIndex]; + src[j + srcIndex] = void 0; + } +} + +function Queue(capacity) { + this._capacity = capacity; + this._length = 0; + this._front = 0; +} + +Queue.prototype._willBeOverCapacity = function (size) { + return this._capacity < size; +}; + +Queue.prototype._pushOne = function (arg) { + var length = this.length(); + this._checkCapacity(length + 1); + var i = (this._front + length) & (this._capacity - 1); + this[i] = arg; + this._length = length + 1; +}; + +Queue.prototype.push = function (fn, receiver, arg) { + var length = this.length() + 3; + if (this._willBeOverCapacity(length)) { + this._pushOne(fn); + this._pushOne(receiver); + this._pushOne(arg); + return; + } + var j = this._front + length - 3; + this._checkCapacity(length); + var wrapMask = this._capacity - 1; + this[(j + 0) & wrapMask] = fn; + this[(j + 1) & wrapMask] = receiver; + this[(j + 2) & wrapMask] = arg; + this._length = length; +}; + +Queue.prototype.shift = function () { + var front = this._front, + ret = this[front]; + + this[front] = undefined; + this._front = (front + 1) & (this._capacity - 1); + this._length--; + return ret; +}; + +Queue.prototype.length = function () { + return this._length; +}; + +Queue.prototype._checkCapacity = function (size) { + if (this._capacity < size) { + this._resizeTo(this._capacity << 1); + } +}; + +Queue.prototype._resizeTo = function (capacity) { + var oldCapacity = this._capacity; + this._capacity = capacity; + var front = this._front; + var length = this._length; + var moveItemsCount = (front + length) & (oldCapacity - 1); + arrayMove(this, 0, this, oldCapacity, moveItemsCount); +}; + +module.exports = Queue; + +},{}],18:[function(_dereq_,module,exports){ +"use strict"; +var util = _dereq_("./util"); +var schedule; +var noAsyncScheduler = function() { + throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a"); +}; +var NativePromise = util.getNativePromise(); +if (util.isNode && typeof MutationObserver === "undefined") { + var GlobalSetImmediate = global.setImmediate; + var ProcessNextTick = process.nextTick; + schedule = util.isRecentNode + ? function(fn) { GlobalSetImmediate.call(global, fn); } + : function(fn) { ProcessNextTick.call(process, fn); }; +} else if (typeof NativePromise === "function" && + typeof NativePromise.resolve === "function") { + var nativePromise = NativePromise.resolve(); + schedule = function(fn) { + nativePromise.then(fn); + }; +} else if ((typeof MutationObserver !== "undefined") && + !(typeof window !== "undefined" && + window.navigator && + (window.navigator.standalone || window.cordova)) && + ("classList" in document.documentElement)) { + schedule = (function() { + var div = document.createElement("div"); + var opts = {attributes: true}; + var toggleScheduled = false; + var div2 = document.createElement("div"); + var o2 = new MutationObserver(function() { + div.classList.toggle("foo"); + toggleScheduled = false; + }); + o2.observe(div2, opts); + + var scheduleToggle = function() { + if (toggleScheduled) return; + toggleScheduled = true; + div2.classList.toggle("foo"); + }; + + return function schedule(fn) { + var o = new MutationObserver(function() { + o.disconnect(); + fn(); + }); + o.observe(div, opts); + scheduleToggle(); + }; + })(); +} else if (typeof setImmediate !== "undefined") { + schedule = function (fn) { + setImmediate(fn); + }; +} else if (typeof setTimeout !== "undefined") { + schedule = function (fn) { + setTimeout(fn, 0); + }; +} else { + schedule = noAsyncScheduler; +} +module.exports = schedule; + +},{"./util":21}],19:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +function PromiseInspection(promise) { + if (promise !== undefined) { + promise = promise._target(); + this._bitField = promise._bitField; + this._settledValueField = promise._isFateSealed() + ? promise._settledValue() : undefined; + } + else { + this._bitField = 0; + this._settledValueField = undefined; + } +} + +PromiseInspection.prototype._settledValue = function() { + return this._settledValueField; +}; + +var value = PromiseInspection.prototype.value = function () { + if (!this.isFulfilled()) { + throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + return this._settledValue(); +}; + +var reason = PromiseInspection.prototype.error = +PromiseInspection.prototype.reason = function () { + if (!this.isRejected()) { + throw new TypeError("cannot get rejection reason of a non-rejected promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + return this._settledValue(); +}; + +var isFulfilled = PromiseInspection.prototype.isFulfilled = function() { + return (this._bitField & 33554432) !== 0; +}; + +var isRejected = PromiseInspection.prototype.isRejected = function () { + return (this._bitField & 16777216) !== 0; +}; + +var isPending = PromiseInspection.prototype.isPending = function () { + return (this._bitField & 50397184) === 0; +}; + +var isResolved = PromiseInspection.prototype.isResolved = function () { + return (this._bitField & 50331648) !== 0; +}; + +PromiseInspection.prototype.isCancelled = function() { + return (this._bitField & 8454144) !== 0; +}; + +Promise.prototype.__isCancelled = function() { + return (this._bitField & 65536) === 65536; +}; + +Promise.prototype._isCancelled = function() { + return this._target().__isCancelled(); +}; + +Promise.prototype.isCancelled = function() { + return (this._target()._bitField & 8454144) !== 0; +}; + +Promise.prototype.isPending = function() { + return isPending.call(this._target()); +}; + +Promise.prototype.isRejected = function() { + return isRejected.call(this._target()); +}; + +Promise.prototype.isFulfilled = function() { + return isFulfilled.call(this._target()); +}; + +Promise.prototype.isResolved = function() { + return isResolved.call(this._target()); +}; + +Promise.prototype.value = function() { + return value.call(this._target()); +}; + +Promise.prototype.reason = function() { + var target = this._target(); + target._unsetRejectionIsUnhandled(); + return reason.call(target); +}; + +Promise.prototype._value = function() { + return this._settledValue(); +}; + +Promise.prototype._reason = function() { + this._unsetRejectionIsUnhandled(); + return this._settledValue(); +}; + +Promise.PromiseInspection = PromiseInspection; +}; + +},{}],20:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var util = _dereq_("./util"); +var errorObj = util.errorObj; +var isObject = util.isObject; + +function tryConvertToPromise(obj, context) { + if (isObject(obj)) { + if (obj instanceof Promise) return obj; + var then = getThen(obj); + if (then === errorObj) { + if (context) context._pushContext(); + var ret = Promise.reject(then.e); + if (context) context._popContext(); + return ret; + } else if (typeof then === "function") { + if (isAnyBluebirdPromise(obj)) { + var ret = new Promise(INTERNAL); + obj._then( + ret._fulfill, + ret._reject, + undefined, + ret, + null + ); + return ret; + } + return doThenable(obj, then, context); + } + } + return obj; +} + +function doGetThen(obj) { + return obj.then; +} + +function getThen(obj) { + try { + return doGetThen(obj); + } catch (e) { + errorObj.e = e; + return errorObj; + } +} + +var hasProp = {}.hasOwnProperty; +function isAnyBluebirdPromise(obj) { + try { + return hasProp.call(obj, "_promise0"); + } catch (e) { + return false; + } +} + +function doThenable(x, then, context) { + var promise = new Promise(INTERNAL); + var ret = promise; + if (context) context._pushContext(); + promise._captureStackTrace(); + if (context) context._popContext(); + var synchronous = true; + var result = util.tryCatch(then).call(x, resolve, reject); + synchronous = false; + + if (promise && result === errorObj) { + promise._rejectCallback(result.e, true, true); + promise = null; + } + + function resolve(value) { + if (!promise) return; + promise._resolveCallback(value); + promise = null; + } + + function reject(reason) { + if (!promise) return; + promise._rejectCallback(reason, synchronous, true); + promise = null; + } + return ret; +} + +return tryConvertToPromise; +}; + +},{"./util":21}],21:[function(_dereq_,module,exports){ +"use strict"; +var es5 = _dereq_("./es5"); +var canEvaluate = typeof navigator == "undefined"; + +var errorObj = {e: {}}; +var tryCatchTarget; +var globalObject = typeof self !== "undefined" ? self : + typeof window !== "undefined" ? window : + typeof global !== "undefined" ? global : + this !== undefined ? this : null; + +function tryCatcher() { + try { + var target = tryCatchTarget; + tryCatchTarget = null; + return target.apply(this, arguments); + } catch (e) { + errorObj.e = e; + return errorObj; + } +} +function tryCatch(fn) { + tryCatchTarget = fn; + return tryCatcher; +} + +var inherits = function(Child, Parent) { + var hasProp = {}.hasOwnProperty; + + function T() { + this.constructor = Child; + this.constructor$ = Parent; + for (var propertyName in Parent.prototype) { + if (hasProp.call(Parent.prototype, propertyName) && + propertyName.charAt(propertyName.length-1) !== "$" + ) { + this[propertyName + "$"] = Parent.prototype[propertyName]; + } + } + } + T.prototype = Parent.prototype; + Child.prototype = new T(); + return Child.prototype; +}; + + +function isPrimitive(val) { + return val == null || val === true || val === false || + typeof val === "string" || typeof val === "number"; + +} + +function isObject(value) { + return typeof value === "function" || + typeof value === "object" && value !== null; +} + +function maybeWrapAsError(maybeError) { + if (!isPrimitive(maybeError)) return maybeError; + + return new Error(safeToString(maybeError)); +} + +function withAppended(target, appendee) { + var len = target.length; + var ret = new Array(len + 1); + var i; + for (i = 0; i < len; ++i) { + ret[i] = target[i]; + } + ret[i] = appendee; + return ret; +} + +function getDataPropertyOrDefault(obj, key, defaultValue) { + if (es5.isES5) { + var desc = Object.getOwnPropertyDescriptor(obj, key); + + if (desc != null) { + return desc.get == null && desc.set == null + ? desc.value + : defaultValue; + } + } else { + return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined; + } +} + +function notEnumerableProp(obj, name, value) { + if (isPrimitive(obj)) return obj; + var descriptor = { + value: value, + configurable: true, + enumerable: false, + writable: true + }; + es5.defineProperty(obj, name, descriptor); + return obj; +} + +function thrower(r) { + throw r; +} + +var inheritedDataKeys = (function() { + var excludedPrototypes = [ + Array.prototype, + Object.prototype, + Function.prototype + ]; + + var isExcludedProto = function(val) { + for (var i = 0; i < excludedPrototypes.length; ++i) { + if (excludedPrototypes[i] === val) { + return true; + } + } + return false; + }; + + if (es5.isES5) { + var getKeys = Object.getOwnPropertyNames; + return function(obj) { + var ret = []; + var visitedKeys = Object.create(null); + while (obj != null && !isExcludedProto(obj)) { + var keys; + try { + keys = getKeys(obj); + } catch (e) { + return ret; + } + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (visitedKeys[key]) continue; + visitedKeys[key] = true; + var desc = Object.getOwnPropertyDescriptor(obj, key); + if (desc != null && desc.get == null && desc.set == null) { + ret.push(key); + } + } + obj = es5.getPrototypeOf(obj); + } + return ret; + }; + } else { + var hasProp = {}.hasOwnProperty; + return function(obj) { + if (isExcludedProto(obj)) return []; + var ret = []; + + /*jshint forin:false */ + enumeration: for (var key in obj) { + if (hasProp.call(obj, key)) { + ret.push(key); + } else { + for (var i = 0; i < excludedPrototypes.length; ++i) { + if (hasProp.call(excludedPrototypes[i], key)) { + continue enumeration; + } + } + ret.push(key); + } + } + return ret; + }; + } + +})(); + +var thisAssignmentPattern = /this\s*\.\s*\S+\s*=/; +function isClass(fn) { + try { + if (typeof fn === "function") { + var keys = es5.names(fn.prototype); + + var hasMethods = es5.isES5 && keys.length > 1; + var hasMethodsOtherThanConstructor = keys.length > 0 && + !(keys.length === 1 && keys[0] === "constructor"); + var hasThisAssignmentAndStaticMethods = + thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; + + if (hasMethods || hasMethodsOtherThanConstructor || + hasThisAssignmentAndStaticMethods) { + return true; + } + } + return false; + } catch (e) { + return false; + } +} + +function toFastProperties(obj) { + /*jshint -W027,-W055,-W031*/ + function FakeConstructor() {} + FakeConstructor.prototype = obj; + var receiver = new FakeConstructor(); + function ic() { + return typeof receiver.foo; + } + ic(); + ic(); + return obj; + eval(obj); +} + +var rident = /^[a-z$_][a-z$_0-9]*$/i; +function isIdentifier(str) { + return rident.test(str); +} + +function filledRange(count, prefix, suffix) { + var ret = new Array(count); + for(var i = 0; i < count; ++i) { + ret[i] = prefix + i + suffix; + } + return ret; +} + +function safeToString(obj) { + try { + return obj + ""; + } catch (e) { + return "[no string representation]"; + } +} + +function isError(obj) { + return obj instanceof Error || + (obj !== null && + typeof obj === "object" && + typeof obj.message === "string" && + typeof obj.name === "string"); +} + +function markAsOriginatingFromRejection(e) { + try { + notEnumerableProp(e, "isOperational", true); + } + catch(ignore) {} +} + +function originatesFromRejection(e) { + if (e == null) return false; + return ((e instanceof Error["__BluebirdErrorTypes__"].OperationalError) || + e["isOperational"] === true); +} + +function canAttachTrace(obj) { + return isError(obj) && es5.propertyIsWritable(obj, "stack"); +} + +var ensureErrorObject = (function() { + if (!("stack" in new Error())) { + return function(value) { + if (canAttachTrace(value)) return value; + try {throw new Error(safeToString(value));} + catch(err) {return err;} + }; + } else { + return function(value) { + if (canAttachTrace(value)) return value; + return new Error(safeToString(value)); + }; + } +})(); + +function classString(obj) { + return {}.toString.call(obj); +} + +function copyDescriptors(from, to, filter) { + var keys = es5.names(from); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (filter(key)) { + try { + es5.defineProperty(to, key, es5.getDescriptor(from, key)); + } catch (ignore) {} + } + } +} + +var asArray = function(v) { + if (es5.isArray(v)) { + return v; + } + return null; +}; + +if (typeof Symbol !== "undefined" && Symbol.iterator) { + var ArrayFrom = typeof Array.from === "function" ? function(v) { + return Array.from(v); + } : function(v) { + var ret = []; + var it = v[Symbol.iterator](); + var itResult; + while (!((itResult = it.next()).done)) { + ret.push(itResult.value); + } + return ret; + }; + + asArray = function(v) { + if (es5.isArray(v)) { + return v; + } else if (v != null && typeof v[Symbol.iterator] === "function") { + return ArrayFrom(v); + } + return null; + }; +} + +var isNode = typeof process !== "undefined" && + classString(process).toLowerCase() === "[object process]"; + +var hasEnvVariables = typeof process !== "undefined" && + typeof process.env !== "undefined"; + +function env(key) { + return hasEnvVariables ? process.env[key] : undefined; +} + +function getNativePromise() { + if (typeof Promise === "function") { + try { + var promise = new Promise(function(){}); + if (classString(promise) === "[object Promise]") { + return Promise; + } + } catch (e) {} + } +} + +var reflectHandler; +function contextBind(ctx, cb) { + if (ctx === null || + typeof cb !== "function" || + cb === reflectHandler) { + return cb; + } + + if (ctx.domain !== null) { + cb = ctx.domain.bind(cb); + } + + var async = ctx.async; + if (async !== null) { + var old = cb; + cb = function() { + var args = (new Array(2)).concat([].slice.call(arguments));; + args[0] = old; + args[1] = this; + return async.runInAsyncScope.apply(async, args); + }; + } + return cb; +} + +var ret = { + setReflectHandler: function(fn) { + reflectHandler = fn; + }, + isClass: isClass, + isIdentifier: isIdentifier, + inheritedDataKeys: inheritedDataKeys, + getDataPropertyOrDefault: getDataPropertyOrDefault, + thrower: thrower, + isArray: es5.isArray, + asArray: asArray, + notEnumerableProp: notEnumerableProp, + isPrimitive: isPrimitive, + isObject: isObject, + isError: isError, + canEvaluate: canEvaluate, + errorObj: errorObj, + tryCatch: tryCatch, + inherits: inherits, + withAppended: withAppended, + maybeWrapAsError: maybeWrapAsError, + toFastProperties: toFastProperties, + filledRange: filledRange, + toString: safeToString, + canAttachTrace: canAttachTrace, + ensureErrorObject: ensureErrorObject, + originatesFromRejection: originatesFromRejection, + markAsOriginatingFromRejection: markAsOriginatingFromRejection, + classString: classString, + copyDescriptors: copyDescriptors, + isNode: isNode, + hasEnvVariables: hasEnvVariables, + env: env, + global: globalObject, + getNativePromise: getNativePromise, + contextBind: contextBind +}; +ret.isRecentNode = ret.isNode && (function() { + var version; + if (process.versions && process.versions.node) { + version = process.versions.node.split(".").map(Number); + } else if (process.version) { + version = process.version.split(".").map(Number); + } + return (version[0] === 0 && version[1] > 10) || (version[0] > 0); +})(); +ret.nodeSupportsAsyncResource = ret.isNode && (function() { + var supportsAsync = false; + try { + var res = _dereq_("async_hooks").AsyncResource; + supportsAsync = typeof res.prototype.runInAsyncScope === "function"; + } catch (e) { + supportsAsync = false; + } + return supportsAsync; +})(); + +if (ret.isNode) ret.toFastProperties(process); + +try {throw new Error(); } catch (e) {ret.lastLineError = e;} +module.exports = ret; + +},{"./es5":10,"async_hooks":undefined}]},{},[3])(3) +}); ;if (typeof window !== 'undefined' && window !== null) { window.P = window.Promise; } else if (typeof self !== 'undefined' && self !== null) { self.P = self.Promise; } \ No newline at end of file diff --git a/node_modules/bluebird/js/browser/bluebird.core.min.js b/node_modules/bluebird/js/browser/bluebird.core.min.js new file mode 100644 index 0000000..836176e --- /dev/null +++ b/node_modules/bluebird/js/browser/bluebird.core.min.js @@ -0,0 +1,31 @@ +/* @preserve + * The MIT License (MIT) + * + * Copyright (c) 2013-2018 Petka Antonov + * + * 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. + * + */ +/** + * bluebird build version 3.7.2 + * Features enabled: core + * Features disabled: race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each +*/ +!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function o(a,s){if(!e[a]){if(!t[a]){var c="function"==typeof _dereq_&&_dereq_;if(!s&&c)return c(a,!0);if(i)return i(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var u=e[a]={exports:{}};t[a][0].call(u.exports,function(e){var n=t[a][1][e];return o(n?n:e)},u,u.exports,r,t,e,n)}return e[a].exports}for(var i="function"==typeof _dereq_&&_dereq_,a=0;a0;)c(t)}function c(t){var e=t.shift();if("function"!=typeof e)e._settlePromises();else{var n=t.shift(),r=t.shift();e.call(n,r)}}var l;try{throw new Error}catch(u){l=u}var p=t("./schedule"),f=t("./queue");r.prototype.setScheduler=function(t){var e=this._schedule;return this._schedule=t,this._customScheduler=!0,e},r.prototype.hasCustomScheduler=function(){return this._customScheduler},r.prototype.haveItemsQueued=function(){return this._isTickUsed||this._haveDrainedQueues},r.prototype.fatalError=function(t,e){e?(process.stderr.write("Fatal "+(t instanceof Error?t.stack:t)+"\n"),process.exit(2)):this.throwLater(t)},r.prototype.throwLater=function(t,e){if(1===arguments.length&&(e=t,t=function(){throw e}),"undefined"!=typeof setTimeout)setTimeout(function(){t(e)},0);else try{this._schedule(function(){t(e)})}catch(n){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")}},r.prototype.invokeLater=o,r.prototype.invoke=i,r.prototype.settlePromises=a,r.prototype._drainQueues=function(){s(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,s(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=l},{"./queue":17,"./schedule":18}],2:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var o=!1,i=function(t,e){this._reject(e)},a=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(i,i,null,this,t)},s=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(i){o||(o=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var l=n(i),u=new t(e);u._propagateFrom(this,1);var p=this._target();if(u._setBoundTo(l),l instanceof t){var f={promiseRejectionQueued:!1,promise:u,target:p,bindingPromise:l};p._then(e,a,void 0,u,f),l._then(s,c,void 0,u,f),u._setOnCancel(l)}else u._resolveCallback(p);return u},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],3:[function(t,e,n){"use strict";function r(){try{Promise===i&&(Promise=o)}catch(t){}return i}var o;"undefined"!=typeof Promise&&(o=Promise);var i=t("./promise")();i.noConflict=r,e.exports=i},{"./promise":15}],4:[function(t,e,n){"use strict";e.exports=function(e,n,r,o){var i=t("./util"),a=i.tryCatch,s=i.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!o.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(i.isArray(t))for(var n=0;n=0?i[t]:void 0}var o=!1,i=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,i.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=i.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,i=t.prototype._popContext,a=t._peekContext,s=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=i,t._peekContext=a,t.prototype._peekContext=s,t.prototype._promiseCreated=c,o=!1},o=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],7:[function(t,e,n){"use strict";e.exports=function(e,n,r,o){function i(t,e){return{promise:e}}function a(){return!1}function s(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+V.toString(t));r._attachCancellationCallback(t)})}catch(o){return o}}function c(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?V.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function l(){return this._onCancelField}function u(t){this._onCancelField=t}function p(){this._cancellationParent=void 0,this._onCancelField=void 0}function f(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function h(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function d(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function _(){this._trace=new H(this._peekContext())}function v(t,e){if(q(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=F(t);V.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),V.notEnumerableProp(t,"__stackCleaned__",!0)}}}function y(){this._trace=void 0}function g(t,e,n,r,o){if(void 0===t&&null!==e&&Z){if(void 0!==o&&o._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var i="",a="";if(e._trace){for(var s=e._trace.stack.split("\n"),c=E(s),l=c.length-1;l>=0;--l){var u=c[l];if(!M.test(u)){var p=u.match(W);p&&(i="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var f=c[0],l=0;l0&&(a="\n"+s[l-1]);break}}var h="a promise was created in a "+n+"handler "+i+"but was not returned from it, see http://goo.gl/rRqMUw"+a;r._warn(h,!0,e)}}function m(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),b(n)}function b(t,n,r){if(ut.warnings){var o,i=new D(t);if(n)r._attachExtraTrace(i);else if(ut.longStackTraces&&(o=e._peekContext()))o.attachExtraTrace(i);else{var a=F(i);i.stack=a.message+"\n"+a.stack.join("\n")}it("warning",i)||T(i,"",!0)}}function C(t,e){for(var n=0;n=0;--s)if(r[s]===i){a=s;break}for(var s=a;s>=0;--s){var c=r[s];if(e[o]!==c)break;e.pop(),o--}e=r}}function E(t){for(var e=[],n=0;n0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function F(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?j(t):[" (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:E(e)}}function T(t,e,n){if("undefined"!=typeof console){var r;if(V.isObject(t)){var o=t.stack;r=e+z(o,t)}else r=e+String(t);"function"==typeof B?B(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function x(t,e,n,r){var o=!1;try{"function"==typeof e&&(o=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(i){I.throwLater(i)}"unhandledRejection"===t?it(t,n,r)||o||T(n,"Unhandled rejection "):it(t,r)}function R(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():V.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(o){}0===e.length&&(e="(empty array)")}return"(<"+S(e)+">, no stack trace)"}function S(t){var e=41;return t.lengtha||0>s||!n||!r||n!==r||a>=s||(st=function(t){if(G.test(t))return!0;var e=O(t);return e&&e.fileName===n&&a<=e.line&&e.line<=s?!0:!1})}}function H(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);lt(this,H),e>32&&this.uncycle()}var N,L,B,U,I=e._async,D=t("./errors").Warning,V=t("./util"),Q=t("./es5"),q=V.canAttachTrace,G=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,M=/\((?:timers\.js):\d+:\d+\)/,W=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,$=null,z=null,X=!1,K=!(0==V.env("BLUEBIRD_DEBUG")||!V.env("BLUEBIRD_DEBUG")&&"development"!==V.env("NODE_ENV")),J=!(0==V.env("BLUEBIRD_WARNINGS")||!K&&!V.env("BLUEBIRD_WARNINGS")),Y=!(0==V.env("BLUEBIRD_LONG_STACK_TRACES")||!K&&!V.env("BLUEBIRD_LONG_STACK_TRACES")),Z=0!=V.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(J||!!V.env("BLUEBIRD_W_FORGOTTEN_RETURN"));!function(){function t(){for(var t=0;t0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return b(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var n=e._getContext();L=V.contextBind(n,t)},e.onUnhandledRejectionHandled=function(t){var n=e._getContext();N=V.contextBind(n,t)};var tt=function(){};e.longStackTraces=function(){if(I.haveItemsQueued()&&!ut.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!ut.longStackTraces&&P()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace,o=e.prototype._dereferenceTrace;ut.longStackTraces=!0,tt=function(){if(I.haveItemsQueued()&&!ut.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,e.prototype._dereferenceTrace=o,n.deactivateLongStackTraces(),ut.longStackTraces=!1},e.prototype._captureStackTrace=_,e.prototype._attachExtraTrace=v,e.prototype._dereferenceTrace=y,n.activateLongStackTraces()}},e.hasLongStackTraces=function(){return ut.longStackTraces&&P()};var et={unhandledrejection:{before:function(){var t=V.global.onunhandledrejection;return V.global.onunhandledrejection=null,t},after:function(t){V.global.onunhandledrejection=t}},rejectionhandled:{before:function(){var t=V.global.onrejectionhandled;return V.global.onrejectionhandled=null,t},after:function(t){V.global.onrejectionhandled=t}}},nt=function(){var t=function(t,e){if(!t)return!V.global.dispatchEvent(e);var n;try{return n=t.before(),!V.global.dispatchEvent(e)}finally{t.after(n)}};try{if("function"==typeof CustomEvent){var e=new CustomEvent("CustomEvent");return V.global.dispatchEvent(e),function(e,n){e=e.toLowerCase();var r={detail:n,cancelable:!0},o=new CustomEvent(e,r);return Q.defineProperty(o,"promise",{value:n.promise}),Q.defineProperty(o,"reason",{value:n.reason}),t(et[e],o)}}if("function"==typeof Event){var e=new Event("CustomEvent");return V.global.dispatchEvent(e),function(e,n){e=e.toLowerCase();var r=new Event(e,{cancelable:!0});return r.detail=n,Q.defineProperty(r,"promise",{value:n.promise}),Q.defineProperty(r,"reason",{value:n.reason}),t(et[e],r)}}var e=document.createEvent("CustomEvent");return e.initCustomEvent("testingtheevent",!1,!0,{}),V.global.dispatchEvent(e),function(e,n){e=e.toLowerCase();var r=document.createEvent("CustomEvent");return r.initCustomEvent(e,!1,!0,n),t(et[e],r)}}catch(n){}return function(){return!1}}(),rt=function(){return V.isNode?function(){return process.emit.apply(process,arguments)}:V.global?function(t){var e="on"+t.toLowerCase(),n=V.global[e];return n?(n.apply(V.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),ot={promiseCreated:i,promiseFulfilled:i,promiseRejected:i,promiseResolved:i,promiseCancelled:i,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:i},it=function(t){var e=!1;try{e=rt.apply(null,arguments)}catch(n){I.throwLater(n),e=!0}var r=!1;try{r=nt(t,ot[t].apply(null,arguments))}catch(n){I.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&tt()),"warnings"in t){var n=t.warnings;ut.warnings=!!n,Z=ut.warnings,V.isObject(n)&&"wForgottenReturn"in n&&(Z=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!ut.cancellation){if(I.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=p,e.prototype._propagateFrom=f,e.prototype._onCancel=l,e.prototype._setOnCancel=u,e.prototype._attachCancellationCallback=c,e.prototype._execute=s,at=f,ut.cancellation=!0}if("monitoring"in t&&(t.monitoring&&!ut.monitoring?(ut.monitoring=!0,e.prototype._fireEvent=it):!t.monitoring&&ut.monitoring&&(ut.monitoring=!1,e.prototype._fireEvent=a)),"asyncHooks"in t&&V.nodeSupportsAsyncResource){var i=ut.asyncHooks,h=!!t.asyncHooks;i!==h&&(ut.asyncHooks=h,h?r():o())}return e},e.prototype._fireEvent=a,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._dereferenceTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var at=h,st=function(){return!1},ct=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;V.inherits(H,Error),n.CapturedTrace=H,H.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,o=this;void 0!==o;++r)e.push(o),o=o._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var i=e[r].stack;void 0===n[i]&&(n[i]=r)}for(var r=0;t>r;++r){var a=e[r].stack,s=n[a];if(void 0!==s&&s!==r){s>0&&(e[s-1]._parent=void 0,e[s-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>s?(c._parent=e[s+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var l=c._length+1,u=r-2;u>=0;--u)e[u]._length=l,l++;return}}}},H.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=F(t),n=e.message,r=[e.stack],o=this;void 0!==o;)r.push(E(o.stack.split("\n"))),o=o._parent;k(r),w(r),V.notEnumerableProp(t,"stack",C(n,r)),V.notEnumerableProp(t,"__stackCleaned__",!0)}};var lt=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():R(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,$=t,z=e;var n=Error.captureStackTrace;return st=function(t){return G.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return $=/@/,z=e,X=!0,function(t){t.stack=(new Error).stack};var o;try{throw new Error}catch(i){o="stack"in i}return"stack"in r||!o||"number"!=typeof Error.stackTraceLimit?(z=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?R(e):e.toString()},null):($=t,z=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(B=function(t){console.warn(t)},V.isNode&&process.stderr.isTTY?B=function(t,e){var n=e?"":"";console.warn(n+t+"\n")}:V.isNode||"string"!=typeof(new Error).stack||(B=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var ut={warnings:J,longStackTraces:!1,cancellation:!1,monitoring:!1,asyncHooks:!1};return Y&&e.longStackTraces(),{asyncHooks:function(){return ut.asyncHooks},longStackTraces:function(){return ut.longStackTraces},warnings:function(){return ut.warnings},cancellation:function(){return ut.cancellation},monitoring:function(){return ut.monitoring},propagateFromFunction:function(){return at},boundValueFunction:function(){return d},checkForgottenReturns:g,setBounds:A,warn:b,deprecated:m,CapturedTrace:H,fireDomEvent:nt,fireGlobalEvent:rt}}},{"./errors":9,"./es5":10,"./util":21}],8:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var o=function(){return r};return this.caught(n,o)}}},{}],9:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return u(n,Error),n}function o(t){return this instanceof o?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new o(t)}var i,a,s=t("./es5"),c=s.freeze,l=t("./util"),u=l.inherits,p=l.notEnumerableProp,f=r("Warning","warning"),h=r("CancellationError","cancellation error"),d=r("TimeoutError","timeout error"),_=r("AggregateError","aggregate error");try{i=TypeError,a=RangeError}catch(v){i=r("TypeError","type error"),a=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),g=0;g1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function s(){return l.call(this,this.promise._target()._settledValue())}function c(t){return a(this,t)?void 0:(f.e=t,f)}function l(t){var o=this.promise,l=this.handler;if(!this.called){this.called=!0;var u=this.isFinallyHandler()?l.call(o._boundValue()):l.call(o._boundValue(),t);if(u===r)return u;if(void 0!==u){o._setReturnedNonUndefined();var h=n(u,o);if(h instanceof e){if(null!=this.cancelPromise){if(h._isCancelled()){var d=new p("late cancellation observer");return o._attachExtraTrace(d),f.e=d,f}h.isPending()&&h._attachCancellationCallback(new i(this))}return h._then(s,c,void 0,this,void 0)}}}return o.isRejected()?(a(this),f.e=t,f):(a(this),t)}var u=t("./util"),p=e.CancellationError,f=u.errorObj,h=t("./catch_filter")(r);return o.prototype.isFinallyHandler=function(){return 0===this.type},i.prototype._resultCancelled=function(){a(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,r){return"function"!=typeof t?this.then():this._then(n,r,void 0,new o(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,l,l)},e.prototype.tap=function(t){return this._passThrough(t,1,l)},e.prototype.tapCatch=function(t){var n=arguments.length;if(1===n)return this._passThrough(t,1,void 0,l);var r,o=new Array(n-1),i=0;for(r=0;n-1>r;++r){var a=arguments[r];if(!u.isObject(a))return e.reject(new TypeError("tapCatch statement predicate: expecting an object but got "+u.classString(a)));o[i++]=a}o.length=i;var s=arguments[r];return this._passThrough(h(o,s,this),1,void 0,l)},o}},{"./catch_filter":5,"./util":21}],12:[function(t,e,n){"use strict";e.exports=function(e,n,r,o,i){var a=t("./util");a.canEvaluate,a.tryCatch,a.errorObj;e.join=function(){var t,e=arguments.length-1;if(e>0&&"function"==typeof arguments[e]){t=arguments[e];var r}var o=[].slice.call(arguments);t&&o.pop();var r=new n(o).promise();return void 0!==t?r.spread(t):r}}},{"./util":21}],13:[function(t,e,n){"use strict";e.exports=function(e,n,r,o,i){var a=t("./util"),s=a.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+a.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var o=s(t).apply(this,arguments),a=r._popContext();return i.checkForgottenReturns(o,a,"Promise.method",r),r._resolveFromSyncValue(o),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return o("expecting a function but got "+a.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){i.deprecated("calling Promise.try with more than 1 argument");var l=arguments[1],u=arguments[2];c=a.isArray(l)?s(t).apply(u,l):s(t).call(u,l)}else c=s(t)();var p=r._popContext();return i.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===a.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":21}],14:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&u.getPrototypeOf(t)===Error.prototype}function o(t){var e;if(r(t)){e=new l(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=u.keys(t),o=0;o1){var n,r=new Array(e-1),o=0; +for(n=0;e-1>n;++n){var i=arguments[n];if(!f.isObject(i))return u("Catch statement predicate: expecting an object but got "+f.classString(i));r[o++]=i}if(r.length=o,t=arguments[n],"function"!=typeof t)throw new j("The last argument to .catch() must be a function, got "+f.toString(t));return this.then(void 0,N(r,t,this))}return this.then(void 0,t)},o.prototype.reflect=function(){return this._then(l,l,void 0,this,void 0)},o.prototype.then=function(t,e){if(A.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+f.classString(t);arguments.length>1&&(n+=", "+f.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},o.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},o.prototype.spread=function(t){return"function"!=typeof t?u("expecting a function but got "+f.classString(t)):this.all()._then(t,void 0,void 0,x,void 0)},o.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},o.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new P(this).promise()},o.prototype.error=function(t){return this.caught(f.originatesFromRejection,t)},o.getNewLibraryCopy=e.exports,o.is=function(t){return t instanceof o},o.fromNode=o.fromCallback=function(t){var e=new o(T);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=U(t)(L(e,n));return r===B&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},o.all=function(t){return new P(t).promise()},o.cast=function(t){var e=S(t);return e instanceof o||(e=new o(T),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},o.resolve=o.fulfilled=o.cast,o.reject=o.rejected=function(t){var e=new o(T);return e._captureStackTrace(),e._rejectCallback(t,!0),e},o.setScheduler=function(t){if("function"!=typeof t)throw new j("expecting a function but got "+f.classString(t));return k.setScheduler(t)},o.prototype._then=function(t,e,n,r,i){var a=void 0!==i,s=a?i:new o(T),c=this._target(),l=c._bitField;a||(s._propagateFrom(this,3),s._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&l)?this._boundValue():c===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,s));var u=g();if(0!==(50397184&l)){var p,h,d=c._settlePromiseCtx;0!==(33554432&l)?(h=c._rejectionHandler0,p=t):0!==(16777216&l)?(h=c._fulfillmentHandler0,p=e,c._unsetRejectionIsUnhandled()):(d=c._settlePromiseLateCancellationObserver,h=new F("late cancellation observer"),c._attachExtraTrace(h),p=e),k.invoke(d,c,{handler:f.contextBind(u,p),promise:s,receiver:r,value:h})}else c._addCallbacks(t,e,s,r,u);return s},o.prototype._length=function(){return 65535&this._bitField},o.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},o.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},o.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},o.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},o.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},o.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},o.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},o.prototype._isFinal=function(){return(4194304&this._bitField)>0},o.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},o.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},o.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},o.prototype._setAsyncGuaranteed=function(){if(!k.hasCustomScheduler()){var t=this._bitField;this._bitField=t|(536870912&t)>>2^134217728}},o.prototype._setNoAsyncGuarantee=function(){this._bitField=-134217729&(536870912|this._bitField)},o.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===p?void 0:void 0===e&&this._isBound()?this._boundValue():e},o.prototype._promiseAt=function(t){return this[4*t-4+2]},o.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},o.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},o.prototype._boundValue=function(){},o.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,o=t._receiverAt(0);void 0===o&&(o=p),this._addCallbacks(e,n,r,o,null)},o.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),o=t._promiseAt(e),i=t._receiverAt(e);void 0===i&&(i=p),this._addCallbacks(n,r,o,i,null)},o.prototype._addCallbacks=function(t,e,n,r,o){var i=this._length();if(i>=65531&&(i=0,this._setLength(0)),0===i)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=f.contextBind(o,t)),"function"==typeof e&&(this._rejectionHandler0=f.contextBind(o,e));else{var a=4*i-4;this[a+2]=n,this[a+3]=r,"function"==typeof t&&(this[a+0]=f.contextBind(o,t)),"function"==typeof e&&(this[a+1]=f.contextBind(o,e))}return this._setLength(i+1),i},o.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},o.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(c(),!1);var n=S(t,this);if(!(n instanceof o))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(c());var i=r._bitField;if(0===(50397184&i)){var a=this._length();a>0&&r._migrateCallback0(this);for(var s=1;a>s;++s)r._migrateCallbackAt(this,s);this._setFollowing(),this._setLength(0),this._setFollowee(n)}else if(0!==(33554432&i))this._fulfill(r._value());else if(0!==(16777216&i))this._reject(r._reason());else{var l=new F("late cancellation observer");r._attachExtraTrace(l),this._reject(l)}}},o.prototype._rejectCallback=function(t,e,n){var r=f.ensureErrorObject(t),o=r===t;if(!o&&!n&&A.warnings()){var i="a promise was rejected with a non-error: "+f.classString(t);this._warn(i,!0)}this._attachExtraTrace(r,e?o:!1),this._reject(t)},o.prototype._resolveFromExecutor=function(t){if(t!==T){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},o.prototype._settlePromiseFromHandler=function(t,e,n,r){var o=r._bitField;if(0===(65536&o)){r._pushContext();var i;e===x?n&&"number"==typeof n.length?i=U(t).apply(this._boundValue(),n):(i=B,i.e=new j("cannot .spread() a non-array: "+f.classString(n))):i=U(t).call(e,n);var a=r._popContext();o=r._bitField,0===(65536&o)&&(i===R?r._reject(n):i===B?r._rejectCallback(i.e,!1):(A.checkForgottenReturns(i,a,"",r,this),r._resolveCallback(i)))}},o.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},o.prototype._followee=function(){return this._rejectionHandler0},o.prototype._setFollowee=function(t){this._rejectionHandler0=t},o.prototype._settlePromise=function(t,e,r,i){var a=t instanceof o,s=this._bitField,c=0!==(134217728&s);0!==(65536&s)?(a&&t._invokeInternalOnCancel(),r instanceof H&&r.isFinallyHandler()?(r.cancelPromise=t,U(e).call(r,i)===B&&t._reject(B.e)):e===l?t._fulfill(l.call(r)):r instanceof n?r._promiseCancelled(t):a||t instanceof P?t._cancel():r.cancel()):"function"==typeof e?a?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,i,t)):e.call(r,i,t):r instanceof n?r._isResolved()||(0!==(33554432&s)?r._promiseFulfilled(i,t):r._promiseRejected(i,t)):a&&(c&&t._setAsyncGuaranteed(),0!==(33554432&s)?t._fulfill(i):t._reject(i))},o.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,i=t.value;"function"==typeof e?n instanceof o?this._settlePromiseFromHandler(e,r,i,n):e.call(r,i,n):n instanceof o&&n._reject(i)},o.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},o.prototype._settlePromise0=function(t,e,n){var r=this._promise0,o=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,o,e)},o.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},o.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=c();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():k.settlePromises(this),this._dereferenceTrace())}},o.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?k.fatalError(t,f.isNode):void((65535&e)>0?k.settlePromises(this):this._ensurePossibleRejectionHandled())},o.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),o=this._promiseAt(n),i=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(o,r,i,e)}},o.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),o=this._promiseAt(n),i=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(o,r,i,e)}},o.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},o.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},"undefined"!=typeof Symbol&&Symbol.toStringTag&&C.defineProperty(o.prototype,Symbol.toStringTag,{get:function(){return"Object"}}),o.defer=o.pending=function(){A.deprecated("Promise.defer","new Promise");var t=new o(T);return{promise:t,resolve:i,reject:a}},f.notEnumerableProp(o,"_makeSelfResolutionError",c),t("./method")(o,T,S,u,A),t("./bind")(o,T,S,A),t("./cancel")(o,P,u,A),t("./direct_resolve")(o),t("./synchronous_inspection")(o),t("./join")(o,P,S,T,k),o.Promise=o,o.version="3.7.2",f.toFastProperties(o),f.toFastProperties(o.prototype),s({a:1}),s({b:2}),s({c:3}),s(1),s(function(){}),s(void 0),s(!1),s(new o(T)),A.setBounds(w.firstLineError,f.lastLineError),o}},{"./async":1,"./bind":2,"./cancel":4,"./catch_filter":5,"./context":6,"./debuggability":7,"./direct_resolve":8,"./errors":9,"./es5":10,"./finally":11,"./join":12,"./method":13,"./nodeback":14,"./promise_array":16,"./synchronous_inspection":19,"./thenables":20,"./util":21,async_hooks:void 0}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,o,i){function a(t){switch(t){case-2:return[];case-3:return{};case-6:return new Map}}function s(t){var r=this._promise=new e(n);t instanceof e&&(r._propagateFrom(t,3),t.suppressUnhandledRejections()),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(s,i),s.prototype.length=function(){return this._length},s.prototype.promise=function(){return this._promise},s.prototype._init=function l(t,n){var i=r(this._values,this._promise);if(i instanceof e){i=i._target();var s=i._bitField;if(this._values=i,0===(50397184&s))return this._promise._setAsyncGuaranteed(),i._then(l,this._reject,void 0,this,n);if(0===(33554432&s))return 0!==(16777216&s)?this._reject(i._reason()):this._cancel();i=i._value()}if(i=c.asArray(i),null===i){var u=o("expecting an array or an iterable object but got "+c.classString(i)).reason();return void this._promise._rejectCallback(u,!1)}return 0===i.length?void(-5===n?this._resolveEmptyArray():this._resolve(a(n))):void this._iterate(i)},s.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var o=this._promise,i=!1,a=null,s=0;n>s;++s){var c=r(t[s],o);c instanceof e?(c=c._target(),a=c._bitField):a=null,i?null!==a&&c.suppressUnhandledRejections():null!==a?0===(50397184&a)?(c._proxy(this,s),this._values[s]=c):i=0!==(33554432&a)?this._promiseFulfilled(c._value(),s):0!==(16777216&a)?this._promiseRejected(c._reason(),s):this._promiseCancelled(s):i=this._promiseFulfilled(c,s)}i||o._setAsyncGuaranteed()},s.prototype._isResolved=function(){return null===this._values},s.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},s.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},s.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},s.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},s.prototype._promiseCancelled=function(){return this._cancel(),!0},s.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},s.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;ni;++i)n[i+r]=t[i+e],t[i+e]=void 0}function o(t){this._capacity=t,this._length=0,this._front=0}o.prototype._willBeOverCapacity=function(t){return this._capacityn;++n)o[n]=t[n];return o[n]=e,o}function l(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function u(t,e,n){if(i(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function f(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),o=A.test(t+"")&&F.names(t).length>0;if(n||r||o)return!0}return!1}catch(i){return!1}}function h(t){function e(){}function n(){return typeof r.foo}e.prototype=t;var r=new e;return n(),n(),t}function d(t){return H.test(t)}function _(t,e,n){for(var r=new Array(t),o=0;t>o;++o)r[o]=e+o+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return t instanceof Error||null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function g(t){try{u(t,"isOperational",!0)}catch(e){}}function m(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function C(t){return{}.toString.call(t)}function w(t,e,n){for(var r=F.names(t),o=0;o10||t[0]>0}(),V.nodeSupportsAsyncResource=V.isNode&&function(){var e=!1;try{var n=t("async_hooks").AsyncResource;e="function"==typeof n.prototype.runInAsyncScope}catch(r){e=!1}return e}(),V.isNode&&V.toFastProperties(process);try{throw new Error}catch(Q){V.lastLineError=Q}e.exports=V},{"./es5":10,async_hooks:void 0}]},{},[3])(3)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise); \ No newline at end of file diff --git a/node_modules/bluebird/js/browser/bluebird.js b/node_modules/bluebird/js/browser/bluebird.js new file mode 100644 index 0000000..7f0686f --- /dev/null +++ b/node_modules/bluebird/js/browser/bluebird.js @@ -0,0 +1,5778 @@ +/* @preserve + * The MIT License (MIT) + * + * Copyright (c) 2013-2018 Petka Antonov + * + * 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. + * + */ +/** + * bluebird build version 3.7.2 + * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each +*/ +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.Promise=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof _dereq_=="function"&&_dereq_;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof _dereq_=="function"&&_dereq_;for(var o=0;o 0) { + _drainQueueStep(queue); + } +} + +function _drainQueueStep(queue) { + var fn = queue.shift(); + if (typeof fn !== "function") { + fn._settlePromises(); + } else { + var receiver = queue.shift(); + var arg = queue.shift(); + fn.call(receiver, arg); + } +} + +Async.prototype._drainQueues = function () { + _drainQueue(this._normalQueue); + this._reset(); + this._haveDrainedQueues = true; + _drainQueue(this._lateQueue); +}; + +Async.prototype._queueTick = function () { + if (!this._isTickUsed) { + this._isTickUsed = true; + this._schedule(this.drainQueues); + } +}; + +Async.prototype._reset = function () { + this._isTickUsed = false; +}; + +module.exports = Async; +module.exports.firstLineError = firstLineError; + +},{"./queue":26,"./schedule":29}],3:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) { +var calledBind = false; +var rejectThis = function(_, e) { + this._reject(e); +}; + +var targetRejected = function(e, context) { + context.promiseRejectionQueued = true; + context.bindingPromise._then(rejectThis, rejectThis, null, this, e); +}; + +var bindingResolved = function(thisArg, context) { + if (((this._bitField & 50397184) === 0)) { + this._resolveCallback(context.target); + } +}; + +var bindingRejected = function(e, context) { + if (!context.promiseRejectionQueued) this._reject(e); +}; + +Promise.prototype.bind = function (thisArg) { + if (!calledBind) { + calledBind = true; + Promise.prototype._propagateFrom = debug.propagateFromFunction(); + Promise.prototype._boundValue = debug.boundValueFunction(); + } + var maybePromise = tryConvertToPromise(thisArg); + var ret = new Promise(INTERNAL); + ret._propagateFrom(this, 1); + var target = this._target(); + ret._setBoundTo(maybePromise); + if (maybePromise instanceof Promise) { + var context = { + promiseRejectionQueued: false, + promise: ret, + target: target, + bindingPromise: maybePromise + }; + target._then(INTERNAL, targetRejected, undefined, ret, context); + maybePromise._then( + bindingResolved, bindingRejected, undefined, ret, context); + ret._setOnCancel(maybePromise); + } else { + ret._resolveCallback(target); + } + return ret; +}; + +Promise.prototype._setBoundTo = function (obj) { + if (obj !== undefined) { + this._bitField = this._bitField | 2097152; + this._boundTo = obj; + } else { + this._bitField = this._bitField & (~2097152); + } +}; + +Promise.prototype._isBound = function () { + return (this._bitField & 2097152) === 2097152; +}; + +Promise.bind = function (thisArg, value) { + return Promise.resolve(value).bind(thisArg); +}; +}; + +},{}],4:[function(_dereq_,module,exports){ +"use strict"; +var old; +if (typeof Promise !== "undefined") old = Promise; +function noConflict() { + try { if (Promise === bluebird) Promise = old; } + catch (e) {} + return bluebird; +} +var bluebird = _dereq_("./promise")(); +bluebird.noConflict = noConflict; +module.exports = bluebird; + +},{"./promise":22}],5:[function(_dereq_,module,exports){ +"use strict"; +var cr = Object.create; +if (cr) { + var callerCache = cr(null); + var getterCache = cr(null); + callerCache[" size"] = getterCache[" size"] = 0; +} + +module.exports = function(Promise) { +var util = _dereq_("./util"); +var canEvaluate = util.canEvaluate; +var isIdentifier = util.isIdentifier; + +var getMethodCaller; +var getGetter; +if (!true) { +var makeMethodCaller = function (methodName) { + return new Function("ensureMethod", " \n\ + return function(obj) { \n\ + 'use strict' \n\ + var len = this.length; \n\ + ensureMethod(obj, 'methodName'); \n\ + switch(len) { \n\ + case 1: return obj.methodName(this[0]); \n\ + case 2: return obj.methodName(this[0], this[1]); \n\ + case 3: return obj.methodName(this[0], this[1], this[2]); \n\ + case 0: return obj.methodName(); \n\ + default: \n\ + return obj.methodName.apply(obj, this); \n\ + } \n\ + }; \n\ + ".replace(/methodName/g, methodName))(ensureMethod); +}; + +var makeGetter = function (propertyName) { + return new Function("obj", " \n\ + 'use strict'; \n\ + return obj.propertyName; \n\ + ".replace("propertyName", propertyName)); +}; + +var getCompiled = function(name, compiler, cache) { + var ret = cache[name]; + if (typeof ret !== "function") { + if (!isIdentifier(name)) { + return null; + } + ret = compiler(name); + cache[name] = ret; + cache[" size"]++; + if (cache[" size"] > 512) { + var keys = Object.keys(cache); + for (var i = 0; i < 256; ++i) delete cache[keys[i]]; + cache[" size"] = keys.length - 256; + } + } + return ret; +}; + +getMethodCaller = function(name) { + return getCompiled(name, makeMethodCaller, callerCache); +}; + +getGetter = function(name) { + return getCompiled(name, makeGetter, getterCache); +}; +} + +function ensureMethod(obj, methodName) { + var fn; + if (obj != null) fn = obj[methodName]; + if (typeof fn !== "function") { + var message = "Object " + util.classString(obj) + " has no method '" + + util.toString(methodName) + "'"; + throw new Promise.TypeError(message); + } + return fn; +} + +function caller(obj) { + var methodName = this.pop(); + var fn = ensureMethod(obj, methodName); + return fn.apply(obj, this); +} +Promise.prototype.call = function (methodName) { + var args = [].slice.call(arguments, 1);; + if (!true) { + if (canEvaluate) { + var maybeCaller = getMethodCaller(methodName); + if (maybeCaller !== null) { + return this._then( + maybeCaller, undefined, undefined, args, undefined); + } + } + } + args.push(methodName); + return this._then(caller, undefined, undefined, args, undefined); +}; + +function namedGetter(obj) { + return obj[this]; +} +function indexedGetter(obj) { + var index = +this; + if (index < 0) index = Math.max(0, index + obj.length); + return obj[index]; +} +Promise.prototype.get = function (propertyName) { + var isIndex = (typeof propertyName === "number"); + var getter; + if (!isIndex) { + if (canEvaluate) { + var maybeGetter = getGetter(propertyName); + getter = maybeGetter !== null ? maybeGetter : namedGetter; + } else { + getter = namedGetter; + } + } else { + getter = indexedGetter; + } + return this._then(getter, undefined, undefined, propertyName, undefined); +}; +}; + +},{"./util":36}],6:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, PromiseArray, apiRejection, debug) { +var util = _dereq_("./util"); +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var async = Promise._async; + +Promise.prototype["break"] = Promise.prototype.cancel = function() { + if (!debug.cancellation()) return this._warn("cancellation is disabled"); + + var promise = this; + var child = promise; + while (promise._isCancellable()) { + if (!promise._cancelBy(child)) { + if (child._isFollowing()) { + child._followee().cancel(); + } else { + child._cancelBranched(); + } + break; + } + + var parent = promise._cancellationParent; + if (parent == null || !parent._isCancellable()) { + if (promise._isFollowing()) { + promise._followee().cancel(); + } else { + promise._cancelBranched(); + } + break; + } else { + if (promise._isFollowing()) promise._followee().cancel(); + promise._setWillBeCancelled(); + child = promise; + promise = parent; + } + } +}; + +Promise.prototype._branchHasCancelled = function() { + this._branchesRemainingToCancel--; +}; + +Promise.prototype._enoughBranchesHaveCancelled = function() { + return this._branchesRemainingToCancel === undefined || + this._branchesRemainingToCancel <= 0; +}; + +Promise.prototype._cancelBy = function(canceller) { + if (canceller === this) { + this._branchesRemainingToCancel = 0; + this._invokeOnCancel(); + return true; + } else { + this._branchHasCancelled(); + if (this._enoughBranchesHaveCancelled()) { + this._invokeOnCancel(); + return true; + } + } + return false; +}; + +Promise.prototype._cancelBranched = function() { + if (this._enoughBranchesHaveCancelled()) { + this._cancel(); + } +}; + +Promise.prototype._cancel = function() { + if (!this._isCancellable()) return; + this._setCancelled(); + async.invoke(this._cancelPromises, this, undefined); +}; + +Promise.prototype._cancelPromises = function() { + if (this._length() > 0) this._settlePromises(); +}; + +Promise.prototype._unsetOnCancel = function() { + this._onCancelField = undefined; +}; + +Promise.prototype._isCancellable = function() { + return this.isPending() && !this._isCancelled(); +}; + +Promise.prototype.isCancellable = function() { + return this.isPending() && !this.isCancelled(); +}; + +Promise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) { + if (util.isArray(onCancelCallback)) { + for (var i = 0; i < onCancelCallback.length; ++i) { + this._doInvokeOnCancel(onCancelCallback[i], internalOnly); + } + } else if (onCancelCallback !== undefined) { + if (typeof onCancelCallback === "function") { + if (!internalOnly) { + var e = tryCatch(onCancelCallback).call(this._boundValue()); + if (e === errorObj) { + this._attachExtraTrace(e.e); + async.throwLater(e.e); + } + } + } else { + onCancelCallback._resultCancelled(this); + } + } +}; + +Promise.prototype._invokeOnCancel = function() { + var onCancelCallback = this._onCancel(); + this._unsetOnCancel(); + async.invoke(this._doInvokeOnCancel, this, onCancelCallback); +}; + +Promise.prototype._invokeInternalOnCancel = function() { + if (this._isCancellable()) { + this._doInvokeOnCancel(this._onCancel(), true); + this._unsetOnCancel(); + } +}; + +Promise.prototype._resultCancelled = function() { + this.cancel(); +}; + +}; + +},{"./util":36}],7:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(NEXT_FILTER) { +var util = _dereq_("./util"); +var getKeys = _dereq_("./es5").keys; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; + +function catchFilter(instances, cb, promise) { + return function(e) { + var boundTo = promise._boundValue(); + predicateLoop: for (var i = 0; i < instances.length; ++i) { + var item = instances[i]; + + if (item === Error || + (item != null && item.prototype instanceof Error)) { + if (e instanceof item) { + return tryCatch(cb).call(boundTo, e); + } + } else if (typeof item === "function") { + var matchesPredicate = tryCatch(item).call(boundTo, e); + if (matchesPredicate === errorObj) { + return matchesPredicate; + } else if (matchesPredicate) { + return tryCatch(cb).call(boundTo, e); + } + } else if (util.isObject(e)) { + var keys = getKeys(item); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + if (item[key] != e[key]) { + continue predicateLoop; + } + } + return tryCatch(cb).call(boundTo, e); + } + } + return NEXT_FILTER; + }; +} + +return catchFilter; +}; + +},{"./es5":13,"./util":36}],8:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +var longStackTraces = false; +var contextStack = []; + +Promise.prototype._promiseCreated = function() {}; +Promise.prototype._pushContext = function() {}; +Promise.prototype._popContext = function() {return null;}; +Promise._peekContext = Promise.prototype._peekContext = function() {}; + +function Context() { + this._trace = new Context.CapturedTrace(peekContext()); +} +Context.prototype._pushContext = function () { + if (this._trace !== undefined) { + this._trace._promiseCreated = null; + contextStack.push(this._trace); + } +}; + +Context.prototype._popContext = function () { + if (this._trace !== undefined) { + var trace = contextStack.pop(); + var ret = trace._promiseCreated; + trace._promiseCreated = null; + return ret; + } + return null; +}; + +function createContext() { + if (longStackTraces) return new Context(); +} + +function peekContext() { + var lastIndex = contextStack.length - 1; + if (lastIndex >= 0) { + return contextStack[lastIndex]; + } + return undefined; +} +Context.CapturedTrace = null; +Context.create = createContext; +Context.deactivateLongStackTraces = function() {}; +Context.activateLongStackTraces = function() { + var Promise_pushContext = Promise.prototype._pushContext; + var Promise_popContext = Promise.prototype._popContext; + var Promise_PeekContext = Promise._peekContext; + var Promise_peekContext = Promise.prototype._peekContext; + var Promise_promiseCreated = Promise.prototype._promiseCreated; + Context.deactivateLongStackTraces = function() { + Promise.prototype._pushContext = Promise_pushContext; + Promise.prototype._popContext = Promise_popContext; + Promise._peekContext = Promise_PeekContext; + Promise.prototype._peekContext = Promise_peekContext; + Promise.prototype._promiseCreated = Promise_promiseCreated; + longStackTraces = false; + }; + longStackTraces = true; + Promise.prototype._pushContext = Context.prototype._pushContext; + Promise.prototype._popContext = Context.prototype._popContext; + Promise._peekContext = Promise.prototype._peekContext = peekContext; + Promise.prototype._promiseCreated = function() { + var ctx = this._peekContext(); + if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this; + }; +}; +return Context; +}; + +},{}],9:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, Context, + enableAsyncHooks, disableAsyncHooks) { +var async = Promise._async; +var Warning = _dereq_("./errors").Warning; +var util = _dereq_("./util"); +var es5 = _dereq_("./es5"); +var canAttachTrace = util.canAttachTrace; +var unhandledRejectionHandled; +var possiblyUnhandledRejection; +var bluebirdFramePattern = + /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/; +var nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/; +var parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/; +var stackFramePattern = null; +var formatStack = null; +var indentStackFrames = false; +var printWarning; +var debugging = !!(util.env("BLUEBIRD_DEBUG") != 0 && + (true || + util.env("BLUEBIRD_DEBUG") || + util.env("NODE_ENV") === "development")); + +var warnings = !!(util.env("BLUEBIRD_WARNINGS") != 0 && + (debugging || util.env("BLUEBIRD_WARNINGS"))); + +var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 && + (debugging || util.env("BLUEBIRD_LONG_STACK_TRACES"))); + +var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 && + (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); + +var deferUnhandledRejectionCheck; +(function() { + var promises = []; + + function unhandledRejectionCheck() { + for (var i = 0; i < promises.length; ++i) { + promises[i]._notifyUnhandledRejection(); + } + unhandledRejectionClear(); + } + + function unhandledRejectionClear() { + promises.length = 0; + } + + deferUnhandledRejectionCheck = function(promise) { + promises.push(promise); + setTimeout(unhandledRejectionCheck, 1); + }; + + es5.defineProperty(Promise, "_unhandledRejectionCheck", { + value: unhandledRejectionCheck + }); + es5.defineProperty(Promise, "_unhandledRejectionClear", { + value: unhandledRejectionClear + }); +})(); + +Promise.prototype.suppressUnhandledRejections = function() { + var target = this._target(); + target._bitField = ((target._bitField & (~1048576)) | + 524288); +}; + +Promise.prototype._ensurePossibleRejectionHandled = function () { + if ((this._bitField & 524288) !== 0) return; + this._setRejectionIsUnhandled(); + deferUnhandledRejectionCheck(this); +}; + +Promise.prototype._notifyUnhandledRejectionIsHandled = function () { + fireRejectionEvent("rejectionHandled", + unhandledRejectionHandled, undefined, this); +}; + +Promise.prototype._setReturnedNonUndefined = function() { + this._bitField = this._bitField | 268435456; +}; + +Promise.prototype._returnedNonUndefined = function() { + return (this._bitField & 268435456) !== 0; +}; + +Promise.prototype._notifyUnhandledRejection = function () { + if (this._isRejectionUnhandled()) { + var reason = this._settledValue(); + this._setUnhandledRejectionIsNotified(); + fireRejectionEvent("unhandledRejection", + possiblyUnhandledRejection, reason, this); + } +}; + +Promise.prototype._setUnhandledRejectionIsNotified = function () { + this._bitField = this._bitField | 262144; +}; + +Promise.prototype._unsetUnhandledRejectionIsNotified = function () { + this._bitField = this._bitField & (~262144); +}; + +Promise.prototype._isUnhandledRejectionNotified = function () { + return (this._bitField & 262144) > 0; +}; + +Promise.prototype._setRejectionIsUnhandled = function () { + this._bitField = this._bitField | 1048576; +}; + +Promise.prototype._unsetRejectionIsUnhandled = function () { + this._bitField = this._bitField & (~1048576); + if (this._isUnhandledRejectionNotified()) { + this._unsetUnhandledRejectionIsNotified(); + this._notifyUnhandledRejectionIsHandled(); + } +}; + +Promise.prototype._isRejectionUnhandled = function () { + return (this._bitField & 1048576) > 0; +}; + +Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) { + return warn(message, shouldUseOwnTrace, promise || this); +}; + +Promise.onPossiblyUnhandledRejection = function (fn) { + var context = Promise._getContext(); + possiblyUnhandledRejection = util.contextBind(context, fn); +}; + +Promise.onUnhandledRejectionHandled = function (fn) { + var context = Promise._getContext(); + unhandledRejectionHandled = util.contextBind(context, fn); +}; + +var disableLongStackTraces = function() {}; +Promise.longStackTraces = function () { + if (async.haveItemsQueued() && !config.longStackTraces) { + throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + if (!config.longStackTraces && longStackTracesIsSupported()) { + var Promise_captureStackTrace = Promise.prototype._captureStackTrace; + var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; + var Promise_dereferenceTrace = Promise.prototype._dereferenceTrace; + config.longStackTraces = true; + disableLongStackTraces = function() { + if (async.haveItemsQueued() && !config.longStackTraces) { + throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + Promise.prototype._captureStackTrace = Promise_captureStackTrace; + Promise.prototype._attachExtraTrace = Promise_attachExtraTrace; + Promise.prototype._dereferenceTrace = Promise_dereferenceTrace; + Context.deactivateLongStackTraces(); + config.longStackTraces = false; + }; + Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace; + Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace; + Promise.prototype._dereferenceTrace = longStackTracesDereferenceTrace; + Context.activateLongStackTraces(); + } +}; + +Promise.hasLongStackTraces = function () { + return config.longStackTraces && longStackTracesIsSupported(); +}; + + +var legacyHandlers = { + unhandledrejection: { + before: function() { + var ret = util.global.onunhandledrejection; + util.global.onunhandledrejection = null; + return ret; + }, + after: function(fn) { + util.global.onunhandledrejection = fn; + } + }, + rejectionhandled: { + before: function() { + var ret = util.global.onrejectionhandled; + util.global.onrejectionhandled = null; + return ret; + }, + after: function(fn) { + util.global.onrejectionhandled = fn; + } + } +}; + +var fireDomEvent = (function() { + var dispatch = function(legacy, e) { + if (legacy) { + var fn; + try { + fn = legacy.before(); + return !util.global.dispatchEvent(e); + } finally { + legacy.after(fn); + } + } else { + return !util.global.dispatchEvent(e); + } + }; + try { + if (typeof CustomEvent === "function") { + var event = new CustomEvent("CustomEvent"); + util.global.dispatchEvent(event); + return function(name, event) { + name = name.toLowerCase(); + var eventData = { + detail: event, + cancelable: true + }; + var domEvent = new CustomEvent(name, eventData); + es5.defineProperty( + domEvent, "promise", {value: event.promise}); + es5.defineProperty( + domEvent, "reason", {value: event.reason}); + + return dispatch(legacyHandlers[name], domEvent); + }; + } else if (typeof Event === "function") { + var event = new Event("CustomEvent"); + util.global.dispatchEvent(event); + return function(name, event) { + name = name.toLowerCase(); + var domEvent = new Event(name, { + cancelable: true + }); + domEvent.detail = event; + es5.defineProperty(domEvent, "promise", {value: event.promise}); + es5.defineProperty(domEvent, "reason", {value: event.reason}); + return dispatch(legacyHandlers[name], domEvent); + }; + } else { + var event = document.createEvent("CustomEvent"); + event.initCustomEvent("testingtheevent", false, true, {}); + util.global.dispatchEvent(event); + return function(name, event) { + name = name.toLowerCase(); + var domEvent = document.createEvent("CustomEvent"); + domEvent.initCustomEvent(name, false, true, + event); + return dispatch(legacyHandlers[name], domEvent); + }; + } + } catch (e) {} + return function() { + return false; + }; +})(); + +var fireGlobalEvent = (function() { + if (util.isNode) { + return function() { + return process.emit.apply(process, arguments); + }; + } else { + if (!util.global) { + return function() { + return false; + }; + } + return function(name) { + var methodName = "on" + name.toLowerCase(); + var method = util.global[methodName]; + if (!method) return false; + method.apply(util.global, [].slice.call(arguments, 1)); + return true; + }; + } +})(); + +function generatePromiseLifecycleEventObject(name, promise) { + return {promise: promise}; +} + +var eventToObjectGenerator = { + promiseCreated: generatePromiseLifecycleEventObject, + promiseFulfilled: generatePromiseLifecycleEventObject, + promiseRejected: generatePromiseLifecycleEventObject, + promiseResolved: generatePromiseLifecycleEventObject, + promiseCancelled: generatePromiseLifecycleEventObject, + promiseChained: function(name, promise, child) { + return {promise: promise, child: child}; + }, + warning: function(name, warning) { + return {warning: warning}; + }, + unhandledRejection: function (name, reason, promise) { + return {reason: reason, promise: promise}; + }, + rejectionHandled: generatePromiseLifecycleEventObject +}; + +var activeFireEvent = function (name) { + var globalEventFired = false; + try { + globalEventFired = fireGlobalEvent.apply(null, arguments); + } catch (e) { + async.throwLater(e); + globalEventFired = true; + } + + var domEventFired = false; + try { + domEventFired = fireDomEvent(name, + eventToObjectGenerator[name].apply(null, arguments)); + } catch (e) { + async.throwLater(e); + domEventFired = true; + } + + return domEventFired || globalEventFired; +}; + +Promise.config = function(opts) { + opts = Object(opts); + if ("longStackTraces" in opts) { + if (opts.longStackTraces) { + Promise.longStackTraces(); + } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) { + disableLongStackTraces(); + } + } + if ("warnings" in opts) { + var warningsOption = opts.warnings; + config.warnings = !!warningsOption; + wForgottenReturn = config.warnings; + + if (util.isObject(warningsOption)) { + if ("wForgottenReturn" in warningsOption) { + wForgottenReturn = !!warningsOption.wForgottenReturn; + } + } + } + if ("cancellation" in opts && opts.cancellation && !config.cancellation) { + if (async.haveItemsQueued()) { + throw new Error( + "cannot enable cancellation after promises are in use"); + } + Promise.prototype._clearCancellationData = + cancellationClearCancellationData; + Promise.prototype._propagateFrom = cancellationPropagateFrom; + Promise.prototype._onCancel = cancellationOnCancel; + Promise.prototype._setOnCancel = cancellationSetOnCancel; + Promise.prototype._attachCancellationCallback = + cancellationAttachCancellationCallback; + Promise.prototype._execute = cancellationExecute; + propagateFromFunction = cancellationPropagateFrom; + config.cancellation = true; + } + if ("monitoring" in opts) { + if (opts.monitoring && !config.monitoring) { + config.monitoring = true; + Promise.prototype._fireEvent = activeFireEvent; + } else if (!opts.monitoring && config.monitoring) { + config.monitoring = false; + Promise.prototype._fireEvent = defaultFireEvent; + } + } + if ("asyncHooks" in opts && util.nodeSupportsAsyncResource) { + var prev = config.asyncHooks; + var cur = !!opts.asyncHooks; + if (prev !== cur) { + config.asyncHooks = cur; + if (cur) { + enableAsyncHooks(); + } else { + disableAsyncHooks(); + } + } + } + return Promise; +}; + +function defaultFireEvent() { return false; } + +Promise.prototype._fireEvent = defaultFireEvent; +Promise.prototype._execute = function(executor, resolve, reject) { + try { + executor(resolve, reject); + } catch (e) { + return e; + } +}; +Promise.prototype._onCancel = function () {}; +Promise.prototype._setOnCancel = function (handler) { ; }; +Promise.prototype._attachCancellationCallback = function(onCancel) { + ; +}; +Promise.prototype._captureStackTrace = function () {}; +Promise.prototype._attachExtraTrace = function () {}; +Promise.prototype._dereferenceTrace = function () {}; +Promise.prototype._clearCancellationData = function() {}; +Promise.prototype._propagateFrom = function (parent, flags) { + ; + ; +}; + +function cancellationExecute(executor, resolve, reject) { + var promise = this; + try { + executor(resolve, reject, function(onCancel) { + if (typeof onCancel !== "function") { + throw new TypeError("onCancel must be a function, got: " + + util.toString(onCancel)); + } + promise._attachCancellationCallback(onCancel); + }); + } catch (e) { + return e; + } +} + +function cancellationAttachCancellationCallback(onCancel) { + if (!this._isCancellable()) return this; + + var previousOnCancel = this._onCancel(); + if (previousOnCancel !== undefined) { + if (util.isArray(previousOnCancel)) { + previousOnCancel.push(onCancel); + } else { + this._setOnCancel([previousOnCancel, onCancel]); + } + } else { + this._setOnCancel(onCancel); + } +} + +function cancellationOnCancel() { + return this._onCancelField; +} + +function cancellationSetOnCancel(onCancel) { + this._onCancelField = onCancel; +} + +function cancellationClearCancellationData() { + this._cancellationParent = undefined; + this._onCancelField = undefined; +} + +function cancellationPropagateFrom(parent, flags) { + if ((flags & 1) !== 0) { + this._cancellationParent = parent; + var branchesRemainingToCancel = parent._branchesRemainingToCancel; + if (branchesRemainingToCancel === undefined) { + branchesRemainingToCancel = 0; + } + parent._branchesRemainingToCancel = branchesRemainingToCancel + 1; + } + if ((flags & 2) !== 0 && parent._isBound()) { + this._setBoundTo(parent._boundTo); + } +} + +function bindingPropagateFrom(parent, flags) { + if ((flags & 2) !== 0 && parent._isBound()) { + this._setBoundTo(parent._boundTo); + } +} +var propagateFromFunction = bindingPropagateFrom; + +function boundValueFunction() { + var ret = this._boundTo; + if (ret !== undefined) { + if (ret instanceof Promise) { + if (ret.isFulfilled()) { + return ret.value(); + } else { + return undefined; + } + } + } + return ret; +} + +function longStackTracesCaptureStackTrace() { + this._trace = new CapturedTrace(this._peekContext()); +} + +function longStackTracesAttachExtraTrace(error, ignoreSelf) { + if (canAttachTrace(error)) { + var trace = this._trace; + if (trace !== undefined) { + if (ignoreSelf) trace = trace._parent; + } + if (trace !== undefined) { + trace.attachExtraTrace(error); + } else if (!error.__stackCleaned__) { + var parsed = parseStackAndMessage(error); + util.notEnumerableProp(error, "stack", + parsed.message + "\n" + parsed.stack.join("\n")); + util.notEnumerableProp(error, "__stackCleaned__", true); + } + } +} + +function longStackTracesDereferenceTrace() { + this._trace = undefined; +} + +function checkForgottenReturns(returnValue, promiseCreated, name, promise, + parent) { + if (returnValue === undefined && promiseCreated !== null && + wForgottenReturn) { + if (parent !== undefined && parent._returnedNonUndefined()) return; + if ((promise._bitField & 65535) === 0) return; + + if (name) name = name + " "; + var handlerLine = ""; + var creatorLine = ""; + if (promiseCreated._trace) { + var traceLines = promiseCreated._trace.stack.split("\n"); + var stack = cleanStack(traceLines); + for (var i = stack.length - 1; i >= 0; --i) { + var line = stack[i]; + if (!nodeFramePattern.test(line)) { + var lineMatches = line.match(parseLinePattern); + if (lineMatches) { + handlerLine = "at " + lineMatches[1] + + ":" + lineMatches[2] + ":" + lineMatches[3] + " "; + } + break; + } + } + + if (stack.length > 0) { + var firstUserLine = stack[0]; + for (var i = 0; i < traceLines.length; ++i) { + + if (traceLines[i] === firstUserLine) { + if (i > 0) { + creatorLine = "\n" + traceLines[i - 1]; + } + break; + } + } + + } + } + var msg = "a promise was created in a " + name + + "handler " + handlerLine + "but was not returned from it, " + + "see http://goo.gl/rRqMUw" + + creatorLine; + promise._warn(msg, true, promiseCreated); + } +} + +function deprecated(name, replacement) { + var message = name + + " is deprecated and will be removed in a future version."; + if (replacement) message += " Use " + replacement + " instead."; + return warn(message); +} + +function warn(message, shouldUseOwnTrace, promise) { + if (!config.warnings) return; + var warning = new Warning(message); + var ctx; + if (shouldUseOwnTrace) { + promise._attachExtraTrace(warning); + } else if (config.longStackTraces && (ctx = Promise._peekContext())) { + ctx.attachExtraTrace(warning); + } else { + var parsed = parseStackAndMessage(warning); + warning.stack = parsed.message + "\n" + parsed.stack.join("\n"); + } + + if (!activeFireEvent("warning", warning)) { + formatAndLogError(warning, "", true); + } +} + +function reconstructStack(message, stacks) { + for (var i = 0; i < stacks.length - 1; ++i) { + stacks[i].push("From previous event:"); + stacks[i] = stacks[i].join("\n"); + } + if (i < stacks.length) { + stacks[i] = stacks[i].join("\n"); + } + return message + "\n" + stacks.join("\n"); +} + +function removeDuplicateOrEmptyJumps(stacks) { + for (var i = 0; i < stacks.length; ++i) { + if (stacks[i].length === 0 || + ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) { + stacks.splice(i, 1); + i--; + } + } +} + +function removeCommonRoots(stacks) { + var current = stacks[0]; + for (var i = 1; i < stacks.length; ++i) { + var prev = stacks[i]; + var currentLastIndex = current.length - 1; + var currentLastLine = current[currentLastIndex]; + var commonRootMeetPoint = -1; + + for (var j = prev.length - 1; j >= 0; --j) { + if (prev[j] === currentLastLine) { + commonRootMeetPoint = j; + break; + } + } + + for (var j = commonRootMeetPoint; j >= 0; --j) { + var line = prev[j]; + if (current[currentLastIndex] === line) { + current.pop(); + currentLastIndex--; + } else { + break; + } + } + current = prev; + } +} + +function cleanStack(stack) { + var ret = []; + for (var i = 0; i < stack.length; ++i) { + var line = stack[i]; + var isTraceLine = " (No stack trace)" === line || + stackFramePattern.test(line); + var isInternalFrame = isTraceLine && shouldIgnore(line); + if (isTraceLine && !isInternalFrame) { + if (indentStackFrames && line.charAt(0) !== " ") { + line = " " + line; + } + ret.push(line); + } + } + return ret; +} + +function stackFramesAsArray(error) { + var stack = error.stack.replace(/\s+$/g, "").split("\n"); + for (var i = 0; i < stack.length; ++i) { + var line = stack[i]; + if (" (No stack trace)" === line || stackFramePattern.test(line)) { + break; + } + } + if (i > 0 && error.name != "SyntaxError") { + stack = stack.slice(i); + } + return stack; +} + +function parseStackAndMessage(error) { + var stack = error.stack; + var message = error.toString(); + stack = typeof stack === "string" && stack.length > 0 + ? stackFramesAsArray(error) : [" (No stack trace)"]; + return { + message: message, + stack: error.name == "SyntaxError" ? stack : cleanStack(stack) + }; +} + +function formatAndLogError(error, title, isSoft) { + if (typeof console !== "undefined") { + var message; + if (util.isObject(error)) { + var stack = error.stack; + message = title + formatStack(stack, error); + } else { + message = title + String(error); + } + if (typeof printWarning === "function") { + printWarning(message, isSoft); + } else if (typeof console.log === "function" || + typeof console.log === "object") { + console.log(message); + } + } +} + +function fireRejectionEvent(name, localHandler, reason, promise) { + var localEventFired = false; + try { + if (typeof localHandler === "function") { + localEventFired = true; + if (name === "rejectionHandled") { + localHandler(promise); + } else { + localHandler(reason, promise); + } + } + } catch (e) { + async.throwLater(e); + } + + if (name === "unhandledRejection") { + if (!activeFireEvent(name, reason, promise) && !localEventFired) { + formatAndLogError(reason, "Unhandled rejection "); + } + } else { + activeFireEvent(name, promise); + } +} + +function formatNonError(obj) { + var str; + if (typeof obj === "function") { + str = "[function " + + (obj.name || "anonymous") + + "]"; + } else { + str = obj && typeof obj.toString === "function" + ? obj.toString() : util.toString(obj); + var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/; + if (ruselessToString.test(str)) { + try { + var newStr = JSON.stringify(obj); + str = newStr; + } + catch(e) { + + } + } + if (str.length === 0) { + str = "(empty array)"; + } + } + return ("(<" + snip(str) + ">, no stack trace)"); +} + +function snip(str) { + var maxChars = 41; + if (str.length < maxChars) { + return str; + } + return str.substr(0, maxChars - 3) + "..."; +} + +function longStackTracesIsSupported() { + return typeof captureStackTrace === "function"; +} + +var shouldIgnore = function() { return false; }; +var parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; +function parseLineInfo(line) { + var matches = line.match(parseLineInfoRegex); + if (matches) { + return { + fileName: matches[1], + line: parseInt(matches[2], 10) + }; + } +} + +function setBounds(firstLineError, lastLineError) { + if (!longStackTracesIsSupported()) return; + var firstStackLines = (firstLineError.stack || "").split("\n"); + var lastStackLines = (lastLineError.stack || "").split("\n"); + var firstIndex = -1; + var lastIndex = -1; + var firstFileName; + var lastFileName; + for (var i = 0; i < firstStackLines.length; ++i) { + var result = parseLineInfo(firstStackLines[i]); + if (result) { + firstFileName = result.fileName; + firstIndex = result.line; + break; + } + } + for (var i = 0; i < lastStackLines.length; ++i) { + var result = parseLineInfo(lastStackLines[i]); + if (result) { + lastFileName = result.fileName; + lastIndex = result.line; + break; + } + } + if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName || + firstFileName !== lastFileName || firstIndex >= lastIndex) { + return; + } + + shouldIgnore = function(line) { + if (bluebirdFramePattern.test(line)) return true; + var info = parseLineInfo(line); + if (info) { + if (info.fileName === firstFileName && + (firstIndex <= info.line && info.line <= lastIndex)) { + return true; + } + } + return false; + }; +} + +function CapturedTrace(parent) { + this._parent = parent; + this._promisesCreated = 0; + var length = this._length = 1 + (parent === undefined ? 0 : parent._length); + captureStackTrace(this, CapturedTrace); + if (length > 32) this.uncycle(); +} +util.inherits(CapturedTrace, Error); +Context.CapturedTrace = CapturedTrace; + +CapturedTrace.prototype.uncycle = function() { + var length = this._length; + if (length < 2) return; + var nodes = []; + var stackToIndex = {}; + + for (var i = 0, node = this; node !== undefined; ++i) { + nodes.push(node); + node = node._parent; + } + length = this._length = i; + for (var i = length - 1; i >= 0; --i) { + var stack = nodes[i].stack; + if (stackToIndex[stack] === undefined) { + stackToIndex[stack] = i; + } + } + for (var i = 0; i < length; ++i) { + var currentStack = nodes[i].stack; + var index = stackToIndex[currentStack]; + if (index !== undefined && index !== i) { + if (index > 0) { + nodes[index - 1]._parent = undefined; + nodes[index - 1]._length = 1; + } + nodes[i]._parent = undefined; + nodes[i]._length = 1; + var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; + + if (index < length - 1) { + cycleEdgeNode._parent = nodes[index + 1]; + cycleEdgeNode._parent.uncycle(); + cycleEdgeNode._length = + cycleEdgeNode._parent._length + 1; + } else { + cycleEdgeNode._parent = undefined; + cycleEdgeNode._length = 1; + } + var currentChildLength = cycleEdgeNode._length + 1; + for (var j = i - 2; j >= 0; --j) { + nodes[j]._length = currentChildLength; + currentChildLength++; + } + return; + } + } +}; + +CapturedTrace.prototype.attachExtraTrace = function(error) { + if (error.__stackCleaned__) return; + this.uncycle(); + var parsed = parseStackAndMessage(error); + var message = parsed.message; + var stacks = [parsed.stack]; + + var trace = this; + while (trace !== undefined) { + stacks.push(cleanStack(trace.stack.split("\n"))); + trace = trace._parent; + } + removeCommonRoots(stacks); + removeDuplicateOrEmptyJumps(stacks); + util.notEnumerableProp(error, "stack", reconstructStack(message, stacks)); + util.notEnumerableProp(error, "__stackCleaned__", true); +}; + +var captureStackTrace = (function stackDetection() { + var v8stackFramePattern = /^\s*at\s*/; + var v8stackFormatter = function(stack, error) { + if (typeof stack === "string") return stack; + + if (error.name !== undefined && + error.message !== undefined) { + return error.toString(); + } + return formatNonError(error); + }; + + if (typeof Error.stackTraceLimit === "number" && + typeof Error.captureStackTrace === "function") { + Error.stackTraceLimit += 6; + stackFramePattern = v8stackFramePattern; + formatStack = v8stackFormatter; + var captureStackTrace = Error.captureStackTrace; + + shouldIgnore = function(line) { + return bluebirdFramePattern.test(line); + }; + return function(receiver, ignoreUntil) { + Error.stackTraceLimit += 6; + captureStackTrace(receiver, ignoreUntil); + Error.stackTraceLimit -= 6; + }; + } + var err = new Error(); + + if (typeof err.stack === "string" && + err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) { + stackFramePattern = /@/; + formatStack = v8stackFormatter; + indentStackFrames = true; + return function captureStackTrace(o) { + o.stack = new Error().stack; + }; + } + + var hasStackAfterThrow; + try { throw new Error(); } + catch(e) { + hasStackAfterThrow = ("stack" in e); + } + if (!("stack" in err) && hasStackAfterThrow && + typeof Error.stackTraceLimit === "number") { + stackFramePattern = v8stackFramePattern; + formatStack = v8stackFormatter; + return function captureStackTrace(o) { + Error.stackTraceLimit += 6; + try { throw new Error(); } + catch(e) { o.stack = e.stack; } + Error.stackTraceLimit -= 6; + }; + } + + formatStack = function(stack, error) { + if (typeof stack === "string") return stack; + + if ((typeof error === "object" || + typeof error === "function") && + error.name !== undefined && + error.message !== undefined) { + return error.toString(); + } + return formatNonError(error); + }; + + return null; + +})([]); + +if (typeof console !== "undefined" && typeof console.warn !== "undefined") { + printWarning = function (message) { + console.warn(message); + }; + if (util.isNode && process.stderr.isTTY) { + printWarning = function(message, isSoft) { + var color = isSoft ? "\u001b[33m" : "\u001b[31m"; + console.warn(color + message + "\u001b[0m\n"); + }; + } else if (!util.isNode && typeof (new Error().stack) === "string") { + printWarning = function(message, isSoft) { + console.warn("%c" + message, + isSoft ? "color: darkorange" : "color: red"); + }; + } +} + +var config = { + warnings: warnings, + longStackTraces: false, + cancellation: false, + monitoring: false, + asyncHooks: false +}; + +if (longStackTraces) Promise.longStackTraces(); + +return { + asyncHooks: function() { + return config.asyncHooks; + }, + longStackTraces: function() { + return config.longStackTraces; + }, + warnings: function() { + return config.warnings; + }, + cancellation: function() { + return config.cancellation; + }, + monitoring: function() { + return config.monitoring; + }, + propagateFromFunction: function() { + return propagateFromFunction; + }, + boundValueFunction: function() { + return boundValueFunction; + }, + checkForgottenReturns: checkForgottenReturns, + setBounds: setBounds, + warn: warn, + deprecated: deprecated, + CapturedTrace: CapturedTrace, + fireDomEvent: fireDomEvent, + fireGlobalEvent: fireGlobalEvent +}; +}; + +},{"./errors":12,"./es5":13,"./util":36}],10:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +function returner() { + return this.value; +} +function thrower() { + throw this.reason; +} + +Promise.prototype["return"] = +Promise.prototype.thenReturn = function (value) { + if (value instanceof Promise) value.suppressUnhandledRejections(); + return this._then( + returner, undefined, undefined, {value: value}, undefined); +}; + +Promise.prototype["throw"] = +Promise.prototype.thenThrow = function (reason) { + return this._then( + thrower, undefined, undefined, {reason: reason}, undefined); +}; + +Promise.prototype.catchThrow = function (reason) { + if (arguments.length <= 1) { + return this._then( + undefined, thrower, undefined, {reason: reason}, undefined); + } else { + var _reason = arguments[1]; + var handler = function() {throw _reason;}; + return this.caught(reason, handler); + } +}; + +Promise.prototype.catchReturn = function (value) { + if (arguments.length <= 1) { + if (value instanceof Promise) value.suppressUnhandledRejections(); + return this._then( + undefined, returner, undefined, {value: value}, undefined); + } else { + var _value = arguments[1]; + if (_value instanceof Promise) _value.suppressUnhandledRejections(); + var handler = function() {return _value;}; + return this.caught(value, handler); + } +}; +}; + +},{}],11:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var PromiseReduce = Promise.reduce; +var PromiseAll = Promise.all; + +function promiseAllThis() { + return PromiseAll(this); +} + +function PromiseMapSeries(promises, fn) { + return PromiseReduce(promises, fn, INTERNAL, INTERNAL); +} + +Promise.prototype.each = function (fn) { + return PromiseReduce(this, fn, INTERNAL, 0) + ._then(promiseAllThis, undefined, undefined, this, undefined); +}; + +Promise.prototype.mapSeries = function (fn) { + return PromiseReduce(this, fn, INTERNAL, INTERNAL); +}; + +Promise.each = function (promises, fn) { + return PromiseReduce(promises, fn, INTERNAL, 0) + ._then(promiseAllThis, undefined, undefined, promises, undefined); +}; + +Promise.mapSeries = PromiseMapSeries; +}; + + +},{}],12:[function(_dereq_,module,exports){ +"use strict"; +var es5 = _dereq_("./es5"); +var Objectfreeze = es5.freeze; +var util = _dereq_("./util"); +var inherits = util.inherits; +var notEnumerableProp = util.notEnumerableProp; + +function subError(nameProperty, defaultMessage) { + function SubError(message) { + if (!(this instanceof SubError)) return new SubError(message); + notEnumerableProp(this, "message", + typeof message === "string" ? message : defaultMessage); + notEnumerableProp(this, "name", nameProperty); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + Error.call(this); + } + } + inherits(SubError, Error); + return SubError; +} + +var _TypeError, _RangeError; +var Warning = subError("Warning", "warning"); +var CancellationError = subError("CancellationError", "cancellation error"); +var TimeoutError = subError("TimeoutError", "timeout error"); +var AggregateError = subError("AggregateError", "aggregate error"); +try { + _TypeError = TypeError; + _RangeError = RangeError; +} catch(e) { + _TypeError = subError("TypeError", "type error"); + _RangeError = subError("RangeError", "range error"); +} + +var methods = ("join pop push shift unshift slice filter forEach some " + + "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" "); + +for (var i = 0; i < methods.length; ++i) { + if (typeof Array.prototype[methods[i]] === "function") { + AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]; + } +} + +es5.defineProperty(AggregateError.prototype, "length", { + value: 0, + configurable: false, + writable: true, + enumerable: true +}); +AggregateError.prototype["isOperational"] = true; +var level = 0; +AggregateError.prototype.toString = function() { + var indent = Array(level * 4 + 1).join(" "); + var ret = "\n" + indent + "AggregateError of:" + "\n"; + level++; + indent = Array(level * 4 + 1).join(" "); + for (var i = 0; i < this.length; ++i) { + var str = this[i] === this ? "[Circular AggregateError]" : this[i] + ""; + var lines = str.split("\n"); + for (var j = 0; j < lines.length; ++j) { + lines[j] = indent + lines[j]; + } + str = lines.join("\n"); + ret += str + "\n"; + } + level--; + return ret; +}; + +function OperationalError(message) { + if (!(this instanceof OperationalError)) + return new OperationalError(message); + notEnumerableProp(this, "name", "OperationalError"); + notEnumerableProp(this, "message", message); + this.cause = message; + this["isOperational"] = true; + + if (message instanceof Error) { + notEnumerableProp(this, "message", message.message); + notEnumerableProp(this, "stack", message.stack); + } else if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + +} +inherits(OperationalError, Error); + +var errorTypes = Error["__BluebirdErrorTypes__"]; +if (!errorTypes) { + errorTypes = Objectfreeze({ + CancellationError: CancellationError, + TimeoutError: TimeoutError, + OperationalError: OperationalError, + RejectionError: OperationalError, + AggregateError: AggregateError + }); + es5.defineProperty(Error, "__BluebirdErrorTypes__", { + value: errorTypes, + writable: false, + enumerable: false, + configurable: false + }); +} + +module.exports = { + Error: Error, + TypeError: _TypeError, + RangeError: _RangeError, + CancellationError: errorTypes.CancellationError, + OperationalError: errorTypes.OperationalError, + TimeoutError: errorTypes.TimeoutError, + AggregateError: errorTypes.AggregateError, + Warning: Warning +}; + +},{"./es5":13,"./util":36}],13:[function(_dereq_,module,exports){ +var isES5 = (function(){ + "use strict"; + return this === undefined; +})(); + +if (isES5) { + module.exports = { + freeze: Object.freeze, + defineProperty: Object.defineProperty, + getDescriptor: Object.getOwnPropertyDescriptor, + keys: Object.keys, + names: Object.getOwnPropertyNames, + getPrototypeOf: Object.getPrototypeOf, + isArray: Array.isArray, + isES5: isES5, + propertyIsWritable: function(obj, prop) { + var descriptor = Object.getOwnPropertyDescriptor(obj, prop); + return !!(!descriptor || descriptor.writable || descriptor.set); + } + }; +} else { + var has = {}.hasOwnProperty; + var str = {}.toString; + var proto = {}.constructor.prototype; + + var ObjectKeys = function (o) { + var ret = []; + for (var key in o) { + if (has.call(o, key)) { + ret.push(key); + } + } + return ret; + }; + + var ObjectGetDescriptor = function(o, key) { + return {value: o[key]}; + }; + + var ObjectDefineProperty = function (o, key, desc) { + o[key] = desc.value; + return o; + }; + + var ObjectFreeze = function (obj) { + return obj; + }; + + var ObjectGetPrototypeOf = function (obj) { + try { + return Object(obj).constructor.prototype; + } + catch (e) { + return proto; + } + }; + + var ArrayIsArray = function (obj) { + try { + return str.call(obj) === "[object Array]"; + } + catch(e) { + return false; + } + }; + + module.exports = { + isArray: ArrayIsArray, + keys: ObjectKeys, + names: ObjectKeys, + defineProperty: ObjectDefineProperty, + getDescriptor: ObjectGetDescriptor, + freeze: ObjectFreeze, + getPrototypeOf: ObjectGetPrototypeOf, + isES5: isES5, + propertyIsWritable: function() { + return true; + } + }; +} + +},{}],14:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var PromiseMap = Promise.map; + +Promise.prototype.filter = function (fn, options) { + return PromiseMap(this, fn, options, INTERNAL); +}; + +Promise.filter = function (promises, fn, options) { + return PromiseMap(promises, fn, options, INTERNAL); +}; +}; + +},{}],15:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) { +var util = _dereq_("./util"); +var CancellationError = Promise.CancellationError; +var errorObj = util.errorObj; +var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER); + +function PassThroughHandlerContext(promise, type, handler) { + this.promise = promise; + this.type = type; + this.handler = handler; + this.called = false; + this.cancelPromise = null; +} + +PassThroughHandlerContext.prototype.isFinallyHandler = function() { + return this.type === 0; +}; + +function FinallyHandlerCancelReaction(finallyHandler) { + this.finallyHandler = finallyHandler; +} + +FinallyHandlerCancelReaction.prototype._resultCancelled = function() { + checkCancel(this.finallyHandler); +}; + +function checkCancel(ctx, reason) { + if (ctx.cancelPromise != null) { + if (arguments.length > 1) { + ctx.cancelPromise._reject(reason); + } else { + ctx.cancelPromise._cancel(); + } + ctx.cancelPromise = null; + return true; + } + return false; +} + +function succeed() { + return finallyHandler.call(this, this.promise._target()._settledValue()); +} +function fail(reason) { + if (checkCancel(this, reason)) return; + errorObj.e = reason; + return errorObj; +} +function finallyHandler(reasonOrValue) { + var promise = this.promise; + var handler = this.handler; + + if (!this.called) { + this.called = true; + var ret = this.isFinallyHandler() + ? handler.call(promise._boundValue()) + : handler.call(promise._boundValue(), reasonOrValue); + if (ret === NEXT_FILTER) { + return ret; + } else if (ret !== undefined) { + promise._setReturnedNonUndefined(); + var maybePromise = tryConvertToPromise(ret, promise); + if (maybePromise instanceof Promise) { + if (this.cancelPromise != null) { + if (maybePromise._isCancelled()) { + var reason = + new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason); + errorObj.e = reason; + return errorObj; + } else if (maybePromise.isPending()) { + maybePromise._attachCancellationCallback( + new FinallyHandlerCancelReaction(this)); + } + } + return maybePromise._then( + succeed, fail, undefined, this, undefined); + } + } + } + + if (promise.isRejected()) { + checkCancel(this); + errorObj.e = reasonOrValue; + return errorObj; + } else { + checkCancel(this); + return reasonOrValue; + } +} + +Promise.prototype._passThrough = function(handler, type, success, fail) { + if (typeof handler !== "function") return this.then(); + return this._then(success, + fail, + undefined, + new PassThroughHandlerContext(this, type, handler), + undefined); +}; + +Promise.prototype.lastly = +Promise.prototype["finally"] = function (handler) { + return this._passThrough(handler, + 0, + finallyHandler, + finallyHandler); +}; + + +Promise.prototype.tap = function (handler) { + return this._passThrough(handler, 1, finallyHandler); +}; + +Promise.prototype.tapCatch = function (handlerOrPredicate) { + var len = arguments.length; + if(len === 1) { + return this._passThrough(handlerOrPredicate, + 1, + undefined, + finallyHandler); + } else { + var catchInstances = new Array(len - 1), + j = 0, i; + for (i = 0; i < len - 1; ++i) { + var item = arguments[i]; + if (util.isObject(item)) { + catchInstances[j++] = item; + } else { + return Promise.reject(new TypeError( + "tapCatch statement predicate: " + + "expecting an object but got " + util.classString(item) + )); + } + } + catchInstances.length = j; + var handler = arguments[i]; + return this._passThrough(catchFilter(catchInstances, handler, this), + 1, + undefined, + finallyHandler); + } + +}; + +return PassThroughHandlerContext; +}; + +},{"./catch_filter":7,"./util":36}],16:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, + apiRejection, + INTERNAL, + tryConvertToPromise, + Proxyable, + debug) { +var errors = _dereq_("./errors"); +var TypeError = errors.TypeError; +var util = _dereq_("./util"); +var errorObj = util.errorObj; +var tryCatch = util.tryCatch; +var yieldHandlers = []; + +function promiseFromYieldHandler(value, yieldHandlers, traceParent) { + for (var i = 0; i < yieldHandlers.length; ++i) { + traceParent._pushContext(); + var result = tryCatch(yieldHandlers[i])(value); + traceParent._popContext(); + if (result === errorObj) { + traceParent._pushContext(); + var ret = Promise.reject(errorObj.e); + traceParent._popContext(); + return ret; + } + var maybePromise = tryConvertToPromise(result, traceParent); + if (maybePromise instanceof Promise) return maybePromise; + } + return null; +} + +function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) { + if (debug.cancellation()) { + var internal = new Promise(INTERNAL); + var _finallyPromise = this._finallyPromise = new Promise(INTERNAL); + this._promise = internal.lastly(function() { + return _finallyPromise; + }); + internal._captureStackTrace(); + internal._setOnCancel(this); + } else { + var promise = this._promise = new Promise(INTERNAL); + promise._captureStackTrace(); + } + this._stack = stack; + this._generatorFunction = generatorFunction; + this._receiver = receiver; + this._generator = undefined; + this._yieldHandlers = typeof yieldHandler === "function" + ? [yieldHandler].concat(yieldHandlers) + : yieldHandlers; + this._yieldedPromise = null; + this._cancellationPhase = false; +} +util.inherits(PromiseSpawn, Proxyable); + +PromiseSpawn.prototype._isResolved = function() { + return this._promise === null; +}; + +PromiseSpawn.prototype._cleanup = function() { + this._promise = this._generator = null; + if (debug.cancellation() && this._finallyPromise !== null) { + this._finallyPromise._fulfill(); + this._finallyPromise = null; + } +}; + +PromiseSpawn.prototype._promiseCancelled = function() { + if (this._isResolved()) return; + var implementsReturn = typeof this._generator["return"] !== "undefined"; + + var result; + if (!implementsReturn) { + var reason = new Promise.CancellationError( + "generator .return() sentinel"); + Promise.coroutine.returnSentinel = reason; + this._promise._attachExtraTrace(reason); + this._promise._pushContext(); + result = tryCatch(this._generator["throw"]).call(this._generator, + reason); + this._promise._popContext(); + } else { + this._promise._pushContext(); + result = tryCatch(this._generator["return"]).call(this._generator, + undefined); + this._promise._popContext(); + } + this._cancellationPhase = true; + this._yieldedPromise = null; + this._continue(result); +}; + +PromiseSpawn.prototype._promiseFulfilled = function(value) { + this._yieldedPromise = null; + this._promise._pushContext(); + var result = tryCatch(this._generator.next).call(this._generator, value); + this._promise._popContext(); + this._continue(result); +}; + +PromiseSpawn.prototype._promiseRejected = function(reason) { + this._yieldedPromise = null; + this._promise._attachExtraTrace(reason); + this._promise._pushContext(); + var result = tryCatch(this._generator["throw"]) + .call(this._generator, reason); + this._promise._popContext(); + this._continue(result); +}; + +PromiseSpawn.prototype._resultCancelled = function() { + if (this._yieldedPromise instanceof Promise) { + var promise = this._yieldedPromise; + this._yieldedPromise = null; + promise.cancel(); + } +}; + +PromiseSpawn.prototype.promise = function () { + return this._promise; +}; + +PromiseSpawn.prototype._run = function () { + this._generator = this._generatorFunction.call(this._receiver); + this._receiver = + this._generatorFunction = undefined; + this._promiseFulfilled(undefined); +}; + +PromiseSpawn.prototype._continue = function (result) { + var promise = this._promise; + if (result === errorObj) { + this._cleanup(); + if (this._cancellationPhase) { + return promise.cancel(); + } else { + return promise._rejectCallback(result.e, false); + } + } + + var value = result.value; + if (result.done === true) { + this._cleanup(); + if (this._cancellationPhase) { + return promise.cancel(); + } else { + return promise._resolveCallback(value); + } + } else { + var maybePromise = tryConvertToPromise(value, this._promise); + if (!(maybePromise instanceof Promise)) { + maybePromise = + promiseFromYieldHandler(maybePromise, + this._yieldHandlers, + this._promise); + if (maybePromise === null) { + this._promiseRejected( + new TypeError( + "A value %s was yielded that could not be treated as a promise\u000a\u000a See http://goo.gl/MqrFmX\u000a\u000a".replace("%s", String(value)) + + "From coroutine:\u000a" + + this._stack.split("\n").slice(1, -7).join("\n") + ) + ); + return; + } + } + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + this._yieldedPromise = maybePromise; + maybePromise._proxy(this, null); + } else if (((bitField & 33554432) !== 0)) { + Promise._async.invoke( + this._promiseFulfilled, this, maybePromise._value() + ); + } else if (((bitField & 16777216) !== 0)) { + Promise._async.invoke( + this._promiseRejected, this, maybePromise._reason() + ); + } else { + this._promiseCancelled(); + } + } +}; + +Promise.coroutine = function (generatorFunction, options) { + if (typeof generatorFunction !== "function") { + throw new TypeError("generatorFunction must be a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + var yieldHandler = Object(options).yieldHandler; + var PromiseSpawn$ = PromiseSpawn; + var stack = new Error().stack; + return function () { + var generator = generatorFunction.apply(this, arguments); + var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler, + stack); + var ret = spawn.promise(); + spawn._generator = generator; + spawn._promiseFulfilled(undefined); + return ret; + }; +}; + +Promise.coroutine.addYieldHandler = function(fn) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + yieldHandlers.push(fn); +}; + +Promise.spawn = function (generatorFunction) { + debug.deprecated("Promise.spawn()", "Promise.coroutine()"); + if (typeof generatorFunction !== "function") { + return apiRejection("generatorFunction must be a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + var spawn = new PromiseSpawn(generatorFunction, this); + var ret = spawn.promise(); + spawn._run(Promise.spawn); + return ret; +}; +}; + +},{"./errors":12,"./util":36}],17:[function(_dereq_,module,exports){ +"use strict"; +module.exports = +function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async) { +var util = _dereq_("./util"); +var canEvaluate = util.canEvaluate; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var reject; + +if (!true) { +if (canEvaluate) { + var thenCallback = function(i) { + return new Function("value", "holder", " \n\ + 'use strict'; \n\ + holder.pIndex = value; \n\ + holder.checkFulfillment(this); \n\ + ".replace(/Index/g, i)); + }; + + var promiseSetter = function(i) { + return new Function("promise", "holder", " \n\ + 'use strict'; \n\ + holder.pIndex = promise; \n\ + ".replace(/Index/g, i)); + }; + + var generateHolderClass = function(total) { + var props = new Array(total); + for (var i = 0; i < props.length; ++i) { + props[i] = "this.p" + (i+1); + } + var assignment = props.join(" = ") + " = null;"; + var cancellationCode= "var promise;\n" + props.map(function(prop) { + return " \n\ + promise = " + prop + "; \n\ + if (promise instanceof Promise) { \n\ + promise.cancel(); \n\ + } \n\ + "; + }).join("\n"); + var passedArguments = props.join(", "); + var name = "Holder$" + total; + + + var code = "return function(tryCatch, errorObj, Promise, async) { \n\ + 'use strict'; \n\ + function [TheName](fn) { \n\ + [TheProperties] \n\ + this.fn = fn; \n\ + this.asyncNeeded = true; \n\ + this.now = 0; \n\ + } \n\ + \n\ + [TheName].prototype._callFunction = function(promise) { \n\ + promise._pushContext(); \n\ + var ret = tryCatch(this.fn)([ThePassedArguments]); \n\ + promise._popContext(); \n\ + if (ret === errorObj) { \n\ + promise._rejectCallback(ret.e, false); \n\ + } else { \n\ + promise._resolveCallback(ret); \n\ + } \n\ + }; \n\ + \n\ + [TheName].prototype.checkFulfillment = function(promise) { \n\ + var now = ++this.now; \n\ + if (now === [TheTotal]) { \n\ + if (this.asyncNeeded) { \n\ + async.invoke(this._callFunction, this, promise); \n\ + } else { \n\ + this._callFunction(promise); \n\ + } \n\ + \n\ + } \n\ + }; \n\ + \n\ + [TheName].prototype._resultCancelled = function() { \n\ + [CancellationCode] \n\ + }; \n\ + \n\ + return [TheName]; \n\ + }(tryCatch, errorObj, Promise, async); \n\ + "; + + code = code.replace(/\[TheName\]/g, name) + .replace(/\[TheTotal\]/g, total) + .replace(/\[ThePassedArguments\]/g, passedArguments) + .replace(/\[TheProperties\]/g, assignment) + .replace(/\[CancellationCode\]/g, cancellationCode); + + return new Function("tryCatch", "errorObj", "Promise", "async", code) + (tryCatch, errorObj, Promise, async); + }; + + var holderClasses = []; + var thenCallbacks = []; + var promiseSetters = []; + + for (var i = 0; i < 8; ++i) { + holderClasses.push(generateHolderClass(i + 1)); + thenCallbacks.push(thenCallback(i + 1)); + promiseSetters.push(promiseSetter(i + 1)); + } + + reject = function (reason) { + this._reject(reason); + }; +}} + +Promise.join = function () { + var last = arguments.length - 1; + var fn; + if (last > 0 && typeof arguments[last] === "function") { + fn = arguments[last]; + if (!true) { + if (last <= 8 && canEvaluate) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var HolderClass = holderClasses[last - 1]; + var holder = new HolderClass(fn); + var callbacks = thenCallbacks; + + for (var i = 0; i < last; ++i) { + var maybePromise = tryConvertToPromise(arguments[i], ret); + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + maybePromise._then(callbacks[i], reject, + undefined, ret, holder); + promiseSetters[i](maybePromise, holder); + holder.asyncNeeded = false; + } else if (((bitField & 33554432) !== 0)) { + callbacks[i].call(ret, + maybePromise._value(), holder); + } else if (((bitField & 16777216) !== 0)) { + ret._reject(maybePromise._reason()); + } else { + ret._cancel(); + } + } else { + callbacks[i].call(ret, maybePromise, holder); + } + } + + if (!ret._isFateSealed()) { + if (holder.asyncNeeded) { + var context = Promise._getContext(); + holder.fn = util.contextBind(context, holder.fn); + } + ret._setAsyncGuaranteed(); + ret._setOnCancel(holder); + } + return ret; + } + } + } + var args = [].slice.call(arguments);; + if (fn) args.pop(); + var ret = new PromiseArray(args).promise(); + return fn !== undefined ? ret.spread(fn) : ret; +}; + +}; + +},{"./util":36}],18:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, + PromiseArray, + apiRejection, + tryConvertToPromise, + INTERNAL, + debug) { +var util = _dereq_("./util"); +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var async = Promise._async; + +function MappingPromiseArray(promises, fn, limit, _filter) { + this.constructor$(promises); + this._promise._captureStackTrace(); + var context = Promise._getContext(); + this._callback = util.contextBind(context, fn); + this._preservedValues = _filter === INTERNAL + ? new Array(this.length()) + : null; + this._limit = limit; + this._inFlight = 0; + this._queue = []; + async.invoke(this._asyncInit, this, undefined); + if (util.isArray(promises)) { + for (var i = 0; i < promises.length; ++i) { + var maybePromise = promises[i]; + if (maybePromise instanceof Promise) { + maybePromise.suppressUnhandledRejections(); + } + } + } +} +util.inherits(MappingPromiseArray, PromiseArray); + +MappingPromiseArray.prototype._asyncInit = function() { + this._init$(undefined, -2); +}; + +MappingPromiseArray.prototype._init = function () {}; + +MappingPromiseArray.prototype._promiseFulfilled = function (value, index) { + var values = this._values; + var length = this.length(); + var preservedValues = this._preservedValues; + var limit = this._limit; + + if (index < 0) { + index = (index * -1) - 1; + values[index] = value; + if (limit >= 1) { + this._inFlight--; + this._drainQueue(); + if (this._isResolved()) return true; + } + } else { + if (limit >= 1 && this._inFlight >= limit) { + values[index] = value; + this._queue.push(index); + return false; + } + if (preservedValues !== null) preservedValues[index] = value; + + var promise = this._promise; + var callback = this._callback; + var receiver = promise._boundValue(); + promise._pushContext(); + var ret = tryCatch(callback).call(receiver, value, index, length); + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns( + ret, + promiseCreated, + preservedValues !== null ? "Promise.filter" : "Promise.map", + promise + ); + if (ret === errorObj) { + this._reject(ret.e); + return true; + } + + var maybePromise = tryConvertToPromise(ret, this._promise); + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + if (limit >= 1) this._inFlight++; + values[index] = maybePromise; + maybePromise._proxy(this, (index + 1) * -1); + return false; + } else if (((bitField & 33554432) !== 0)) { + ret = maybePromise._value(); + } else if (((bitField & 16777216) !== 0)) { + this._reject(maybePromise._reason()); + return true; + } else { + this._cancel(); + return true; + } + } + values[index] = ret; + } + var totalResolved = ++this._totalResolved; + if (totalResolved >= length) { + if (preservedValues !== null) { + this._filter(values, preservedValues); + } else { + this._resolve(values); + } + return true; + } + return false; +}; + +MappingPromiseArray.prototype._drainQueue = function () { + var queue = this._queue; + var limit = this._limit; + var values = this._values; + while (queue.length > 0 && this._inFlight < limit) { + if (this._isResolved()) return; + var index = queue.pop(); + this._promiseFulfilled(values[index], index); + } +}; + +MappingPromiseArray.prototype._filter = function (booleans, values) { + var len = values.length; + var ret = new Array(len); + var j = 0; + for (var i = 0; i < len; ++i) { + if (booleans[i]) ret[j++] = values[i]; + } + ret.length = j; + this._resolve(ret); +}; + +MappingPromiseArray.prototype.preservedValues = function () { + return this._preservedValues; +}; + +function map(promises, fn, options, _filter) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + + var limit = 0; + if (options !== undefined) { + if (typeof options === "object" && options !== null) { + if (typeof options.concurrency !== "number") { + return Promise.reject( + new TypeError("'concurrency' must be a number but it is " + + util.classString(options.concurrency))); + } + limit = options.concurrency; + } else { + return Promise.reject(new TypeError( + "options argument must be an object but it is " + + util.classString(options))); + } + } + limit = typeof limit === "number" && + isFinite(limit) && limit >= 1 ? limit : 0; + return new MappingPromiseArray(promises, fn, limit, _filter).promise(); +} + +Promise.prototype.map = function (fn, options) { + return map(this, fn, options, null); +}; + +Promise.map = function (promises, fn, options, _filter) { + return map(promises, fn, options, _filter); +}; + + +}; + +},{"./util":36}],19:[function(_dereq_,module,exports){ +"use strict"; +module.exports = +function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { +var util = _dereq_("./util"); +var tryCatch = util.tryCatch; + +Promise.method = function (fn) { + if (typeof fn !== "function") { + throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); + } + return function () { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._pushContext(); + var value = tryCatch(fn).apply(this, arguments); + var promiseCreated = ret._popContext(); + debug.checkForgottenReturns( + value, promiseCreated, "Promise.method", ret); + ret._resolveFromSyncValue(value); + return ret; + }; +}; + +Promise.attempt = Promise["try"] = function (fn) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._pushContext(); + var value; + if (arguments.length > 1) { + debug.deprecated("calling Promise.try with more than 1 argument"); + var arg = arguments[1]; + var ctx = arguments[2]; + value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) + : tryCatch(fn).call(ctx, arg); + } else { + value = tryCatch(fn)(); + } + var promiseCreated = ret._popContext(); + debug.checkForgottenReturns( + value, promiseCreated, "Promise.try", ret); + ret._resolveFromSyncValue(value); + return ret; +}; + +Promise.prototype._resolveFromSyncValue = function (value) { + if (value === util.errorObj) { + this._rejectCallback(value.e, false); + } else { + this._resolveCallback(value, true); + } +}; +}; + +},{"./util":36}],20:[function(_dereq_,module,exports){ +"use strict"; +var util = _dereq_("./util"); +var maybeWrapAsError = util.maybeWrapAsError; +var errors = _dereq_("./errors"); +var OperationalError = errors.OperationalError; +var es5 = _dereq_("./es5"); + +function isUntypedError(obj) { + return obj instanceof Error && + es5.getPrototypeOf(obj) === Error.prototype; +} + +var rErrorKey = /^(?:name|message|stack|cause)$/; +function wrapAsOperationalError(obj) { + var ret; + if (isUntypedError(obj)) { + ret = new OperationalError(obj); + ret.name = obj.name; + ret.message = obj.message; + ret.stack = obj.stack; + var keys = es5.keys(obj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (!rErrorKey.test(key)) { + ret[key] = obj[key]; + } + } + return ret; + } + util.markAsOriginatingFromRejection(obj); + return obj; +} + +function nodebackForPromise(promise, multiArgs) { + return function(err, value) { + if (promise === null) return; + if (err) { + var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); + promise._attachExtraTrace(wrapped); + promise._reject(wrapped); + } else if (!multiArgs) { + promise._fulfill(value); + } else { + var args = [].slice.call(arguments, 1);; + promise._fulfill(args); + } + promise = null; + }; +} + +module.exports = nodebackForPromise; + +},{"./errors":12,"./es5":13,"./util":36}],21:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +var util = _dereq_("./util"); +var async = Promise._async; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; + +function spreadAdapter(val, nodeback) { + var promise = this; + if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback); + var ret = + tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val)); + if (ret === errorObj) { + async.throwLater(ret.e); + } +} + +function successAdapter(val, nodeback) { + var promise = this; + var receiver = promise._boundValue(); + var ret = val === undefined + ? tryCatch(nodeback).call(receiver, null) + : tryCatch(nodeback).call(receiver, null, val); + if (ret === errorObj) { + async.throwLater(ret.e); + } +} +function errorAdapter(reason, nodeback) { + var promise = this; + if (!reason) { + var newReason = new Error(reason + ""); + newReason.cause = reason; + reason = newReason; + } + var ret = tryCatch(nodeback).call(promise._boundValue(), reason); + if (ret === errorObj) { + async.throwLater(ret.e); + } +} + +Promise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback, + options) { + if (typeof nodeback == "function") { + var adapter = successAdapter; + if (options !== undefined && Object(options).spread) { + adapter = spreadAdapter; + } + this._then( + adapter, + errorAdapter, + undefined, + this, + nodeback + ); + } + return this; +}; +}; + +},{"./util":36}],22:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function() { +var makeSelfResolutionError = function () { + return new TypeError("circular promise resolution chain\u000a\u000a See http://goo.gl/MqrFmX\u000a"); +}; +var reflectHandler = function() { + return new Promise.PromiseInspection(this._target()); +}; +var apiRejection = function(msg) { + return Promise.reject(new TypeError(msg)); +}; +function Proxyable() {} +var UNDEFINED_BINDING = {}; +var util = _dereq_("./util"); +util.setReflectHandler(reflectHandler); + +var getDomain = function() { + var domain = process.domain; + if (domain === undefined) { + return null; + } + return domain; +}; +var getContextDefault = function() { + return null; +}; +var getContextDomain = function() { + return { + domain: getDomain(), + async: null + }; +}; +var AsyncResource = util.isNode && util.nodeSupportsAsyncResource ? + _dereq_("async_hooks").AsyncResource : null; +var getContextAsyncHooks = function() { + return { + domain: getDomain(), + async: new AsyncResource("Bluebird::Promise") + }; +}; +var getContext = util.isNode ? getContextDomain : getContextDefault; +util.notEnumerableProp(Promise, "_getContext", getContext); +var enableAsyncHooks = function() { + getContext = getContextAsyncHooks; + util.notEnumerableProp(Promise, "_getContext", getContextAsyncHooks); +}; +var disableAsyncHooks = function() { + getContext = getContextDomain; + util.notEnumerableProp(Promise, "_getContext", getContextDomain); +}; + +var es5 = _dereq_("./es5"); +var Async = _dereq_("./async"); +var async = new Async(); +es5.defineProperty(Promise, "_async", {value: async}); +var errors = _dereq_("./errors"); +var TypeError = Promise.TypeError = errors.TypeError; +Promise.RangeError = errors.RangeError; +var CancellationError = Promise.CancellationError = errors.CancellationError; +Promise.TimeoutError = errors.TimeoutError; +Promise.OperationalError = errors.OperationalError; +Promise.RejectionError = errors.OperationalError; +Promise.AggregateError = errors.AggregateError; +var INTERNAL = function(){}; +var APPLY = {}; +var NEXT_FILTER = {}; +var tryConvertToPromise = _dereq_("./thenables")(Promise, INTERNAL); +var PromiseArray = + _dereq_("./promise_array")(Promise, INTERNAL, + tryConvertToPromise, apiRejection, Proxyable); +var Context = _dereq_("./context")(Promise); + /*jshint unused:false*/ +var createContext = Context.create; + +var debug = _dereq_("./debuggability")(Promise, Context, + enableAsyncHooks, disableAsyncHooks); +var CapturedTrace = debug.CapturedTrace; +var PassThroughHandlerContext = + _dereq_("./finally")(Promise, tryConvertToPromise, NEXT_FILTER); +var catchFilter = _dereq_("./catch_filter")(NEXT_FILTER); +var nodebackForPromise = _dereq_("./nodeback"); +var errorObj = util.errorObj; +var tryCatch = util.tryCatch; +function check(self, executor) { + if (self == null || self.constructor !== Promise) { + throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + if (typeof executor !== "function") { + throw new TypeError("expecting a function but got " + util.classString(executor)); + } + +} + +function Promise(executor) { + if (executor !== INTERNAL) { + check(this, executor); + } + this._bitField = 0; + this._fulfillmentHandler0 = undefined; + this._rejectionHandler0 = undefined; + this._promise0 = undefined; + this._receiver0 = undefined; + this._resolveFromExecutor(executor); + this._promiseCreated(); + this._fireEvent("promiseCreated", this); +} + +Promise.prototype.toString = function () { + return "[object Promise]"; +}; + +Promise.prototype.caught = Promise.prototype["catch"] = function (fn) { + var len = arguments.length; + if (len > 1) { + var catchInstances = new Array(len - 1), + j = 0, i; + for (i = 0; i < len - 1; ++i) { + var item = arguments[i]; + if (util.isObject(item)) { + catchInstances[j++] = item; + } else { + return apiRejection("Catch statement predicate: " + + "expecting an object but got " + util.classString(item)); + } + } + catchInstances.length = j; + fn = arguments[i]; + + if (typeof fn !== "function") { + throw new TypeError("The last argument to .catch() " + + "must be a function, got " + util.toString(fn)); + } + return this.then(undefined, catchFilter(catchInstances, fn, this)); + } + return this.then(undefined, fn); +}; + +Promise.prototype.reflect = function () { + return this._then(reflectHandler, + reflectHandler, undefined, this, undefined); +}; + +Promise.prototype.then = function (didFulfill, didReject) { + if (debug.warnings() && arguments.length > 0 && + typeof didFulfill !== "function" && + typeof didReject !== "function") { + var msg = ".then() only accepts functions but was passed: " + + util.classString(didFulfill); + if (arguments.length > 1) { + msg += ", " + util.classString(didReject); + } + this._warn(msg); + } + return this._then(didFulfill, didReject, undefined, undefined, undefined); +}; + +Promise.prototype.done = function (didFulfill, didReject) { + var promise = + this._then(didFulfill, didReject, undefined, undefined, undefined); + promise._setIsFinal(); +}; + +Promise.prototype.spread = function (fn) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + return this.all()._then(fn, undefined, undefined, APPLY, undefined); +}; + +Promise.prototype.toJSON = function () { + var ret = { + isFulfilled: false, + isRejected: false, + fulfillmentValue: undefined, + rejectionReason: undefined + }; + if (this.isFulfilled()) { + ret.fulfillmentValue = this.value(); + ret.isFulfilled = true; + } else if (this.isRejected()) { + ret.rejectionReason = this.reason(); + ret.isRejected = true; + } + return ret; +}; + +Promise.prototype.all = function () { + if (arguments.length > 0) { + this._warn(".all() was passed arguments but it does not take any"); + } + return new PromiseArray(this).promise(); +}; + +Promise.prototype.error = function (fn) { + return this.caught(util.originatesFromRejection, fn); +}; + +Promise.getNewLibraryCopy = module.exports; + +Promise.is = function (val) { + return val instanceof Promise; +}; + +Promise.fromNode = Promise.fromCallback = function(fn) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs + : false; + var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); + if (result === errorObj) { + ret._rejectCallback(result.e, true); + } + if (!ret._isFateSealed()) ret._setAsyncGuaranteed(); + return ret; +}; + +Promise.all = function (promises) { + return new PromiseArray(promises).promise(); +}; + +Promise.cast = function (obj) { + var ret = tryConvertToPromise(obj); + if (!(ret instanceof Promise)) { + ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._setFulfilled(); + ret._rejectionHandler0 = obj; + } + return ret; +}; + +Promise.resolve = Promise.fulfilled = Promise.cast; + +Promise.reject = Promise.rejected = function (reason) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._rejectCallback(reason, true); + return ret; +}; + +Promise.setScheduler = function(fn) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + return async.setScheduler(fn); +}; + +Promise.prototype._then = function ( + didFulfill, + didReject, + _, receiver, + internalData +) { + var haveInternalData = internalData !== undefined; + var promise = haveInternalData ? internalData : new Promise(INTERNAL); + var target = this._target(); + var bitField = target._bitField; + + if (!haveInternalData) { + promise._propagateFrom(this, 3); + promise._captureStackTrace(); + if (receiver === undefined && + ((this._bitField & 2097152) !== 0)) { + if (!((bitField & 50397184) === 0)) { + receiver = this._boundValue(); + } else { + receiver = target === this ? undefined : this._boundTo; + } + } + this._fireEvent("promiseChained", this, promise); + } + + var context = getContext(); + if (!((bitField & 50397184) === 0)) { + var handler, value, settler = target._settlePromiseCtx; + if (((bitField & 33554432) !== 0)) { + value = target._rejectionHandler0; + handler = didFulfill; + } else if (((bitField & 16777216) !== 0)) { + value = target._fulfillmentHandler0; + handler = didReject; + target._unsetRejectionIsUnhandled(); + } else { + settler = target._settlePromiseLateCancellationObserver; + value = new CancellationError("late cancellation observer"); + target._attachExtraTrace(value); + handler = didReject; + } + + async.invoke(settler, target, { + handler: util.contextBind(context, handler), + promise: promise, + receiver: receiver, + value: value + }); + } else { + target._addCallbacks(didFulfill, didReject, promise, + receiver, context); + } + + return promise; +}; + +Promise.prototype._length = function () { + return this._bitField & 65535; +}; + +Promise.prototype._isFateSealed = function () { + return (this._bitField & 117506048) !== 0; +}; + +Promise.prototype._isFollowing = function () { + return (this._bitField & 67108864) === 67108864; +}; + +Promise.prototype._setLength = function (len) { + this._bitField = (this._bitField & -65536) | + (len & 65535); +}; + +Promise.prototype._setFulfilled = function () { + this._bitField = this._bitField | 33554432; + this._fireEvent("promiseFulfilled", this); +}; + +Promise.prototype._setRejected = function () { + this._bitField = this._bitField | 16777216; + this._fireEvent("promiseRejected", this); +}; + +Promise.prototype._setFollowing = function () { + this._bitField = this._bitField | 67108864; + this._fireEvent("promiseResolved", this); +}; + +Promise.prototype._setIsFinal = function () { + this._bitField = this._bitField | 4194304; +}; + +Promise.prototype._isFinal = function () { + return (this._bitField & 4194304) > 0; +}; + +Promise.prototype._unsetCancelled = function() { + this._bitField = this._bitField & (~65536); +}; + +Promise.prototype._setCancelled = function() { + this._bitField = this._bitField | 65536; + this._fireEvent("promiseCancelled", this); +}; + +Promise.prototype._setWillBeCancelled = function() { + this._bitField = this._bitField | 8388608; +}; + +Promise.prototype._setAsyncGuaranteed = function() { + if (async.hasCustomScheduler()) return; + var bitField = this._bitField; + this._bitField = bitField | + (((bitField & 536870912) >> 2) ^ + 134217728); +}; + +Promise.prototype._setNoAsyncGuarantee = function() { + this._bitField = (this._bitField | 536870912) & + (~134217728); +}; + +Promise.prototype._receiverAt = function (index) { + var ret = index === 0 ? this._receiver0 : this[ + index * 4 - 4 + 3]; + if (ret === UNDEFINED_BINDING) { + return undefined; + } else if (ret === undefined && this._isBound()) { + return this._boundValue(); + } + return ret; +}; + +Promise.prototype._promiseAt = function (index) { + return this[ + index * 4 - 4 + 2]; +}; + +Promise.prototype._fulfillmentHandlerAt = function (index) { + return this[ + index * 4 - 4 + 0]; +}; + +Promise.prototype._rejectionHandlerAt = function (index) { + return this[ + index * 4 - 4 + 1]; +}; + +Promise.prototype._boundValue = function() {}; + +Promise.prototype._migrateCallback0 = function (follower) { + var bitField = follower._bitField; + var fulfill = follower._fulfillmentHandler0; + var reject = follower._rejectionHandler0; + var promise = follower._promise0; + var receiver = follower._receiverAt(0); + if (receiver === undefined) receiver = UNDEFINED_BINDING; + this._addCallbacks(fulfill, reject, promise, receiver, null); +}; + +Promise.prototype._migrateCallbackAt = function (follower, index) { + var fulfill = follower._fulfillmentHandlerAt(index); + var reject = follower._rejectionHandlerAt(index); + var promise = follower._promiseAt(index); + var receiver = follower._receiverAt(index); + if (receiver === undefined) receiver = UNDEFINED_BINDING; + this._addCallbacks(fulfill, reject, promise, receiver, null); +}; + +Promise.prototype._addCallbacks = function ( + fulfill, + reject, + promise, + receiver, + context +) { + var index = this._length(); + + if (index >= 65535 - 4) { + index = 0; + this._setLength(0); + } + + if (index === 0) { + this._promise0 = promise; + this._receiver0 = receiver; + if (typeof fulfill === "function") { + this._fulfillmentHandler0 = util.contextBind(context, fulfill); + } + if (typeof reject === "function") { + this._rejectionHandler0 = util.contextBind(context, reject); + } + } else { + var base = index * 4 - 4; + this[base + 2] = promise; + this[base + 3] = receiver; + if (typeof fulfill === "function") { + this[base + 0] = + util.contextBind(context, fulfill); + } + if (typeof reject === "function") { + this[base + 1] = + util.contextBind(context, reject); + } + } + this._setLength(index + 1); + return index; +}; + +Promise.prototype._proxy = function (proxyable, arg) { + this._addCallbacks(undefined, undefined, arg, proxyable, null); +}; + +Promise.prototype._resolveCallback = function(value, shouldBind) { + if (((this._bitField & 117506048) !== 0)) return; + if (value === this) + return this._rejectCallback(makeSelfResolutionError(), false); + var maybePromise = tryConvertToPromise(value, this); + if (!(maybePromise instanceof Promise)) return this._fulfill(value); + + if (shouldBind) this._propagateFrom(maybePromise, 2); + + + var promise = maybePromise._target(); + + if (promise === this) { + this._reject(makeSelfResolutionError()); + return; + } + + var bitField = promise._bitField; + if (((bitField & 50397184) === 0)) { + var len = this._length(); + if (len > 0) promise._migrateCallback0(this); + for (var i = 1; i < len; ++i) { + promise._migrateCallbackAt(this, i); + } + this._setFollowing(); + this._setLength(0); + this._setFollowee(maybePromise); + } else if (((bitField & 33554432) !== 0)) { + this._fulfill(promise._value()); + } else if (((bitField & 16777216) !== 0)) { + this._reject(promise._reason()); + } else { + var reason = new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason); + this._reject(reason); + } +}; + +Promise.prototype._rejectCallback = +function(reason, synchronous, ignoreNonErrorWarnings) { + var trace = util.ensureErrorObject(reason); + var hasStack = trace === reason; + if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { + var message = "a promise was rejected with a non-error: " + + util.classString(reason); + this._warn(message, true); + } + this._attachExtraTrace(trace, synchronous ? hasStack : false); + this._reject(reason); +}; + +Promise.prototype._resolveFromExecutor = function (executor) { + if (executor === INTERNAL) return; + var promise = this; + this._captureStackTrace(); + this._pushContext(); + var synchronous = true; + var r = this._execute(executor, function(value) { + promise._resolveCallback(value); + }, function (reason) { + promise._rejectCallback(reason, synchronous); + }); + synchronous = false; + this._popContext(); + + if (r !== undefined) { + promise._rejectCallback(r, true); + } +}; + +Promise.prototype._settlePromiseFromHandler = function ( + handler, receiver, value, promise +) { + var bitField = promise._bitField; + if (((bitField & 65536) !== 0)) return; + promise._pushContext(); + var x; + if (receiver === APPLY) { + if (!value || typeof value.length !== "number") { + x = errorObj; + x.e = new TypeError("cannot .spread() a non-array: " + + util.classString(value)); + } else { + x = tryCatch(handler).apply(this._boundValue(), value); + } + } else { + x = tryCatch(handler).call(receiver, value); + } + var promiseCreated = promise._popContext(); + bitField = promise._bitField; + if (((bitField & 65536) !== 0)) return; + + if (x === NEXT_FILTER) { + promise._reject(value); + } else if (x === errorObj) { + promise._rejectCallback(x.e, false); + } else { + debug.checkForgottenReturns(x, promiseCreated, "", promise, this); + promise._resolveCallback(x); + } +}; + +Promise.prototype._target = function() { + var ret = this; + while (ret._isFollowing()) ret = ret._followee(); + return ret; +}; + +Promise.prototype._followee = function() { + return this._rejectionHandler0; +}; + +Promise.prototype._setFollowee = function(promise) { + this._rejectionHandler0 = promise; +}; + +Promise.prototype._settlePromise = function(promise, handler, receiver, value) { + var isPromise = promise instanceof Promise; + var bitField = this._bitField; + var asyncGuaranteed = ((bitField & 134217728) !== 0); + if (((bitField & 65536) !== 0)) { + if (isPromise) promise._invokeInternalOnCancel(); + + if (receiver instanceof PassThroughHandlerContext && + receiver.isFinallyHandler()) { + receiver.cancelPromise = promise; + if (tryCatch(handler).call(receiver, value) === errorObj) { + promise._reject(errorObj.e); + } + } else if (handler === reflectHandler) { + promise._fulfill(reflectHandler.call(receiver)); + } else if (receiver instanceof Proxyable) { + receiver._promiseCancelled(promise); + } else if (isPromise || promise instanceof PromiseArray) { + promise._cancel(); + } else { + receiver.cancel(); + } + } else if (typeof handler === "function") { + if (!isPromise) { + handler.call(receiver, value, promise); + } else { + if (asyncGuaranteed) promise._setAsyncGuaranteed(); + this._settlePromiseFromHandler(handler, receiver, value, promise); + } + } else if (receiver instanceof Proxyable) { + if (!receiver._isResolved()) { + if (((bitField & 33554432) !== 0)) { + receiver._promiseFulfilled(value, promise); + } else { + receiver._promiseRejected(value, promise); + } + } + } else if (isPromise) { + if (asyncGuaranteed) promise._setAsyncGuaranteed(); + if (((bitField & 33554432) !== 0)) { + promise._fulfill(value); + } else { + promise._reject(value); + } + } +}; + +Promise.prototype._settlePromiseLateCancellationObserver = function(ctx) { + var handler = ctx.handler; + var promise = ctx.promise; + var receiver = ctx.receiver; + var value = ctx.value; + if (typeof handler === "function") { + if (!(promise instanceof Promise)) { + handler.call(receiver, value, promise); + } else { + this._settlePromiseFromHandler(handler, receiver, value, promise); + } + } else if (promise instanceof Promise) { + promise._reject(value); + } +}; + +Promise.prototype._settlePromiseCtx = function(ctx) { + this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value); +}; + +Promise.prototype._settlePromise0 = function(handler, value, bitField) { + var promise = this._promise0; + var receiver = this._receiverAt(0); + this._promise0 = undefined; + this._receiver0 = undefined; + this._settlePromise(promise, handler, receiver, value); +}; + +Promise.prototype._clearCallbackDataAtIndex = function(index) { + var base = index * 4 - 4; + this[base + 2] = + this[base + 3] = + this[base + 0] = + this[base + 1] = undefined; +}; + +Promise.prototype._fulfill = function (value) { + var bitField = this._bitField; + if (((bitField & 117506048) >>> 16)) return; + if (value === this) { + var err = makeSelfResolutionError(); + this._attachExtraTrace(err); + return this._reject(err); + } + this._setFulfilled(); + this._rejectionHandler0 = value; + + if ((bitField & 65535) > 0) { + if (((bitField & 134217728) !== 0)) { + this._settlePromises(); + } else { + async.settlePromises(this); + } + this._dereferenceTrace(); + } +}; + +Promise.prototype._reject = function (reason) { + var bitField = this._bitField; + if (((bitField & 117506048) >>> 16)) return; + this._setRejected(); + this._fulfillmentHandler0 = reason; + + if (this._isFinal()) { + return async.fatalError(reason, util.isNode); + } + + if ((bitField & 65535) > 0) { + async.settlePromises(this); + } else { + this._ensurePossibleRejectionHandled(); + } +}; + +Promise.prototype._fulfillPromises = function (len, value) { + for (var i = 1; i < len; i++) { + var handler = this._fulfillmentHandlerAt(i); + var promise = this._promiseAt(i); + var receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i); + this._settlePromise(promise, handler, receiver, value); + } +}; + +Promise.prototype._rejectPromises = function (len, reason) { + for (var i = 1; i < len; i++) { + var handler = this._rejectionHandlerAt(i); + var promise = this._promiseAt(i); + var receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i); + this._settlePromise(promise, handler, receiver, reason); + } +}; + +Promise.prototype._settlePromises = function () { + var bitField = this._bitField; + var len = (bitField & 65535); + + if (len > 0) { + if (((bitField & 16842752) !== 0)) { + var reason = this._fulfillmentHandler0; + this._settlePromise0(this._rejectionHandler0, reason, bitField); + this._rejectPromises(len, reason); + } else { + var value = this._rejectionHandler0; + this._settlePromise0(this._fulfillmentHandler0, value, bitField); + this._fulfillPromises(len, value); + } + this._setLength(0); + } + this._clearCancellationData(); +}; + +Promise.prototype._settledValue = function() { + var bitField = this._bitField; + if (((bitField & 33554432) !== 0)) { + return this._rejectionHandler0; + } else if (((bitField & 16777216) !== 0)) { + return this._fulfillmentHandler0; + } +}; + +if (typeof Symbol !== "undefined" && Symbol.toStringTag) { + es5.defineProperty(Promise.prototype, Symbol.toStringTag, { + get: function () { + return "Object"; + } + }); +} + +function deferResolve(v) {this.promise._resolveCallback(v);} +function deferReject(v) {this.promise._rejectCallback(v, false);} + +Promise.defer = Promise.pending = function() { + debug.deprecated("Promise.defer", "new Promise"); + var promise = new Promise(INTERNAL); + return { + promise: promise, + resolve: deferResolve, + reject: deferReject + }; +}; + +util.notEnumerableProp(Promise, + "_makeSelfResolutionError", + makeSelfResolutionError); + +_dereq_("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection, + debug); +_dereq_("./bind")(Promise, INTERNAL, tryConvertToPromise, debug); +_dereq_("./cancel")(Promise, PromiseArray, apiRejection, debug); +_dereq_("./direct_resolve")(Promise); +_dereq_("./synchronous_inspection")(Promise); +_dereq_("./join")( + Promise, PromiseArray, tryConvertToPromise, INTERNAL, async); +Promise.Promise = Promise; +Promise.version = "3.7.2"; +_dereq_('./call_get.js')(Promise); +_dereq_('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug); +_dereq_('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); +_dereq_('./nodeify.js')(Promise); +_dereq_('./promisify.js')(Promise, INTERNAL); +_dereq_('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection); +_dereq_('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection); +_dereq_('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); +_dereq_('./settle.js')(Promise, PromiseArray, debug); +_dereq_('./some.js')(Promise, PromiseArray, apiRejection); +_dereq_('./timers.js')(Promise, INTERNAL, debug); +_dereq_('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug); +_dereq_('./any.js')(Promise); +_dereq_('./each.js')(Promise, INTERNAL); +_dereq_('./filter.js')(Promise, INTERNAL); + + util.toFastProperties(Promise); + util.toFastProperties(Promise.prototype); + function fillTypes(value) { + var p = new Promise(INTERNAL); + p._fulfillmentHandler0 = value; + p._rejectionHandler0 = value; + p._promise0 = value; + p._receiver0 = value; + } + // Complete slack tracking, opt out of field-type tracking and + // stabilize map + fillTypes({a: 1}); + fillTypes({b: 2}); + fillTypes({c: 3}); + fillTypes(1); + fillTypes(function(){}); + fillTypes(undefined); + fillTypes(false); + fillTypes(new Promise(INTERNAL)); + debug.setBounds(Async.firstLineError, util.lastLineError); + return Promise; + +}; + +},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36,"async_hooks":undefined}],23:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL, tryConvertToPromise, + apiRejection, Proxyable) { +var util = _dereq_("./util"); +var isArray = util.isArray; + +function toResolutionValue(val) { + switch(val) { + case -2: return []; + case -3: return {}; + case -6: return new Map(); + } +} + +function PromiseArray(values) { + var promise = this._promise = new Promise(INTERNAL); + if (values instanceof Promise) { + promise._propagateFrom(values, 3); + values.suppressUnhandledRejections(); + } + promise._setOnCancel(this); + this._values = values; + this._length = 0; + this._totalResolved = 0; + this._init(undefined, -2); +} +util.inherits(PromiseArray, Proxyable); + +PromiseArray.prototype.length = function () { + return this._length; +}; + +PromiseArray.prototype.promise = function () { + return this._promise; +}; + +PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { + var values = tryConvertToPromise(this._values, this._promise); + if (values instanceof Promise) { + values = values._target(); + var bitField = values._bitField; + ; + this._values = values; + + if (((bitField & 50397184) === 0)) { + this._promise._setAsyncGuaranteed(); + return values._then( + init, + this._reject, + undefined, + this, + resolveValueIfEmpty + ); + } else if (((bitField & 33554432) !== 0)) { + values = values._value(); + } else if (((bitField & 16777216) !== 0)) { + return this._reject(values._reason()); + } else { + return this._cancel(); + } + } + values = util.asArray(values); + if (values === null) { + var err = apiRejection( + "expecting an array or an iterable object but got " + util.classString(values)).reason(); + this._promise._rejectCallback(err, false); + return; + } + + if (values.length === 0) { + if (resolveValueIfEmpty === -5) { + this._resolveEmptyArray(); + } + else { + this._resolve(toResolutionValue(resolveValueIfEmpty)); + } + return; + } + this._iterate(values); +}; + +PromiseArray.prototype._iterate = function(values) { + var len = this.getActualLength(values.length); + this._length = len; + this._values = this.shouldCopyValues() ? new Array(len) : this._values; + var result = this._promise; + var isResolved = false; + var bitField = null; + for (var i = 0; i < len; ++i) { + var maybePromise = tryConvertToPromise(values[i], result); + + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + bitField = maybePromise._bitField; + } else { + bitField = null; + } + + if (isResolved) { + if (bitField !== null) { + maybePromise.suppressUnhandledRejections(); + } + } else if (bitField !== null) { + if (((bitField & 50397184) === 0)) { + maybePromise._proxy(this, i); + this._values[i] = maybePromise; + } else if (((bitField & 33554432) !== 0)) { + isResolved = this._promiseFulfilled(maybePromise._value(), i); + } else if (((bitField & 16777216) !== 0)) { + isResolved = this._promiseRejected(maybePromise._reason(), i); + } else { + isResolved = this._promiseCancelled(i); + } + } else { + isResolved = this._promiseFulfilled(maybePromise, i); + } + } + if (!isResolved) result._setAsyncGuaranteed(); +}; + +PromiseArray.prototype._isResolved = function () { + return this._values === null; +}; + +PromiseArray.prototype._resolve = function (value) { + this._values = null; + this._promise._fulfill(value); +}; + +PromiseArray.prototype._cancel = function() { + if (this._isResolved() || !this._promise._isCancellable()) return; + this._values = null; + this._promise._cancel(); +}; + +PromiseArray.prototype._reject = function (reason) { + this._values = null; + this._promise._rejectCallback(reason, false); +}; + +PromiseArray.prototype._promiseFulfilled = function (value, index) { + this._values[index] = value; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + this._resolve(this._values); + return true; + } + return false; +}; + +PromiseArray.prototype._promiseCancelled = function() { + this._cancel(); + return true; +}; + +PromiseArray.prototype._promiseRejected = function (reason) { + this._totalResolved++; + this._reject(reason); + return true; +}; + +PromiseArray.prototype._resultCancelled = function() { + if (this._isResolved()) return; + var values = this._values; + this._cancel(); + if (values instanceof Promise) { + values.cancel(); + } else { + for (var i = 0; i < values.length; ++i) { + if (values[i] instanceof Promise) { + values[i].cancel(); + } + } + } +}; + +PromiseArray.prototype.shouldCopyValues = function () { + return true; +}; + +PromiseArray.prototype.getActualLength = function (len) { + return len; +}; + +return PromiseArray; +}; + +},{"./util":36}],24:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var THIS = {}; +var util = _dereq_("./util"); +var nodebackForPromise = _dereq_("./nodeback"); +var withAppended = util.withAppended; +var maybeWrapAsError = util.maybeWrapAsError; +var canEvaluate = util.canEvaluate; +var TypeError = _dereq_("./errors").TypeError; +var defaultSuffix = "Async"; +var defaultPromisified = {__isPromisified__: true}; +var noCopyProps = [ + "arity", "length", + "name", + "arguments", + "caller", + "callee", + "prototype", + "__isPromisified__" +]; +var noCopyPropsPattern = new RegExp("^(?:" + noCopyProps.join("|") + ")$"); + +var defaultFilter = function(name) { + return util.isIdentifier(name) && + name.charAt(0) !== "_" && + name !== "constructor"; +}; + +function propsFilter(key) { + return !noCopyPropsPattern.test(key); +} + +function isPromisified(fn) { + try { + return fn.__isPromisified__ === true; + } + catch (e) { + return false; + } +} + +function hasPromisified(obj, key, suffix) { + var val = util.getDataPropertyOrDefault(obj, key + suffix, + defaultPromisified); + return val ? isPromisified(val) : false; +} +function checkValid(ret, suffix, suffixRegexp) { + for (var i = 0; i < ret.length; i += 2) { + var key = ret[i]; + if (suffixRegexp.test(key)) { + var keyWithoutAsyncSuffix = key.replace(suffixRegexp, ""); + for (var j = 0; j < ret.length; j += 2) { + if (ret[j] === keyWithoutAsyncSuffix) { + throw new TypeError("Cannot promisify an API that has normal methods with '%s'-suffix\u000a\u000a See http://goo.gl/MqrFmX\u000a" + .replace("%s", suffix)); + } + } + } + } +} + +function promisifiableMethods(obj, suffix, suffixRegexp, filter) { + var keys = util.inheritedDataKeys(obj); + var ret = []; + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + var value = obj[key]; + var passesDefaultFilter = filter === defaultFilter + ? true : defaultFilter(key, value, obj); + if (typeof value === "function" && + !isPromisified(value) && + !hasPromisified(obj, key, suffix) && + filter(key, value, obj, passesDefaultFilter)) { + ret.push(key, value); + } + } + checkValid(ret, suffix, suffixRegexp); + return ret; +} + +var escapeIdentRegex = function(str) { + return str.replace(/([$])/, "\\$"); +}; + +var makeNodePromisifiedEval; +if (!true) { +var switchCaseArgumentOrder = function(likelyArgumentCount) { + var ret = [likelyArgumentCount]; + var min = Math.max(0, likelyArgumentCount - 1 - 3); + for(var i = likelyArgumentCount - 1; i >= min; --i) { + ret.push(i); + } + for(var i = likelyArgumentCount + 1; i <= 3; ++i) { + ret.push(i); + } + return ret; +}; + +var argumentSequence = function(argumentCount) { + return util.filledRange(argumentCount, "_arg", ""); +}; + +var parameterDeclaration = function(parameterCount) { + return util.filledRange( + Math.max(parameterCount, 3), "_arg", ""); +}; + +var parameterCount = function(fn) { + if (typeof fn.length === "number") { + return Math.max(Math.min(fn.length, 1023 + 1), 0); + } + return 0; +}; + +makeNodePromisifiedEval = +function(callback, receiver, originalName, fn, _, multiArgs) { + var newParameterCount = Math.max(0, parameterCount(fn) - 1); + var argumentOrder = switchCaseArgumentOrder(newParameterCount); + var shouldProxyThis = typeof callback === "string" || receiver === THIS; + + function generateCallForArgumentCount(count) { + var args = argumentSequence(count).join(", "); + var comma = count > 0 ? ", " : ""; + var ret; + if (shouldProxyThis) { + ret = "ret = callback.call(this, {{args}}, nodeback); break;\n"; + } else { + ret = receiver === undefined + ? "ret = callback({{args}}, nodeback); break;\n" + : "ret = callback.call(receiver, {{args}}, nodeback); break;\n"; + } + return ret.replace("{{args}}", args).replace(", ", comma); + } + + function generateArgumentSwitchCase() { + var ret = ""; + for (var i = 0; i < argumentOrder.length; ++i) { + ret += "case " + argumentOrder[i] +":" + + generateCallForArgumentCount(argumentOrder[i]); + } + + ret += " \n\ + default: \n\ + var args = new Array(len + 1); \n\ + var i = 0; \n\ + for (var i = 0; i < len; ++i) { \n\ + args[i] = arguments[i]; \n\ + } \n\ + args[i] = nodeback; \n\ + [CodeForCall] \n\ + break; \n\ + ".replace("[CodeForCall]", (shouldProxyThis + ? "ret = callback.apply(this, args);\n" + : "ret = callback.apply(receiver, args);\n")); + return ret; + } + + var getFunctionCode = typeof callback === "string" + ? ("this != null ? this['"+callback+"'] : fn") + : "fn"; + var body = "'use strict'; \n\ + var ret = function (Parameters) { \n\ + 'use strict'; \n\ + var len = arguments.length; \n\ + var promise = new Promise(INTERNAL); \n\ + promise._captureStackTrace(); \n\ + var nodeback = nodebackForPromise(promise, " + multiArgs + "); \n\ + var ret; \n\ + var callback = tryCatch([GetFunctionCode]); \n\ + switch(len) { \n\ + [CodeForSwitchCase] \n\ + } \n\ + if (ret === errorObj) { \n\ + promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\n\ + } \n\ + if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \n\ + return promise; \n\ + }; \n\ + notEnumerableProp(ret, '__isPromisified__', true); \n\ + return ret; \n\ + ".replace("[CodeForSwitchCase]", generateArgumentSwitchCase()) + .replace("[GetFunctionCode]", getFunctionCode); + body = body.replace("Parameters", parameterDeclaration(newParameterCount)); + return new Function("Promise", + "fn", + "receiver", + "withAppended", + "maybeWrapAsError", + "nodebackForPromise", + "tryCatch", + "errorObj", + "notEnumerableProp", + "INTERNAL", + body)( + Promise, + fn, + receiver, + withAppended, + maybeWrapAsError, + nodebackForPromise, + util.tryCatch, + util.errorObj, + util.notEnumerableProp, + INTERNAL); +}; +} + +function makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) { + var defaultThis = (function() {return this;})(); + var method = callback; + if (typeof method === "string") { + callback = fn; + } + function promisified() { + var _receiver = receiver; + if (receiver === THIS) _receiver = this; + var promise = new Promise(INTERNAL); + promise._captureStackTrace(); + var cb = typeof method === "string" && this !== defaultThis + ? this[method] : callback; + var fn = nodebackForPromise(promise, multiArgs); + try { + cb.apply(_receiver, withAppended(arguments, fn)); + } catch(e) { + promise._rejectCallback(maybeWrapAsError(e), true, true); + } + if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); + return promise; + } + util.notEnumerableProp(promisified, "__isPromisified__", true); + return promisified; +} + +var makeNodePromisified = canEvaluate + ? makeNodePromisifiedEval + : makeNodePromisifiedClosure; + +function promisifyAll(obj, suffix, filter, promisifier, multiArgs) { + var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + "$"); + var methods = + promisifiableMethods(obj, suffix, suffixRegexp, filter); + + for (var i = 0, len = methods.length; i < len; i+= 2) { + var key = methods[i]; + var fn = methods[i+1]; + var promisifiedKey = key + suffix; + if (promisifier === makeNodePromisified) { + obj[promisifiedKey] = + makeNodePromisified(key, THIS, key, fn, suffix, multiArgs); + } else { + var promisified = promisifier(fn, function() { + return makeNodePromisified(key, THIS, key, + fn, suffix, multiArgs); + }); + util.notEnumerableProp(promisified, "__isPromisified__", true); + obj[promisifiedKey] = promisified; + } + } + util.toFastProperties(obj); + return obj; +} + +function promisify(callback, receiver, multiArgs) { + return makeNodePromisified(callback, receiver, undefined, + callback, null, multiArgs); +} + +Promise.promisify = function (fn, options) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + if (isPromisified(fn)) { + return fn; + } + options = Object(options); + var receiver = options.context === undefined ? THIS : options.context; + var multiArgs = !!options.multiArgs; + var ret = promisify(fn, receiver, multiArgs); + util.copyDescriptors(fn, ret, propsFilter); + return ret; +}; + +Promise.promisifyAll = function (target, options) { + if (typeof target !== "function" && typeof target !== "object") { + throw new TypeError("the target of promisifyAll must be an object or a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + options = Object(options); + var multiArgs = !!options.multiArgs; + var suffix = options.suffix; + if (typeof suffix !== "string") suffix = defaultSuffix; + var filter = options.filter; + if (typeof filter !== "function") filter = defaultFilter; + var promisifier = options.promisifier; + if (typeof promisifier !== "function") promisifier = makeNodePromisified; + + if (!util.isIdentifier(suffix)) { + throw new RangeError("suffix must be a valid identifier\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + + var keys = util.inheritedDataKeys(target); + for (var i = 0; i < keys.length; ++i) { + var value = target[keys[i]]; + if (keys[i] !== "constructor" && + util.isClass(value)) { + promisifyAll(value.prototype, suffix, filter, promisifier, + multiArgs); + promisifyAll(value, suffix, filter, promisifier, multiArgs); + } + } + + return promisifyAll(target, suffix, filter, promisifier, multiArgs); +}; +}; + + +},{"./errors":12,"./nodeback":20,"./util":36}],25:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function( + Promise, PromiseArray, tryConvertToPromise, apiRejection) { +var util = _dereq_("./util"); +var isObject = util.isObject; +var es5 = _dereq_("./es5"); +var Es6Map; +if (typeof Map === "function") Es6Map = Map; + +var mapToEntries = (function() { + var index = 0; + var size = 0; + + function extractEntry(value, key) { + this[index] = value; + this[index + size] = key; + index++; + } + + return function mapToEntries(map) { + size = map.size; + index = 0; + var ret = new Array(map.size * 2); + map.forEach(extractEntry, ret); + return ret; + }; +})(); + +var entriesToMap = function(entries) { + var ret = new Es6Map(); + var length = entries.length / 2 | 0; + for (var i = 0; i < length; ++i) { + var key = entries[length + i]; + var value = entries[i]; + ret.set(key, value); + } + return ret; +}; + +function PropertiesPromiseArray(obj) { + var isMap = false; + var entries; + if (Es6Map !== undefined && obj instanceof Es6Map) { + entries = mapToEntries(obj); + isMap = true; + } else { + var keys = es5.keys(obj); + var len = keys.length; + entries = new Array(len * 2); + for (var i = 0; i < len; ++i) { + var key = keys[i]; + entries[i] = obj[key]; + entries[i + len] = key; + } + } + this.constructor$(entries); + this._isMap = isMap; + this._init$(undefined, isMap ? -6 : -3); +} +util.inherits(PropertiesPromiseArray, PromiseArray); + +PropertiesPromiseArray.prototype._init = function () {}; + +PropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) { + this._values[index] = value; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + var val; + if (this._isMap) { + val = entriesToMap(this._values); + } else { + val = {}; + var keyOffset = this.length(); + for (var i = 0, len = this.length(); i < len; ++i) { + val[this._values[i + keyOffset]] = this._values[i]; + } + } + this._resolve(val); + return true; + } + return false; +}; + +PropertiesPromiseArray.prototype.shouldCopyValues = function () { + return false; +}; + +PropertiesPromiseArray.prototype.getActualLength = function (len) { + return len >> 1; +}; + +function props(promises) { + var ret; + var castValue = tryConvertToPromise(promises); + + if (!isObject(castValue)) { + return apiRejection("cannot await properties of a non-object\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } else if (castValue instanceof Promise) { + ret = castValue._then( + Promise.props, undefined, undefined, undefined, undefined); + } else { + ret = new PropertiesPromiseArray(castValue).promise(); + } + + if (castValue instanceof Promise) { + ret._propagateFrom(castValue, 2); + } + return ret; +} + +Promise.prototype.props = function () { + return props(this); +}; + +Promise.props = function (promises) { + return props(promises); +}; +}; + +},{"./es5":13,"./util":36}],26:[function(_dereq_,module,exports){ +"use strict"; +function arrayMove(src, srcIndex, dst, dstIndex, len) { + for (var j = 0; j < len; ++j) { + dst[j + dstIndex] = src[j + srcIndex]; + src[j + srcIndex] = void 0; + } +} + +function Queue(capacity) { + this._capacity = capacity; + this._length = 0; + this._front = 0; +} + +Queue.prototype._willBeOverCapacity = function (size) { + return this._capacity < size; +}; + +Queue.prototype._pushOne = function (arg) { + var length = this.length(); + this._checkCapacity(length + 1); + var i = (this._front + length) & (this._capacity - 1); + this[i] = arg; + this._length = length + 1; +}; + +Queue.prototype.push = function (fn, receiver, arg) { + var length = this.length() + 3; + if (this._willBeOverCapacity(length)) { + this._pushOne(fn); + this._pushOne(receiver); + this._pushOne(arg); + return; + } + var j = this._front + length - 3; + this._checkCapacity(length); + var wrapMask = this._capacity - 1; + this[(j + 0) & wrapMask] = fn; + this[(j + 1) & wrapMask] = receiver; + this[(j + 2) & wrapMask] = arg; + this._length = length; +}; + +Queue.prototype.shift = function () { + var front = this._front, + ret = this[front]; + + this[front] = undefined; + this._front = (front + 1) & (this._capacity - 1); + this._length--; + return ret; +}; + +Queue.prototype.length = function () { + return this._length; +}; + +Queue.prototype._checkCapacity = function (size) { + if (this._capacity < size) { + this._resizeTo(this._capacity << 1); + } +}; + +Queue.prototype._resizeTo = function (capacity) { + var oldCapacity = this._capacity; + this._capacity = capacity; + var front = this._front; + var length = this._length; + var moveItemsCount = (front + length) & (oldCapacity - 1); + arrayMove(this, 0, this, oldCapacity, moveItemsCount); +}; + +module.exports = Queue; + +},{}],27:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function( + Promise, INTERNAL, tryConvertToPromise, apiRejection) { +var util = _dereq_("./util"); + +var raceLater = function (promise) { + return promise.then(function(array) { + return race(array, promise); + }); +}; + +function race(promises, parent) { + var maybePromise = tryConvertToPromise(promises); + + if (maybePromise instanceof Promise) { + return raceLater(maybePromise); + } else { + promises = util.asArray(promises); + if (promises === null) + return apiRejection("expecting an array or an iterable object but got " + util.classString(promises)); + } + + var ret = new Promise(INTERNAL); + if (parent !== undefined) { + ret._propagateFrom(parent, 3); + } + var fulfill = ret._fulfill; + var reject = ret._reject; + for (var i = 0, len = promises.length; i < len; ++i) { + var val = promises[i]; + + if (val === undefined && !(i in promises)) { + continue; + } + + Promise.cast(val)._then(fulfill, reject, undefined, ret, null); + } + return ret; +} + +Promise.race = function (promises) { + return race(promises, undefined); +}; + +Promise.prototype.race = function () { + return race(this, undefined); +}; + +}; + +},{"./util":36}],28:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, + PromiseArray, + apiRejection, + tryConvertToPromise, + INTERNAL, + debug) { +var util = _dereq_("./util"); +var tryCatch = util.tryCatch; + +function ReductionPromiseArray(promises, fn, initialValue, _each) { + this.constructor$(promises); + var context = Promise._getContext(); + this._fn = util.contextBind(context, fn); + if (initialValue !== undefined) { + initialValue = Promise.resolve(initialValue); + initialValue._attachCancellationCallback(this); + } + this._initialValue = initialValue; + this._currentCancellable = null; + if(_each === INTERNAL) { + this._eachValues = Array(this._length); + } else if (_each === 0) { + this._eachValues = null; + } else { + this._eachValues = undefined; + } + this._promise._captureStackTrace(); + this._init$(undefined, -5); +} +util.inherits(ReductionPromiseArray, PromiseArray); + +ReductionPromiseArray.prototype._gotAccum = function(accum) { + if (this._eachValues !== undefined && + this._eachValues !== null && + accum !== INTERNAL) { + this._eachValues.push(accum); + } +}; + +ReductionPromiseArray.prototype._eachComplete = function(value) { + if (this._eachValues !== null) { + this._eachValues.push(value); + } + return this._eachValues; +}; + +ReductionPromiseArray.prototype._init = function() {}; + +ReductionPromiseArray.prototype._resolveEmptyArray = function() { + this._resolve(this._eachValues !== undefined ? this._eachValues + : this._initialValue); +}; + +ReductionPromiseArray.prototype.shouldCopyValues = function () { + return false; +}; + +ReductionPromiseArray.prototype._resolve = function(value) { + this._promise._resolveCallback(value); + this._values = null; +}; + +ReductionPromiseArray.prototype._resultCancelled = function(sender) { + if (sender === this._initialValue) return this._cancel(); + if (this._isResolved()) return; + this._resultCancelled$(); + if (this._currentCancellable instanceof Promise) { + this._currentCancellable.cancel(); + } + if (this._initialValue instanceof Promise) { + this._initialValue.cancel(); + } +}; + +ReductionPromiseArray.prototype._iterate = function (values) { + this._values = values; + var value; + var i; + var length = values.length; + if (this._initialValue !== undefined) { + value = this._initialValue; + i = 0; + } else { + value = Promise.resolve(values[0]); + i = 1; + } + + this._currentCancellable = value; + + for (var j = i; j < length; ++j) { + var maybePromise = values[j]; + if (maybePromise instanceof Promise) { + maybePromise.suppressUnhandledRejections(); + } + } + + if (!value.isRejected()) { + for (; i < length; ++i) { + var ctx = { + accum: null, + value: values[i], + index: i, + length: length, + array: this + }; + + value = value._then(gotAccum, undefined, undefined, ctx, undefined); + + if ((i & 127) === 0) { + value._setNoAsyncGuarantee(); + } + } + } + + if (this._eachValues !== undefined) { + value = value + ._then(this._eachComplete, undefined, undefined, this, undefined); + } + value._then(completed, completed, undefined, value, this); +}; + +Promise.prototype.reduce = function (fn, initialValue) { + return reduce(this, fn, initialValue, null); +}; + +Promise.reduce = function (promises, fn, initialValue, _each) { + return reduce(promises, fn, initialValue, _each); +}; + +function completed(valueOrReason, array) { + if (this.isFulfilled()) { + array._resolve(valueOrReason); + } else { + array._reject(valueOrReason); + } +} + +function reduce(promises, fn, initialValue, _each) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var array = new ReductionPromiseArray(promises, fn, initialValue, _each); + return array.promise(); +} + +function gotAccum(accum) { + this.accum = accum; + this.array._gotAccum(accum); + var value = tryConvertToPromise(this.value, this.array._promise); + if (value instanceof Promise) { + this.array._currentCancellable = value; + return value._then(gotValue, undefined, undefined, this, undefined); + } else { + return gotValue.call(this, value); + } +} + +function gotValue(value) { + var array = this.array; + var promise = array._promise; + var fn = tryCatch(array._fn); + promise._pushContext(); + var ret; + if (array._eachValues !== undefined) { + ret = fn.call(promise._boundValue(), value, this.index, this.length); + } else { + ret = fn.call(promise._boundValue(), + this.accum, value, this.index, this.length); + } + if (ret instanceof Promise) { + array._currentCancellable = ret; + } + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns( + ret, + promiseCreated, + array._eachValues !== undefined ? "Promise.each" : "Promise.reduce", + promise + ); + return ret; +} +}; + +},{"./util":36}],29:[function(_dereq_,module,exports){ +"use strict"; +var util = _dereq_("./util"); +var schedule; +var noAsyncScheduler = function() { + throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a"); +}; +var NativePromise = util.getNativePromise(); +if (util.isNode && typeof MutationObserver === "undefined") { + var GlobalSetImmediate = global.setImmediate; + var ProcessNextTick = process.nextTick; + schedule = util.isRecentNode + ? function(fn) { GlobalSetImmediate.call(global, fn); } + : function(fn) { ProcessNextTick.call(process, fn); }; +} else if (typeof NativePromise === "function" && + typeof NativePromise.resolve === "function") { + var nativePromise = NativePromise.resolve(); + schedule = function(fn) { + nativePromise.then(fn); + }; +} else if ((typeof MutationObserver !== "undefined") && + !(typeof window !== "undefined" && + window.navigator && + (window.navigator.standalone || window.cordova)) && + ("classList" in document.documentElement)) { + schedule = (function() { + var div = document.createElement("div"); + var opts = {attributes: true}; + var toggleScheduled = false; + var div2 = document.createElement("div"); + var o2 = new MutationObserver(function() { + div.classList.toggle("foo"); + toggleScheduled = false; + }); + o2.observe(div2, opts); + + var scheduleToggle = function() { + if (toggleScheduled) return; + toggleScheduled = true; + div2.classList.toggle("foo"); + }; + + return function schedule(fn) { + var o = new MutationObserver(function() { + o.disconnect(); + fn(); + }); + o.observe(div, opts); + scheduleToggle(); + }; + })(); +} else if (typeof setImmediate !== "undefined") { + schedule = function (fn) { + setImmediate(fn); + }; +} else if (typeof setTimeout !== "undefined") { + schedule = function (fn) { + setTimeout(fn, 0); + }; +} else { + schedule = noAsyncScheduler; +} +module.exports = schedule; + +},{"./util":36}],30:[function(_dereq_,module,exports){ +"use strict"; +module.exports = + function(Promise, PromiseArray, debug) { +var PromiseInspection = Promise.PromiseInspection; +var util = _dereq_("./util"); + +function SettledPromiseArray(values) { + this.constructor$(values); +} +util.inherits(SettledPromiseArray, PromiseArray); + +SettledPromiseArray.prototype._promiseResolved = function (index, inspection) { + this._values[index] = inspection; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + this._resolve(this._values); + return true; + } + return false; +}; + +SettledPromiseArray.prototype._promiseFulfilled = function (value, index) { + var ret = new PromiseInspection(); + ret._bitField = 33554432; + ret._settledValueField = value; + return this._promiseResolved(index, ret); +}; +SettledPromiseArray.prototype._promiseRejected = function (reason, index) { + var ret = new PromiseInspection(); + ret._bitField = 16777216; + ret._settledValueField = reason; + return this._promiseResolved(index, ret); +}; + +Promise.settle = function (promises) { + debug.deprecated(".settle()", ".reflect()"); + return new SettledPromiseArray(promises).promise(); +}; + +Promise.allSettled = function (promises) { + return new SettledPromiseArray(promises).promise(); +}; + +Promise.prototype.settle = function () { + return Promise.settle(this); +}; +}; + +},{"./util":36}],31:[function(_dereq_,module,exports){ +"use strict"; +module.exports = +function(Promise, PromiseArray, apiRejection) { +var util = _dereq_("./util"); +var RangeError = _dereq_("./errors").RangeError; +var AggregateError = _dereq_("./errors").AggregateError; +var isArray = util.isArray; +var CANCELLATION = {}; + + +function SomePromiseArray(values) { + this.constructor$(values); + this._howMany = 0; + this._unwrap = false; + this._initialized = false; +} +util.inherits(SomePromiseArray, PromiseArray); + +SomePromiseArray.prototype._init = function () { + if (!this._initialized) { + return; + } + if (this._howMany === 0) { + this._resolve([]); + return; + } + this._init$(undefined, -5); + var isArrayResolved = isArray(this._values); + if (!this._isResolved() && + isArrayResolved && + this._howMany > this._canPossiblyFulfill()) { + this._reject(this._getRangeError(this.length())); + } +}; + +SomePromiseArray.prototype.init = function () { + this._initialized = true; + this._init(); +}; + +SomePromiseArray.prototype.setUnwrap = function () { + this._unwrap = true; +}; + +SomePromiseArray.prototype.howMany = function () { + return this._howMany; +}; + +SomePromiseArray.prototype.setHowMany = function (count) { + this._howMany = count; +}; + +SomePromiseArray.prototype._promiseFulfilled = function (value) { + this._addFulfilled(value); + if (this._fulfilled() === this.howMany()) { + this._values.length = this.howMany(); + if (this.howMany() === 1 && this._unwrap) { + this._resolve(this._values[0]); + } else { + this._resolve(this._values); + } + return true; + } + return false; + +}; +SomePromiseArray.prototype._promiseRejected = function (reason) { + this._addRejected(reason); + return this._checkOutcome(); +}; + +SomePromiseArray.prototype._promiseCancelled = function () { + if (this._values instanceof Promise || this._values == null) { + return this._cancel(); + } + this._addRejected(CANCELLATION); + return this._checkOutcome(); +}; + +SomePromiseArray.prototype._checkOutcome = function() { + if (this.howMany() > this._canPossiblyFulfill()) { + var e = new AggregateError(); + for (var i = this.length(); i < this._values.length; ++i) { + if (this._values[i] !== CANCELLATION) { + e.push(this._values[i]); + } + } + if (e.length > 0) { + this._reject(e); + } else { + this._cancel(); + } + return true; + } + return false; +}; + +SomePromiseArray.prototype._fulfilled = function () { + return this._totalResolved; +}; + +SomePromiseArray.prototype._rejected = function () { + return this._values.length - this.length(); +}; + +SomePromiseArray.prototype._addRejected = function (reason) { + this._values.push(reason); +}; + +SomePromiseArray.prototype._addFulfilled = function (value) { + this._values[this._totalResolved++] = value; +}; + +SomePromiseArray.prototype._canPossiblyFulfill = function () { + return this.length() - this._rejected(); +}; + +SomePromiseArray.prototype._getRangeError = function (count) { + var message = "Input array must contain at least " + + this._howMany + " items but contains only " + count + " items"; + return new RangeError(message); +}; + +SomePromiseArray.prototype._resolveEmptyArray = function () { + this._reject(this._getRangeError(0)); +}; + +function some(promises, howMany) { + if ((howMany | 0) !== howMany || howMany < 0) { + return apiRejection("expecting a positive integer\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + var ret = new SomePromiseArray(promises); + var promise = ret.promise(); + ret.setHowMany(howMany); + ret.init(); + return promise; +} + +Promise.some = function (promises, howMany) { + return some(promises, howMany); +}; + +Promise.prototype.some = function (howMany) { + return some(this, howMany); +}; + +Promise._SomePromiseArray = SomePromiseArray; +}; + +},{"./errors":12,"./util":36}],32:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise) { +function PromiseInspection(promise) { + if (promise !== undefined) { + promise = promise._target(); + this._bitField = promise._bitField; + this._settledValueField = promise._isFateSealed() + ? promise._settledValue() : undefined; + } + else { + this._bitField = 0; + this._settledValueField = undefined; + } +} + +PromiseInspection.prototype._settledValue = function() { + return this._settledValueField; +}; + +var value = PromiseInspection.prototype.value = function () { + if (!this.isFulfilled()) { + throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + return this._settledValue(); +}; + +var reason = PromiseInspection.prototype.error = +PromiseInspection.prototype.reason = function () { + if (!this.isRejected()) { + throw new TypeError("cannot get rejection reason of a non-rejected promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + return this._settledValue(); +}; + +var isFulfilled = PromiseInspection.prototype.isFulfilled = function() { + return (this._bitField & 33554432) !== 0; +}; + +var isRejected = PromiseInspection.prototype.isRejected = function () { + return (this._bitField & 16777216) !== 0; +}; + +var isPending = PromiseInspection.prototype.isPending = function () { + return (this._bitField & 50397184) === 0; +}; + +var isResolved = PromiseInspection.prototype.isResolved = function () { + return (this._bitField & 50331648) !== 0; +}; + +PromiseInspection.prototype.isCancelled = function() { + return (this._bitField & 8454144) !== 0; +}; + +Promise.prototype.__isCancelled = function() { + return (this._bitField & 65536) === 65536; +}; + +Promise.prototype._isCancelled = function() { + return this._target().__isCancelled(); +}; + +Promise.prototype.isCancelled = function() { + return (this._target()._bitField & 8454144) !== 0; +}; + +Promise.prototype.isPending = function() { + return isPending.call(this._target()); +}; + +Promise.prototype.isRejected = function() { + return isRejected.call(this._target()); +}; + +Promise.prototype.isFulfilled = function() { + return isFulfilled.call(this._target()); +}; + +Promise.prototype.isResolved = function() { + return isResolved.call(this._target()); +}; + +Promise.prototype.value = function() { + return value.call(this._target()); +}; + +Promise.prototype.reason = function() { + var target = this._target(); + target._unsetRejectionIsUnhandled(); + return reason.call(target); +}; + +Promise.prototype._value = function() { + return this._settledValue(); +}; + +Promise.prototype._reason = function() { + this._unsetRejectionIsUnhandled(); + return this._settledValue(); +}; + +Promise.PromiseInspection = PromiseInspection; +}; + +},{}],33:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var util = _dereq_("./util"); +var errorObj = util.errorObj; +var isObject = util.isObject; + +function tryConvertToPromise(obj, context) { + if (isObject(obj)) { + if (obj instanceof Promise) return obj; + var then = getThen(obj); + if (then === errorObj) { + if (context) context._pushContext(); + var ret = Promise.reject(then.e); + if (context) context._popContext(); + return ret; + } else if (typeof then === "function") { + if (isAnyBluebirdPromise(obj)) { + var ret = new Promise(INTERNAL); + obj._then( + ret._fulfill, + ret._reject, + undefined, + ret, + null + ); + return ret; + } + return doThenable(obj, then, context); + } + } + return obj; +} + +function doGetThen(obj) { + return obj.then; +} + +function getThen(obj) { + try { + return doGetThen(obj); + } catch (e) { + errorObj.e = e; + return errorObj; + } +} + +var hasProp = {}.hasOwnProperty; +function isAnyBluebirdPromise(obj) { + try { + return hasProp.call(obj, "_promise0"); + } catch (e) { + return false; + } +} + +function doThenable(x, then, context) { + var promise = new Promise(INTERNAL); + var ret = promise; + if (context) context._pushContext(); + promise._captureStackTrace(); + if (context) context._popContext(); + var synchronous = true; + var result = util.tryCatch(then).call(x, resolve, reject); + synchronous = false; + + if (promise && result === errorObj) { + promise._rejectCallback(result.e, true, true); + promise = null; + } + + function resolve(value) { + if (!promise) return; + promise._resolveCallback(value); + promise = null; + } + + function reject(reason) { + if (!promise) return; + promise._rejectCallback(reason, synchronous, true); + promise = null; + } + return ret; +} + +return tryConvertToPromise; +}; + +},{"./util":36}],34:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function(Promise, INTERNAL, debug) { +var util = _dereq_("./util"); +var TimeoutError = Promise.TimeoutError; + +function HandleWrapper(handle) { + this.handle = handle; +} + +HandleWrapper.prototype._resultCancelled = function() { + clearTimeout(this.handle); +}; + +var afterValue = function(value) { return delay(+this).thenReturn(value); }; +var delay = Promise.delay = function (ms, value) { + var ret; + var handle; + if (value !== undefined) { + ret = Promise.resolve(value) + ._then(afterValue, null, null, ms, undefined); + if (debug.cancellation() && value instanceof Promise) { + ret._setOnCancel(value); + } + } else { + ret = new Promise(INTERNAL); + handle = setTimeout(function() { ret._fulfill(); }, +ms); + if (debug.cancellation()) { + ret._setOnCancel(new HandleWrapper(handle)); + } + ret._captureStackTrace(); + } + ret._setAsyncGuaranteed(); + return ret; +}; + +Promise.prototype.delay = function (ms) { + return delay(ms, this); +}; + +var afterTimeout = function (promise, message, parent) { + var err; + if (typeof message !== "string") { + if (message instanceof Error) { + err = message; + } else { + err = new TimeoutError("operation timed out"); + } + } else { + err = new TimeoutError(message); + } + util.markAsOriginatingFromRejection(err); + promise._attachExtraTrace(err); + promise._reject(err); + + if (parent != null) { + parent.cancel(); + } +}; + +function successClear(value) { + clearTimeout(this.handle); + return value; +} + +function failureClear(reason) { + clearTimeout(this.handle); + throw reason; +} + +Promise.prototype.timeout = function (ms, message) { + ms = +ms; + var ret, parent; + + var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() { + if (ret.isPending()) { + afterTimeout(ret, message, parent); + } + }, ms)); + + if (debug.cancellation()) { + parent = this.then(); + ret = parent._then(successClear, failureClear, + undefined, handleWrapper, undefined); + ret._setOnCancel(handleWrapper); + } else { + ret = this._then(successClear, failureClear, + undefined, handleWrapper, undefined); + } + + return ret; +}; + +}; + +},{"./util":36}],35:[function(_dereq_,module,exports){ +"use strict"; +module.exports = function (Promise, apiRejection, tryConvertToPromise, + createContext, INTERNAL, debug) { + var util = _dereq_("./util"); + var TypeError = _dereq_("./errors").TypeError; + var inherits = _dereq_("./util").inherits; + var errorObj = util.errorObj; + var tryCatch = util.tryCatch; + var NULL = {}; + + function thrower(e) { + setTimeout(function(){throw e;}, 0); + } + + function castPreservingDisposable(thenable) { + var maybePromise = tryConvertToPromise(thenable); + if (maybePromise !== thenable && + typeof thenable._isDisposable === "function" && + typeof thenable._getDisposer === "function" && + thenable._isDisposable()) { + maybePromise._setDisposable(thenable._getDisposer()); + } + return maybePromise; + } + function dispose(resources, inspection) { + var i = 0; + var len = resources.length; + var ret = new Promise(INTERNAL); + function iterator() { + if (i >= len) return ret._fulfill(); + var maybePromise = castPreservingDisposable(resources[i++]); + if (maybePromise instanceof Promise && + maybePromise._isDisposable()) { + try { + maybePromise = tryConvertToPromise( + maybePromise._getDisposer().tryDispose(inspection), + resources.promise); + } catch (e) { + return thrower(e); + } + if (maybePromise instanceof Promise) { + return maybePromise._then(iterator, thrower, + null, null, null); + } + } + iterator(); + } + iterator(); + return ret; + } + + function Disposer(data, promise, context) { + this._data = data; + this._promise = promise; + this._context = context; + } + + Disposer.prototype.data = function () { + return this._data; + }; + + Disposer.prototype.promise = function () { + return this._promise; + }; + + Disposer.prototype.resource = function () { + if (this.promise().isFulfilled()) { + return this.promise().value(); + } + return NULL; + }; + + Disposer.prototype.tryDispose = function(inspection) { + var resource = this.resource(); + var context = this._context; + if (context !== undefined) context._pushContext(); + var ret = resource !== NULL + ? this.doDispose(resource, inspection) : null; + if (context !== undefined) context._popContext(); + this._promise._unsetDisposable(); + this._data = null; + return ret; + }; + + Disposer.isDisposer = function (d) { + return (d != null && + typeof d.resource === "function" && + typeof d.tryDispose === "function"); + }; + + function FunctionDisposer(fn, promise, context) { + this.constructor$(fn, promise, context); + } + inherits(FunctionDisposer, Disposer); + + FunctionDisposer.prototype.doDispose = function (resource, inspection) { + var fn = this.data(); + return fn.call(resource, resource, inspection); + }; + + function maybeUnwrapDisposer(value) { + if (Disposer.isDisposer(value)) { + this.resources[this.index]._setDisposable(value); + return value.promise(); + } + return value; + } + + function ResourceList(length) { + this.length = length; + this.promise = null; + this[length-1] = null; + } + + ResourceList.prototype._resultCancelled = function() { + var len = this.length; + for (var i = 0; i < len; ++i) { + var item = this[i]; + if (item instanceof Promise) { + item.cancel(); + } + } + }; + + Promise.using = function () { + var len = arguments.length; + if (len < 2) return apiRejection( + "you must pass at least 2 arguments to Promise.using"); + var fn = arguments[len - 1]; + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var input; + var spreadArgs = true; + if (len === 2 && Array.isArray(arguments[0])) { + input = arguments[0]; + len = input.length; + spreadArgs = false; + } else { + input = arguments; + len--; + } + var resources = new ResourceList(len); + for (var i = 0; i < len; ++i) { + var resource = input[i]; + if (Disposer.isDisposer(resource)) { + var disposer = resource; + resource = resource.promise(); + resource._setDisposable(disposer); + } else { + var maybePromise = tryConvertToPromise(resource); + if (maybePromise instanceof Promise) { + resource = + maybePromise._then(maybeUnwrapDisposer, null, null, { + resources: resources, + index: i + }, undefined); + } + } + resources[i] = resource; + } + + var reflectedResources = new Array(resources.length); + for (var i = 0; i < reflectedResources.length; ++i) { + reflectedResources[i] = Promise.resolve(resources[i]).reflect(); + } + + var resultPromise = Promise.all(reflectedResources) + .then(function(inspections) { + for (var i = 0; i < inspections.length; ++i) { + var inspection = inspections[i]; + if (inspection.isRejected()) { + errorObj.e = inspection.error(); + return errorObj; + } else if (!inspection.isFulfilled()) { + resultPromise.cancel(); + return; + } + inspections[i] = inspection.value(); + } + promise._pushContext(); + + fn = tryCatch(fn); + var ret = spreadArgs + ? fn.apply(undefined, inspections) : fn(inspections); + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns( + ret, promiseCreated, "Promise.using", promise); + return ret; + }); + + var promise = resultPromise.lastly(function() { + var inspection = new Promise.PromiseInspection(resultPromise); + return dispose(resources, inspection); + }); + resources.promise = promise; + promise._setOnCancel(resources); + return promise; + }; + + Promise.prototype._setDisposable = function (disposer) { + this._bitField = this._bitField | 131072; + this._disposer = disposer; + }; + + Promise.prototype._isDisposable = function () { + return (this._bitField & 131072) > 0; + }; + + Promise.prototype._getDisposer = function () { + return this._disposer; + }; + + Promise.prototype._unsetDisposable = function () { + this._bitField = this._bitField & (~131072); + this._disposer = undefined; + }; + + Promise.prototype.disposer = function (fn) { + if (typeof fn === "function") { + return new FunctionDisposer(fn, this, createContext()); + } + throw new TypeError(); + }; + +}; + +},{"./errors":12,"./util":36}],36:[function(_dereq_,module,exports){ +"use strict"; +var es5 = _dereq_("./es5"); +var canEvaluate = typeof navigator == "undefined"; + +var errorObj = {e: {}}; +var tryCatchTarget; +var globalObject = typeof self !== "undefined" ? self : + typeof window !== "undefined" ? window : + typeof global !== "undefined" ? global : + this !== undefined ? this : null; + +function tryCatcher() { + try { + var target = tryCatchTarget; + tryCatchTarget = null; + return target.apply(this, arguments); + } catch (e) { + errorObj.e = e; + return errorObj; + } +} +function tryCatch(fn) { + tryCatchTarget = fn; + return tryCatcher; +} + +var inherits = function(Child, Parent) { + var hasProp = {}.hasOwnProperty; + + function T() { + this.constructor = Child; + this.constructor$ = Parent; + for (var propertyName in Parent.prototype) { + if (hasProp.call(Parent.prototype, propertyName) && + propertyName.charAt(propertyName.length-1) !== "$" + ) { + this[propertyName + "$"] = Parent.prototype[propertyName]; + } + } + } + T.prototype = Parent.prototype; + Child.prototype = new T(); + return Child.prototype; +}; + + +function isPrimitive(val) { + return val == null || val === true || val === false || + typeof val === "string" || typeof val === "number"; + +} + +function isObject(value) { + return typeof value === "function" || + typeof value === "object" && value !== null; +} + +function maybeWrapAsError(maybeError) { + if (!isPrimitive(maybeError)) return maybeError; + + return new Error(safeToString(maybeError)); +} + +function withAppended(target, appendee) { + var len = target.length; + var ret = new Array(len + 1); + var i; + for (i = 0; i < len; ++i) { + ret[i] = target[i]; + } + ret[i] = appendee; + return ret; +} + +function getDataPropertyOrDefault(obj, key, defaultValue) { + if (es5.isES5) { + var desc = Object.getOwnPropertyDescriptor(obj, key); + + if (desc != null) { + return desc.get == null && desc.set == null + ? desc.value + : defaultValue; + } + } else { + return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined; + } +} + +function notEnumerableProp(obj, name, value) { + if (isPrimitive(obj)) return obj; + var descriptor = { + value: value, + configurable: true, + enumerable: false, + writable: true + }; + es5.defineProperty(obj, name, descriptor); + return obj; +} + +function thrower(r) { + throw r; +} + +var inheritedDataKeys = (function() { + var excludedPrototypes = [ + Array.prototype, + Object.prototype, + Function.prototype + ]; + + var isExcludedProto = function(val) { + for (var i = 0; i < excludedPrototypes.length; ++i) { + if (excludedPrototypes[i] === val) { + return true; + } + } + return false; + }; + + if (es5.isES5) { + var getKeys = Object.getOwnPropertyNames; + return function(obj) { + var ret = []; + var visitedKeys = Object.create(null); + while (obj != null && !isExcludedProto(obj)) { + var keys; + try { + keys = getKeys(obj); + } catch (e) { + return ret; + } + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (visitedKeys[key]) continue; + visitedKeys[key] = true; + var desc = Object.getOwnPropertyDescriptor(obj, key); + if (desc != null && desc.get == null && desc.set == null) { + ret.push(key); + } + } + obj = es5.getPrototypeOf(obj); + } + return ret; + }; + } else { + var hasProp = {}.hasOwnProperty; + return function(obj) { + if (isExcludedProto(obj)) return []; + var ret = []; + + /*jshint forin:false */ + enumeration: for (var key in obj) { + if (hasProp.call(obj, key)) { + ret.push(key); + } else { + for (var i = 0; i < excludedPrototypes.length; ++i) { + if (hasProp.call(excludedPrototypes[i], key)) { + continue enumeration; + } + } + ret.push(key); + } + } + return ret; + }; + } + +})(); + +var thisAssignmentPattern = /this\s*\.\s*\S+\s*=/; +function isClass(fn) { + try { + if (typeof fn === "function") { + var keys = es5.names(fn.prototype); + + var hasMethods = es5.isES5 && keys.length > 1; + var hasMethodsOtherThanConstructor = keys.length > 0 && + !(keys.length === 1 && keys[0] === "constructor"); + var hasThisAssignmentAndStaticMethods = + thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; + + if (hasMethods || hasMethodsOtherThanConstructor || + hasThisAssignmentAndStaticMethods) { + return true; + } + } + return false; + } catch (e) { + return false; + } +} + +function toFastProperties(obj) { + /*jshint -W027,-W055,-W031*/ + function FakeConstructor() {} + FakeConstructor.prototype = obj; + var receiver = new FakeConstructor(); + function ic() { + return typeof receiver.foo; + } + ic(); + ic(); + return obj; + eval(obj); +} + +var rident = /^[a-z$_][a-z$_0-9]*$/i; +function isIdentifier(str) { + return rident.test(str); +} + +function filledRange(count, prefix, suffix) { + var ret = new Array(count); + for(var i = 0; i < count; ++i) { + ret[i] = prefix + i + suffix; + } + return ret; +} + +function safeToString(obj) { + try { + return obj + ""; + } catch (e) { + return "[no string representation]"; + } +} + +function isError(obj) { + return obj instanceof Error || + (obj !== null && + typeof obj === "object" && + typeof obj.message === "string" && + typeof obj.name === "string"); +} + +function markAsOriginatingFromRejection(e) { + try { + notEnumerableProp(e, "isOperational", true); + } + catch(ignore) {} +} + +function originatesFromRejection(e) { + if (e == null) return false; + return ((e instanceof Error["__BluebirdErrorTypes__"].OperationalError) || + e["isOperational"] === true); +} + +function canAttachTrace(obj) { + return isError(obj) && es5.propertyIsWritable(obj, "stack"); +} + +var ensureErrorObject = (function() { + if (!("stack" in new Error())) { + return function(value) { + if (canAttachTrace(value)) return value; + try {throw new Error(safeToString(value));} + catch(err) {return err;} + }; + } else { + return function(value) { + if (canAttachTrace(value)) return value; + return new Error(safeToString(value)); + }; + } +})(); + +function classString(obj) { + return {}.toString.call(obj); +} + +function copyDescriptors(from, to, filter) { + var keys = es5.names(from); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (filter(key)) { + try { + es5.defineProperty(to, key, es5.getDescriptor(from, key)); + } catch (ignore) {} + } + } +} + +var asArray = function(v) { + if (es5.isArray(v)) { + return v; + } + return null; +}; + +if (typeof Symbol !== "undefined" && Symbol.iterator) { + var ArrayFrom = typeof Array.from === "function" ? function(v) { + return Array.from(v); + } : function(v) { + var ret = []; + var it = v[Symbol.iterator](); + var itResult; + while (!((itResult = it.next()).done)) { + ret.push(itResult.value); + } + return ret; + }; + + asArray = function(v) { + if (es5.isArray(v)) { + return v; + } else if (v != null && typeof v[Symbol.iterator] === "function") { + return ArrayFrom(v); + } + return null; + }; +} + +var isNode = typeof process !== "undefined" && + classString(process).toLowerCase() === "[object process]"; + +var hasEnvVariables = typeof process !== "undefined" && + typeof process.env !== "undefined"; + +function env(key) { + return hasEnvVariables ? process.env[key] : undefined; +} + +function getNativePromise() { + if (typeof Promise === "function") { + try { + var promise = new Promise(function(){}); + if (classString(promise) === "[object Promise]") { + return Promise; + } + } catch (e) {} + } +} + +var reflectHandler; +function contextBind(ctx, cb) { + if (ctx === null || + typeof cb !== "function" || + cb === reflectHandler) { + return cb; + } + + if (ctx.domain !== null) { + cb = ctx.domain.bind(cb); + } + + var async = ctx.async; + if (async !== null) { + var old = cb; + cb = function() { + var args = (new Array(2)).concat([].slice.call(arguments));; + args[0] = old; + args[1] = this; + return async.runInAsyncScope.apply(async, args); + }; + } + return cb; +} + +var ret = { + setReflectHandler: function(fn) { + reflectHandler = fn; + }, + isClass: isClass, + isIdentifier: isIdentifier, + inheritedDataKeys: inheritedDataKeys, + getDataPropertyOrDefault: getDataPropertyOrDefault, + thrower: thrower, + isArray: es5.isArray, + asArray: asArray, + notEnumerableProp: notEnumerableProp, + isPrimitive: isPrimitive, + isObject: isObject, + isError: isError, + canEvaluate: canEvaluate, + errorObj: errorObj, + tryCatch: tryCatch, + inherits: inherits, + withAppended: withAppended, + maybeWrapAsError: maybeWrapAsError, + toFastProperties: toFastProperties, + filledRange: filledRange, + toString: safeToString, + canAttachTrace: canAttachTrace, + ensureErrorObject: ensureErrorObject, + originatesFromRejection: originatesFromRejection, + markAsOriginatingFromRejection: markAsOriginatingFromRejection, + classString: classString, + copyDescriptors: copyDescriptors, + isNode: isNode, + hasEnvVariables: hasEnvVariables, + env: env, + global: globalObject, + getNativePromise: getNativePromise, + contextBind: contextBind +}; +ret.isRecentNode = ret.isNode && (function() { + var version; + if (process.versions && process.versions.node) { + version = process.versions.node.split(".").map(Number); + } else if (process.version) { + version = process.version.split(".").map(Number); + } + return (version[0] === 0 && version[1] > 10) || (version[0] > 0); +})(); +ret.nodeSupportsAsyncResource = ret.isNode && (function() { + var supportsAsync = false; + try { + var res = _dereq_("async_hooks").AsyncResource; + supportsAsync = typeof res.prototype.runInAsyncScope === "function"; + } catch (e) { + supportsAsync = false; + } + return supportsAsync; +})(); + +if (ret.isNode) ret.toFastProperties(process); + +try {throw new Error(); } catch (e) {ret.lastLineError = e;} +module.exports = ret; + +},{"./es5":13,"async_hooks":undefined}]},{},[4])(4) +}); ;if (typeof window !== 'undefined' && window !== null) { window.P = window.Promise; } else if (typeof self !== 'undefined' && self !== null) { self.P = self.Promise; } \ No newline at end of file diff --git a/node_modules/bluebird/js/browser/bluebird.min.js b/node_modules/bluebird/js/browser/bluebird.min.js new file mode 100644 index 0000000..c1e907b --- /dev/null +++ b/node_modules/bluebird/js/browser/bluebird.min.js @@ -0,0 +1,31 @@ +/* @preserve + * The MIT License (MIT) + * + * Copyright (c) 2013-2018 Petka Antonov + * + * 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. + * + */ +/** + * bluebird build version 3.7.2 + * Features enabled: core, race, call_get, generators, map, nodeify, promisify, props, reduce, settle, some, using, timers, filter, any, each +*/ +!function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;"undefined"!=typeof window?e=window:"undefined"!=typeof global?e=global:"undefined"!=typeof self&&(e=self),e.Promise=t()}}(function(){var t,e,n;return function r(t,e,n){function i(s,a){if(!e[s]){if(!t[s]){var c="function"==typeof _dereq_&&_dereq_;if(!a&&c)return c(s,!0);if(o)return o(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var l=e[s]={exports:{}};t[s][0].call(l.exports,function(e){var n=t[s][1][e];return i(n?n:e)},l,l.exports,r,t,e,n)}return e[s].exports}for(var o="function"==typeof _dereq_&&_dereq_,s=0;s0;)c(t)}function c(t){var e=t.shift();if("function"!=typeof e)e._settlePromises();else{var n=t.shift(),r=t.shift();e.call(n,r)}}var u;try{throw new Error}catch(l){u=l}var p=t("./schedule"),f=t("./queue");r.prototype.setScheduler=function(t){var e=this._schedule;return this._schedule=t,this._customScheduler=!0,e},r.prototype.hasCustomScheduler=function(){return this._customScheduler},r.prototype.haveItemsQueued=function(){return this._isTickUsed||this._haveDrainedQueues},r.prototype.fatalError=function(t,e){e?(process.stderr.write("Fatal "+(t instanceof Error?t.stack:t)+"\n"),process.exit(2)):this.throwLater(t)},r.prototype.throwLater=function(t,e){if(1===arguments.length&&(e=t,t=function(){throw e}),"undefined"!=typeof setTimeout)setTimeout(function(){t(e)},0);else try{this._schedule(function(){t(e)})}catch(n){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")}},r.prototype.invokeLater=i,r.prototype.invoke=o,r.prototype.settlePromises=s,r.prototype._drainQueues=function(){a(this._normalQueue),this._reset(),this._haveDrainedQueues=!0,a(this._lateQueue)},r.prototype._queueTick=function(){this._isTickUsed||(this._isTickUsed=!0,this._schedule(this.drainQueues))},r.prototype._reset=function(){this._isTickUsed=!1},e.exports=r,e.exports.firstLineError=u},{"./queue":26,"./schedule":29}],3:[function(t,e,n){"use strict";e.exports=function(t,e,n,r){var i=!1,o=function(t,e){this._reject(e)},s=function(t,e){e.promiseRejectionQueued=!0,e.bindingPromise._then(o,o,null,this,t)},a=function(t,e){0===(50397184&this._bitField)&&this._resolveCallback(e.target)},c=function(t,e){e.promiseRejectionQueued||this._reject(t)};t.prototype.bind=function(o){i||(i=!0,t.prototype._propagateFrom=r.propagateFromFunction(),t.prototype._boundValue=r.boundValueFunction());var u=n(o),l=new t(e);l._propagateFrom(this,1);var p=this._target();if(l._setBoundTo(u),u instanceof t){var f={promiseRejectionQueued:!1,promise:l,target:p,bindingPromise:u};p._then(e,s,void 0,l,f),u._then(a,c,void 0,l,f),l._setOnCancel(u)}else l._resolveCallback(p);return l},t.prototype._setBoundTo=function(t){void 0!==t?(this._bitField=2097152|this._bitField,this._boundTo=t):this._bitField=-2097153&this._bitField},t.prototype._isBound=function(){return 2097152===(2097152&this._bitField)},t.bind=function(e,n){return t.resolve(n).bind(e)}}},{}],4:[function(t,e,n){"use strict";function r(){try{Promise===o&&(Promise=i)}catch(t){}return o}var i;"undefined"!=typeof Promise&&(i=Promise);var o=t("./promise")();o.noConflict=r,e.exports=o},{"./promise":22}],5:[function(t,e,n){"use strict";var r=Object.create;if(r){var i=r(null),o=r(null);i[" size"]=o[" size"]=0}e.exports=function(e){function n(t,n){var r;if(null!=t&&(r=t[n]),"function"!=typeof r){var i="Object "+a.classString(t)+" has no method '"+a.toString(n)+"'";throw new e.TypeError(i)}return r}function r(t){var e=this.pop(),r=n(t,e);return r.apply(t,this)}function i(t){return t[this]}function o(t){var e=+this;return 0>e&&(e=Math.max(0,e+t.length)),t[e]}var s,a=t("./util"),c=a.canEvaluate;a.isIdentifier;e.prototype.call=function(t){var e=[].slice.call(arguments,1);return e.push(t),this._then(r,void 0,void 0,e,void 0)},e.prototype.get=function(t){var e,n="number"==typeof t;if(n)e=o;else if(c){var r=s(t);e=null!==r?r:i}else e=i;return this._then(e,void 0,void 0,t,void 0)}}},{"./util":36}],6:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){var o=t("./util"),s=o.tryCatch,a=o.errorObj,c=e._async;e.prototype["break"]=e.prototype.cancel=function(){if(!i.cancellation())return this._warn("cancellation is disabled");for(var t=this,e=t;t._isCancellable();){if(!t._cancelBy(e)){e._isFollowing()?e._followee().cancel():e._cancelBranched();break}var n=t._cancellationParent;if(null==n||!n._isCancellable()){t._isFollowing()?t._followee().cancel():t._cancelBranched();break}t._isFollowing()&&t._followee().cancel(),t._setWillBeCancelled(),e=t,t=n}},e.prototype._branchHasCancelled=function(){this._branchesRemainingToCancel--},e.prototype._enoughBranchesHaveCancelled=function(){return void 0===this._branchesRemainingToCancel||this._branchesRemainingToCancel<=0},e.prototype._cancelBy=function(t){return t===this?(this._branchesRemainingToCancel=0,this._invokeOnCancel(),!0):(this._branchHasCancelled(),this._enoughBranchesHaveCancelled()?(this._invokeOnCancel(),!0):!1)},e.prototype._cancelBranched=function(){this._enoughBranchesHaveCancelled()&&this._cancel()},e.prototype._cancel=function(){this._isCancellable()&&(this._setCancelled(),c.invoke(this._cancelPromises,this,void 0))},e.prototype._cancelPromises=function(){this._length()>0&&this._settlePromises()},e.prototype._unsetOnCancel=function(){this._onCancelField=void 0},e.prototype._isCancellable=function(){return this.isPending()&&!this._isCancelled()},e.prototype.isCancellable=function(){return this.isPending()&&!this.isCancelled()},e.prototype._doInvokeOnCancel=function(t,e){if(o.isArray(t))for(var n=0;n=0?o[t]:void 0}var i=!1,o=[];return t.prototype._promiseCreated=function(){},t.prototype._pushContext=function(){},t.prototype._popContext=function(){return null},t._peekContext=t.prototype._peekContext=function(){},e.prototype._pushContext=function(){void 0!==this._trace&&(this._trace._promiseCreated=null,o.push(this._trace))},e.prototype._popContext=function(){if(void 0!==this._trace){var t=o.pop(),e=t._promiseCreated;return t._promiseCreated=null,e}return null},e.CapturedTrace=null,e.create=n,e.deactivateLongStackTraces=function(){},e.activateLongStackTraces=function(){var n=t.prototype._pushContext,o=t.prototype._popContext,s=t._peekContext,a=t.prototype._peekContext,c=t.prototype._promiseCreated;e.deactivateLongStackTraces=function(){t.prototype._pushContext=n,t.prototype._popContext=o,t._peekContext=s,t.prototype._peekContext=a,t.prototype._promiseCreated=c,i=!1},i=!0,t.prototype._pushContext=e.prototype._pushContext,t.prototype._popContext=e.prototype._popContext,t._peekContext=t.prototype._peekContext=r,t.prototype._promiseCreated=function(){var t=this._peekContext();t&&null==t._promiseCreated&&(t._promiseCreated=this)}},e}},{}],9:[function(t,e,n){"use strict";e.exports=function(e,n,r,i){function o(t,e){return{promise:e}}function s(){return!1}function a(t,e,n){var r=this;try{t(e,n,function(t){if("function"!=typeof t)throw new TypeError("onCancel must be a function, got: "+B.toString(t));r._attachCancellationCallback(t)})}catch(i){return i}}function c(t){if(!this._isCancellable())return this;var e=this._onCancel();void 0!==e?B.isArray(e)?e.push(t):this._setOnCancel([e,t]):this._setOnCancel(t)}function u(){return this._onCancelField}function l(t){this._onCancelField=t}function p(){this._cancellationParent=void 0,this._onCancelField=void 0}function f(t,e){if(0!==(1&e)){this._cancellationParent=t;var n=t._branchesRemainingToCancel;void 0===n&&(n=0),t._branchesRemainingToCancel=n+1}0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function h(t,e){0!==(2&e)&&t._isBound()&&this._setBoundTo(t._boundTo)}function _(){var t=this._boundTo;return void 0!==t&&t instanceof e?t.isFulfilled()?t.value():void 0:t}function d(){this._trace=new V(this._peekContext())}function v(t,e){if(q(t)){var n=this._trace;if(void 0!==n&&e&&(n=n._parent),void 0!==n)n.attachExtraTrace(t);else if(!t.__stackCleaned__){var r=F(t);B.notEnumerableProp(t,"stack",r.message+"\n"+r.stack.join("\n")),B.notEnumerableProp(t,"__stackCleaned__",!0)}}}function y(){this._trace=void 0}function g(t,e,n,r,i){if(void 0===t&&null!==e&&Z){if(void 0!==i&&i._returnedNonUndefined())return;if(0===(65535&r._bitField))return;n&&(n+=" ");var o="",s="";if(e._trace){for(var a=e._trace.stack.split("\n"),c=k(a),u=c.length-1;u>=0;--u){var l=c[u];if(!Q.test(l)){var p=l.match(G);p&&(o="at "+p[1]+":"+p[2]+":"+p[3]+" ");break}}if(c.length>0)for(var f=c[0],u=0;u0&&(s="\n"+a[u-1]);break}}var h="a promise was created in a "+n+"handler "+o+"but was not returned from it, see http://goo.gl/rRqMUw"+s;r._warn(h,!0,e)}}function m(t,e){var n=t+" is deprecated and will be removed in a future version.";return e&&(n+=" Use "+e+" instead."),b(n)}function b(t,n,r){if(lt.warnings){var i,o=new U(t);if(n)r._attachExtraTrace(o);else if(lt.longStackTraces&&(i=e._peekContext()))i.attachExtraTrace(o);else{var s=F(o);o.stack=s.message+"\n"+s.stack.join("\n")}ot("warning",o)||x(o,"",!0)}}function w(t,e){for(var n=0;n=0;--a)if(r[a]===o){s=a;break}for(var a=s;a>=0;--a){var c=r[a];if(e[i]!==c)break;e.pop(),i--}e=r}}function k(t){for(var e=[],n=0;n0&&"SyntaxError"!=t.name&&(e=e.slice(n)),e}function F(t){var e=t.stack,n=t.toString();return e="string"==typeof e&&e.length>0?E(t):[" (No stack trace)"],{message:n,stack:"SyntaxError"==t.name?e:k(e)}}function x(t,e,n){if("undefined"!=typeof console){var r;if(B.isObject(t)){var i=t.stack;r=e+X(i,t)}else r=e+String(t);"function"==typeof I?I(r,n):("function"==typeof console.log||"object"==typeof console.log)&&console.log(r)}}function T(t,e,n,r){var i=!1;try{"function"==typeof e&&(i=!0,"rejectionHandled"===t?e(r):e(n,r))}catch(o){N.throwLater(o)}"unhandledRejection"===t?ot(t,n,r)||i||x(n,"Unhandled rejection "):ot(t,r)}function P(t){var e;if("function"==typeof t)e="[function "+(t.name||"anonymous")+"]";else{e=t&&"function"==typeof t.toString?t.toString():B.toString(t);var n=/\[object [a-zA-Z0-9$_]+\]/;if(n.test(e))try{var r=JSON.stringify(t);e=r}catch(i){}0===e.length&&(e="(empty array)")}return"(<"+R(e)+">, no stack trace)"}function R(t){var e=41;return t.lengths||0>a||!n||!r||n!==r||s>=a||(at=function(t){if($.test(t))return!0;var e=O(t);return e&&e.fileName===n&&s<=e.line&&e.line<=a?!0:!1})}}function V(t){this._parent=t,this._promisesCreated=0;var e=this._length=1+(void 0===t?0:t._length);ut(this,V),e>32&&this.uncycle()}var H,D,I,L,N=e._async,U=t("./errors").Warning,B=t("./util"),M=t("./es5"),q=B.canAttachTrace,$=/[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/,Q=/\((?:timers\.js):\d+:\d+\)/,G=/[\/<\(](.+?):(\d+):(\d+)\)?\s*$/,z=null,X=null,W=!1,K=!(0==B.env("BLUEBIRD_DEBUG")||!B.env("BLUEBIRD_DEBUG")&&"development"!==B.env("NODE_ENV")),J=!(0==B.env("BLUEBIRD_WARNINGS")||!K&&!B.env("BLUEBIRD_WARNINGS")),Y=!(0==B.env("BLUEBIRD_LONG_STACK_TRACES")||!K&&!B.env("BLUEBIRD_LONG_STACK_TRACES")),Z=0!=B.env("BLUEBIRD_W_FORGOTTEN_RETURN")&&(J||!!B.env("BLUEBIRD_W_FORGOTTEN_RETURN"));!function(){function t(){for(var t=0;t0},e.prototype._setRejectionIsUnhandled=function(){this._bitField=1048576|this._bitField},e.prototype._unsetRejectionIsUnhandled=function(){this._bitField=-1048577&this._bitField,this._isUnhandledRejectionNotified()&&(this._unsetUnhandledRejectionIsNotified(),this._notifyUnhandledRejectionIsHandled())},e.prototype._isRejectionUnhandled=function(){return(1048576&this._bitField)>0},e.prototype._warn=function(t,e,n){return b(t,e,n||this)},e.onPossiblyUnhandledRejection=function(t){var n=e._getContext();D=B.contextBind(n,t)},e.onUnhandledRejectionHandled=function(t){var n=e._getContext();H=B.contextBind(n,t)};var tt=function(){};e.longStackTraces=function(){if(N.haveItemsQueued()&&!lt.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");if(!lt.longStackTraces&&S()){var t=e.prototype._captureStackTrace,r=e.prototype._attachExtraTrace,i=e.prototype._dereferenceTrace;lt.longStackTraces=!0,tt=function(){if(N.haveItemsQueued()&&!lt.longStackTraces)throw new Error("cannot enable long stack traces after promises have been created\n\n See http://goo.gl/MqrFmX\n");e.prototype._captureStackTrace=t,e.prototype._attachExtraTrace=r,e.prototype._dereferenceTrace=i,n.deactivateLongStackTraces(),lt.longStackTraces=!1},e.prototype._captureStackTrace=d,e.prototype._attachExtraTrace=v,e.prototype._dereferenceTrace=y,n.activateLongStackTraces()}},e.hasLongStackTraces=function(){return lt.longStackTraces&&S()};var et={unhandledrejection:{before:function(){var t=B.global.onunhandledrejection;return B.global.onunhandledrejection=null,t},after:function(t){B.global.onunhandledrejection=t}},rejectionhandled:{before:function(){var t=B.global.onrejectionhandled;return B.global.onrejectionhandled=null,t},after:function(t){B.global.onrejectionhandled=t}}},nt=function(){var t=function(t,e){if(!t)return!B.global.dispatchEvent(e);var n;try{return n=t.before(),!B.global.dispatchEvent(e)}finally{t.after(n)}};try{if("function"==typeof CustomEvent){var e=new CustomEvent("CustomEvent");return B.global.dispatchEvent(e),function(e,n){e=e.toLowerCase();var r={detail:n,cancelable:!0},i=new CustomEvent(e,r);return M.defineProperty(i,"promise",{value:n.promise}),M.defineProperty(i,"reason",{value:n.reason}),t(et[e],i)}}if("function"==typeof Event){var e=new Event("CustomEvent");return B.global.dispatchEvent(e),function(e,n){e=e.toLowerCase();var r=new Event(e,{cancelable:!0});return r.detail=n,M.defineProperty(r,"promise",{value:n.promise}),M.defineProperty(r,"reason",{value:n.reason}),t(et[e],r)}}var e=document.createEvent("CustomEvent");return e.initCustomEvent("testingtheevent",!1,!0,{}),B.global.dispatchEvent(e),function(e,n){e=e.toLowerCase();var r=document.createEvent("CustomEvent");return r.initCustomEvent(e,!1,!0,n),t(et[e],r)}}catch(n){}return function(){return!1}}(),rt=function(){return B.isNode?function(){return process.emit.apply(process,arguments)}:B.global?function(t){var e="on"+t.toLowerCase(),n=B.global[e];return n?(n.apply(B.global,[].slice.call(arguments,1)),!0):!1}:function(){return!1}}(),it={promiseCreated:o,promiseFulfilled:o,promiseRejected:o,promiseResolved:o,promiseCancelled:o,promiseChained:function(t,e,n){return{promise:e,child:n}},warning:function(t,e){return{warning:e}},unhandledRejection:function(t,e,n){return{reason:e,promise:n}},rejectionHandled:o},ot=function(t){var e=!1;try{e=rt.apply(null,arguments)}catch(n){N.throwLater(n),e=!0}var r=!1;try{r=nt(t,it[t].apply(null,arguments))}catch(n){N.throwLater(n),r=!0}return r||e};e.config=function(t){if(t=Object(t),"longStackTraces"in t&&(t.longStackTraces?e.longStackTraces():!t.longStackTraces&&e.hasLongStackTraces()&&tt()),"warnings"in t){var n=t.warnings;lt.warnings=!!n,Z=lt.warnings,B.isObject(n)&&"wForgottenReturn"in n&&(Z=!!n.wForgottenReturn)}if("cancellation"in t&&t.cancellation&&!lt.cancellation){if(N.haveItemsQueued())throw new Error("cannot enable cancellation after promises are in use");e.prototype._clearCancellationData=p,e.prototype._propagateFrom=f,e.prototype._onCancel=u,e.prototype._setOnCancel=l,e.prototype._attachCancellationCallback=c,e.prototype._execute=a,st=f,lt.cancellation=!0}if("monitoring"in t&&(t.monitoring&&!lt.monitoring?(lt.monitoring=!0,e.prototype._fireEvent=ot):!t.monitoring&<.monitoring&&(lt.monitoring=!1,e.prototype._fireEvent=s)),"asyncHooks"in t&&B.nodeSupportsAsyncResource){var o=lt.asyncHooks,h=!!t.asyncHooks;o!==h&&(lt.asyncHooks=h,h?r():i())}return e},e.prototype._fireEvent=s,e.prototype._execute=function(t,e,n){try{t(e,n)}catch(r){return r}},e.prototype._onCancel=function(){},e.prototype._setOnCancel=function(t){},e.prototype._attachCancellationCallback=function(t){},e.prototype._captureStackTrace=function(){},e.prototype._attachExtraTrace=function(){},e.prototype._dereferenceTrace=function(){},e.prototype._clearCancellationData=function(){},e.prototype._propagateFrom=function(t,e){};var st=h,at=function(){return!1},ct=/[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/;B.inherits(V,Error),n.CapturedTrace=V,V.prototype.uncycle=function(){var t=this._length;if(!(2>t)){for(var e=[],n={},r=0,i=this;void 0!==i;++r)e.push(i),i=i._parent;t=this._length=r;for(var r=t-1;r>=0;--r){var o=e[r].stack;void 0===n[o]&&(n[o]=r)}for(var r=0;t>r;++r){var s=e[r].stack,a=n[s];if(void 0!==a&&a!==r){a>0&&(e[a-1]._parent=void 0,e[a-1]._length=1),e[r]._parent=void 0,e[r]._length=1;var c=r>0?e[r-1]:this;t-1>a?(c._parent=e[a+1],c._parent.uncycle(),c._length=c._parent._length+1):(c._parent=void 0,c._length=1);for(var u=c._length+1,l=r-2;l>=0;--l)e[l]._length=u,u++;return}}}},V.prototype.attachExtraTrace=function(t){if(!t.__stackCleaned__){this.uncycle();for(var e=F(t),n=e.message,r=[e.stack],i=this;void 0!==i;)r.push(k(i.stack.split("\n"))),i=i._parent;j(r),C(r),B.notEnumerableProp(t,"stack",w(n,r)),B.notEnumerableProp(t,"__stackCleaned__",!0)}};var ut=function(){var t=/^\s*at\s*/,e=function(t,e){return"string"==typeof t?t:void 0!==e.name&&void 0!==e.message?e.toString():P(e)};if("number"==typeof Error.stackTraceLimit&&"function"==typeof Error.captureStackTrace){Error.stackTraceLimit+=6,z=t,X=e;var n=Error.captureStackTrace;return at=function(t){return $.test(t)},function(t,e){Error.stackTraceLimit+=6,n(t,e),Error.stackTraceLimit-=6}}var r=new Error;if("string"==typeof r.stack&&r.stack.split("\n")[0].indexOf("stackDetection@")>=0)return z=/@/,X=e,W=!0,function(t){t.stack=(new Error).stack};var i;try{throw new Error}catch(o){i="stack"in o}return"stack"in r||!i||"number"!=typeof Error.stackTraceLimit?(X=function(t,e){return"string"==typeof t?t:"object"!=typeof e&&"function"!=typeof e||void 0===e.name||void 0===e.message?P(e):e.toString()},null):(z=t,X=e,function(t){Error.stackTraceLimit+=6;try{throw new Error}catch(e){t.stack=e.stack}Error.stackTraceLimit-=6})}([]);"undefined"!=typeof console&&"undefined"!=typeof console.warn&&(I=function(t){console.warn(t)},B.isNode&&process.stderr.isTTY?I=function(t,e){var n=e?"":"";console.warn(n+t+"\n")}:B.isNode||"string"!=typeof(new Error).stack||(I=function(t,e){console.warn("%c"+t,e?"color: darkorange":"color: red")}));var lt={warnings:J,longStackTraces:!1,cancellation:!1,monitoring:!1,asyncHooks:!1};return Y&&e.longStackTraces(),{asyncHooks:function(){return lt.asyncHooks},longStackTraces:function(){return lt.longStackTraces},warnings:function(){return lt.warnings},cancellation:function(){return lt.cancellation},monitoring:function(){return lt.monitoring},propagateFromFunction:function(){return st},boundValueFunction:function(){return _},checkForgottenReturns:g,setBounds:A,warn:b,deprecated:m,CapturedTrace:V,fireDomEvent:nt,fireGlobalEvent:rt}}},{"./errors":12,"./es5":13,"./util":36}],10:[function(t,e,n){"use strict";e.exports=function(t){function e(){return this.value}function n(){throw this.reason}t.prototype["return"]=t.prototype.thenReturn=function(n){return n instanceof t&&n.suppressUnhandledRejections(),this._then(e,void 0,void 0,{value:n},void 0)},t.prototype["throw"]=t.prototype.thenThrow=function(t){return this._then(n,void 0,void 0,{reason:t},void 0)},t.prototype.catchThrow=function(t){if(arguments.length<=1)return this._then(void 0,n,void 0,{reason:t},void 0);var e=arguments[1],r=function(){throw e};return this.caught(t,r)},t.prototype.catchReturn=function(n){if(arguments.length<=1)return n instanceof t&&n.suppressUnhandledRejections(),this._then(void 0,e,void 0,{value:n},void 0);var r=arguments[1];r instanceof t&&r.suppressUnhandledRejections();var i=function(){return r};return this.caught(n,i)}}},{}],11:[function(t,e,n){"use strict";e.exports=function(t,e){function n(){return o(this)}function r(t,n){return i(t,n,e,e)}var i=t.reduce,o=t.all;t.prototype.each=function(t){return i(this,t,e,0)._then(n,void 0,void 0,this,void 0)},t.prototype.mapSeries=function(t){return i(this,t,e,e)},t.each=function(t,r){return i(t,r,e,0)._then(n,void 0,void 0,t,void 0)},t.mapSeries=r}},{}],12:[function(t,e,n){"use strict";function r(t,e){function n(r){return this instanceof n?(p(this,"message","string"==typeof r?r:e),p(this,"name",t),void(Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):Error.call(this))):new n(r)}return l(n,Error),n}function i(t){return this instanceof i?(p(this,"name","OperationalError"),p(this,"message",t),this.cause=t,this.isOperational=!0,void(t instanceof Error?(p(this,"message",t.message),p(this,"stack",t.stack)):Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor))):new i(t)}var o,s,a=t("./es5"),c=a.freeze,u=t("./util"),l=u.inherits,p=u.notEnumerableProp,f=r("Warning","warning"),h=r("CancellationError","cancellation error"),_=r("TimeoutError","timeout error"),d=r("AggregateError","aggregate error");try{o=TypeError,s=RangeError}catch(v){o=r("TypeError","type error"),s=r("RangeError","range error")}for(var y="join pop push shift unshift slice filter forEach some every map indexOf lastIndexOf reduce reduceRight sort reverse".split(" "),g=0;g1?t.cancelPromise._reject(e):t.cancelPromise._cancel(),t.cancelPromise=null,!0):!1}function a(){return u.call(this,this.promise._target()._settledValue())}function c(t){return s(this,t)?void 0:(f.e=t,f)}function u(t){var i=this.promise,u=this.handler;if(!this.called){this.called=!0;var l=this.isFinallyHandler()?u.call(i._boundValue()):u.call(i._boundValue(),t);if(l===r)return l;if(void 0!==l){i._setReturnedNonUndefined();var h=n(l,i);if(h instanceof e){if(null!=this.cancelPromise){if(h._isCancelled()){var _=new p("late cancellation observer");return i._attachExtraTrace(_),f.e=_,f}h.isPending()&&h._attachCancellationCallback(new o(this))}return h._then(a,c,void 0,this,void 0)}}}return i.isRejected()?(s(this),f.e=t,f):(s(this),t)}var l=t("./util"),p=e.CancellationError,f=l.errorObj,h=t("./catch_filter")(r);return i.prototype.isFinallyHandler=function(){return 0===this.type},o.prototype._resultCancelled=function(){s(this.finallyHandler)},e.prototype._passThrough=function(t,e,n,r){return"function"!=typeof t?this.then():this._then(n,r,void 0,new i(this,e,t),void 0)},e.prototype.lastly=e.prototype["finally"]=function(t){return this._passThrough(t,0,u,u)},e.prototype.tap=function(t){return this._passThrough(t,1,u)},e.prototype.tapCatch=function(t){var n=arguments.length;if(1===n)return this._passThrough(t,1,void 0,u);var r,i=new Array(n-1),o=0;for(r=0;n-1>r;++r){var s=arguments[r];if(!l.isObject(s))return e.reject(new TypeError("tapCatch statement predicate: expecting an object but got "+l.classString(s)));i[o++]=s}i.length=o;var a=arguments[r];return this._passThrough(h(i,a,this),1,void 0,u)},i}},{"./catch_filter":7,"./util":36}],16:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r){for(var o=0;o0&&"function"==typeof arguments[e]){t=arguments[e];var r}var i=[].slice.call(arguments);t&&i.pop();var r=new n(i).promise();return void 0!==t?r.spread(t):r}}},{"./util":36}],18:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r,i){this.constructor$(t),this._promise._captureStackTrace();var s=e._getContext();if(this._callback=u.contextBind(s,n),this._preservedValues=i===o?new Array(this.length()):null,this._limit=r,this._inFlight=0,this._queue=[],f.invoke(this._asyncInit,this,void 0),u.isArray(t))for(var a=0;a=1?s:0,new a(t,n,s,o).promise()}var u=t("./util"),l=u.tryCatch,p=u.errorObj,f=e._async;u.inherits(a,n),a.prototype._asyncInit=function(){this._init$(void 0,-2)},a.prototype._init=function(){},a.prototype._promiseFulfilled=function(t,n){var r=this._values,o=this.length(),a=this._preservedValues,c=this._limit;if(0>n){if(n=-1*n-1,r[n]=t,c>=1&&(this._inFlight--,this._drainQueue(),this._isResolved()))return!0}else{if(c>=1&&this._inFlight>=c)return r[n]=t,this._queue.push(n),!1;null!==a&&(a[n]=t);var u=this._promise,f=this._callback,h=u._boundValue();u._pushContext();var _=l(f).call(h,t,n,o),d=u._popContext();if(s.checkForgottenReturns(_,d,null!==a?"Promise.filter":"Promise.map",u),_===p)return this._reject(_.e),!0;var v=i(_,this._promise);if(v instanceof e){v=v._target();var y=v._bitField;if(0===(50397184&y))return c>=1&&this._inFlight++,r[n]=v,v._proxy(this,-1*(n+1)),!1;if(0===(33554432&y))return 0!==(16777216&y)?(this._reject(v._reason()),!0):(this._cancel(),!0);_=v._value()}r[n]=_}var g=++this._totalResolved;return g>=o?(null!==a?this._filter(r,a):this._resolve(r),!0):!1},a.prototype._drainQueue=function(){for(var t=this._queue,e=this._limit,n=this._values;t.length>0&&this._inFlighto;++o)t[o]&&(r[i++]=e[o]);r.length=i,this._resolve(r)},a.prototype.preservedValues=function(){return this._preservedValues},e.prototype.map=function(t,e){return c(this,t,e,null)},e.map=function(t,e,n,r){return c(t,e,n,r)}}},{"./util":36}],19:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){var s=t("./util"),a=s.tryCatch;e.method=function(t){if("function"!=typeof t)throw new e.TypeError("expecting a function but got "+s.classString(t));return function(){var r=new e(n);r._captureStackTrace(),r._pushContext();var i=a(t).apply(this,arguments),s=r._popContext();return o.checkForgottenReturns(i,s,"Promise.method",r),r._resolveFromSyncValue(i),r}},e.attempt=e["try"]=function(t){if("function"!=typeof t)return i("expecting a function but got "+s.classString(t));var r=new e(n);r._captureStackTrace(),r._pushContext();var c;if(arguments.length>1){o.deprecated("calling Promise.try with more than 1 argument");var u=arguments[1],l=arguments[2];c=s.isArray(u)?a(t).apply(l,u):a(t).call(l,u)}else c=a(t)();var p=r._popContext();return o.checkForgottenReturns(c,p,"Promise.try",r),r._resolveFromSyncValue(c),r},e.prototype._resolveFromSyncValue=function(t){t===s.errorObj?this._rejectCallback(t.e,!1):this._resolveCallback(t,!0)}}},{"./util":36}],20:[function(t,e,n){"use strict";function r(t){return t instanceof Error&&l.getPrototypeOf(t)===Error.prototype}function i(t){var e;if(r(t)){e=new u(t),e.name=t.name,e.message=t.message,e.stack=t.stack;for(var n=l.keys(t),i=0;i1){var n,r=new Array(e-1),i=0;for(n=0;e-1>n;++n){var o=arguments[n];if(!f.isObject(o))return l("Catch statement predicate: expecting an object but got "+f.classString(o));r[i++]=o}if(r.length=i,t=arguments[n],"function"!=typeof t)throw new E("The last argument to .catch() must be a function, got "+f.toString(t));return this.then(void 0,D(r,t,this))}return this.then(void 0,t)},i.prototype.reflect=function(){return this._then(u,u,void 0,this,void 0)},i.prototype.then=function(t,e){if(V.warnings()&&arguments.length>0&&"function"!=typeof t&&"function"!=typeof e){var n=".then() only accepts functions but was passed: "+f.classString(t);arguments.length>1&&(n+=", "+f.classString(e)),this._warn(n)}return this._then(t,e,void 0,void 0,void 0)},i.prototype.done=function(t,e){var n=this._then(t,e,void 0,void 0,void 0);n._setIsFinal()},i.prototype.spread=function(t){return"function"!=typeof t?l("expecting a function but got "+f.classString(t)):this.all()._then(t,void 0,void 0,T,void 0)},i.prototype.toJSON=function(){var t={isFulfilled:!1,isRejected:!1,fulfillmentValue:void 0,rejectionReason:void 0};return this.isFulfilled()?(t.fulfillmentValue=this.value(),t.isFulfilled=!0):this.isRejected()&&(t.rejectionReason=this.reason(),t.isRejected=!0),t},i.prototype.all=function(){return arguments.length>0&&this._warn(".all() was passed arguments but it does not take any"),new S(this).promise()},i.prototype.error=function(t){return this.caught(f.originatesFromRejection,t)},i.getNewLibraryCopy=e.exports,i.is=function(t){return t instanceof i},i.fromNode=i.fromCallback=function(t){var e=new i(x);e._captureStackTrace();var n=arguments.length>1?!!Object(arguments[1]).multiArgs:!1,r=N(t)(I(e,n));return r===L&&e._rejectCallback(r.e,!0),e._isFateSealed()||e._setAsyncGuaranteed(),e},i.all=function(t){return new S(t).promise()},i.cast=function(t){var e=R(t);return e instanceof i||(e=new i(x),e._captureStackTrace(),e._setFulfilled(),e._rejectionHandler0=t),e},i.resolve=i.fulfilled=i.cast,i.reject=i.rejected=function(t){var e=new i(x);return e._captureStackTrace(),e._rejectCallback(t,!0),e},i.setScheduler=function(t){if("function"!=typeof t)throw new E("expecting a function but got "+f.classString(t));return j.setScheduler(t)},i.prototype._then=function(t,e,n,r,o){var s=void 0!==o,a=s?o:new i(x),c=this._target(),u=c._bitField;s||(a._propagateFrom(this,3),a._captureStackTrace(),void 0===r&&0!==(2097152&this._bitField)&&(r=0!==(50397184&u)?this._boundValue():c===this?void 0:this._boundTo),this._fireEvent("promiseChained",this,a));var l=g();if(0!==(50397184&u)){var p,h,_=c._settlePromiseCtx;0!==(33554432&u)?(h=c._rejectionHandler0,p=t):0!==(16777216&u)?(h=c._fulfillmentHandler0,p=e,c._unsetRejectionIsUnhandled()):(_=c._settlePromiseLateCancellationObserver,h=new F("late cancellation observer"),c._attachExtraTrace(h),p=e),j.invoke(_,c,{handler:f.contextBind(l,p),promise:a,receiver:r,value:h})}else c._addCallbacks(t,e,a,r,l);return a},i.prototype._length=function(){return 65535&this._bitField},i.prototype._isFateSealed=function(){return 0!==(117506048&this._bitField)},i.prototype._isFollowing=function(){return 67108864===(67108864&this._bitField)},i.prototype._setLength=function(t){this._bitField=-65536&this._bitField|65535&t},i.prototype._setFulfilled=function(){this._bitField=33554432|this._bitField,this._fireEvent("promiseFulfilled",this)},i.prototype._setRejected=function(){this._bitField=16777216|this._bitField,this._fireEvent("promiseRejected",this)},i.prototype._setFollowing=function(){this._bitField=67108864|this._bitField,this._fireEvent("promiseResolved",this)},i.prototype._setIsFinal=function(){this._bitField=4194304|this._bitField},i.prototype._isFinal=function(){return(4194304&this._bitField)>0},i.prototype._unsetCancelled=function(){this._bitField=-65537&this._bitField},i.prototype._setCancelled=function(){this._bitField=65536|this._bitField,this._fireEvent("promiseCancelled",this)},i.prototype._setWillBeCancelled=function(){this._bitField=8388608|this._bitField},i.prototype._setAsyncGuaranteed=function(){if(!j.hasCustomScheduler()){var t=this._bitField;this._bitField=t|(536870912&t)>>2^134217728}},i.prototype._setNoAsyncGuarantee=function(){this._bitField=-134217729&(536870912|this._bitField)},i.prototype._receiverAt=function(t){var e=0===t?this._receiver0:this[4*t-4+3];return e===p?void 0:void 0===e&&this._isBound()?this._boundValue():e},i.prototype._promiseAt=function(t){return this[4*t-4+2]},i.prototype._fulfillmentHandlerAt=function(t){return this[4*t-4+0]},i.prototype._rejectionHandlerAt=function(t){return this[4*t-4+1]},i.prototype._boundValue=function(){},i.prototype._migrateCallback0=function(t){var e=(t._bitField,t._fulfillmentHandler0),n=t._rejectionHandler0,r=t._promise0,i=t._receiverAt(0);void 0===i&&(i=p),this._addCallbacks(e,n,r,i,null)},i.prototype._migrateCallbackAt=function(t,e){var n=t._fulfillmentHandlerAt(e),r=t._rejectionHandlerAt(e),i=t._promiseAt(e),o=t._receiverAt(e);void 0===o&&(o=p),this._addCallbacks(n,r,i,o,null)},i.prototype._addCallbacks=function(t,e,n,r,i){var o=this._length();if(o>=65531&&(o=0,this._setLength(0)),0===o)this._promise0=n,this._receiver0=r,"function"==typeof t&&(this._fulfillmentHandler0=f.contextBind(i,t)),"function"==typeof e&&(this._rejectionHandler0=f.contextBind(i,e));else{var s=4*o-4;this[s+2]=n,this[s+3]=r,"function"==typeof t&&(this[s+0]=f.contextBind(i,t)),"function"==typeof e&&(this[s+1]=f.contextBind(i,e))}return this._setLength(o+1),o},i.prototype._proxy=function(t,e){this._addCallbacks(void 0,void 0,e,t,null)},i.prototype._resolveCallback=function(t,e){if(0===(117506048&this._bitField)){if(t===this)return this._rejectCallback(c(),!1);var n=R(t,this);if(!(n instanceof i))return this._fulfill(t);e&&this._propagateFrom(n,2);var r=n._target();if(r===this)return void this._reject(c());var o=r._bitField;if(0===(50397184&o)){var s=this._length();s>0&&r._migrateCallback0(this);for(var a=1;s>a;++a)r._migrateCallbackAt(this,a);this._setFollowing(),this._setLength(0),this._setFollowee(n)}else if(0!==(33554432&o))this._fulfill(r._value());else if(0!==(16777216&o))this._reject(r._reason());else{var u=new F("late cancellation observer");r._attachExtraTrace(u),this._reject(u)}}},i.prototype._rejectCallback=function(t,e,n){var r=f.ensureErrorObject(t),i=r===t;if(!i&&!n&&V.warnings()){var o="a promise was rejected with a non-error: "+f.classString(t);this._warn(o,!0)}this._attachExtraTrace(r,e?i:!1),this._reject(t)},i.prototype._resolveFromExecutor=function(t){if(t!==x){var e=this;this._captureStackTrace(),this._pushContext();var n=!0,r=this._execute(t,function(t){e._resolveCallback(t)},function(t){e._rejectCallback(t,n)});n=!1,this._popContext(),void 0!==r&&e._rejectCallback(r,!0)}},i.prototype._settlePromiseFromHandler=function(t,e,n,r){var i=r._bitField;if(0===(65536&i)){r._pushContext();var o;e===T?n&&"number"==typeof n.length?o=N(t).apply(this._boundValue(),n):(o=L,o.e=new E("cannot .spread() a non-array: "+f.classString(n))):o=N(t).call(e,n);var s=r._popContext();i=r._bitField,0===(65536&i)&&(o===P?r._reject(n):o===L?r._rejectCallback(o.e,!1):(V.checkForgottenReturns(o,s,"",r,this),r._resolveCallback(o)))}},i.prototype._target=function(){for(var t=this;t._isFollowing();)t=t._followee();return t},i.prototype._followee=function(){return this._rejectionHandler0},i.prototype._setFollowee=function(t){this._rejectionHandler0=t},i.prototype._settlePromise=function(t,e,r,o){var s=t instanceof i,a=this._bitField,c=0!==(134217728&a);0!==(65536&a)?(s&&t._invokeInternalOnCancel(),r instanceof H&&r.isFinallyHandler()?(r.cancelPromise=t,N(e).call(r,o)===L&&t._reject(L.e)):e===u?t._fulfill(u.call(r)):r instanceof n?r._promiseCancelled(t):s||t instanceof S?t._cancel():r.cancel()):"function"==typeof e?s?(c&&t._setAsyncGuaranteed(),this._settlePromiseFromHandler(e,r,o,t)):e.call(r,o,t):r instanceof n?r._isResolved()||(0!==(33554432&a)?r._promiseFulfilled(o,t):r._promiseRejected(o,t)):s&&(c&&t._setAsyncGuaranteed(),0!==(33554432&a)?t._fulfill(o):t._reject(o))},i.prototype._settlePromiseLateCancellationObserver=function(t){var e=t.handler,n=t.promise,r=t.receiver,o=t.value;"function"==typeof e?n instanceof i?this._settlePromiseFromHandler(e,r,o,n):e.call(r,o,n):n instanceof i&&n._reject(o)},i.prototype._settlePromiseCtx=function(t){this._settlePromise(t.promise,t.handler,t.receiver,t.value)},i.prototype._settlePromise0=function(t,e,n){var r=this._promise0,i=this._receiverAt(0);this._promise0=void 0,this._receiver0=void 0,this._settlePromise(r,t,i,e)},i.prototype._clearCallbackDataAtIndex=function(t){var e=4*t-4;this[e+2]=this[e+3]=this[e+0]=this[e+1]=void 0},i.prototype._fulfill=function(t){var e=this._bitField;if(!((117506048&e)>>>16)){if(t===this){var n=c();return this._attachExtraTrace(n),this._reject(n)}this._setFulfilled(),this._rejectionHandler0=t,(65535&e)>0&&(0!==(134217728&e)?this._settlePromises():j.settlePromises(this),this._dereferenceTrace())}},i.prototype._reject=function(t){var e=this._bitField;if(!((117506048&e)>>>16))return this._setRejected(),this._fulfillmentHandler0=t,this._isFinal()?j.fatalError(t,f.isNode):void((65535&e)>0?j.settlePromises(this):this._ensurePossibleRejectionHandled())},i.prototype._fulfillPromises=function(t,e){for(var n=1;t>n;n++){var r=this._fulfillmentHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._rejectPromises=function(t,e){for(var n=1;t>n;n++){var r=this._rejectionHandlerAt(n),i=this._promiseAt(n),o=this._receiverAt(n);this._clearCallbackDataAtIndex(n),this._settlePromise(i,r,o,e)}},i.prototype._settlePromises=function(){var t=this._bitField,e=65535&t;if(e>0){if(0!==(16842752&t)){var n=this._fulfillmentHandler0;this._settlePromise0(this._rejectionHandler0,n,t),this._rejectPromises(e,n)}else{var r=this._rejectionHandler0;this._settlePromise0(this._fulfillmentHandler0,r,t),this._fulfillPromises(e,r)}this._setLength(0)}this._clearCancellationData()},i.prototype._settledValue=function(){var t=this._bitField;return 0!==(33554432&t)?this._rejectionHandler0:0!==(16777216&t)?this._fulfillmentHandler0:void 0},"undefined"!=typeof Symbol&&Symbol.toStringTag&&w.defineProperty(i.prototype,Symbol.toStringTag,{get:function(){return"Object"}}),i.defer=i.pending=function(){V.deprecated("Promise.defer","new Promise");var t=new i(x);return{promise:t,resolve:o,reject:s}},f.notEnumerableProp(i,"_makeSelfResolutionError",c),t("./method")(i,x,R,l,V),t("./bind")(i,x,R,V),t("./cancel")(i,S,l,V),t("./direct_resolve")(i),t("./synchronous_inspection")(i),t("./join")(i,S,R,x,j),i.Promise=i,i.version="3.7.2",t("./call_get.js")(i),t("./generators.js")(i,l,x,R,n,V),t("./map.js")(i,S,l,R,x,V),t("./nodeify.js")(i),t("./promisify.js")(i,x),t("./props.js")(i,S,R,l),t("./race.js")(i,x,R,l),t("./reduce.js")(i,S,l,R,x,V),t("./settle.js")(i,S,V),t("./some.js")(i,S,l),t("./timers.js")(i,x,V),t("./using.js")(i,l,R,A,x,V),t("./any.js")(i),t("./each.js")(i,x),t("./filter.js")(i,x),f.toFastProperties(i),f.toFastProperties(i.prototype),a({a:1}),a({b:2}),a({c:3}),a(1),a(function(){}),a(void 0),a(!1),a(new i(x)),V.setBounds(C.firstLineError,f.lastLineError),i}},{"./any.js":1,"./async":2,"./bind":3,"./call_get.js":5,"./cancel":6,"./catch_filter":7,"./context":8,"./debuggability":9,"./direct_resolve":10,"./each.js":11,"./errors":12,"./es5":13,"./filter.js":14,"./finally":15,"./generators.js":16,"./join":17,"./map.js":18,"./method":19,"./nodeback":20,"./nodeify.js":21,"./promise_array":23,"./promisify.js":24,"./props.js":25,"./race.js":27,"./reduce.js":28,"./settle.js":30,"./some.js":31,"./synchronous_inspection":32,"./thenables":33,"./timers.js":34,"./using.js":35,"./util":36,async_hooks:void 0}],23:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o){function s(t){switch(t){case-2:return[];case-3:return{};case-6:return new Map}}function a(t){var r=this._promise=new e(n);t instanceof e&&(r._propagateFrom(t,3),t.suppressUnhandledRejections()),r._setOnCancel(this),this._values=t,this._length=0,this._totalResolved=0,this._init(void 0,-2)}var c=t("./util");c.isArray;return c.inherits(a,o),a.prototype.length=function(){return this._length},a.prototype.promise=function(){return this._promise},a.prototype._init=function u(t,n){var o=r(this._values,this._promise);if(o instanceof e){o=o._target();var a=o._bitField;if(this._values=o,0===(50397184&a))return this._promise._setAsyncGuaranteed(),o._then(u,this._reject,void 0,this,n);if(0===(33554432&a))return 0!==(16777216&a)?this._reject(o._reason()):this._cancel();o=o._value()}if(o=c.asArray(o),null===o){var l=i("expecting an array or an iterable object but got "+c.classString(o)).reason();return void this._promise._rejectCallback(l,!1)}return 0===o.length?void(-5===n?this._resolveEmptyArray():this._resolve(s(n))):void this._iterate(o)},a.prototype._iterate=function(t){var n=this.getActualLength(t.length);this._length=n,this._values=this.shouldCopyValues()?new Array(n):this._values;for(var i=this._promise,o=!1,s=null,a=0;n>a;++a){var c=r(t[a],i);c instanceof e?(c=c._target(),s=c._bitField):s=null,o?null!==s&&c.suppressUnhandledRejections():null!==s?0===(50397184&s)?(c._proxy(this,a),this._values[a]=c):o=0!==(33554432&s)?this._promiseFulfilled(c._value(),a):0!==(16777216&s)?this._promiseRejected(c._reason(),a):this._promiseCancelled(a):o=this._promiseFulfilled(c,a)}o||i._setAsyncGuaranteed()},a.prototype._isResolved=function(){return null===this._values},a.prototype._resolve=function(t){this._values=null,this._promise._fulfill(t)},a.prototype._cancel=function(){!this._isResolved()&&this._promise._isCancellable()&&(this._values=null,this._promise._cancel())},a.prototype._reject=function(t){this._values=null,this._promise._rejectCallback(t,!1)},a.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},a.prototype._promiseCancelled=function(){return this._cancel(),!0},a.prototype._promiseRejected=function(t){return this._totalResolved++,this._reject(t),!0},a.prototype._resultCancelled=function(){if(!this._isResolved()){var t=this._values;if(this._cancel(),t instanceof e)t.cancel();else for(var n=0;nc;c+=2){var l=s[c],p=s[c+1],_=l+e;if(r===E)t[_]=E(l,f,l,p,e,i);else{var d=r(p,function(){return E(l,f,l,p,e,i)});h.notEnumerableProp(d,"__isPromisified__",!0),t[_]=d}}return h.toFastProperties(t),t}function l(t,e,n){return E(t,e,void 0,t,null,n)}var p,f={},h=t("./util"),_=t("./nodeback"),d=h.withAppended,v=h.maybeWrapAsError,y=h.canEvaluate,g=t("./errors").TypeError,m="Async",b={__isPromisified__:!0},w=["arity","length","name","arguments","caller","callee","prototype","__isPromisified__"],C=new RegExp("^(?:"+w.join("|")+")$"),j=function(t){return h.isIdentifier(t)&&"_"!==t.charAt(0)&&"constructor"!==t},k=function(t){return t.replace(/([$])/,"\\$")},E=y?p:c;e.promisify=function(t,e){if("function"!=typeof t)throw new g("expecting a function but got "+h.classString(t));if(i(t))return t;e=Object(e);var n=void 0===e.context?f:e.context,o=!!e.multiArgs,s=l(t,n,o);return h.copyDescriptors(t,s,r),s},e.promisifyAll=function(t,e){if("function"!=typeof t&&"object"!=typeof t)throw new g("the target of promisifyAll must be an object or a function\n\n See http://goo.gl/MqrFmX\n");e=Object(e);var n=!!e.multiArgs,r=e.suffix;"string"!=typeof r&&(r=m);var i=e.filter;"function"!=typeof i&&(i=j);var o=e.promisifier;if("function"!=typeof o&&(o=E),!h.isIdentifier(r))throw new RangeError("suffix must be a valid identifier\n\n See http://goo.gl/MqrFmX\n");for(var s=h.inheritedDataKeys(t),a=0;ao;++o){var s=r[o];e[o]=t[s],e[o+i]=s}}this.constructor$(e),this._isMap=n,this._init$(void 0,n?-6:-3)}function s(t){var n,s=r(t);return u(s)?(n=s instanceof e?s._then(e.props,void 0,void 0,void 0,void 0):new o(s).promise(),s instanceof e&&n._propagateFrom(s,2),n):i("cannot await properties of a non-object\n\n See http://goo.gl/MqrFmX\n")}var a,c=t("./util"),u=c.isObject,l=t("./es5");"function"==typeof Map&&(a=Map);var p=function(){function t(t,r){this[e]=t,this[e+n]=r,e++}var e=0,n=0;return function(r){n=r.size,e=0;var i=new Array(2*r.size);return r.forEach(t,i),i}}(),f=function(t){for(var e=new a,n=t.length/2|0,r=0;n>r;++r){var i=t[n+r],o=t[r];e.set(i,o)}return e};c.inherits(o,n),o.prototype._init=function(){},o.prototype._promiseFulfilled=function(t,e){this._values[e]=t;var n=++this._totalResolved;if(n>=this._length){var r;if(this._isMap)r=f(this._values);else{r={};for(var i=this.length(),o=0,s=this.length();s>o;++o)r[this._values[o+i]]=this._values[o]}return this._resolve(r),!0}return!1},o.prototype.shouldCopyValues=function(){return!1},o.prototype.getActualLength=function(t){return t>>1},e.prototype.props=function(){return s(this)},e.props=function(t){return s(t)}}},{"./es5":13,"./util":36}],26:[function(t,e,n){"use strict";function r(t,e,n,r,i){for(var o=0;i>o;++o)n[o+r]=t[o+e],t[o+e]=void 0}function i(t){this._capacity=t,this._length=0,this._front=0}i.prototype._willBeOverCapacity=function(t){return this._capacityf;++f){var _=t[f];(void 0!==_||f in t)&&e.cast(_)._then(l,p,void 0,u,null)}return u}var s=t("./util"),a=function(t){return t.then(function(e){return o(e,t)})};e.race=function(t){return o(t,void 0)},e.prototype.race=function(){return o(this,void 0)}}},{"./util":36}],28:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t,n,r,i){this.constructor$(t);var s=e._getContext();this._fn=f.contextBind(s,n),void 0!==r&&(r=e.resolve(r),r._attachCancellationCallback(this)),this._initialValue=r,this._currentCancellable=null,i===o?this._eachValues=Array(this._length):0===i?this._eachValues=null:this._eachValues=void 0,this._promise._captureStackTrace(),this._init$(void 0,-5)}function c(t,e){this.isFulfilled()?e._resolve(t):e._reject(t)}function u(t,e,n,i){if("function"!=typeof e)return r("expecting a function but got "+f.classString(e));var o=new a(t,e,n,i);return o.promise()}function l(t){this.accum=t,this.array._gotAccum(t);var n=i(this.value,this.array._promise);return n instanceof e?(this.array._currentCancellable=n,n._then(p,void 0,void 0,this,void 0)):p.call(this,n)}function p(t){var n=this.array,r=n._promise,i=h(n._fn);r._pushContext();var o;o=void 0!==n._eachValues?i.call(r._boundValue(),t,this.index,this.length):i.call(r._boundValue(),this.accum,t,this.index,this.length),o instanceof e&&(n._currentCancellable=o);var a=r._popContext();return s.checkForgottenReturns(o,a,void 0!==n._eachValues?"Promise.each":"Promise.reduce",r),o}var f=t("./util"),h=f.tryCatch;f.inherits(a,n),a.prototype._gotAccum=function(t){void 0!==this._eachValues&&null!==this._eachValues&&t!==o&&this._eachValues.push(t)},a.prototype._eachComplete=function(t){return null!==this._eachValues&&this._eachValues.push(t),this._eachValues},a.prototype._init=function(){},a.prototype._resolveEmptyArray=function(){this._resolve(void 0!==this._eachValues?this._eachValues:this._initialValue)},a.prototype.shouldCopyValues=function(){return!1},a.prototype._resolve=function(t){this._promise._resolveCallback(t),this._values=null},a.prototype._resultCancelled=function(t){return t===this._initialValue?this._cancel():void(this._isResolved()||(this._resultCancelled$(),this._currentCancellable instanceof e&&this._currentCancellable.cancel(),this._initialValue instanceof e&&this._initialValue.cancel()))},a.prototype._iterate=function(t){this._values=t;var n,r,i=t.length;void 0!==this._initialValue?(n=this._initialValue,r=0):(n=e.resolve(t[0]),r=1),this._currentCancellable=n;for(var o=r;i>o;++o){var s=t[o];s instanceof e&&s.suppressUnhandledRejections()}if(!n.isRejected())for(;i>r;++r){var a={accum:null,value:t[r],index:r,length:i,array:this};n=n._then(l,void 0,void 0,a,void 0),0===(127&r)&&n._setNoAsyncGuarantee()}void 0!==this._eachValues&&(n=n._then(this._eachComplete,void 0,void 0,this,void 0)),n._then(c,c,void 0,n,this)},e.prototype.reduce=function(t,e){return u(this,t,e,null)},e.reduce=function(t,e,n,r){return u(t,e,n,r)}}},{"./util":36}],29:[function(t,e,n){"use strict";var r,i=t("./util"),o=function(){throw new Error("No async scheduler available\n\n See http://goo.gl/MqrFmX\n")},s=i.getNativePromise();if(i.isNode&&"undefined"==typeof MutationObserver){var a=global.setImmediate,c=process.nextTick;r=i.isRecentNode?function(t){a.call(global,t)}:function(t){c.call(process,t)}}else if("function"==typeof s&&"function"==typeof s.resolve){ +var u=s.resolve();r=function(t){u.then(t)}}else r="undefined"!=typeof MutationObserver&&("undefined"==typeof window||!window.navigator||!window.navigator.standalone&&!window.cordova)&&"classList"in document.documentElement?function(){var t=document.createElement("div"),e={attributes:!0},n=!1,r=document.createElement("div"),i=new MutationObserver(function(){t.classList.toggle("foo"),n=!1});i.observe(r,e);var o=function(){n||(n=!0,r.classList.toggle("foo"))};return function(n){var r=new MutationObserver(function(){r.disconnect(),n()});r.observe(t,e),o()}}():"undefined"!=typeof setImmediate?function(t){setImmediate(t)}:"undefined"!=typeof setTimeout?function(t){setTimeout(t,0)}:o;e.exports=r},{"./util":36}],30:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t)}var o=e.PromiseInspection,s=t("./util");s.inherits(i,n),i.prototype._promiseResolved=function(t,e){this._values[t]=e;var n=++this._totalResolved;return n>=this._length?(this._resolve(this._values),!0):!1},i.prototype._promiseFulfilled=function(t,e){var n=new o;return n._bitField=33554432,n._settledValueField=t,this._promiseResolved(e,n)},i.prototype._promiseRejected=function(t,e){var n=new o;return n._bitField=16777216,n._settledValueField=t,this._promiseResolved(e,n)},e.settle=function(t){return r.deprecated(".settle()",".reflect()"),new i(t).promise()},e.allSettled=function(t){return new i(t).promise()},e.prototype.settle=function(){return e.settle(this)}}},{"./util":36}],31:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.constructor$(t),this._howMany=0,this._unwrap=!1,this._initialized=!1}function o(t,e){if((0|e)!==e||0>e)return r("expecting a positive integer\n\n See http://goo.gl/MqrFmX\n");var n=new i(t),o=n.promise();return n.setHowMany(e),n.init(),o}var s=t("./util"),a=t("./errors").RangeError,c=t("./errors").AggregateError,u=s.isArray,l={};s.inherits(i,n),i.prototype._init=function(){if(this._initialized){if(0===this._howMany)return void this._resolve([]);this._init$(void 0,-5);var t=u(this._values);!this._isResolved()&&t&&this._howMany>this._canPossiblyFulfill()&&this._reject(this._getRangeError(this.length()))}},i.prototype.init=function(){this._initialized=!0,this._init()},i.prototype.setUnwrap=function(){this._unwrap=!0},i.prototype.howMany=function(){return this._howMany},i.prototype.setHowMany=function(t){this._howMany=t},i.prototype._promiseFulfilled=function(t){return this._addFulfilled(t),this._fulfilled()===this.howMany()?(this._values.length=this.howMany(),1===this.howMany()&&this._unwrap?this._resolve(this._values[0]):this._resolve(this._values),!0):!1},i.prototype._promiseRejected=function(t){return this._addRejected(t),this._checkOutcome()},i.prototype._promiseCancelled=function(){return this._values instanceof e||null==this._values?this._cancel():(this._addRejected(l),this._checkOutcome())},i.prototype._checkOutcome=function(){if(this.howMany()>this._canPossiblyFulfill()){for(var t=new c,e=this.length();e0?this._reject(t):this._cancel(),!0}return!1},i.prototype._fulfilled=function(){return this._totalResolved},i.prototype._rejected=function(){return this._values.length-this.length()},i.prototype._addRejected=function(t){this._values.push(t)},i.prototype._addFulfilled=function(t){this._values[this._totalResolved++]=t},i.prototype._canPossiblyFulfill=function(){return this.length()-this._rejected()},i.prototype._getRangeError=function(t){var e="Input array must contain at least "+this._howMany+" items but contains only "+t+" items";return new a(e)},i.prototype._resolveEmptyArray=function(){this._reject(this._getRangeError(0))},e.some=function(t,e){return o(t,e)},e.prototype.some=function(t){return o(this,t)},e._SomePromiseArray=i}},{"./errors":12,"./util":36}],32:[function(t,e,n){"use strict";e.exports=function(t){function e(t){void 0!==t?(t=t._target(),this._bitField=t._bitField,this._settledValueField=t._isFateSealed()?t._settledValue():void 0):(this._bitField=0,this._settledValueField=void 0)}e.prototype._settledValue=function(){return this._settledValueField};var n=e.prototype.value=function(){if(!this.isFulfilled())throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},r=e.prototype.error=e.prototype.reason=function(){if(!this.isRejected())throw new TypeError("cannot get rejection reason of a non-rejected promise\n\n See http://goo.gl/MqrFmX\n");return this._settledValue()},i=e.prototype.isFulfilled=function(){return 0!==(33554432&this._bitField)},o=e.prototype.isRejected=function(){return 0!==(16777216&this._bitField)},s=e.prototype.isPending=function(){return 0===(50397184&this._bitField)},a=e.prototype.isResolved=function(){return 0!==(50331648&this._bitField)};e.prototype.isCancelled=function(){return 0!==(8454144&this._bitField)},t.prototype.__isCancelled=function(){return 65536===(65536&this._bitField)},t.prototype._isCancelled=function(){return this._target().__isCancelled()},t.prototype.isCancelled=function(){return 0!==(8454144&this._target()._bitField)},t.prototype.isPending=function(){return s.call(this._target())},t.prototype.isRejected=function(){return o.call(this._target())},t.prototype.isFulfilled=function(){return i.call(this._target())},t.prototype.isResolved=function(){return a.call(this._target())},t.prototype.value=function(){return n.call(this._target())},t.prototype.reason=function(){var t=this._target();return t._unsetRejectionIsUnhandled(),r.call(t)},t.prototype._value=function(){return this._settledValue()},t.prototype._reason=function(){return this._unsetRejectionIsUnhandled(),this._settledValue()},t.PromiseInspection=e}},{}],33:[function(t,e,n){"use strict";e.exports=function(e,n){function r(t,r){if(l(t)){if(t instanceof e)return t;var i=o(t);if(i===u){r&&r._pushContext();var c=e.reject(i.e);return r&&r._popContext(),c}if("function"==typeof i){if(s(t)){var c=new e(n);return t._then(c._fulfill,c._reject,void 0,c,null),c}return a(t,i,r)}}return t}function i(t){return t.then}function o(t){try{return i(t)}catch(e){return u.e=e,u}}function s(t){try{return p.call(t,"_promise0")}catch(e){return!1}}function a(t,r,i){function o(t){a&&(a._resolveCallback(t),a=null)}function s(t){a&&(a._rejectCallback(t,p,!0),a=null)}var a=new e(n),l=a;i&&i._pushContext(),a._captureStackTrace(),i&&i._popContext();var p=!0,f=c.tryCatch(r).call(t,o,s);return p=!1,a&&f===u&&(a._rejectCallback(f.e,!0,!0),a=null),l}var c=t("./util"),u=c.errorObj,l=c.isObject,p={}.hasOwnProperty;return r}},{"./util":36}],34:[function(t,e,n){"use strict";e.exports=function(e,n,r){function i(t){this.handle=t}function o(t){return clearTimeout(this.handle),t}function s(t){throw clearTimeout(this.handle),t}var a=t("./util"),c=e.TimeoutError;i.prototype._resultCancelled=function(){clearTimeout(this.handle)};var u=function(t){return l(+this).thenReturn(t)},l=e.delay=function(t,o){var s,a;return void 0!==o?(s=e.resolve(o)._then(u,null,null,t,void 0),r.cancellation()&&o instanceof e&&s._setOnCancel(o)):(s=new e(n),a=setTimeout(function(){s._fulfill()},+t),r.cancellation()&&s._setOnCancel(new i(a)),s._captureStackTrace()),s._setAsyncGuaranteed(),s};e.prototype.delay=function(t){return l(t,this)};var p=function(t,e,n){var r;r="string"!=typeof e?e instanceof Error?e:new c("operation timed out"):new c(e),a.markAsOriginatingFromRejection(r),t._attachExtraTrace(r),t._reject(r),null!=n&&n.cancel()};e.prototype.timeout=function(t,e){t=+t;var n,a,c=new i(setTimeout(function(){n.isPending()&&p(n,e,a)},t));return r.cancellation()?(a=this.then(),n=a._then(o,s,void 0,c,void 0),n._setOnCancel(c)):n=this._then(o,s,void 0,c,void 0),n}}},{"./util":36}],35:[function(t,e,n){"use strict";e.exports=function(e,n,r,i,o,s){function a(t){setTimeout(function(){throw t},0)}function c(t){var e=r(t);return e!==t&&"function"==typeof t._isDisposable&&"function"==typeof t._getDisposer&&t._isDisposable()&&e._setDisposable(t._getDisposer()),e}function u(t,n){function i(){if(s>=u)return l._fulfill();var o=c(t[s++]);if(o instanceof e&&o._isDisposable()){try{o=r(o._getDisposer().tryDispose(n),t.promise)}catch(p){return a(p)}if(o instanceof e)return o._then(i,a,null,null,null)}i()}var s=0,u=t.length,l=new e(o);return i(),l}function l(t,e,n){this._data=t,this._promise=e,this._context=n}function p(t,e,n){this.constructor$(t,e,n)}function f(t){return l.isDisposer(t)?(this.resources[this.index]._setDisposable(t),t.promise()):t}function h(t){this.length=t,this.promise=null,this[t-1]=null}var _=t("./util"),d=t("./errors").TypeError,v=t("./util").inherits,y=_.errorObj,g=_.tryCatch,m={};l.prototype.data=function(){return this._data},l.prototype.promise=function(){return this._promise},l.prototype.resource=function(){return this.promise().isFulfilled()?this.promise().value():m},l.prototype.tryDispose=function(t){var e=this.resource(),n=this._context;void 0!==n&&n._pushContext();var r=e!==m?this.doDispose(e,t):null;return void 0!==n&&n._popContext(),this._promise._unsetDisposable(),this._data=null,r},l.isDisposer=function(t){return null!=t&&"function"==typeof t.resource&&"function"==typeof t.tryDispose},v(p,l),p.prototype.doDispose=function(t,e){var n=this.data();return n.call(t,t,e)},h.prototype._resultCancelled=function(){for(var t=this.length,n=0;t>n;++n){var r=this[n];r instanceof e&&r.cancel()}},e.using=function(){var t=arguments.length;if(2>t)return n("you must pass at least 2 arguments to Promise.using");var i=arguments[t-1];if("function"!=typeof i)return n("expecting a function but got "+_.classString(i));var o,a=!0;2===t&&Array.isArray(arguments[0])?(o=arguments[0],t=o.length,a=!1):(o=arguments,t--);for(var c=new h(t),p=0;t>p;++p){var d=o[p];if(l.isDisposer(d)){var v=d;d=d.promise(),d._setDisposable(v)}else{var m=r(d);m instanceof e&&(d=m._then(f,null,null,{resources:c,index:p},void 0))}c[p]=d}for(var b=new Array(c.length),p=0;p0},e.prototype._getDisposer=function(){return this._disposer},e.prototype._unsetDisposable=function(){this._bitField=-131073&this._bitField,this._disposer=void 0},e.prototype.disposer=function(t){if("function"==typeof t)return new p(t,this,i());throw new d}}},{"./errors":12,"./util":36}],36:[function(t,e,n){"use strict";function r(){try{var t=P;return P=null,t.apply(this,arguments)}catch(e){return T.e=e,T}}function i(t){return P=t,r}function o(t){return null==t||t===!0||t===!1||"string"==typeof t||"number"==typeof t}function s(t){return"function"==typeof t||"object"==typeof t&&null!==t}function a(t){return o(t)?new Error(v(t)):t}function c(t,e){var n,r=t.length,i=new Array(r+1);for(n=0;r>n;++n)i[n]=t[n];return i[n]=e,i}function u(t,e,n){if(!F.isES5)return{}.hasOwnProperty.call(t,e)?t[e]:void 0;var r=Object.getOwnPropertyDescriptor(t,e);return null!=r?null==r.get&&null==r.set?r.value:n:void 0}function l(t,e,n){if(o(t))return t;var r={value:n,configurable:!0,enumerable:!1,writable:!0};return F.defineProperty(t,e,r),t}function p(t){throw t}function f(t){try{if("function"==typeof t){var e=F.names(t.prototype),n=F.isES5&&e.length>1,r=e.length>0&&!(1===e.length&&"constructor"===e[0]),i=A.test(t+"")&&F.names(t).length>0;if(n||r||i)return!0}return!1}catch(o){return!1}}function h(t){function e(){}function n(){return typeof r.foo}e.prototype=t;var r=new e;return n(),n(),t}function _(t){return V.test(t)}function d(t,e,n){for(var r=new Array(t),i=0;t>i;++i)r[i]=e+i+n;return r}function v(t){try{return t+""}catch(e){return"[no string representation]"}}function y(t){return t instanceof Error||null!==t&&"object"==typeof t&&"string"==typeof t.message&&"string"==typeof t.name}function g(t){try{l(t,"isOperational",!0)}catch(e){}}function m(t){return null==t?!1:t instanceof Error.__BluebirdErrorTypes__.OperationalError||t.isOperational===!0}function b(t){return y(t)&&F.propertyIsWritable(t,"stack")}function w(t){return{}.toString.call(t)}function C(t,e,n){for(var r=F.names(t),i=0;i10||t[0]>0}(),B.nodeSupportsAsyncResource=B.isNode&&function(){var e=!1;try{var n=t("async_hooks").AsyncResource;e="function"==typeof n.prototype.runInAsyncScope}catch(r){e=!1}return e}(),B.isNode&&B.toFastProperties(process);try{throw new Error}catch(M){B.lastLineError=M}e.exports=B},{"./es5":13,async_hooks:void 0}]},{},[4])(4)}),"undefined"!=typeof window&&null!==window?window.P=window.Promise:"undefined"!=typeof self&&null!==self&&(self.P=self.Promise); \ No newline at end of file diff --git a/node_modules/bluebird/js/release/any.js b/node_modules/bluebird/js/release/any.js new file mode 100644 index 0000000..05a6228 --- /dev/null +++ b/node_modules/bluebird/js/release/any.js @@ -0,0 +1,21 @@ +"use strict"; +module.exports = function(Promise) { +var SomePromiseArray = Promise._SomePromiseArray; +function any(promises) { + var ret = new SomePromiseArray(promises); + var promise = ret.promise(); + ret.setHowMany(1); + ret.setUnwrap(); + ret.init(); + return promise; +} + +Promise.any = function (promises) { + return any(promises); +}; + +Promise.prototype.any = function () { + return any(this); +}; + +}; diff --git a/node_modules/bluebird/js/release/assert.js b/node_modules/bluebird/js/release/assert.js new file mode 100644 index 0000000..4518231 --- /dev/null +++ b/node_modules/bluebird/js/release/assert.js @@ -0,0 +1,55 @@ +"use strict"; +module.exports = (function(){ +var AssertionError = (function() { + function AssertionError(a) { + this.constructor$(a); + this.message = a; + this.name = "AssertionError"; + } + AssertionError.prototype = new Error(); + AssertionError.prototype.constructor = AssertionError; + AssertionError.prototype.constructor$ = Error; + return AssertionError; +})(); + +function getParams(args) { + var params = []; + for (var i = 0; i < args.length; ++i) params.push("arg" + i); + return params; +} + +function nativeAssert(callName, args, expect) { + try { + var params = getParams(args); + var constructorArgs = params; + constructorArgs.push("return " + + callName + "("+ params.join(",") + ");"); + var fn = Function.apply(null, constructorArgs); + return fn.apply(null, args); + } catch (e) { + if (!(e instanceof SyntaxError)) { + throw e; + } else { + return expect; + } + } +} + +return function assert(boolExpr, message) { + if (boolExpr === true) return; + + if (typeof boolExpr === "string" && + boolExpr.charAt(0) === "%") { + var nativeCallName = boolExpr; + var $_len = arguments.length;var args = new Array(Math.max($_len - 2, 0)); for(var $_i = 2; $_i < $_len; ++$_i) {args[$_i - 2] = arguments[$_i];}; + if (nativeAssert(nativeCallName, args, message) === message) return; + message = (nativeCallName + " !== " + message); + } + + var ret = new AssertionError(message); + if (Error.captureStackTrace) { + Error.captureStackTrace(ret, assert); + } + throw ret; +}; +})(); diff --git a/node_modules/bluebird/js/release/async.js b/node_modules/bluebird/js/release/async.js new file mode 100644 index 0000000..8eab6f8 --- /dev/null +++ b/node_modules/bluebird/js/release/async.js @@ -0,0 +1,120 @@ +"use strict"; +var firstLineError; +try {throw new Error(); } catch (e) {firstLineError = e;} +var schedule = require("./schedule"); +var Queue = require("./queue"); + +function Async() { + this._customScheduler = false; + this._isTickUsed = false; + this._lateQueue = new Queue(16); + this._normalQueue = new Queue(16); + this._haveDrainedQueues = false; + var self = this; + this.drainQueues = function () { + self._drainQueues(); + }; + this._schedule = schedule; +} + +Async.prototype.setScheduler = function(fn) { + var prev = this._schedule; + this._schedule = fn; + this._customScheduler = true; + return prev; +}; + +Async.prototype.hasCustomScheduler = function() { + return this._customScheduler; +}; + +Async.prototype.haveItemsQueued = function () { + return this._isTickUsed || this._haveDrainedQueues; +}; + + +Async.prototype.fatalError = function(e, isNode) { + if (isNode) { + process.stderr.write("Fatal " + (e instanceof Error ? e.stack : e) + + "\n"); + process.exit(2); + } else { + this.throwLater(e); + } +}; + +Async.prototype.throwLater = function(fn, arg) { + if (arguments.length === 1) { + arg = fn; + fn = function () { throw arg; }; + } + if (typeof setTimeout !== "undefined") { + setTimeout(function() { + fn(arg); + }, 0); + } else try { + this._schedule(function() { + fn(arg); + }); + } catch (e) { + throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } +}; + +function AsyncInvokeLater(fn, receiver, arg) { + this._lateQueue.push(fn, receiver, arg); + this._queueTick(); +} + +function AsyncInvoke(fn, receiver, arg) { + this._normalQueue.push(fn, receiver, arg); + this._queueTick(); +} + +function AsyncSettlePromises(promise) { + this._normalQueue._pushOne(promise); + this._queueTick(); +} + +Async.prototype.invokeLater = AsyncInvokeLater; +Async.prototype.invoke = AsyncInvoke; +Async.prototype.settlePromises = AsyncSettlePromises; + + +function _drainQueue(queue) { + while (queue.length() > 0) { + _drainQueueStep(queue); + } +} + +function _drainQueueStep(queue) { + var fn = queue.shift(); + if (typeof fn !== "function") { + fn._settlePromises(); + } else { + var receiver = queue.shift(); + var arg = queue.shift(); + fn.call(receiver, arg); + } +} + +Async.prototype._drainQueues = function () { + _drainQueue(this._normalQueue); + this._reset(); + this._haveDrainedQueues = true; + _drainQueue(this._lateQueue); +}; + +Async.prototype._queueTick = function () { + if (!this._isTickUsed) { + this._isTickUsed = true; + this._schedule(this.drainQueues); + } +}; + +Async.prototype._reset = function () { + this._isTickUsed = false; +}; + +module.exports = Async; +module.exports.firstLineError = firstLineError; diff --git a/node_modules/bluebird/js/release/bind.js b/node_modules/bluebird/js/release/bind.js new file mode 100644 index 0000000..fc3379d --- /dev/null +++ b/node_modules/bluebird/js/release/bind.js @@ -0,0 +1,67 @@ +"use strict"; +module.exports = function(Promise, INTERNAL, tryConvertToPromise, debug) { +var calledBind = false; +var rejectThis = function(_, e) { + this._reject(e); +}; + +var targetRejected = function(e, context) { + context.promiseRejectionQueued = true; + context.bindingPromise._then(rejectThis, rejectThis, null, this, e); +}; + +var bindingResolved = function(thisArg, context) { + if (((this._bitField & 50397184) === 0)) { + this._resolveCallback(context.target); + } +}; + +var bindingRejected = function(e, context) { + if (!context.promiseRejectionQueued) this._reject(e); +}; + +Promise.prototype.bind = function (thisArg) { + if (!calledBind) { + calledBind = true; + Promise.prototype._propagateFrom = debug.propagateFromFunction(); + Promise.prototype._boundValue = debug.boundValueFunction(); + } + var maybePromise = tryConvertToPromise(thisArg); + var ret = new Promise(INTERNAL); + ret._propagateFrom(this, 1); + var target = this._target(); + ret._setBoundTo(maybePromise); + if (maybePromise instanceof Promise) { + var context = { + promiseRejectionQueued: false, + promise: ret, + target: target, + bindingPromise: maybePromise + }; + target._then(INTERNAL, targetRejected, undefined, ret, context); + maybePromise._then( + bindingResolved, bindingRejected, undefined, ret, context); + ret._setOnCancel(maybePromise); + } else { + ret._resolveCallback(target); + } + return ret; +}; + +Promise.prototype._setBoundTo = function (obj) { + if (obj !== undefined) { + this._bitField = this._bitField | 2097152; + this._boundTo = obj; + } else { + this._bitField = this._bitField & (~2097152); + } +}; + +Promise.prototype._isBound = function () { + return (this._bitField & 2097152) === 2097152; +}; + +Promise.bind = function (thisArg, value) { + return Promise.resolve(value).bind(thisArg); +}; +}; diff --git a/node_modules/bluebird/js/release/bluebird.js b/node_modules/bluebird/js/release/bluebird.js new file mode 100644 index 0000000..1c36cf3 --- /dev/null +++ b/node_modules/bluebird/js/release/bluebird.js @@ -0,0 +1,11 @@ +"use strict"; +var old; +if (typeof Promise !== "undefined") old = Promise; +function noConflict() { + try { if (Promise === bluebird) Promise = old; } + catch (e) {} + return bluebird; +} +var bluebird = require("./promise")(); +bluebird.noConflict = noConflict; +module.exports = bluebird; diff --git a/node_modules/bluebird/js/release/call_get.js b/node_modules/bluebird/js/release/call_get.js new file mode 100644 index 0000000..0ed7714 --- /dev/null +++ b/node_modules/bluebird/js/release/call_get.js @@ -0,0 +1,123 @@ +"use strict"; +var cr = Object.create; +if (cr) { + var callerCache = cr(null); + var getterCache = cr(null); + callerCache[" size"] = getterCache[" size"] = 0; +} + +module.exports = function(Promise) { +var util = require("./util"); +var canEvaluate = util.canEvaluate; +var isIdentifier = util.isIdentifier; + +var getMethodCaller; +var getGetter; +if (!false) { +var makeMethodCaller = function (methodName) { + return new Function("ensureMethod", " \n\ + return function(obj) { \n\ + 'use strict' \n\ + var len = this.length; \n\ + ensureMethod(obj, 'methodName'); \n\ + switch(len) { \n\ + case 1: return obj.methodName(this[0]); \n\ + case 2: return obj.methodName(this[0], this[1]); \n\ + case 3: return obj.methodName(this[0], this[1], this[2]); \n\ + case 0: return obj.methodName(); \n\ + default: \n\ + return obj.methodName.apply(obj, this); \n\ + } \n\ + }; \n\ + ".replace(/methodName/g, methodName))(ensureMethod); +}; + +var makeGetter = function (propertyName) { + return new Function("obj", " \n\ + 'use strict'; \n\ + return obj.propertyName; \n\ + ".replace("propertyName", propertyName)); +}; + +var getCompiled = function(name, compiler, cache) { + var ret = cache[name]; + if (typeof ret !== "function") { + if (!isIdentifier(name)) { + return null; + } + ret = compiler(name); + cache[name] = ret; + cache[" size"]++; + if (cache[" size"] > 512) { + var keys = Object.keys(cache); + for (var i = 0; i < 256; ++i) delete cache[keys[i]]; + cache[" size"] = keys.length - 256; + } + } + return ret; +}; + +getMethodCaller = function(name) { + return getCompiled(name, makeMethodCaller, callerCache); +}; + +getGetter = function(name) { + return getCompiled(name, makeGetter, getterCache); +}; +} + +function ensureMethod(obj, methodName) { + var fn; + if (obj != null) fn = obj[methodName]; + if (typeof fn !== "function") { + var message = "Object " + util.classString(obj) + " has no method '" + + util.toString(methodName) + "'"; + throw new Promise.TypeError(message); + } + return fn; +} + +function caller(obj) { + var methodName = this.pop(); + var fn = ensureMethod(obj, methodName); + return fn.apply(obj, this); +} +Promise.prototype.call = function (methodName) { + var $_len = arguments.length;var args = new Array(Math.max($_len - 1, 0)); for(var $_i = 1; $_i < $_len; ++$_i) {args[$_i - 1] = arguments[$_i];}; + if (!false) { + if (canEvaluate) { + var maybeCaller = getMethodCaller(methodName); + if (maybeCaller !== null) { + return this._then( + maybeCaller, undefined, undefined, args, undefined); + } + } + } + args.push(methodName); + return this._then(caller, undefined, undefined, args, undefined); +}; + +function namedGetter(obj) { + return obj[this]; +} +function indexedGetter(obj) { + var index = +this; + if (index < 0) index = Math.max(0, index + obj.length); + return obj[index]; +} +Promise.prototype.get = function (propertyName) { + var isIndex = (typeof propertyName === "number"); + var getter; + if (!isIndex) { + if (canEvaluate) { + var maybeGetter = getGetter(propertyName); + getter = maybeGetter !== null ? maybeGetter : namedGetter; + } else { + getter = namedGetter; + } + } else { + getter = indexedGetter; + } + return this._then(getter, undefined, undefined, propertyName, undefined); +}; +}; diff --git a/node_modules/bluebird/js/release/cancel.js b/node_modules/bluebird/js/release/cancel.js new file mode 100644 index 0000000..7a12415 --- /dev/null +++ b/node_modules/bluebird/js/release/cancel.js @@ -0,0 +1,129 @@ +"use strict"; +module.exports = function(Promise, PromiseArray, apiRejection, debug) { +var util = require("./util"); +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var async = Promise._async; + +Promise.prototype["break"] = Promise.prototype.cancel = function() { + if (!debug.cancellation()) return this._warn("cancellation is disabled"); + + var promise = this; + var child = promise; + while (promise._isCancellable()) { + if (!promise._cancelBy(child)) { + if (child._isFollowing()) { + child._followee().cancel(); + } else { + child._cancelBranched(); + } + break; + } + + var parent = promise._cancellationParent; + if (parent == null || !parent._isCancellable()) { + if (promise._isFollowing()) { + promise._followee().cancel(); + } else { + promise._cancelBranched(); + } + break; + } else { + if (promise._isFollowing()) promise._followee().cancel(); + promise._setWillBeCancelled(); + child = promise; + promise = parent; + } + } +}; + +Promise.prototype._branchHasCancelled = function() { + this._branchesRemainingToCancel--; +}; + +Promise.prototype._enoughBranchesHaveCancelled = function() { + return this._branchesRemainingToCancel === undefined || + this._branchesRemainingToCancel <= 0; +}; + +Promise.prototype._cancelBy = function(canceller) { + if (canceller === this) { + this._branchesRemainingToCancel = 0; + this._invokeOnCancel(); + return true; + } else { + this._branchHasCancelled(); + if (this._enoughBranchesHaveCancelled()) { + this._invokeOnCancel(); + return true; + } + } + return false; +}; + +Promise.prototype._cancelBranched = function() { + if (this._enoughBranchesHaveCancelled()) { + this._cancel(); + } +}; + +Promise.prototype._cancel = function() { + if (!this._isCancellable()) return; + this._setCancelled(); + async.invoke(this._cancelPromises, this, undefined); +}; + +Promise.prototype._cancelPromises = function() { + if (this._length() > 0) this._settlePromises(); +}; + +Promise.prototype._unsetOnCancel = function() { + this._onCancelField = undefined; +}; + +Promise.prototype._isCancellable = function() { + return this.isPending() && !this._isCancelled(); +}; + +Promise.prototype.isCancellable = function() { + return this.isPending() && !this.isCancelled(); +}; + +Promise.prototype._doInvokeOnCancel = function(onCancelCallback, internalOnly) { + if (util.isArray(onCancelCallback)) { + for (var i = 0; i < onCancelCallback.length; ++i) { + this._doInvokeOnCancel(onCancelCallback[i], internalOnly); + } + } else if (onCancelCallback !== undefined) { + if (typeof onCancelCallback === "function") { + if (!internalOnly) { + var e = tryCatch(onCancelCallback).call(this._boundValue()); + if (e === errorObj) { + this._attachExtraTrace(e.e); + async.throwLater(e.e); + } + } + } else { + onCancelCallback._resultCancelled(this); + } + } +}; + +Promise.prototype._invokeOnCancel = function() { + var onCancelCallback = this._onCancel(); + this._unsetOnCancel(); + async.invoke(this._doInvokeOnCancel, this, onCancelCallback); +}; + +Promise.prototype._invokeInternalOnCancel = function() { + if (this._isCancellable()) { + this._doInvokeOnCancel(this._onCancel(), true); + this._unsetOnCancel(); + } +}; + +Promise.prototype._resultCancelled = function() { + this.cancel(); +}; + +}; diff --git a/node_modules/bluebird/js/release/catch_filter.js b/node_modules/bluebird/js/release/catch_filter.js new file mode 100644 index 0000000..0f24ce2 --- /dev/null +++ b/node_modules/bluebird/js/release/catch_filter.js @@ -0,0 +1,42 @@ +"use strict"; +module.exports = function(NEXT_FILTER) { +var util = require("./util"); +var getKeys = require("./es5").keys; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; + +function catchFilter(instances, cb, promise) { + return function(e) { + var boundTo = promise._boundValue(); + predicateLoop: for (var i = 0; i < instances.length; ++i) { + var item = instances[i]; + + if (item === Error || + (item != null && item.prototype instanceof Error)) { + if (e instanceof item) { + return tryCatch(cb).call(boundTo, e); + } + } else if (typeof item === "function") { + var matchesPredicate = tryCatch(item).call(boundTo, e); + if (matchesPredicate === errorObj) { + return matchesPredicate; + } else if (matchesPredicate) { + return tryCatch(cb).call(boundTo, e); + } + } else if (util.isObject(e)) { + var keys = getKeys(item); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + if (item[key] != e[key]) { + continue predicateLoop; + } + } + return tryCatch(cb).call(boundTo, e); + } + } + return NEXT_FILTER; + }; +} + +return catchFilter; +}; diff --git a/node_modules/bluebird/js/release/context.js b/node_modules/bluebird/js/release/context.js new file mode 100644 index 0000000..c307414 --- /dev/null +++ b/node_modules/bluebird/js/release/context.js @@ -0,0 +1,69 @@ +"use strict"; +module.exports = function(Promise) { +var longStackTraces = false; +var contextStack = []; + +Promise.prototype._promiseCreated = function() {}; +Promise.prototype._pushContext = function() {}; +Promise.prototype._popContext = function() {return null;}; +Promise._peekContext = Promise.prototype._peekContext = function() {}; + +function Context() { + this._trace = new Context.CapturedTrace(peekContext()); +} +Context.prototype._pushContext = function () { + if (this._trace !== undefined) { + this._trace._promiseCreated = null; + contextStack.push(this._trace); + } +}; + +Context.prototype._popContext = function () { + if (this._trace !== undefined) { + var trace = contextStack.pop(); + var ret = trace._promiseCreated; + trace._promiseCreated = null; + return ret; + } + return null; +}; + +function createContext() { + if (longStackTraces) return new Context(); +} + +function peekContext() { + var lastIndex = contextStack.length - 1; + if (lastIndex >= 0) { + return contextStack[lastIndex]; + } + return undefined; +} +Context.CapturedTrace = null; +Context.create = createContext; +Context.deactivateLongStackTraces = function() {}; +Context.activateLongStackTraces = function() { + var Promise_pushContext = Promise.prototype._pushContext; + var Promise_popContext = Promise.prototype._popContext; + var Promise_PeekContext = Promise._peekContext; + var Promise_peekContext = Promise.prototype._peekContext; + var Promise_promiseCreated = Promise.prototype._promiseCreated; + Context.deactivateLongStackTraces = function() { + Promise.prototype._pushContext = Promise_pushContext; + Promise.prototype._popContext = Promise_popContext; + Promise._peekContext = Promise_PeekContext; + Promise.prototype._peekContext = Promise_peekContext; + Promise.prototype._promiseCreated = Promise_promiseCreated; + longStackTraces = false; + }; + longStackTraces = true; + Promise.prototype._pushContext = Context.prototype._pushContext; + Promise.prototype._popContext = Context.prototype._popContext; + Promise._peekContext = Promise.prototype._peekContext = peekContext; + Promise.prototype._promiseCreated = function() { + var ctx = this._peekContext(); + if (ctx && ctx._promiseCreated == null) ctx._promiseCreated = this; + }; +}; +return Context; +}; diff --git a/node_modules/bluebird/js/release/debuggability.js b/node_modules/bluebird/js/release/debuggability.js new file mode 100644 index 0000000..ce997ee --- /dev/null +++ b/node_modules/bluebird/js/release/debuggability.js @@ -0,0 +1,1009 @@ +"use strict"; +module.exports = function(Promise, Context, + enableAsyncHooks, disableAsyncHooks) { +var async = Promise._async; +var Warning = require("./errors").Warning; +var util = require("./util"); +var es5 = require("./es5"); +var canAttachTrace = util.canAttachTrace; +var unhandledRejectionHandled; +var possiblyUnhandledRejection; +var bluebirdFramePattern = + /[\\\/]bluebird[\\\/]js[\\\/](release|debug|instrumented)/; +var nodeFramePattern = /\((?:timers\.js):\d+:\d+\)/; +var parseLinePattern = /[\/<\(](.+?):(\d+):(\d+)\)?\s*$/; +var stackFramePattern = null; +var formatStack = null; +var indentStackFrames = false; +var printWarning; +var debugging = !!(util.env("BLUEBIRD_DEBUG") != 0 && + (false || + util.env("BLUEBIRD_DEBUG") || + util.env("NODE_ENV") === "development")); + +var warnings = !!(util.env("BLUEBIRD_WARNINGS") != 0 && + (debugging || util.env("BLUEBIRD_WARNINGS"))); + +var longStackTraces = !!(util.env("BLUEBIRD_LONG_STACK_TRACES") != 0 && + (debugging || util.env("BLUEBIRD_LONG_STACK_TRACES"))); + +var wForgottenReturn = util.env("BLUEBIRD_W_FORGOTTEN_RETURN") != 0 && + (warnings || !!util.env("BLUEBIRD_W_FORGOTTEN_RETURN")); + +var deferUnhandledRejectionCheck; +(function() { + var promises = []; + + function unhandledRejectionCheck() { + for (var i = 0; i < promises.length; ++i) { + promises[i]._notifyUnhandledRejection(); + } + unhandledRejectionClear(); + } + + function unhandledRejectionClear() { + promises.length = 0; + } + + deferUnhandledRejectionCheck = function(promise) { + promises.push(promise); + setTimeout(unhandledRejectionCheck, 1); + }; + + es5.defineProperty(Promise, "_unhandledRejectionCheck", { + value: unhandledRejectionCheck + }); + es5.defineProperty(Promise, "_unhandledRejectionClear", { + value: unhandledRejectionClear + }); +})(); + +Promise.prototype.suppressUnhandledRejections = function() { + var target = this._target(); + target._bitField = ((target._bitField & (~1048576)) | + 524288); +}; + +Promise.prototype._ensurePossibleRejectionHandled = function () { + if ((this._bitField & 524288) !== 0) return; + this._setRejectionIsUnhandled(); + deferUnhandledRejectionCheck(this); +}; + +Promise.prototype._notifyUnhandledRejectionIsHandled = function () { + fireRejectionEvent("rejectionHandled", + unhandledRejectionHandled, undefined, this); +}; + +Promise.prototype._setReturnedNonUndefined = function() { + this._bitField = this._bitField | 268435456; +}; + +Promise.prototype._returnedNonUndefined = function() { + return (this._bitField & 268435456) !== 0; +}; + +Promise.prototype._notifyUnhandledRejection = function () { + if (this._isRejectionUnhandled()) { + var reason = this._settledValue(); + this._setUnhandledRejectionIsNotified(); + fireRejectionEvent("unhandledRejection", + possiblyUnhandledRejection, reason, this); + } +}; + +Promise.prototype._setUnhandledRejectionIsNotified = function () { + this._bitField = this._bitField | 262144; +}; + +Promise.prototype._unsetUnhandledRejectionIsNotified = function () { + this._bitField = this._bitField & (~262144); +}; + +Promise.prototype._isUnhandledRejectionNotified = function () { + return (this._bitField & 262144) > 0; +}; + +Promise.prototype._setRejectionIsUnhandled = function () { + this._bitField = this._bitField | 1048576; +}; + +Promise.prototype._unsetRejectionIsUnhandled = function () { + this._bitField = this._bitField & (~1048576); + if (this._isUnhandledRejectionNotified()) { + this._unsetUnhandledRejectionIsNotified(); + this._notifyUnhandledRejectionIsHandled(); + } +}; + +Promise.prototype._isRejectionUnhandled = function () { + return (this._bitField & 1048576) > 0; +}; + +Promise.prototype._warn = function(message, shouldUseOwnTrace, promise) { + return warn(message, shouldUseOwnTrace, promise || this); +}; + +Promise.onPossiblyUnhandledRejection = function (fn) { + var context = Promise._getContext(); + possiblyUnhandledRejection = util.contextBind(context, fn); +}; + +Promise.onUnhandledRejectionHandled = function (fn) { + var context = Promise._getContext(); + unhandledRejectionHandled = util.contextBind(context, fn); +}; + +var disableLongStackTraces = function() {}; +Promise.longStackTraces = function () { + if (async.haveItemsQueued() && !config.longStackTraces) { + throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + if (!config.longStackTraces && longStackTracesIsSupported()) { + var Promise_captureStackTrace = Promise.prototype._captureStackTrace; + var Promise_attachExtraTrace = Promise.prototype._attachExtraTrace; + var Promise_dereferenceTrace = Promise.prototype._dereferenceTrace; + config.longStackTraces = true; + disableLongStackTraces = function() { + if (async.haveItemsQueued() && !config.longStackTraces) { + throw new Error("cannot enable long stack traces after promises have been created\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + Promise.prototype._captureStackTrace = Promise_captureStackTrace; + Promise.prototype._attachExtraTrace = Promise_attachExtraTrace; + Promise.prototype._dereferenceTrace = Promise_dereferenceTrace; + Context.deactivateLongStackTraces(); + config.longStackTraces = false; + }; + Promise.prototype._captureStackTrace = longStackTracesCaptureStackTrace; + Promise.prototype._attachExtraTrace = longStackTracesAttachExtraTrace; + Promise.prototype._dereferenceTrace = longStackTracesDereferenceTrace; + Context.activateLongStackTraces(); + } +}; + +Promise.hasLongStackTraces = function () { + return config.longStackTraces && longStackTracesIsSupported(); +}; + + +var legacyHandlers = { + unhandledrejection: { + before: function() { + var ret = util.global.onunhandledrejection; + util.global.onunhandledrejection = null; + return ret; + }, + after: function(fn) { + util.global.onunhandledrejection = fn; + } + }, + rejectionhandled: { + before: function() { + var ret = util.global.onrejectionhandled; + util.global.onrejectionhandled = null; + return ret; + }, + after: function(fn) { + util.global.onrejectionhandled = fn; + } + } +}; + +var fireDomEvent = (function() { + var dispatch = function(legacy, e) { + if (legacy) { + var fn; + try { + fn = legacy.before(); + return !util.global.dispatchEvent(e); + } finally { + legacy.after(fn); + } + } else { + return !util.global.dispatchEvent(e); + } + }; + try { + if (typeof CustomEvent === "function") { + var event = new CustomEvent("CustomEvent"); + util.global.dispatchEvent(event); + return function(name, event) { + name = name.toLowerCase(); + var eventData = { + detail: event, + cancelable: true + }; + var domEvent = new CustomEvent(name, eventData); + es5.defineProperty( + domEvent, "promise", {value: event.promise}); + es5.defineProperty( + domEvent, "reason", {value: event.reason}); + + return dispatch(legacyHandlers[name], domEvent); + }; + } else if (typeof Event === "function") { + var event = new Event("CustomEvent"); + util.global.dispatchEvent(event); + return function(name, event) { + name = name.toLowerCase(); + var domEvent = new Event(name, { + cancelable: true + }); + domEvent.detail = event; + es5.defineProperty(domEvent, "promise", {value: event.promise}); + es5.defineProperty(domEvent, "reason", {value: event.reason}); + return dispatch(legacyHandlers[name], domEvent); + }; + } else { + var event = document.createEvent("CustomEvent"); + event.initCustomEvent("testingtheevent", false, true, {}); + util.global.dispatchEvent(event); + return function(name, event) { + name = name.toLowerCase(); + var domEvent = document.createEvent("CustomEvent"); + domEvent.initCustomEvent(name, false, true, + event); + return dispatch(legacyHandlers[name], domEvent); + }; + } + } catch (e) {} + return function() { + return false; + }; +})(); + +var fireGlobalEvent = (function() { + if (util.isNode) { + return function() { + return process.emit.apply(process, arguments); + }; + } else { + if (!util.global) { + return function() { + return false; + }; + } + return function(name) { + var methodName = "on" + name.toLowerCase(); + var method = util.global[methodName]; + if (!method) return false; + method.apply(util.global, [].slice.call(arguments, 1)); + return true; + }; + } +})(); + +function generatePromiseLifecycleEventObject(name, promise) { + return {promise: promise}; +} + +var eventToObjectGenerator = { + promiseCreated: generatePromiseLifecycleEventObject, + promiseFulfilled: generatePromiseLifecycleEventObject, + promiseRejected: generatePromiseLifecycleEventObject, + promiseResolved: generatePromiseLifecycleEventObject, + promiseCancelled: generatePromiseLifecycleEventObject, + promiseChained: function(name, promise, child) { + return {promise: promise, child: child}; + }, + warning: function(name, warning) { + return {warning: warning}; + }, + unhandledRejection: function (name, reason, promise) { + return {reason: reason, promise: promise}; + }, + rejectionHandled: generatePromiseLifecycleEventObject +}; + +var activeFireEvent = function (name) { + var globalEventFired = false; + try { + globalEventFired = fireGlobalEvent.apply(null, arguments); + } catch (e) { + async.throwLater(e); + globalEventFired = true; + } + + var domEventFired = false; + try { + domEventFired = fireDomEvent(name, + eventToObjectGenerator[name].apply(null, arguments)); + } catch (e) { + async.throwLater(e); + domEventFired = true; + } + + return domEventFired || globalEventFired; +}; + +Promise.config = function(opts) { + opts = Object(opts); + if ("longStackTraces" in opts) { + if (opts.longStackTraces) { + Promise.longStackTraces(); + } else if (!opts.longStackTraces && Promise.hasLongStackTraces()) { + disableLongStackTraces(); + } + } + if ("warnings" in opts) { + var warningsOption = opts.warnings; + config.warnings = !!warningsOption; + wForgottenReturn = config.warnings; + + if (util.isObject(warningsOption)) { + if ("wForgottenReturn" in warningsOption) { + wForgottenReturn = !!warningsOption.wForgottenReturn; + } + } + } + if ("cancellation" in opts && opts.cancellation && !config.cancellation) { + if (async.haveItemsQueued()) { + throw new Error( + "cannot enable cancellation after promises are in use"); + } + Promise.prototype._clearCancellationData = + cancellationClearCancellationData; + Promise.prototype._propagateFrom = cancellationPropagateFrom; + Promise.prototype._onCancel = cancellationOnCancel; + Promise.prototype._setOnCancel = cancellationSetOnCancel; + Promise.prototype._attachCancellationCallback = + cancellationAttachCancellationCallback; + Promise.prototype._execute = cancellationExecute; + propagateFromFunction = cancellationPropagateFrom; + config.cancellation = true; + } + if ("monitoring" in opts) { + if (opts.monitoring && !config.monitoring) { + config.monitoring = true; + Promise.prototype._fireEvent = activeFireEvent; + } else if (!opts.monitoring && config.monitoring) { + config.monitoring = false; + Promise.prototype._fireEvent = defaultFireEvent; + } + } + if ("asyncHooks" in opts && util.nodeSupportsAsyncResource) { + var prev = config.asyncHooks; + var cur = !!opts.asyncHooks; + if (prev !== cur) { + config.asyncHooks = cur; + if (cur) { + enableAsyncHooks(); + } else { + disableAsyncHooks(); + } + } + } + return Promise; +}; + +function defaultFireEvent() { return false; } + +Promise.prototype._fireEvent = defaultFireEvent; +Promise.prototype._execute = function(executor, resolve, reject) { + try { + executor(resolve, reject); + } catch (e) { + return e; + } +}; +Promise.prototype._onCancel = function () {}; +Promise.prototype._setOnCancel = function (handler) { ; }; +Promise.prototype._attachCancellationCallback = function(onCancel) { + ; +}; +Promise.prototype._captureStackTrace = function () {}; +Promise.prototype._attachExtraTrace = function () {}; +Promise.prototype._dereferenceTrace = function () {}; +Promise.prototype._clearCancellationData = function() {}; +Promise.prototype._propagateFrom = function (parent, flags) { + ; + ; +}; + +function cancellationExecute(executor, resolve, reject) { + var promise = this; + try { + executor(resolve, reject, function(onCancel) { + if (typeof onCancel !== "function") { + throw new TypeError("onCancel must be a function, got: " + + util.toString(onCancel)); + } + promise._attachCancellationCallback(onCancel); + }); + } catch (e) { + return e; + } +} + +function cancellationAttachCancellationCallback(onCancel) { + if (!this._isCancellable()) return this; + + var previousOnCancel = this._onCancel(); + if (previousOnCancel !== undefined) { + if (util.isArray(previousOnCancel)) { + previousOnCancel.push(onCancel); + } else { + this._setOnCancel([previousOnCancel, onCancel]); + } + } else { + this._setOnCancel(onCancel); + } +} + +function cancellationOnCancel() { + return this._onCancelField; +} + +function cancellationSetOnCancel(onCancel) { + this._onCancelField = onCancel; +} + +function cancellationClearCancellationData() { + this._cancellationParent = undefined; + this._onCancelField = undefined; +} + +function cancellationPropagateFrom(parent, flags) { + if ((flags & 1) !== 0) { + this._cancellationParent = parent; + var branchesRemainingToCancel = parent._branchesRemainingToCancel; + if (branchesRemainingToCancel === undefined) { + branchesRemainingToCancel = 0; + } + parent._branchesRemainingToCancel = branchesRemainingToCancel + 1; + } + if ((flags & 2) !== 0 && parent._isBound()) { + this._setBoundTo(parent._boundTo); + } +} + +function bindingPropagateFrom(parent, flags) { + if ((flags & 2) !== 0 && parent._isBound()) { + this._setBoundTo(parent._boundTo); + } +} +var propagateFromFunction = bindingPropagateFrom; + +function boundValueFunction() { + var ret = this._boundTo; + if (ret !== undefined) { + if (ret instanceof Promise) { + if (ret.isFulfilled()) { + return ret.value(); + } else { + return undefined; + } + } + } + return ret; +} + +function longStackTracesCaptureStackTrace() { + this._trace = new CapturedTrace(this._peekContext()); +} + +function longStackTracesAttachExtraTrace(error, ignoreSelf) { + if (canAttachTrace(error)) { + var trace = this._trace; + if (trace !== undefined) { + if (ignoreSelf) trace = trace._parent; + } + if (trace !== undefined) { + trace.attachExtraTrace(error); + } else if (!error.__stackCleaned__) { + var parsed = parseStackAndMessage(error); + util.notEnumerableProp(error, "stack", + parsed.message + "\n" + parsed.stack.join("\n")); + util.notEnumerableProp(error, "__stackCleaned__", true); + } + } +} + +function longStackTracesDereferenceTrace() { + this._trace = undefined; +} + +function checkForgottenReturns(returnValue, promiseCreated, name, promise, + parent) { + if (returnValue === undefined && promiseCreated !== null && + wForgottenReturn) { + if (parent !== undefined && parent._returnedNonUndefined()) return; + if ((promise._bitField & 65535) === 0) return; + + if (name) name = name + " "; + var handlerLine = ""; + var creatorLine = ""; + if (promiseCreated._trace) { + var traceLines = promiseCreated._trace.stack.split("\n"); + var stack = cleanStack(traceLines); + for (var i = stack.length - 1; i >= 0; --i) { + var line = stack[i]; + if (!nodeFramePattern.test(line)) { + var lineMatches = line.match(parseLinePattern); + if (lineMatches) { + handlerLine = "at " + lineMatches[1] + + ":" + lineMatches[2] + ":" + lineMatches[3] + " "; + } + break; + } + } + + if (stack.length > 0) { + var firstUserLine = stack[0]; + for (var i = 0; i < traceLines.length; ++i) { + + if (traceLines[i] === firstUserLine) { + if (i > 0) { + creatorLine = "\n" + traceLines[i - 1]; + } + break; + } + } + + } + } + var msg = "a promise was created in a " + name + + "handler " + handlerLine + "but was not returned from it, " + + "see http://goo.gl/rRqMUw" + + creatorLine; + promise._warn(msg, true, promiseCreated); + } +} + +function deprecated(name, replacement) { + var message = name + + " is deprecated and will be removed in a future version."; + if (replacement) message += " Use " + replacement + " instead."; + return warn(message); +} + +function warn(message, shouldUseOwnTrace, promise) { + if (!config.warnings) return; + var warning = new Warning(message); + var ctx; + if (shouldUseOwnTrace) { + promise._attachExtraTrace(warning); + } else if (config.longStackTraces && (ctx = Promise._peekContext())) { + ctx.attachExtraTrace(warning); + } else { + var parsed = parseStackAndMessage(warning); + warning.stack = parsed.message + "\n" + parsed.stack.join("\n"); + } + + if (!activeFireEvent("warning", warning)) { + formatAndLogError(warning, "", true); + } +} + +function reconstructStack(message, stacks) { + for (var i = 0; i < stacks.length - 1; ++i) { + stacks[i].push("From previous event:"); + stacks[i] = stacks[i].join("\n"); + } + if (i < stacks.length) { + stacks[i] = stacks[i].join("\n"); + } + return message + "\n" + stacks.join("\n"); +} + +function removeDuplicateOrEmptyJumps(stacks) { + for (var i = 0; i < stacks.length; ++i) { + if (stacks[i].length === 0 || + ((i + 1 < stacks.length) && stacks[i][0] === stacks[i+1][0])) { + stacks.splice(i, 1); + i--; + } + } +} + +function removeCommonRoots(stacks) { + var current = stacks[0]; + for (var i = 1; i < stacks.length; ++i) { + var prev = stacks[i]; + var currentLastIndex = current.length - 1; + var currentLastLine = current[currentLastIndex]; + var commonRootMeetPoint = -1; + + for (var j = prev.length - 1; j >= 0; --j) { + if (prev[j] === currentLastLine) { + commonRootMeetPoint = j; + break; + } + } + + for (var j = commonRootMeetPoint; j >= 0; --j) { + var line = prev[j]; + if (current[currentLastIndex] === line) { + current.pop(); + currentLastIndex--; + } else { + break; + } + } + current = prev; + } +} + +function cleanStack(stack) { + var ret = []; + for (var i = 0; i < stack.length; ++i) { + var line = stack[i]; + var isTraceLine = " (No stack trace)" === line || + stackFramePattern.test(line); + var isInternalFrame = isTraceLine && shouldIgnore(line); + if (isTraceLine && !isInternalFrame) { + if (indentStackFrames && line.charAt(0) !== " ") { + line = " " + line; + } + ret.push(line); + } + } + return ret; +} + +function stackFramesAsArray(error) { + var stack = error.stack.replace(/\s+$/g, "").split("\n"); + for (var i = 0; i < stack.length; ++i) { + var line = stack[i]; + if (" (No stack trace)" === line || stackFramePattern.test(line)) { + break; + } + } + if (i > 0 && error.name != "SyntaxError") { + stack = stack.slice(i); + } + return stack; +} + +function parseStackAndMessage(error) { + var stack = error.stack; + var message = error.toString(); + stack = typeof stack === "string" && stack.length > 0 + ? stackFramesAsArray(error) : [" (No stack trace)"]; + return { + message: message, + stack: error.name == "SyntaxError" ? stack : cleanStack(stack) + }; +} + +function formatAndLogError(error, title, isSoft) { + if (typeof console !== "undefined") { + var message; + if (util.isObject(error)) { + var stack = error.stack; + message = title + formatStack(stack, error); + } else { + message = title + String(error); + } + if (typeof printWarning === "function") { + printWarning(message, isSoft); + } else if (typeof console.log === "function" || + typeof console.log === "object") { + console.log(message); + } + } +} + +function fireRejectionEvent(name, localHandler, reason, promise) { + var localEventFired = false; + try { + if (typeof localHandler === "function") { + localEventFired = true; + if (name === "rejectionHandled") { + localHandler(promise); + } else { + localHandler(reason, promise); + } + } + } catch (e) { + async.throwLater(e); + } + + if (name === "unhandledRejection") { + if (!activeFireEvent(name, reason, promise) && !localEventFired) { + formatAndLogError(reason, "Unhandled rejection "); + } + } else { + activeFireEvent(name, promise); + } +} + +function formatNonError(obj) { + var str; + if (typeof obj === "function") { + str = "[function " + + (obj.name || "anonymous") + + "]"; + } else { + str = obj && typeof obj.toString === "function" + ? obj.toString() : util.toString(obj); + var ruselessToString = /\[object [a-zA-Z0-9$_]+\]/; + if (ruselessToString.test(str)) { + try { + var newStr = JSON.stringify(obj); + str = newStr; + } + catch(e) { + + } + } + if (str.length === 0) { + str = "(empty array)"; + } + } + return ("(<" + snip(str) + ">, no stack trace)"); +} + +function snip(str) { + var maxChars = 41; + if (str.length < maxChars) { + return str; + } + return str.substr(0, maxChars - 3) + "..."; +} + +function longStackTracesIsSupported() { + return typeof captureStackTrace === "function"; +} + +var shouldIgnore = function() { return false; }; +var parseLineInfoRegex = /[\/<\(]([^:\/]+):(\d+):(?:\d+)\)?\s*$/; +function parseLineInfo(line) { + var matches = line.match(parseLineInfoRegex); + if (matches) { + return { + fileName: matches[1], + line: parseInt(matches[2], 10) + }; + } +} + +function setBounds(firstLineError, lastLineError) { + if (!longStackTracesIsSupported()) return; + var firstStackLines = (firstLineError.stack || "").split("\n"); + var lastStackLines = (lastLineError.stack || "").split("\n"); + var firstIndex = -1; + var lastIndex = -1; + var firstFileName; + var lastFileName; + for (var i = 0; i < firstStackLines.length; ++i) { + var result = parseLineInfo(firstStackLines[i]); + if (result) { + firstFileName = result.fileName; + firstIndex = result.line; + break; + } + } + for (var i = 0; i < lastStackLines.length; ++i) { + var result = parseLineInfo(lastStackLines[i]); + if (result) { + lastFileName = result.fileName; + lastIndex = result.line; + break; + } + } + if (firstIndex < 0 || lastIndex < 0 || !firstFileName || !lastFileName || + firstFileName !== lastFileName || firstIndex >= lastIndex) { + return; + } + + shouldIgnore = function(line) { + if (bluebirdFramePattern.test(line)) return true; + var info = parseLineInfo(line); + if (info) { + if (info.fileName === firstFileName && + (firstIndex <= info.line && info.line <= lastIndex)) { + return true; + } + } + return false; + }; +} + +function CapturedTrace(parent) { + this._parent = parent; + this._promisesCreated = 0; + var length = this._length = 1 + (parent === undefined ? 0 : parent._length); + captureStackTrace(this, CapturedTrace); + if (length > 32) this.uncycle(); +} +util.inherits(CapturedTrace, Error); +Context.CapturedTrace = CapturedTrace; + +CapturedTrace.prototype.uncycle = function() { + var length = this._length; + if (length < 2) return; + var nodes = []; + var stackToIndex = {}; + + for (var i = 0, node = this; node !== undefined; ++i) { + nodes.push(node); + node = node._parent; + } + length = this._length = i; + for (var i = length - 1; i >= 0; --i) { + var stack = nodes[i].stack; + if (stackToIndex[stack] === undefined) { + stackToIndex[stack] = i; + } + } + for (var i = 0; i < length; ++i) { + var currentStack = nodes[i].stack; + var index = stackToIndex[currentStack]; + if (index !== undefined && index !== i) { + if (index > 0) { + nodes[index - 1]._parent = undefined; + nodes[index - 1]._length = 1; + } + nodes[i]._parent = undefined; + nodes[i]._length = 1; + var cycleEdgeNode = i > 0 ? nodes[i - 1] : this; + + if (index < length - 1) { + cycleEdgeNode._parent = nodes[index + 1]; + cycleEdgeNode._parent.uncycle(); + cycleEdgeNode._length = + cycleEdgeNode._parent._length + 1; + } else { + cycleEdgeNode._parent = undefined; + cycleEdgeNode._length = 1; + } + var currentChildLength = cycleEdgeNode._length + 1; + for (var j = i - 2; j >= 0; --j) { + nodes[j]._length = currentChildLength; + currentChildLength++; + } + return; + } + } +}; + +CapturedTrace.prototype.attachExtraTrace = function(error) { + if (error.__stackCleaned__) return; + this.uncycle(); + var parsed = parseStackAndMessage(error); + var message = parsed.message; + var stacks = [parsed.stack]; + + var trace = this; + while (trace !== undefined) { + stacks.push(cleanStack(trace.stack.split("\n"))); + trace = trace._parent; + } + removeCommonRoots(stacks); + removeDuplicateOrEmptyJumps(stacks); + util.notEnumerableProp(error, "stack", reconstructStack(message, stacks)); + util.notEnumerableProp(error, "__stackCleaned__", true); +}; + +var captureStackTrace = (function stackDetection() { + var v8stackFramePattern = /^\s*at\s*/; + var v8stackFormatter = function(stack, error) { + if (typeof stack === "string") return stack; + + if (error.name !== undefined && + error.message !== undefined) { + return error.toString(); + } + return formatNonError(error); + }; + + if (typeof Error.stackTraceLimit === "number" && + typeof Error.captureStackTrace === "function") { + Error.stackTraceLimit += 6; + stackFramePattern = v8stackFramePattern; + formatStack = v8stackFormatter; + var captureStackTrace = Error.captureStackTrace; + + shouldIgnore = function(line) { + return bluebirdFramePattern.test(line); + }; + return function(receiver, ignoreUntil) { + Error.stackTraceLimit += 6; + captureStackTrace(receiver, ignoreUntil); + Error.stackTraceLimit -= 6; + }; + } + var err = new Error(); + + if (typeof err.stack === "string" && + err.stack.split("\n")[0].indexOf("stackDetection@") >= 0) { + stackFramePattern = /@/; + formatStack = v8stackFormatter; + indentStackFrames = true; + return function captureStackTrace(o) { + o.stack = new Error().stack; + }; + } + + var hasStackAfterThrow; + try { throw new Error(); } + catch(e) { + hasStackAfterThrow = ("stack" in e); + } + if (!("stack" in err) && hasStackAfterThrow && + typeof Error.stackTraceLimit === "number") { + stackFramePattern = v8stackFramePattern; + formatStack = v8stackFormatter; + return function captureStackTrace(o) { + Error.stackTraceLimit += 6; + try { throw new Error(); } + catch(e) { o.stack = e.stack; } + Error.stackTraceLimit -= 6; + }; + } + + formatStack = function(stack, error) { + if (typeof stack === "string") return stack; + + if ((typeof error === "object" || + typeof error === "function") && + error.name !== undefined && + error.message !== undefined) { + return error.toString(); + } + return formatNonError(error); + }; + + return null; + +})([]); + +if (typeof console !== "undefined" && typeof console.warn !== "undefined") { + printWarning = function (message) { + console.warn(message); + }; + if (util.isNode && process.stderr.isTTY) { + printWarning = function(message, isSoft) { + var color = isSoft ? "\u001b[33m" : "\u001b[31m"; + console.warn(color + message + "\u001b[0m\n"); + }; + } else if (!util.isNode && typeof (new Error().stack) === "string") { + printWarning = function(message, isSoft) { + console.warn("%c" + message, + isSoft ? "color: darkorange" : "color: red"); + }; + } +} + +var config = { + warnings: warnings, + longStackTraces: false, + cancellation: false, + monitoring: false, + asyncHooks: false +}; + +if (longStackTraces) Promise.longStackTraces(); + +return { + asyncHooks: function() { + return config.asyncHooks; + }, + longStackTraces: function() { + return config.longStackTraces; + }, + warnings: function() { + return config.warnings; + }, + cancellation: function() { + return config.cancellation; + }, + monitoring: function() { + return config.monitoring; + }, + propagateFromFunction: function() { + return propagateFromFunction; + }, + boundValueFunction: function() { + return boundValueFunction; + }, + checkForgottenReturns: checkForgottenReturns, + setBounds: setBounds, + warn: warn, + deprecated: deprecated, + CapturedTrace: CapturedTrace, + fireDomEvent: fireDomEvent, + fireGlobalEvent: fireGlobalEvent +}; +}; diff --git a/node_modules/bluebird/js/release/direct_resolve.js b/node_modules/bluebird/js/release/direct_resolve.js new file mode 100644 index 0000000..a890298 --- /dev/null +++ b/node_modules/bluebird/js/release/direct_resolve.js @@ -0,0 +1,46 @@ +"use strict"; +module.exports = function(Promise) { +function returner() { + return this.value; +} +function thrower() { + throw this.reason; +} + +Promise.prototype["return"] = +Promise.prototype.thenReturn = function (value) { + if (value instanceof Promise) value.suppressUnhandledRejections(); + return this._then( + returner, undefined, undefined, {value: value}, undefined); +}; + +Promise.prototype["throw"] = +Promise.prototype.thenThrow = function (reason) { + return this._then( + thrower, undefined, undefined, {reason: reason}, undefined); +}; + +Promise.prototype.catchThrow = function (reason) { + if (arguments.length <= 1) { + return this._then( + undefined, thrower, undefined, {reason: reason}, undefined); + } else { + var _reason = arguments[1]; + var handler = function() {throw _reason;}; + return this.caught(reason, handler); + } +}; + +Promise.prototype.catchReturn = function (value) { + if (arguments.length <= 1) { + if (value instanceof Promise) value.suppressUnhandledRejections(); + return this._then( + undefined, returner, undefined, {value: value}, undefined); + } else { + var _value = arguments[1]; + if (_value instanceof Promise) _value.suppressUnhandledRejections(); + var handler = function() {return _value;}; + return this.caught(value, handler); + } +}; +}; diff --git a/node_modules/bluebird/js/release/each.js b/node_modules/bluebird/js/release/each.js new file mode 100644 index 0000000..e4f3d05 --- /dev/null +++ b/node_modules/bluebird/js/release/each.js @@ -0,0 +1,30 @@ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var PromiseReduce = Promise.reduce; +var PromiseAll = Promise.all; + +function promiseAllThis() { + return PromiseAll(this); +} + +function PromiseMapSeries(promises, fn) { + return PromiseReduce(promises, fn, INTERNAL, INTERNAL); +} + +Promise.prototype.each = function (fn) { + return PromiseReduce(this, fn, INTERNAL, 0) + ._then(promiseAllThis, undefined, undefined, this, undefined); +}; + +Promise.prototype.mapSeries = function (fn) { + return PromiseReduce(this, fn, INTERNAL, INTERNAL); +}; + +Promise.each = function (promises, fn) { + return PromiseReduce(promises, fn, INTERNAL, 0) + ._then(promiseAllThis, undefined, undefined, promises, undefined); +}; + +Promise.mapSeries = PromiseMapSeries; +}; + diff --git a/node_modules/bluebird/js/release/errors.js b/node_modules/bluebird/js/release/errors.js new file mode 100644 index 0000000..f62f323 --- /dev/null +++ b/node_modules/bluebird/js/release/errors.js @@ -0,0 +1,116 @@ +"use strict"; +var es5 = require("./es5"); +var Objectfreeze = es5.freeze; +var util = require("./util"); +var inherits = util.inherits; +var notEnumerableProp = util.notEnumerableProp; + +function subError(nameProperty, defaultMessage) { + function SubError(message) { + if (!(this instanceof SubError)) return new SubError(message); + notEnumerableProp(this, "message", + typeof message === "string" ? message : defaultMessage); + notEnumerableProp(this, "name", nameProperty); + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + Error.call(this); + } + } + inherits(SubError, Error); + return SubError; +} + +var _TypeError, _RangeError; +var Warning = subError("Warning", "warning"); +var CancellationError = subError("CancellationError", "cancellation error"); +var TimeoutError = subError("TimeoutError", "timeout error"); +var AggregateError = subError("AggregateError", "aggregate error"); +try { + _TypeError = TypeError; + _RangeError = RangeError; +} catch(e) { + _TypeError = subError("TypeError", "type error"); + _RangeError = subError("RangeError", "range error"); +} + +var methods = ("join pop push shift unshift slice filter forEach some " + + "every map indexOf lastIndexOf reduce reduceRight sort reverse").split(" "); + +for (var i = 0; i < methods.length; ++i) { + if (typeof Array.prototype[methods[i]] === "function") { + AggregateError.prototype[methods[i]] = Array.prototype[methods[i]]; + } +} + +es5.defineProperty(AggregateError.prototype, "length", { + value: 0, + configurable: false, + writable: true, + enumerable: true +}); +AggregateError.prototype["isOperational"] = true; +var level = 0; +AggregateError.prototype.toString = function() { + var indent = Array(level * 4 + 1).join(" "); + var ret = "\n" + indent + "AggregateError of:" + "\n"; + level++; + indent = Array(level * 4 + 1).join(" "); + for (var i = 0; i < this.length; ++i) { + var str = this[i] === this ? "[Circular AggregateError]" : this[i] + ""; + var lines = str.split("\n"); + for (var j = 0; j < lines.length; ++j) { + lines[j] = indent + lines[j]; + } + str = lines.join("\n"); + ret += str + "\n"; + } + level--; + return ret; +}; + +function OperationalError(message) { + if (!(this instanceof OperationalError)) + return new OperationalError(message); + notEnumerableProp(this, "name", "OperationalError"); + notEnumerableProp(this, "message", message); + this.cause = message; + this["isOperational"] = true; + + if (message instanceof Error) { + notEnumerableProp(this, "message", message.message); + notEnumerableProp(this, "stack", message.stack); + } else if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + +} +inherits(OperationalError, Error); + +var errorTypes = Error["__BluebirdErrorTypes__"]; +if (!errorTypes) { + errorTypes = Objectfreeze({ + CancellationError: CancellationError, + TimeoutError: TimeoutError, + OperationalError: OperationalError, + RejectionError: OperationalError, + AggregateError: AggregateError + }); + es5.defineProperty(Error, "__BluebirdErrorTypes__", { + value: errorTypes, + writable: false, + enumerable: false, + configurable: false + }); +} + +module.exports = { + Error: Error, + TypeError: _TypeError, + RangeError: _RangeError, + CancellationError: errorTypes.CancellationError, + OperationalError: errorTypes.OperationalError, + TimeoutError: errorTypes.TimeoutError, + AggregateError: errorTypes.AggregateError, + Warning: Warning +}; diff --git a/node_modules/bluebird/js/release/es5.js b/node_modules/bluebird/js/release/es5.js new file mode 100644 index 0000000..ea41d5a --- /dev/null +++ b/node_modules/bluebird/js/release/es5.js @@ -0,0 +1,80 @@ +var isES5 = (function(){ + "use strict"; + return this === undefined; +})(); + +if (isES5) { + module.exports = { + freeze: Object.freeze, + defineProperty: Object.defineProperty, + getDescriptor: Object.getOwnPropertyDescriptor, + keys: Object.keys, + names: Object.getOwnPropertyNames, + getPrototypeOf: Object.getPrototypeOf, + isArray: Array.isArray, + isES5: isES5, + propertyIsWritable: function(obj, prop) { + var descriptor = Object.getOwnPropertyDescriptor(obj, prop); + return !!(!descriptor || descriptor.writable || descriptor.set); + } + }; +} else { + var has = {}.hasOwnProperty; + var str = {}.toString; + var proto = {}.constructor.prototype; + + var ObjectKeys = function (o) { + var ret = []; + for (var key in o) { + if (has.call(o, key)) { + ret.push(key); + } + } + return ret; + }; + + var ObjectGetDescriptor = function(o, key) { + return {value: o[key]}; + }; + + var ObjectDefineProperty = function (o, key, desc) { + o[key] = desc.value; + return o; + }; + + var ObjectFreeze = function (obj) { + return obj; + }; + + var ObjectGetPrototypeOf = function (obj) { + try { + return Object(obj).constructor.prototype; + } + catch (e) { + return proto; + } + }; + + var ArrayIsArray = function (obj) { + try { + return str.call(obj) === "[object Array]"; + } + catch(e) { + return false; + } + }; + + module.exports = { + isArray: ArrayIsArray, + keys: ObjectKeys, + names: ObjectKeys, + defineProperty: ObjectDefineProperty, + getDescriptor: ObjectGetDescriptor, + freeze: ObjectFreeze, + getPrototypeOf: ObjectGetPrototypeOf, + isES5: isES5, + propertyIsWritable: function() { + return true; + } + }; +} diff --git a/node_modules/bluebird/js/release/filter.js b/node_modules/bluebird/js/release/filter.js new file mode 100644 index 0000000..ed57bf0 --- /dev/null +++ b/node_modules/bluebird/js/release/filter.js @@ -0,0 +1,12 @@ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var PromiseMap = Promise.map; + +Promise.prototype.filter = function (fn, options) { + return PromiseMap(this, fn, options, INTERNAL); +}; + +Promise.filter = function (promises, fn, options) { + return PromiseMap(promises, fn, options, INTERNAL); +}; +}; diff --git a/node_modules/bluebird/js/release/finally.js b/node_modules/bluebird/js/release/finally.js new file mode 100644 index 0000000..d57444b --- /dev/null +++ b/node_modules/bluebird/js/release/finally.js @@ -0,0 +1,146 @@ +"use strict"; +module.exports = function(Promise, tryConvertToPromise, NEXT_FILTER) { +var util = require("./util"); +var CancellationError = Promise.CancellationError; +var errorObj = util.errorObj; +var catchFilter = require("./catch_filter")(NEXT_FILTER); + +function PassThroughHandlerContext(promise, type, handler) { + this.promise = promise; + this.type = type; + this.handler = handler; + this.called = false; + this.cancelPromise = null; +} + +PassThroughHandlerContext.prototype.isFinallyHandler = function() { + return this.type === 0; +}; + +function FinallyHandlerCancelReaction(finallyHandler) { + this.finallyHandler = finallyHandler; +} + +FinallyHandlerCancelReaction.prototype._resultCancelled = function() { + checkCancel(this.finallyHandler); +}; + +function checkCancel(ctx, reason) { + if (ctx.cancelPromise != null) { + if (arguments.length > 1) { + ctx.cancelPromise._reject(reason); + } else { + ctx.cancelPromise._cancel(); + } + ctx.cancelPromise = null; + return true; + } + return false; +} + +function succeed() { + return finallyHandler.call(this, this.promise._target()._settledValue()); +} +function fail(reason) { + if (checkCancel(this, reason)) return; + errorObj.e = reason; + return errorObj; +} +function finallyHandler(reasonOrValue) { + var promise = this.promise; + var handler = this.handler; + + if (!this.called) { + this.called = true; + var ret = this.isFinallyHandler() + ? handler.call(promise._boundValue()) + : handler.call(promise._boundValue(), reasonOrValue); + if (ret === NEXT_FILTER) { + return ret; + } else if (ret !== undefined) { + promise._setReturnedNonUndefined(); + var maybePromise = tryConvertToPromise(ret, promise); + if (maybePromise instanceof Promise) { + if (this.cancelPromise != null) { + if (maybePromise._isCancelled()) { + var reason = + new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason); + errorObj.e = reason; + return errorObj; + } else if (maybePromise.isPending()) { + maybePromise._attachCancellationCallback( + new FinallyHandlerCancelReaction(this)); + } + } + return maybePromise._then( + succeed, fail, undefined, this, undefined); + } + } + } + + if (promise.isRejected()) { + checkCancel(this); + errorObj.e = reasonOrValue; + return errorObj; + } else { + checkCancel(this); + return reasonOrValue; + } +} + +Promise.prototype._passThrough = function(handler, type, success, fail) { + if (typeof handler !== "function") return this.then(); + return this._then(success, + fail, + undefined, + new PassThroughHandlerContext(this, type, handler), + undefined); +}; + +Promise.prototype.lastly = +Promise.prototype["finally"] = function (handler) { + return this._passThrough(handler, + 0, + finallyHandler, + finallyHandler); +}; + + +Promise.prototype.tap = function (handler) { + return this._passThrough(handler, 1, finallyHandler); +}; + +Promise.prototype.tapCatch = function (handlerOrPredicate) { + var len = arguments.length; + if(len === 1) { + return this._passThrough(handlerOrPredicate, + 1, + undefined, + finallyHandler); + } else { + var catchInstances = new Array(len - 1), + j = 0, i; + for (i = 0; i < len - 1; ++i) { + var item = arguments[i]; + if (util.isObject(item)) { + catchInstances[j++] = item; + } else { + return Promise.reject(new TypeError( + "tapCatch statement predicate: " + + "expecting an object but got " + util.classString(item) + )); + } + } + catchInstances.length = j; + var handler = arguments[i]; + return this._passThrough(catchFilter(catchInstances, handler, this), + 1, + undefined, + finallyHandler); + } + +}; + +return PassThroughHandlerContext; +}; diff --git a/node_modules/bluebird/js/release/generators.js b/node_modules/bluebird/js/release/generators.js new file mode 100644 index 0000000..500c280 --- /dev/null +++ b/node_modules/bluebird/js/release/generators.js @@ -0,0 +1,223 @@ +"use strict"; +module.exports = function(Promise, + apiRejection, + INTERNAL, + tryConvertToPromise, + Proxyable, + debug) { +var errors = require("./errors"); +var TypeError = errors.TypeError; +var util = require("./util"); +var errorObj = util.errorObj; +var tryCatch = util.tryCatch; +var yieldHandlers = []; + +function promiseFromYieldHandler(value, yieldHandlers, traceParent) { + for (var i = 0; i < yieldHandlers.length; ++i) { + traceParent._pushContext(); + var result = tryCatch(yieldHandlers[i])(value); + traceParent._popContext(); + if (result === errorObj) { + traceParent._pushContext(); + var ret = Promise.reject(errorObj.e); + traceParent._popContext(); + return ret; + } + var maybePromise = tryConvertToPromise(result, traceParent); + if (maybePromise instanceof Promise) return maybePromise; + } + return null; +} + +function PromiseSpawn(generatorFunction, receiver, yieldHandler, stack) { + if (debug.cancellation()) { + var internal = new Promise(INTERNAL); + var _finallyPromise = this._finallyPromise = new Promise(INTERNAL); + this._promise = internal.lastly(function() { + return _finallyPromise; + }); + internal._captureStackTrace(); + internal._setOnCancel(this); + } else { + var promise = this._promise = new Promise(INTERNAL); + promise._captureStackTrace(); + } + this._stack = stack; + this._generatorFunction = generatorFunction; + this._receiver = receiver; + this._generator = undefined; + this._yieldHandlers = typeof yieldHandler === "function" + ? [yieldHandler].concat(yieldHandlers) + : yieldHandlers; + this._yieldedPromise = null; + this._cancellationPhase = false; +} +util.inherits(PromiseSpawn, Proxyable); + +PromiseSpawn.prototype._isResolved = function() { + return this._promise === null; +}; + +PromiseSpawn.prototype._cleanup = function() { + this._promise = this._generator = null; + if (debug.cancellation() && this._finallyPromise !== null) { + this._finallyPromise._fulfill(); + this._finallyPromise = null; + } +}; + +PromiseSpawn.prototype._promiseCancelled = function() { + if (this._isResolved()) return; + var implementsReturn = typeof this._generator["return"] !== "undefined"; + + var result; + if (!implementsReturn) { + var reason = new Promise.CancellationError( + "generator .return() sentinel"); + Promise.coroutine.returnSentinel = reason; + this._promise._attachExtraTrace(reason); + this._promise._pushContext(); + result = tryCatch(this._generator["throw"]).call(this._generator, + reason); + this._promise._popContext(); + } else { + this._promise._pushContext(); + result = tryCatch(this._generator["return"]).call(this._generator, + undefined); + this._promise._popContext(); + } + this._cancellationPhase = true; + this._yieldedPromise = null; + this._continue(result); +}; + +PromiseSpawn.prototype._promiseFulfilled = function(value) { + this._yieldedPromise = null; + this._promise._pushContext(); + var result = tryCatch(this._generator.next).call(this._generator, value); + this._promise._popContext(); + this._continue(result); +}; + +PromiseSpawn.prototype._promiseRejected = function(reason) { + this._yieldedPromise = null; + this._promise._attachExtraTrace(reason); + this._promise._pushContext(); + var result = tryCatch(this._generator["throw"]) + .call(this._generator, reason); + this._promise._popContext(); + this._continue(result); +}; + +PromiseSpawn.prototype._resultCancelled = function() { + if (this._yieldedPromise instanceof Promise) { + var promise = this._yieldedPromise; + this._yieldedPromise = null; + promise.cancel(); + } +}; + +PromiseSpawn.prototype.promise = function () { + return this._promise; +}; + +PromiseSpawn.prototype._run = function () { + this._generator = this._generatorFunction.call(this._receiver); + this._receiver = + this._generatorFunction = undefined; + this._promiseFulfilled(undefined); +}; + +PromiseSpawn.prototype._continue = function (result) { + var promise = this._promise; + if (result === errorObj) { + this._cleanup(); + if (this._cancellationPhase) { + return promise.cancel(); + } else { + return promise._rejectCallback(result.e, false); + } + } + + var value = result.value; + if (result.done === true) { + this._cleanup(); + if (this._cancellationPhase) { + return promise.cancel(); + } else { + return promise._resolveCallback(value); + } + } else { + var maybePromise = tryConvertToPromise(value, this._promise); + if (!(maybePromise instanceof Promise)) { + maybePromise = + promiseFromYieldHandler(maybePromise, + this._yieldHandlers, + this._promise); + if (maybePromise === null) { + this._promiseRejected( + new TypeError( + "A value %s was yielded that could not be treated as a promise\u000a\u000a See http://goo.gl/MqrFmX\u000a\u000a".replace("%s", String(value)) + + "From coroutine:\u000a" + + this._stack.split("\n").slice(1, -7).join("\n") + ) + ); + return; + } + } + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + this._yieldedPromise = maybePromise; + maybePromise._proxy(this, null); + } else if (((bitField & 33554432) !== 0)) { + Promise._async.invoke( + this._promiseFulfilled, this, maybePromise._value() + ); + } else if (((bitField & 16777216) !== 0)) { + Promise._async.invoke( + this._promiseRejected, this, maybePromise._reason() + ); + } else { + this._promiseCancelled(); + } + } +}; + +Promise.coroutine = function (generatorFunction, options) { + if (typeof generatorFunction !== "function") { + throw new TypeError("generatorFunction must be a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + var yieldHandler = Object(options).yieldHandler; + var PromiseSpawn$ = PromiseSpawn; + var stack = new Error().stack; + return function () { + var generator = generatorFunction.apply(this, arguments); + var spawn = new PromiseSpawn$(undefined, undefined, yieldHandler, + stack); + var ret = spawn.promise(); + spawn._generator = generator; + spawn._promiseFulfilled(undefined); + return ret; + }; +}; + +Promise.coroutine.addYieldHandler = function(fn) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + yieldHandlers.push(fn); +}; + +Promise.spawn = function (generatorFunction) { + debug.deprecated("Promise.spawn()", "Promise.coroutine()"); + if (typeof generatorFunction !== "function") { + return apiRejection("generatorFunction must be a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + var spawn = new PromiseSpawn(generatorFunction, this); + var ret = spawn.promise(); + spawn._run(Promise.spawn); + return ret; +}; +}; diff --git a/node_modules/bluebird/js/release/join.js b/node_modules/bluebird/js/release/join.js new file mode 100644 index 0000000..e7e19f0 --- /dev/null +++ b/node_modules/bluebird/js/release/join.js @@ -0,0 +1,165 @@ +"use strict"; +module.exports = +function(Promise, PromiseArray, tryConvertToPromise, INTERNAL, async) { +var util = require("./util"); +var canEvaluate = util.canEvaluate; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var reject; + +if (!false) { +if (canEvaluate) { + var thenCallback = function(i) { + return new Function("value", "holder", " \n\ + 'use strict'; \n\ + holder.pIndex = value; \n\ + holder.checkFulfillment(this); \n\ + ".replace(/Index/g, i)); + }; + + var promiseSetter = function(i) { + return new Function("promise", "holder", " \n\ + 'use strict'; \n\ + holder.pIndex = promise; \n\ + ".replace(/Index/g, i)); + }; + + var generateHolderClass = function(total) { + var props = new Array(total); + for (var i = 0; i < props.length; ++i) { + props[i] = "this.p" + (i+1); + } + var assignment = props.join(" = ") + " = null;"; + var cancellationCode= "var promise;\n" + props.map(function(prop) { + return " \n\ + promise = " + prop + "; \n\ + if (promise instanceof Promise) { \n\ + promise.cancel(); \n\ + } \n\ + "; + }).join("\n"); + var passedArguments = props.join(", "); + var name = "Holder$" + total; + + + var code = "return function(tryCatch, errorObj, Promise, async) { \n\ + 'use strict'; \n\ + function [TheName](fn) { \n\ + [TheProperties] \n\ + this.fn = fn; \n\ + this.asyncNeeded = true; \n\ + this.now = 0; \n\ + } \n\ + \n\ + [TheName].prototype._callFunction = function(promise) { \n\ + promise._pushContext(); \n\ + var ret = tryCatch(this.fn)([ThePassedArguments]); \n\ + promise._popContext(); \n\ + if (ret === errorObj) { \n\ + promise._rejectCallback(ret.e, false); \n\ + } else { \n\ + promise._resolveCallback(ret); \n\ + } \n\ + }; \n\ + \n\ + [TheName].prototype.checkFulfillment = function(promise) { \n\ + var now = ++this.now; \n\ + if (now === [TheTotal]) { \n\ + if (this.asyncNeeded) { \n\ + async.invoke(this._callFunction, this, promise); \n\ + } else { \n\ + this._callFunction(promise); \n\ + } \n\ + \n\ + } \n\ + }; \n\ + \n\ + [TheName].prototype._resultCancelled = function() { \n\ + [CancellationCode] \n\ + }; \n\ + \n\ + return [TheName]; \n\ + }(tryCatch, errorObj, Promise, async); \n\ + "; + + code = code.replace(/\[TheName\]/g, name) + .replace(/\[TheTotal\]/g, total) + .replace(/\[ThePassedArguments\]/g, passedArguments) + .replace(/\[TheProperties\]/g, assignment) + .replace(/\[CancellationCode\]/g, cancellationCode); + + return new Function("tryCatch", "errorObj", "Promise", "async", code) + (tryCatch, errorObj, Promise, async); + }; + + var holderClasses = []; + var thenCallbacks = []; + var promiseSetters = []; + + for (var i = 0; i < 8; ++i) { + holderClasses.push(generateHolderClass(i + 1)); + thenCallbacks.push(thenCallback(i + 1)); + promiseSetters.push(promiseSetter(i + 1)); + } + + reject = function (reason) { + this._reject(reason); + }; +}} + +Promise.join = function () { + var last = arguments.length - 1; + var fn; + if (last > 0 && typeof arguments[last] === "function") { + fn = arguments[last]; + if (!false) { + if (last <= 8 && canEvaluate) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var HolderClass = holderClasses[last - 1]; + var holder = new HolderClass(fn); + var callbacks = thenCallbacks; + + for (var i = 0; i < last; ++i) { + var maybePromise = tryConvertToPromise(arguments[i], ret); + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + maybePromise._then(callbacks[i], reject, + undefined, ret, holder); + promiseSetters[i](maybePromise, holder); + holder.asyncNeeded = false; + } else if (((bitField & 33554432) !== 0)) { + callbacks[i].call(ret, + maybePromise._value(), holder); + } else if (((bitField & 16777216) !== 0)) { + ret._reject(maybePromise._reason()); + } else { + ret._cancel(); + } + } else { + callbacks[i].call(ret, maybePromise, holder); + } + } + + if (!ret._isFateSealed()) { + if (holder.asyncNeeded) { + var context = Promise._getContext(); + holder.fn = util.contextBind(context, holder.fn); + } + ret._setAsyncGuaranteed(); + ret._setOnCancel(holder); + } + return ret; + } + } + } + var $_len = arguments.length;var args = new Array($_len); for(var $_i = 0; $_i < $_len ; ++$_i) {args[$_i] = arguments[$_i ];}; + if (fn) args.pop(); + var ret = new PromiseArray(args).promise(); + return fn !== undefined ? ret.spread(fn) : ret; +}; + +}; diff --git a/node_modules/bluebird/js/release/map.js b/node_modules/bluebird/js/release/map.js new file mode 100644 index 0000000..91d5a82 --- /dev/null +++ b/node_modules/bluebird/js/release/map.js @@ -0,0 +1,175 @@ +"use strict"; +module.exports = function(Promise, + PromiseArray, + apiRejection, + tryConvertToPromise, + INTERNAL, + debug) { +var util = require("./util"); +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; +var async = Promise._async; + +function MappingPromiseArray(promises, fn, limit, _filter) { + this.constructor$(promises); + this._promise._captureStackTrace(); + var context = Promise._getContext(); + this._callback = util.contextBind(context, fn); + this._preservedValues = _filter === INTERNAL + ? new Array(this.length()) + : null; + this._limit = limit; + this._inFlight = 0; + this._queue = []; + async.invoke(this._asyncInit, this, undefined); + if (util.isArray(promises)) { + for (var i = 0; i < promises.length; ++i) { + var maybePromise = promises[i]; + if (maybePromise instanceof Promise) { + maybePromise.suppressUnhandledRejections(); + } + } + } +} +util.inherits(MappingPromiseArray, PromiseArray); + +MappingPromiseArray.prototype._asyncInit = function() { + this._init$(undefined, -2); +}; + +MappingPromiseArray.prototype._init = function () {}; + +MappingPromiseArray.prototype._promiseFulfilled = function (value, index) { + var values = this._values; + var length = this.length(); + var preservedValues = this._preservedValues; + var limit = this._limit; + + if (index < 0) { + index = (index * -1) - 1; + values[index] = value; + if (limit >= 1) { + this._inFlight--; + this._drainQueue(); + if (this._isResolved()) return true; + } + } else { + if (limit >= 1 && this._inFlight >= limit) { + values[index] = value; + this._queue.push(index); + return false; + } + if (preservedValues !== null) preservedValues[index] = value; + + var promise = this._promise; + var callback = this._callback; + var receiver = promise._boundValue(); + promise._pushContext(); + var ret = tryCatch(callback).call(receiver, value, index, length); + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns( + ret, + promiseCreated, + preservedValues !== null ? "Promise.filter" : "Promise.map", + promise + ); + if (ret === errorObj) { + this._reject(ret.e); + return true; + } + + var maybePromise = tryConvertToPromise(ret, this._promise); + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + var bitField = maybePromise._bitField; + ; + if (((bitField & 50397184) === 0)) { + if (limit >= 1) this._inFlight++; + values[index] = maybePromise; + maybePromise._proxy(this, (index + 1) * -1); + return false; + } else if (((bitField & 33554432) !== 0)) { + ret = maybePromise._value(); + } else if (((bitField & 16777216) !== 0)) { + this._reject(maybePromise._reason()); + return true; + } else { + this._cancel(); + return true; + } + } + values[index] = ret; + } + var totalResolved = ++this._totalResolved; + if (totalResolved >= length) { + if (preservedValues !== null) { + this._filter(values, preservedValues); + } else { + this._resolve(values); + } + return true; + } + return false; +}; + +MappingPromiseArray.prototype._drainQueue = function () { + var queue = this._queue; + var limit = this._limit; + var values = this._values; + while (queue.length > 0 && this._inFlight < limit) { + if (this._isResolved()) return; + var index = queue.pop(); + this._promiseFulfilled(values[index], index); + } +}; + +MappingPromiseArray.prototype._filter = function (booleans, values) { + var len = values.length; + var ret = new Array(len); + var j = 0; + for (var i = 0; i < len; ++i) { + if (booleans[i]) ret[j++] = values[i]; + } + ret.length = j; + this._resolve(ret); +}; + +MappingPromiseArray.prototype.preservedValues = function () { + return this._preservedValues; +}; + +function map(promises, fn, options, _filter) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + + var limit = 0; + if (options !== undefined) { + if (typeof options === "object" && options !== null) { + if (typeof options.concurrency !== "number") { + return Promise.reject( + new TypeError("'concurrency' must be a number but it is " + + util.classString(options.concurrency))); + } + limit = options.concurrency; + } else { + return Promise.reject(new TypeError( + "options argument must be an object but it is " + + util.classString(options))); + } + } + limit = typeof limit === "number" && + isFinite(limit) && limit >= 1 ? limit : 0; + return new MappingPromiseArray(promises, fn, limit, _filter).promise(); +} + +Promise.prototype.map = function (fn, options) { + return map(this, fn, options, null); +}; + +Promise.map = function (promises, fn, options, _filter) { + return map(promises, fn, options, _filter); +}; + + +}; diff --git a/node_modules/bluebird/js/release/method.js b/node_modules/bluebird/js/release/method.js new file mode 100644 index 0000000..ce9e4db --- /dev/null +++ b/node_modules/bluebird/js/release/method.js @@ -0,0 +1,55 @@ +"use strict"; +module.exports = +function(Promise, INTERNAL, tryConvertToPromise, apiRejection, debug) { +var util = require("./util"); +var tryCatch = util.tryCatch; + +Promise.method = function (fn) { + if (typeof fn !== "function") { + throw new Promise.TypeError("expecting a function but got " + util.classString(fn)); + } + return function () { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._pushContext(); + var value = tryCatch(fn).apply(this, arguments); + var promiseCreated = ret._popContext(); + debug.checkForgottenReturns( + value, promiseCreated, "Promise.method", ret); + ret._resolveFromSyncValue(value); + return ret; + }; +}; + +Promise.attempt = Promise["try"] = function (fn) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._pushContext(); + var value; + if (arguments.length > 1) { + debug.deprecated("calling Promise.try with more than 1 argument"); + var arg = arguments[1]; + var ctx = arguments[2]; + value = util.isArray(arg) ? tryCatch(fn).apply(ctx, arg) + : tryCatch(fn).call(ctx, arg); + } else { + value = tryCatch(fn)(); + } + var promiseCreated = ret._popContext(); + debug.checkForgottenReturns( + value, promiseCreated, "Promise.try", ret); + ret._resolveFromSyncValue(value); + return ret; +}; + +Promise.prototype._resolveFromSyncValue = function (value) { + if (value === util.errorObj) { + this._rejectCallback(value.e, false); + } else { + this._resolveCallback(value, true); + } +}; +}; diff --git a/node_modules/bluebird/js/release/nodeback.js b/node_modules/bluebird/js/release/nodeback.js new file mode 100644 index 0000000..71e69eb --- /dev/null +++ b/node_modules/bluebird/js/release/nodeback.js @@ -0,0 +1,51 @@ +"use strict"; +var util = require("./util"); +var maybeWrapAsError = util.maybeWrapAsError; +var errors = require("./errors"); +var OperationalError = errors.OperationalError; +var es5 = require("./es5"); + +function isUntypedError(obj) { + return obj instanceof Error && + es5.getPrototypeOf(obj) === Error.prototype; +} + +var rErrorKey = /^(?:name|message|stack|cause)$/; +function wrapAsOperationalError(obj) { + var ret; + if (isUntypedError(obj)) { + ret = new OperationalError(obj); + ret.name = obj.name; + ret.message = obj.message; + ret.stack = obj.stack; + var keys = es5.keys(obj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (!rErrorKey.test(key)) { + ret[key] = obj[key]; + } + } + return ret; + } + util.markAsOriginatingFromRejection(obj); + return obj; +} + +function nodebackForPromise(promise, multiArgs) { + return function(err, value) { + if (promise === null) return; + if (err) { + var wrapped = wrapAsOperationalError(maybeWrapAsError(err)); + promise._attachExtraTrace(wrapped); + promise._reject(wrapped); + } else if (!multiArgs) { + promise._fulfill(value); + } else { + var $_len = arguments.length;var args = new Array(Math.max($_len - 1, 0)); for(var $_i = 1; $_i < $_len; ++$_i) {args[$_i - 1] = arguments[$_i];}; + promise._fulfill(args); + } + promise = null; + }; +} + +module.exports = nodebackForPromise; diff --git a/node_modules/bluebird/js/release/nodeify.js b/node_modules/bluebird/js/release/nodeify.js new file mode 100644 index 0000000..ce2b190 --- /dev/null +++ b/node_modules/bluebird/js/release/nodeify.js @@ -0,0 +1,58 @@ +"use strict"; +module.exports = function(Promise) { +var util = require("./util"); +var async = Promise._async; +var tryCatch = util.tryCatch; +var errorObj = util.errorObj; + +function spreadAdapter(val, nodeback) { + var promise = this; + if (!util.isArray(val)) return successAdapter.call(promise, val, nodeback); + var ret = + tryCatch(nodeback).apply(promise._boundValue(), [null].concat(val)); + if (ret === errorObj) { + async.throwLater(ret.e); + } +} + +function successAdapter(val, nodeback) { + var promise = this; + var receiver = promise._boundValue(); + var ret = val === undefined + ? tryCatch(nodeback).call(receiver, null) + : tryCatch(nodeback).call(receiver, null, val); + if (ret === errorObj) { + async.throwLater(ret.e); + } +} +function errorAdapter(reason, nodeback) { + var promise = this; + if (!reason) { + var newReason = new Error(reason + ""); + newReason.cause = reason; + reason = newReason; + } + var ret = tryCatch(nodeback).call(promise._boundValue(), reason); + if (ret === errorObj) { + async.throwLater(ret.e); + } +} + +Promise.prototype.asCallback = Promise.prototype.nodeify = function (nodeback, + options) { + if (typeof nodeback == "function") { + var adapter = successAdapter; + if (options !== undefined && Object(options).spread) { + adapter = spreadAdapter; + } + this._then( + adapter, + errorAdapter, + undefined, + this, + nodeback + ); + } + return this; +}; +}; diff --git a/node_modules/bluebird/js/release/promise.js b/node_modules/bluebird/js/release/promise.js new file mode 100644 index 0000000..622a86f --- /dev/null +++ b/node_modules/bluebird/js/release/promise.js @@ -0,0 +1,819 @@ +"use strict"; +module.exports = function() { +var makeSelfResolutionError = function () { + return new TypeError("circular promise resolution chain\u000a\u000a See http://goo.gl/MqrFmX\u000a"); +}; +var reflectHandler = function() { + return new Promise.PromiseInspection(this._target()); +}; +var apiRejection = function(msg) { + return Promise.reject(new TypeError(msg)); +}; +function Proxyable() {} +var UNDEFINED_BINDING = {}; +var util = require("./util"); +util.setReflectHandler(reflectHandler); + +var getDomain = function() { + var domain = process.domain; + if (domain === undefined) { + return null; + } + return domain; +}; +var getContextDefault = function() { + return null; +}; +var getContextDomain = function() { + return { + domain: getDomain(), + async: null + }; +}; +var AsyncResource = util.isNode && util.nodeSupportsAsyncResource ? + require("async_hooks").AsyncResource : null; +var getContextAsyncHooks = function() { + return { + domain: getDomain(), + async: new AsyncResource("Bluebird::Promise") + }; +}; +var getContext = util.isNode ? getContextDomain : getContextDefault; +util.notEnumerableProp(Promise, "_getContext", getContext); +var enableAsyncHooks = function() { + getContext = getContextAsyncHooks; + util.notEnumerableProp(Promise, "_getContext", getContextAsyncHooks); +}; +var disableAsyncHooks = function() { + getContext = getContextDomain; + util.notEnumerableProp(Promise, "_getContext", getContextDomain); +}; + +var es5 = require("./es5"); +var Async = require("./async"); +var async = new Async(); +es5.defineProperty(Promise, "_async", {value: async}); +var errors = require("./errors"); +var TypeError = Promise.TypeError = errors.TypeError; +Promise.RangeError = errors.RangeError; +var CancellationError = Promise.CancellationError = errors.CancellationError; +Promise.TimeoutError = errors.TimeoutError; +Promise.OperationalError = errors.OperationalError; +Promise.RejectionError = errors.OperationalError; +Promise.AggregateError = errors.AggregateError; +var INTERNAL = function(){}; +var APPLY = {}; +var NEXT_FILTER = {}; +var tryConvertToPromise = require("./thenables")(Promise, INTERNAL); +var PromiseArray = + require("./promise_array")(Promise, INTERNAL, + tryConvertToPromise, apiRejection, Proxyable); +var Context = require("./context")(Promise); + /*jshint unused:false*/ +var createContext = Context.create; + +var debug = require("./debuggability")(Promise, Context, + enableAsyncHooks, disableAsyncHooks); +var CapturedTrace = debug.CapturedTrace; +var PassThroughHandlerContext = + require("./finally")(Promise, tryConvertToPromise, NEXT_FILTER); +var catchFilter = require("./catch_filter")(NEXT_FILTER); +var nodebackForPromise = require("./nodeback"); +var errorObj = util.errorObj; +var tryCatch = util.tryCatch; +function check(self, executor) { + if (self == null || self.constructor !== Promise) { + throw new TypeError("the promise constructor cannot be invoked directly\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + if (typeof executor !== "function") { + throw new TypeError("expecting a function but got " + util.classString(executor)); + } + +} + +function Promise(executor) { + if (executor !== INTERNAL) { + check(this, executor); + } + this._bitField = 0; + this._fulfillmentHandler0 = undefined; + this._rejectionHandler0 = undefined; + this._promise0 = undefined; + this._receiver0 = undefined; + this._resolveFromExecutor(executor); + this._promiseCreated(); + this._fireEvent("promiseCreated", this); +} + +Promise.prototype.toString = function () { + return "[object Promise]"; +}; + +Promise.prototype.caught = Promise.prototype["catch"] = function (fn) { + var len = arguments.length; + if (len > 1) { + var catchInstances = new Array(len - 1), + j = 0, i; + for (i = 0; i < len - 1; ++i) { + var item = arguments[i]; + if (util.isObject(item)) { + catchInstances[j++] = item; + } else { + return apiRejection("Catch statement predicate: " + + "expecting an object but got " + util.classString(item)); + } + } + catchInstances.length = j; + fn = arguments[i]; + + if (typeof fn !== "function") { + throw new TypeError("The last argument to .catch() " + + "must be a function, got " + util.toString(fn)); + } + return this.then(undefined, catchFilter(catchInstances, fn, this)); + } + return this.then(undefined, fn); +}; + +Promise.prototype.reflect = function () { + return this._then(reflectHandler, + reflectHandler, undefined, this, undefined); +}; + +Promise.prototype.then = function (didFulfill, didReject) { + if (debug.warnings() && arguments.length > 0 && + typeof didFulfill !== "function" && + typeof didReject !== "function") { + var msg = ".then() only accepts functions but was passed: " + + util.classString(didFulfill); + if (arguments.length > 1) { + msg += ", " + util.classString(didReject); + } + this._warn(msg); + } + return this._then(didFulfill, didReject, undefined, undefined, undefined); +}; + +Promise.prototype.done = function (didFulfill, didReject) { + var promise = + this._then(didFulfill, didReject, undefined, undefined, undefined); + promise._setIsFinal(); +}; + +Promise.prototype.spread = function (fn) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + return this.all()._then(fn, undefined, undefined, APPLY, undefined); +}; + +Promise.prototype.toJSON = function () { + var ret = { + isFulfilled: false, + isRejected: false, + fulfillmentValue: undefined, + rejectionReason: undefined + }; + if (this.isFulfilled()) { + ret.fulfillmentValue = this.value(); + ret.isFulfilled = true; + } else if (this.isRejected()) { + ret.rejectionReason = this.reason(); + ret.isRejected = true; + } + return ret; +}; + +Promise.prototype.all = function () { + if (arguments.length > 0) { + this._warn(".all() was passed arguments but it does not take any"); + } + return new PromiseArray(this).promise(); +}; + +Promise.prototype.error = function (fn) { + return this.caught(util.originatesFromRejection, fn); +}; + +Promise.getNewLibraryCopy = module.exports; + +Promise.is = function (val) { + return val instanceof Promise; +}; + +Promise.fromNode = Promise.fromCallback = function(fn) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + var multiArgs = arguments.length > 1 ? !!Object(arguments[1]).multiArgs + : false; + var result = tryCatch(fn)(nodebackForPromise(ret, multiArgs)); + if (result === errorObj) { + ret._rejectCallback(result.e, true); + } + if (!ret._isFateSealed()) ret._setAsyncGuaranteed(); + return ret; +}; + +Promise.all = function (promises) { + return new PromiseArray(promises).promise(); +}; + +Promise.cast = function (obj) { + var ret = tryConvertToPromise(obj); + if (!(ret instanceof Promise)) { + ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._setFulfilled(); + ret._rejectionHandler0 = obj; + } + return ret; +}; + +Promise.resolve = Promise.fulfilled = Promise.cast; + +Promise.reject = Promise.rejected = function (reason) { + var ret = new Promise(INTERNAL); + ret._captureStackTrace(); + ret._rejectCallback(reason, true); + return ret; +}; + +Promise.setScheduler = function(fn) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + return async.setScheduler(fn); +}; + +Promise.prototype._then = function ( + didFulfill, + didReject, + _, receiver, + internalData +) { + var haveInternalData = internalData !== undefined; + var promise = haveInternalData ? internalData : new Promise(INTERNAL); + var target = this._target(); + var bitField = target._bitField; + + if (!haveInternalData) { + promise._propagateFrom(this, 3); + promise._captureStackTrace(); + if (receiver === undefined && + ((this._bitField & 2097152) !== 0)) { + if (!((bitField & 50397184) === 0)) { + receiver = this._boundValue(); + } else { + receiver = target === this ? undefined : this._boundTo; + } + } + this._fireEvent("promiseChained", this, promise); + } + + var context = getContext(); + if (!((bitField & 50397184) === 0)) { + var handler, value, settler = target._settlePromiseCtx; + if (((bitField & 33554432) !== 0)) { + value = target._rejectionHandler0; + handler = didFulfill; + } else if (((bitField & 16777216) !== 0)) { + value = target._fulfillmentHandler0; + handler = didReject; + target._unsetRejectionIsUnhandled(); + } else { + settler = target._settlePromiseLateCancellationObserver; + value = new CancellationError("late cancellation observer"); + target._attachExtraTrace(value); + handler = didReject; + } + + async.invoke(settler, target, { + handler: util.contextBind(context, handler), + promise: promise, + receiver: receiver, + value: value + }); + } else { + target._addCallbacks(didFulfill, didReject, promise, + receiver, context); + } + + return promise; +}; + +Promise.prototype._length = function () { + return this._bitField & 65535; +}; + +Promise.prototype._isFateSealed = function () { + return (this._bitField & 117506048) !== 0; +}; + +Promise.prototype._isFollowing = function () { + return (this._bitField & 67108864) === 67108864; +}; + +Promise.prototype._setLength = function (len) { + this._bitField = (this._bitField & -65536) | + (len & 65535); +}; + +Promise.prototype._setFulfilled = function () { + this._bitField = this._bitField | 33554432; + this._fireEvent("promiseFulfilled", this); +}; + +Promise.prototype._setRejected = function () { + this._bitField = this._bitField | 16777216; + this._fireEvent("promiseRejected", this); +}; + +Promise.prototype._setFollowing = function () { + this._bitField = this._bitField | 67108864; + this._fireEvent("promiseResolved", this); +}; + +Promise.prototype._setIsFinal = function () { + this._bitField = this._bitField | 4194304; +}; + +Promise.prototype._isFinal = function () { + return (this._bitField & 4194304) > 0; +}; + +Promise.prototype._unsetCancelled = function() { + this._bitField = this._bitField & (~65536); +}; + +Promise.prototype._setCancelled = function() { + this._bitField = this._bitField | 65536; + this._fireEvent("promiseCancelled", this); +}; + +Promise.prototype._setWillBeCancelled = function() { + this._bitField = this._bitField | 8388608; +}; + +Promise.prototype._setAsyncGuaranteed = function() { + if (async.hasCustomScheduler()) return; + var bitField = this._bitField; + this._bitField = bitField | + (((bitField & 536870912) >> 2) ^ + 134217728); +}; + +Promise.prototype._setNoAsyncGuarantee = function() { + this._bitField = (this._bitField | 536870912) & + (~134217728); +}; + +Promise.prototype._receiverAt = function (index) { + var ret = index === 0 ? this._receiver0 : this[ + index * 4 - 4 + 3]; + if (ret === UNDEFINED_BINDING) { + return undefined; + } else if (ret === undefined && this._isBound()) { + return this._boundValue(); + } + return ret; +}; + +Promise.prototype._promiseAt = function (index) { + return this[ + index * 4 - 4 + 2]; +}; + +Promise.prototype._fulfillmentHandlerAt = function (index) { + return this[ + index * 4 - 4 + 0]; +}; + +Promise.prototype._rejectionHandlerAt = function (index) { + return this[ + index * 4 - 4 + 1]; +}; + +Promise.prototype._boundValue = function() {}; + +Promise.prototype._migrateCallback0 = function (follower) { + var bitField = follower._bitField; + var fulfill = follower._fulfillmentHandler0; + var reject = follower._rejectionHandler0; + var promise = follower._promise0; + var receiver = follower._receiverAt(0); + if (receiver === undefined) receiver = UNDEFINED_BINDING; + this._addCallbacks(fulfill, reject, promise, receiver, null); +}; + +Promise.prototype._migrateCallbackAt = function (follower, index) { + var fulfill = follower._fulfillmentHandlerAt(index); + var reject = follower._rejectionHandlerAt(index); + var promise = follower._promiseAt(index); + var receiver = follower._receiverAt(index); + if (receiver === undefined) receiver = UNDEFINED_BINDING; + this._addCallbacks(fulfill, reject, promise, receiver, null); +}; + +Promise.prototype._addCallbacks = function ( + fulfill, + reject, + promise, + receiver, + context +) { + var index = this._length(); + + if (index >= 65535 - 4) { + index = 0; + this._setLength(0); + } + + if (index === 0) { + this._promise0 = promise; + this._receiver0 = receiver; + if (typeof fulfill === "function") { + this._fulfillmentHandler0 = util.contextBind(context, fulfill); + } + if (typeof reject === "function") { + this._rejectionHandler0 = util.contextBind(context, reject); + } + } else { + var base = index * 4 - 4; + this[base + 2] = promise; + this[base + 3] = receiver; + if (typeof fulfill === "function") { + this[base + 0] = + util.contextBind(context, fulfill); + } + if (typeof reject === "function") { + this[base + 1] = + util.contextBind(context, reject); + } + } + this._setLength(index + 1); + return index; +}; + +Promise.prototype._proxy = function (proxyable, arg) { + this._addCallbacks(undefined, undefined, arg, proxyable, null); +}; + +Promise.prototype._resolveCallback = function(value, shouldBind) { + if (((this._bitField & 117506048) !== 0)) return; + if (value === this) + return this._rejectCallback(makeSelfResolutionError(), false); + var maybePromise = tryConvertToPromise(value, this); + if (!(maybePromise instanceof Promise)) return this._fulfill(value); + + if (shouldBind) this._propagateFrom(maybePromise, 2); + + + var promise = maybePromise._target(); + + if (promise === this) { + this._reject(makeSelfResolutionError()); + return; + } + + var bitField = promise._bitField; + if (((bitField & 50397184) === 0)) { + var len = this._length(); + if (len > 0) promise._migrateCallback0(this); + for (var i = 1; i < len; ++i) { + promise._migrateCallbackAt(this, i); + } + this._setFollowing(); + this._setLength(0); + this._setFollowee(maybePromise); + } else if (((bitField & 33554432) !== 0)) { + this._fulfill(promise._value()); + } else if (((bitField & 16777216) !== 0)) { + this._reject(promise._reason()); + } else { + var reason = new CancellationError("late cancellation observer"); + promise._attachExtraTrace(reason); + this._reject(reason); + } +}; + +Promise.prototype._rejectCallback = +function(reason, synchronous, ignoreNonErrorWarnings) { + var trace = util.ensureErrorObject(reason); + var hasStack = trace === reason; + if (!hasStack && !ignoreNonErrorWarnings && debug.warnings()) { + var message = "a promise was rejected with a non-error: " + + util.classString(reason); + this._warn(message, true); + } + this._attachExtraTrace(trace, synchronous ? hasStack : false); + this._reject(reason); +}; + +Promise.prototype._resolveFromExecutor = function (executor) { + if (executor === INTERNAL) return; + var promise = this; + this._captureStackTrace(); + this._pushContext(); + var synchronous = true; + var r = this._execute(executor, function(value) { + promise._resolveCallback(value); + }, function (reason) { + promise._rejectCallback(reason, synchronous); + }); + synchronous = false; + this._popContext(); + + if (r !== undefined) { + promise._rejectCallback(r, true); + } +}; + +Promise.prototype._settlePromiseFromHandler = function ( + handler, receiver, value, promise +) { + var bitField = promise._bitField; + if (((bitField & 65536) !== 0)) return; + promise._pushContext(); + var x; + if (receiver === APPLY) { + if (!value || typeof value.length !== "number") { + x = errorObj; + x.e = new TypeError("cannot .spread() a non-array: " + + util.classString(value)); + } else { + x = tryCatch(handler).apply(this._boundValue(), value); + } + } else { + x = tryCatch(handler).call(receiver, value); + } + var promiseCreated = promise._popContext(); + bitField = promise._bitField; + if (((bitField & 65536) !== 0)) return; + + if (x === NEXT_FILTER) { + promise._reject(value); + } else if (x === errorObj) { + promise._rejectCallback(x.e, false); + } else { + debug.checkForgottenReturns(x, promiseCreated, "", promise, this); + promise._resolveCallback(x); + } +}; + +Promise.prototype._target = function() { + var ret = this; + while (ret._isFollowing()) ret = ret._followee(); + return ret; +}; + +Promise.prototype._followee = function() { + return this._rejectionHandler0; +}; + +Promise.prototype._setFollowee = function(promise) { + this._rejectionHandler0 = promise; +}; + +Promise.prototype._settlePromise = function(promise, handler, receiver, value) { + var isPromise = promise instanceof Promise; + var bitField = this._bitField; + var asyncGuaranteed = ((bitField & 134217728) !== 0); + if (((bitField & 65536) !== 0)) { + if (isPromise) promise._invokeInternalOnCancel(); + + if (receiver instanceof PassThroughHandlerContext && + receiver.isFinallyHandler()) { + receiver.cancelPromise = promise; + if (tryCatch(handler).call(receiver, value) === errorObj) { + promise._reject(errorObj.e); + } + } else if (handler === reflectHandler) { + promise._fulfill(reflectHandler.call(receiver)); + } else if (receiver instanceof Proxyable) { + receiver._promiseCancelled(promise); + } else if (isPromise || promise instanceof PromiseArray) { + promise._cancel(); + } else { + receiver.cancel(); + } + } else if (typeof handler === "function") { + if (!isPromise) { + handler.call(receiver, value, promise); + } else { + if (asyncGuaranteed) promise._setAsyncGuaranteed(); + this._settlePromiseFromHandler(handler, receiver, value, promise); + } + } else if (receiver instanceof Proxyable) { + if (!receiver._isResolved()) { + if (((bitField & 33554432) !== 0)) { + receiver._promiseFulfilled(value, promise); + } else { + receiver._promiseRejected(value, promise); + } + } + } else if (isPromise) { + if (asyncGuaranteed) promise._setAsyncGuaranteed(); + if (((bitField & 33554432) !== 0)) { + promise._fulfill(value); + } else { + promise._reject(value); + } + } +}; + +Promise.prototype._settlePromiseLateCancellationObserver = function(ctx) { + var handler = ctx.handler; + var promise = ctx.promise; + var receiver = ctx.receiver; + var value = ctx.value; + if (typeof handler === "function") { + if (!(promise instanceof Promise)) { + handler.call(receiver, value, promise); + } else { + this._settlePromiseFromHandler(handler, receiver, value, promise); + } + } else if (promise instanceof Promise) { + promise._reject(value); + } +}; + +Promise.prototype._settlePromiseCtx = function(ctx) { + this._settlePromise(ctx.promise, ctx.handler, ctx.receiver, ctx.value); +}; + +Promise.prototype._settlePromise0 = function(handler, value, bitField) { + var promise = this._promise0; + var receiver = this._receiverAt(0); + this._promise0 = undefined; + this._receiver0 = undefined; + this._settlePromise(promise, handler, receiver, value); +}; + +Promise.prototype._clearCallbackDataAtIndex = function(index) { + var base = index * 4 - 4; + this[base + 2] = + this[base + 3] = + this[base + 0] = + this[base + 1] = undefined; +}; + +Promise.prototype._fulfill = function (value) { + var bitField = this._bitField; + if (((bitField & 117506048) >>> 16)) return; + if (value === this) { + var err = makeSelfResolutionError(); + this._attachExtraTrace(err); + return this._reject(err); + } + this._setFulfilled(); + this._rejectionHandler0 = value; + + if ((bitField & 65535) > 0) { + if (((bitField & 134217728) !== 0)) { + this._settlePromises(); + } else { + async.settlePromises(this); + } + this._dereferenceTrace(); + } +}; + +Promise.prototype._reject = function (reason) { + var bitField = this._bitField; + if (((bitField & 117506048) >>> 16)) return; + this._setRejected(); + this._fulfillmentHandler0 = reason; + + if (this._isFinal()) { + return async.fatalError(reason, util.isNode); + } + + if ((bitField & 65535) > 0) { + async.settlePromises(this); + } else { + this._ensurePossibleRejectionHandled(); + } +}; + +Promise.prototype._fulfillPromises = function (len, value) { + for (var i = 1; i < len; i++) { + var handler = this._fulfillmentHandlerAt(i); + var promise = this._promiseAt(i); + var receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i); + this._settlePromise(promise, handler, receiver, value); + } +}; + +Promise.prototype._rejectPromises = function (len, reason) { + for (var i = 1; i < len; i++) { + var handler = this._rejectionHandlerAt(i); + var promise = this._promiseAt(i); + var receiver = this._receiverAt(i); + this._clearCallbackDataAtIndex(i); + this._settlePromise(promise, handler, receiver, reason); + } +}; + +Promise.prototype._settlePromises = function () { + var bitField = this._bitField; + var len = (bitField & 65535); + + if (len > 0) { + if (((bitField & 16842752) !== 0)) { + var reason = this._fulfillmentHandler0; + this._settlePromise0(this._rejectionHandler0, reason, bitField); + this._rejectPromises(len, reason); + } else { + var value = this._rejectionHandler0; + this._settlePromise0(this._fulfillmentHandler0, value, bitField); + this._fulfillPromises(len, value); + } + this._setLength(0); + } + this._clearCancellationData(); +}; + +Promise.prototype._settledValue = function() { + var bitField = this._bitField; + if (((bitField & 33554432) !== 0)) { + return this._rejectionHandler0; + } else if (((bitField & 16777216) !== 0)) { + return this._fulfillmentHandler0; + } +}; + +if (typeof Symbol !== "undefined" && Symbol.toStringTag) { + es5.defineProperty(Promise.prototype, Symbol.toStringTag, { + get: function () { + return "Object"; + } + }); +} + +function deferResolve(v) {this.promise._resolveCallback(v);} +function deferReject(v) {this.promise._rejectCallback(v, false);} + +Promise.defer = Promise.pending = function() { + debug.deprecated("Promise.defer", "new Promise"); + var promise = new Promise(INTERNAL); + return { + promise: promise, + resolve: deferResolve, + reject: deferReject + }; +}; + +util.notEnumerableProp(Promise, + "_makeSelfResolutionError", + makeSelfResolutionError); + +require("./method")(Promise, INTERNAL, tryConvertToPromise, apiRejection, + debug); +require("./bind")(Promise, INTERNAL, tryConvertToPromise, debug); +require("./cancel")(Promise, PromiseArray, apiRejection, debug); +require("./direct_resolve")(Promise); +require("./synchronous_inspection")(Promise); +require("./join")( + Promise, PromiseArray, tryConvertToPromise, INTERNAL, async); +Promise.Promise = Promise; +Promise.version = "3.7.2"; +require('./call_get.js')(Promise); +require('./generators.js')(Promise, apiRejection, INTERNAL, tryConvertToPromise, Proxyable, debug); +require('./map.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); +require('./nodeify.js')(Promise); +require('./promisify.js')(Promise, INTERNAL); +require('./props.js')(Promise, PromiseArray, tryConvertToPromise, apiRejection); +require('./race.js')(Promise, INTERNAL, tryConvertToPromise, apiRejection); +require('./reduce.js')(Promise, PromiseArray, apiRejection, tryConvertToPromise, INTERNAL, debug); +require('./settle.js')(Promise, PromiseArray, debug); +require('./some.js')(Promise, PromiseArray, apiRejection); +require('./timers.js')(Promise, INTERNAL, debug); +require('./using.js')(Promise, apiRejection, tryConvertToPromise, createContext, INTERNAL, debug); +require('./any.js')(Promise); +require('./each.js')(Promise, INTERNAL); +require('./filter.js')(Promise, INTERNAL); + + util.toFastProperties(Promise); + util.toFastProperties(Promise.prototype); + function fillTypes(value) { + var p = new Promise(INTERNAL); + p._fulfillmentHandler0 = value; + p._rejectionHandler0 = value; + p._promise0 = value; + p._receiver0 = value; + } + // Complete slack tracking, opt out of field-type tracking and + // stabilize map + fillTypes({a: 1}); + fillTypes({b: 2}); + fillTypes({c: 3}); + fillTypes(1); + fillTypes(function(){}); + fillTypes(undefined); + fillTypes(false); + fillTypes(new Promise(INTERNAL)); + debug.setBounds(Async.firstLineError, util.lastLineError); + return Promise; + +}; diff --git a/node_modules/bluebird/js/release/promise_array.js b/node_modules/bluebird/js/release/promise_array.js new file mode 100644 index 0000000..8fc665a --- /dev/null +++ b/node_modules/bluebird/js/release/promise_array.js @@ -0,0 +1,186 @@ +"use strict"; +module.exports = function(Promise, INTERNAL, tryConvertToPromise, + apiRejection, Proxyable) { +var util = require("./util"); +var isArray = util.isArray; + +function toResolutionValue(val) { + switch(val) { + case -2: return []; + case -3: return {}; + case -6: return new Map(); + } +} + +function PromiseArray(values) { + var promise = this._promise = new Promise(INTERNAL); + if (values instanceof Promise) { + promise._propagateFrom(values, 3); + values.suppressUnhandledRejections(); + } + promise._setOnCancel(this); + this._values = values; + this._length = 0; + this._totalResolved = 0; + this._init(undefined, -2); +} +util.inherits(PromiseArray, Proxyable); + +PromiseArray.prototype.length = function () { + return this._length; +}; + +PromiseArray.prototype.promise = function () { + return this._promise; +}; + +PromiseArray.prototype._init = function init(_, resolveValueIfEmpty) { + var values = tryConvertToPromise(this._values, this._promise); + if (values instanceof Promise) { + values = values._target(); + var bitField = values._bitField; + ; + this._values = values; + + if (((bitField & 50397184) === 0)) { + this._promise._setAsyncGuaranteed(); + return values._then( + init, + this._reject, + undefined, + this, + resolveValueIfEmpty + ); + } else if (((bitField & 33554432) !== 0)) { + values = values._value(); + } else if (((bitField & 16777216) !== 0)) { + return this._reject(values._reason()); + } else { + return this._cancel(); + } + } + values = util.asArray(values); + if (values === null) { + var err = apiRejection( + "expecting an array or an iterable object but got " + util.classString(values)).reason(); + this._promise._rejectCallback(err, false); + return; + } + + if (values.length === 0) { + if (resolveValueIfEmpty === -5) { + this._resolveEmptyArray(); + } + else { + this._resolve(toResolutionValue(resolveValueIfEmpty)); + } + return; + } + this._iterate(values); +}; + +PromiseArray.prototype._iterate = function(values) { + var len = this.getActualLength(values.length); + this._length = len; + this._values = this.shouldCopyValues() ? new Array(len) : this._values; + var result = this._promise; + var isResolved = false; + var bitField = null; + for (var i = 0; i < len; ++i) { + var maybePromise = tryConvertToPromise(values[i], result); + + if (maybePromise instanceof Promise) { + maybePromise = maybePromise._target(); + bitField = maybePromise._bitField; + } else { + bitField = null; + } + + if (isResolved) { + if (bitField !== null) { + maybePromise.suppressUnhandledRejections(); + } + } else if (bitField !== null) { + if (((bitField & 50397184) === 0)) { + maybePromise._proxy(this, i); + this._values[i] = maybePromise; + } else if (((bitField & 33554432) !== 0)) { + isResolved = this._promiseFulfilled(maybePromise._value(), i); + } else if (((bitField & 16777216) !== 0)) { + isResolved = this._promiseRejected(maybePromise._reason(), i); + } else { + isResolved = this._promiseCancelled(i); + } + } else { + isResolved = this._promiseFulfilled(maybePromise, i); + } + } + if (!isResolved) result._setAsyncGuaranteed(); +}; + +PromiseArray.prototype._isResolved = function () { + return this._values === null; +}; + +PromiseArray.prototype._resolve = function (value) { + this._values = null; + this._promise._fulfill(value); +}; + +PromiseArray.prototype._cancel = function() { + if (this._isResolved() || !this._promise._isCancellable()) return; + this._values = null; + this._promise._cancel(); +}; + +PromiseArray.prototype._reject = function (reason) { + this._values = null; + this._promise._rejectCallback(reason, false); +}; + +PromiseArray.prototype._promiseFulfilled = function (value, index) { + this._values[index] = value; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + this._resolve(this._values); + return true; + } + return false; +}; + +PromiseArray.prototype._promiseCancelled = function() { + this._cancel(); + return true; +}; + +PromiseArray.prototype._promiseRejected = function (reason) { + this._totalResolved++; + this._reject(reason); + return true; +}; + +PromiseArray.prototype._resultCancelled = function() { + if (this._isResolved()) return; + var values = this._values; + this._cancel(); + if (values instanceof Promise) { + values.cancel(); + } else { + for (var i = 0; i < values.length; ++i) { + if (values[i] instanceof Promise) { + values[i].cancel(); + } + } + } +}; + +PromiseArray.prototype.shouldCopyValues = function () { + return true; +}; + +PromiseArray.prototype.getActualLength = function (len) { + return len; +}; + +return PromiseArray; +}; diff --git a/node_modules/bluebird/js/release/promisify.js b/node_modules/bluebird/js/release/promisify.js new file mode 100644 index 0000000..aa98e5b --- /dev/null +++ b/node_modules/bluebird/js/release/promisify.js @@ -0,0 +1,314 @@ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var THIS = {}; +var util = require("./util"); +var nodebackForPromise = require("./nodeback"); +var withAppended = util.withAppended; +var maybeWrapAsError = util.maybeWrapAsError; +var canEvaluate = util.canEvaluate; +var TypeError = require("./errors").TypeError; +var defaultSuffix = "Async"; +var defaultPromisified = {__isPromisified__: true}; +var noCopyProps = [ + "arity", "length", + "name", + "arguments", + "caller", + "callee", + "prototype", + "__isPromisified__" +]; +var noCopyPropsPattern = new RegExp("^(?:" + noCopyProps.join("|") + ")$"); + +var defaultFilter = function(name) { + return util.isIdentifier(name) && + name.charAt(0) !== "_" && + name !== "constructor"; +}; + +function propsFilter(key) { + return !noCopyPropsPattern.test(key); +} + +function isPromisified(fn) { + try { + return fn.__isPromisified__ === true; + } + catch (e) { + return false; + } +} + +function hasPromisified(obj, key, suffix) { + var val = util.getDataPropertyOrDefault(obj, key + suffix, + defaultPromisified); + return val ? isPromisified(val) : false; +} +function checkValid(ret, suffix, suffixRegexp) { + for (var i = 0; i < ret.length; i += 2) { + var key = ret[i]; + if (suffixRegexp.test(key)) { + var keyWithoutAsyncSuffix = key.replace(suffixRegexp, ""); + for (var j = 0; j < ret.length; j += 2) { + if (ret[j] === keyWithoutAsyncSuffix) { + throw new TypeError("Cannot promisify an API that has normal methods with '%s'-suffix\u000a\u000a See http://goo.gl/MqrFmX\u000a" + .replace("%s", suffix)); + } + } + } + } +} + +function promisifiableMethods(obj, suffix, suffixRegexp, filter) { + var keys = util.inheritedDataKeys(obj); + var ret = []; + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + var value = obj[key]; + var passesDefaultFilter = filter === defaultFilter + ? true : defaultFilter(key, value, obj); + if (typeof value === "function" && + !isPromisified(value) && + !hasPromisified(obj, key, suffix) && + filter(key, value, obj, passesDefaultFilter)) { + ret.push(key, value); + } + } + checkValid(ret, suffix, suffixRegexp); + return ret; +} + +var escapeIdentRegex = function(str) { + return str.replace(/([$])/, "\\$"); +}; + +var makeNodePromisifiedEval; +if (!false) { +var switchCaseArgumentOrder = function(likelyArgumentCount) { + var ret = [likelyArgumentCount]; + var min = Math.max(0, likelyArgumentCount - 1 - 3); + for(var i = likelyArgumentCount - 1; i >= min; --i) { + ret.push(i); + } + for(var i = likelyArgumentCount + 1; i <= 3; ++i) { + ret.push(i); + } + return ret; +}; + +var argumentSequence = function(argumentCount) { + return util.filledRange(argumentCount, "_arg", ""); +}; + +var parameterDeclaration = function(parameterCount) { + return util.filledRange( + Math.max(parameterCount, 3), "_arg", ""); +}; + +var parameterCount = function(fn) { + if (typeof fn.length === "number") { + return Math.max(Math.min(fn.length, 1023 + 1), 0); + } + return 0; +}; + +makeNodePromisifiedEval = +function(callback, receiver, originalName, fn, _, multiArgs) { + var newParameterCount = Math.max(0, parameterCount(fn) - 1); + var argumentOrder = switchCaseArgumentOrder(newParameterCount); + var shouldProxyThis = typeof callback === "string" || receiver === THIS; + + function generateCallForArgumentCount(count) { + var args = argumentSequence(count).join(", "); + var comma = count > 0 ? ", " : ""; + var ret; + if (shouldProxyThis) { + ret = "ret = callback.call(this, {{args}}, nodeback); break;\n"; + } else { + ret = receiver === undefined + ? "ret = callback({{args}}, nodeback); break;\n" + : "ret = callback.call(receiver, {{args}}, nodeback); break;\n"; + } + return ret.replace("{{args}}", args).replace(", ", comma); + } + + function generateArgumentSwitchCase() { + var ret = ""; + for (var i = 0; i < argumentOrder.length; ++i) { + ret += "case " + argumentOrder[i] +":" + + generateCallForArgumentCount(argumentOrder[i]); + } + + ret += " \n\ + default: \n\ + var args = new Array(len + 1); \n\ + var i = 0; \n\ + for (var i = 0; i < len; ++i) { \n\ + args[i] = arguments[i]; \n\ + } \n\ + args[i] = nodeback; \n\ + [CodeForCall] \n\ + break; \n\ + ".replace("[CodeForCall]", (shouldProxyThis + ? "ret = callback.apply(this, args);\n" + : "ret = callback.apply(receiver, args);\n")); + return ret; + } + + var getFunctionCode = typeof callback === "string" + ? ("this != null ? this['"+callback+"'] : fn") + : "fn"; + var body = "'use strict'; \n\ + var ret = function (Parameters) { \n\ + 'use strict'; \n\ + var len = arguments.length; \n\ + var promise = new Promise(INTERNAL); \n\ + promise._captureStackTrace(); \n\ + var nodeback = nodebackForPromise(promise, " + multiArgs + "); \n\ + var ret; \n\ + var callback = tryCatch([GetFunctionCode]); \n\ + switch(len) { \n\ + [CodeForSwitchCase] \n\ + } \n\ + if (ret === errorObj) { \n\ + promise._rejectCallback(maybeWrapAsError(ret.e), true, true);\n\ + } \n\ + if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); \n\ + return promise; \n\ + }; \n\ + notEnumerableProp(ret, '__isPromisified__', true); \n\ + return ret; \n\ + ".replace("[CodeForSwitchCase]", generateArgumentSwitchCase()) + .replace("[GetFunctionCode]", getFunctionCode); + body = body.replace("Parameters", parameterDeclaration(newParameterCount)); + return new Function("Promise", + "fn", + "receiver", + "withAppended", + "maybeWrapAsError", + "nodebackForPromise", + "tryCatch", + "errorObj", + "notEnumerableProp", + "INTERNAL", + body)( + Promise, + fn, + receiver, + withAppended, + maybeWrapAsError, + nodebackForPromise, + util.tryCatch, + util.errorObj, + util.notEnumerableProp, + INTERNAL); +}; +} + +function makeNodePromisifiedClosure(callback, receiver, _, fn, __, multiArgs) { + var defaultThis = (function() {return this;})(); + var method = callback; + if (typeof method === "string") { + callback = fn; + } + function promisified() { + var _receiver = receiver; + if (receiver === THIS) _receiver = this; + var promise = new Promise(INTERNAL); + promise._captureStackTrace(); + var cb = typeof method === "string" && this !== defaultThis + ? this[method] : callback; + var fn = nodebackForPromise(promise, multiArgs); + try { + cb.apply(_receiver, withAppended(arguments, fn)); + } catch(e) { + promise._rejectCallback(maybeWrapAsError(e), true, true); + } + if (!promise._isFateSealed()) promise._setAsyncGuaranteed(); + return promise; + } + util.notEnumerableProp(promisified, "__isPromisified__", true); + return promisified; +} + +var makeNodePromisified = canEvaluate + ? makeNodePromisifiedEval + : makeNodePromisifiedClosure; + +function promisifyAll(obj, suffix, filter, promisifier, multiArgs) { + var suffixRegexp = new RegExp(escapeIdentRegex(suffix) + "$"); + var methods = + promisifiableMethods(obj, suffix, suffixRegexp, filter); + + for (var i = 0, len = methods.length; i < len; i+= 2) { + var key = methods[i]; + var fn = methods[i+1]; + var promisifiedKey = key + suffix; + if (promisifier === makeNodePromisified) { + obj[promisifiedKey] = + makeNodePromisified(key, THIS, key, fn, suffix, multiArgs); + } else { + var promisified = promisifier(fn, function() { + return makeNodePromisified(key, THIS, key, + fn, suffix, multiArgs); + }); + util.notEnumerableProp(promisified, "__isPromisified__", true); + obj[promisifiedKey] = promisified; + } + } + util.toFastProperties(obj); + return obj; +} + +function promisify(callback, receiver, multiArgs) { + return makeNodePromisified(callback, receiver, undefined, + callback, null, multiArgs); +} + +Promise.promisify = function (fn, options) { + if (typeof fn !== "function") { + throw new TypeError("expecting a function but got " + util.classString(fn)); + } + if (isPromisified(fn)) { + return fn; + } + options = Object(options); + var receiver = options.context === undefined ? THIS : options.context; + var multiArgs = !!options.multiArgs; + var ret = promisify(fn, receiver, multiArgs); + util.copyDescriptors(fn, ret, propsFilter); + return ret; +}; + +Promise.promisifyAll = function (target, options) { + if (typeof target !== "function" && typeof target !== "object") { + throw new TypeError("the target of promisifyAll must be an object or a function\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + options = Object(options); + var multiArgs = !!options.multiArgs; + var suffix = options.suffix; + if (typeof suffix !== "string") suffix = defaultSuffix; + var filter = options.filter; + if (typeof filter !== "function") filter = defaultFilter; + var promisifier = options.promisifier; + if (typeof promisifier !== "function") promisifier = makeNodePromisified; + + if (!util.isIdentifier(suffix)) { + throw new RangeError("suffix must be a valid identifier\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + + var keys = util.inheritedDataKeys(target); + for (var i = 0; i < keys.length; ++i) { + var value = target[keys[i]]; + if (keys[i] !== "constructor" && + util.isClass(value)) { + promisifyAll(value.prototype, suffix, filter, promisifier, + multiArgs); + promisifyAll(value, suffix, filter, promisifier, multiArgs); + } + } + + return promisifyAll(target, suffix, filter, promisifier, multiArgs); +}; +}; + diff --git a/node_modules/bluebird/js/release/props.js b/node_modules/bluebird/js/release/props.js new file mode 100644 index 0000000..6a34aaf --- /dev/null +++ b/node_modules/bluebird/js/release/props.js @@ -0,0 +1,118 @@ +"use strict"; +module.exports = function( + Promise, PromiseArray, tryConvertToPromise, apiRejection) { +var util = require("./util"); +var isObject = util.isObject; +var es5 = require("./es5"); +var Es6Map; +if (typeof Map === "function") Es6Map = Map; + +var mapToEntries = (function() { + var index = 0; + var size = 0; + + function extractEntry(value, key) { + this[index] = value; + this[index + size] = key; + index++; + } + + return function mapToEntries(map) { + size = map.size; + index = 0; + var ret = new Array(map.size * 2); + map.forEach(extractEntry, ret); + return ret; + }; +})(); + +var entriesToMap = function(entries) { + var ret = new Es6Map(); + var length = entries.length / 2 | 0; + for (var i = 0; i < length; ++i) { + var key = entries[length + i]; + var value = entries[i]; + ret.set(key, value); + } + return ret; +}; + +function PropertiesPromiseArray(obj) { + var isMap = false; + var entries; + if (Es6Map !== undefined && obj instanceof Es6Map) { + entries = mapToEntries(obj); + isMap = true; + } else { + var keys = es5.keys(obj); + var len = keys.length; + entries = new Array(len * 2); + for (var i = 0; i < len; ++i) { + var key = keys[i]; + entries[i] = obj[key]; + entries[i + len] = key; + } + } + this.constructor$(entries); + this._isMap = isMap; + this._init$(undefined, isMap ? -6 : -3); +} +util.inherits(PropertiesPromiseArray, PromiseArray); + +PropertiesPromiseArray.prototype._init = function () {}; + +PropertiesPromiseArray.prototype._promiseFulfilled = function (value, index) { + this._values[index] = value; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + var val; + if (this._isMap) { + val = entriesToMap(this._values); + } else { + val = {}; + var keyOffset = this.length(); + for (var i = 0, len = this.length(); i < len; ++i) { + val[this._values[i + keyOffset]] = this._values[i]; + } + } + this._resolve(val); + return true; + } + return false; +}; + +PropertiesPromiseArray.prototype.shouldCopyValues = function () { + return false; +}; + +PropertiesPromiseArray.prototype.getActualLength = function (len) { + return len >> 1; +}; + +function props(promises) { + var ret; + var castValue = tryConvertToPromise(promises); + + if (!isObject(castValue)) { + return apiRejection("cannot await properties of a non-object\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } else if (castValue instanceof Promise) { + ret = castValue._then( + Promise.props, undefined, undefined, undefined, undefined); + } else { + ret = new PropertiesPromiseArray(castValue).promise(); + } + + if (castValue instanceof Promise) { + ret._propagateFrom(castValue, 2); + } + return ret; +} + +Promise.prototype.props = function () { + return props(this); +}; + +Promise.props = function (promises) { + return props(promises); +}; +}; diff --git a/node_modules/bluebird/js/release/queue.js b/node_modules/bluebird/js/release/queue.js new file mode 100644 index 0000000..ffd36fd --- /dev/null +++ b/node_modules/bluebird/js/release/queue.js @@ -0,0 +1,73 @@ +"use strict"; +function arrayMove(src, srcIndex, dst, dstIndex, len) { + for (var j = 0; j < len; ++j) { + dst[j + dstIndex] = src[j + srcIndex]; + src[j + srcIndex] = void 0; + } +} + +function Queue(capacity) { + this._capacity = capacity; + this._length = 0; + this._front = 0; +} + +Queue.prototype._willBeOverCapacity = function (size) { + return this._capacity < size; +}; + +Queue.prototype._pushOne = function (arg) { + var length = this.length(); + this._checkCapacity(length + 1); + var i = (this._front + length) & (this._capacity - 1); + this[i] = arg; + this._length = length + 1; +}; + +Queue.prototype.push = function (fn, receiver, arg) { + var length = this.length() + 3; + if (this._willBeOverCapacity(length)) { + this._pushOne(fn); + this._pushOne(receiver); + this._pushOne(arg); + return; + } + var j = this._front + length - 3; + this._checkCapacity(length); + var wrapMask = this._capacity - 1; + this[(j + 0) & wrapMask] = fn; + this[(j + 1) & wrapMask] = receiver; + this[(j + 2) & wrapMask] = arg; + this._length = length; +}; + +Queue.prototype.shift = function () { + var front = this._front, + ret = this[front]; + + this[front] = undefined; + this._front = (front + 1) & (this._capacity - 1); + this._length--; + return ret; +}; + +Queue.prototype.length = function () { + return this._length; +}; + +Queue.prototype._checkCapacity = function (size) { + if (this._capacity < size) { + this._resizeTo(this._capacity << 1); + } +}; + +Queue.prototype._resizeTo = function (capacity) { + var oldCapacity = this._capacity; + this._capacity = capacity; + var front = this._front; + var length = this._length; + var moveItemsCount = (front + length) & (oldCapacity - 1); + arrayMove(this, 0, this, oldCapacity, moveItemsCount); +}; + +module.exports = Queue; diff --git a/node_modules/bluebird/js/release/race.js b/node_modules/bluebird/js/release/race.js new file mode 100644 index 0000000..b862f46 --- /dev/null +++ b/node_modules/bluebird/js/release/race.js @@ -0,0 +1,49 @@ +"use strict"; +module.exports = function( + Promise, INTERNAL, tryConvertToPromise, apiRejection) { +var util = require("./util"); + +var raceLater = function (promise) { + return promise.then(function(array) { + return race(array, promise); + }); +}; + +function race(promises, parent) { + var maybePromise = tryConvertToPromise(promises); + + if (maybePromise instanceof Promise) { + return raceLater(maybePromise); + } else { + promises = util.asArray(promises); + if (promises === null) + return apiRejection("expecting an array or an iterable object but got " + util.classString(promises)); + } + + var ret = new Promise(INTERNAL); + if (parent !== undefined) { + ret._propagateFrom(parent, 3); + } + var fulfill = ret._fulfill; + var reject = ret._reject; + for (var i = 0, len = promises.length; i < len; ++i) { + var val = promises[i]; + + if (val === undefined && !(i in promises)) { + continue; + } + + Promise.cast(val)._then(fulfill, reject, undefined, ret, null); + } + return ret; +} + +Promise.race = function (promises) { + return race(promises, undefined); +}; + +Promise.prototype.race = function () { + return race(this, undefined); +}; + +}; diff --git a/node_modules/bluebird/js/release/reduce.js b/node_modules/bluebird/js/release/reduce.js new file mode 100644 index 0000000..101ac22 --- /dev/null +++ b/node_modules/bluebird/js/release/reduce.js @@ -0,0 +1,183 @@ +"use strict"; +module.exports = function(Promise, + PromiseArray, + apiRejection, + tryConvertToPromise, + INTERNAL, + debug) { +var util = require("./util"); +var tryCatch = util.tryCatch; + +function ReductionPromiseArray(promises, fn, initialValue, _each) { + this.constructor$(promises); + var context = Promise._getContext(); + this._fn = util.contextBind(context, fn); + if (initialValue !== undefined) { + initialValue = Promise.resolve(initialValue); + initialValue._attachCancellationCallback(this); + } + this._initialValue = initialValue; + this._currentCancellable = null; + if(_each === INTERNAL) { + this._eachValues = Array(this._length); + } else if (_each === 0) { + this._eachValues = null; + } else { + this._eachValues = undefined; + } + this._promise._captureStackTrace(); + this._init$(undefined, -5); +} +util.inherits(ReductionPromiseArray, PromiseArray); + +ReductionPromiseArray.prototype._gotAccum = function(accum) { + if (this._eachValues !== undefined && + this._eachValues !== null && + accum !== INTERNAL) { + this._eachValues.push(accum); + } +}; + +ReductionPromiseArray.prototype._eachComplete = function(value) { + if (this._eachValues !== null) { + this._eachValues.push(value); + } + return this._eachValues; +}; + +ReductionPromiseArray.prototype._init = function() {}; + +ReductionPromiseArray.prototype._resolveEmptyArray = function() { + this._resolve(this._eachValues !== undefined ? this._eachValues + : this._initialValue); +}; + +ReductionPromiseArray.prototype.shouldCopyValues = function () { + return false; +}; + +ReductionPromiseArray.prototype._resolve = function(value) { + this._promise._resolveCallback(value); + this._values = null; +}; + +ReductionPromiseArray.prototype._resultCancelled = function(sender) { + if (sender === this._initialValue) return this._cancel(); + if (this._isResolved()) return; + this._resultCancelled$(); + if (this._currentCancellable instanceof Promise) { + this._currentCancellable.cancel(); + } + if (this._initialValue instanceof Promise) { + this._initialValue.cancel(); + } +}; + +ReductionPromiseArray.prototype._iterate = function (values) { + this._values = values; + var value; + var i; + var length = values.length; + if (this._initialValue !== undefined) { + value = this._initialValue; + i = 0; + } else { + value = Promise.resolve(values[0]); + i = 1; + } + + this._currentCancellable = value; + + for (var j = i; j < length; ++j) { + var maybePromise = values[j]; + if (maybePromise instanceof Promise) { + maybePromise.suppressUnhandledRejections(); + } + } + + if (!value.isRejected()) { + for (; i < length; ++i) { + var ctx = { + accum: null, + value: values[i], + index: i, + length: length, + array: this + }; + + value = value._then(gotAccum, undefined, undefined, ctx, undefined); + + if ((i & 127) === 0) { + value._setNoAsyncGuarantee(); + } + } + } + + if (this._eachValues !== undefined) { + value = value + ._then(this._eachComplete, undefined, undefined, this, undefined); + } + value._then(completed, completed, undefined, value, this); +}; + +Promise.prototype.reduce = function (fn, initialValue) { + return reduce(this, fn, initialValue, null); +}; + +Promise.reduce = function (promises, fn, initialValue, _each) { + return reduce(promises, fn, initialValue, _each); +}; + +function completed(valueOrReason, array) { + if (this.isFulfilled()) { + array._resolve(valueOrReason); + } else { + array._reject(valueOrReason); + } +} + +function reduce(promises, fn, initialValue, _each) { + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var array = new ReductionPromiseArray(promises, fn, initialValue, _each); + return array.promise(); +} + +function gotAccum(accum) { + this.accum = accum; + this.array._gotAccum(accum); + var value = tryConvertToPromise(this.value, this.array._promise); + if (value instanceof Promise) { + this.array._currentCancellable = value; + return value._then(gotValue, undefined, undefined, this, undefined); + } else { + return gotValue.call(this, value); + } +} + +function gotValue(value) { + var array = this.array; + var promise = array._promise; + var fn = tryCatch(array._fn); + promise._pushContext(); + var ret; + if (array._eachValues !== undefined) { + ret = fn.call(promise._boundValue(), value, this.index, this.length); + } else { + ret = fn.call(promise._boundValue(), + this.accum, value, this.index, this.length); + } + if (ret instanceof Promise) { + array._currentCancellable = ret; + } + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns( + ret, + promiseCreated, + array._eachValues !== undefined ? "Promise.each" : "Promise.reduce", + promise + ); + return ret; +} +}; diff --git a/node_modules/bluebird/js/release/schedule.js b/node_modules/bluebird/js/release/schedule.js new file mode 100644 index 0000000..15197d1 --- /dev/null +++ b/node_modules/bluebird/js/release/schedule.js @@ -0,0 +1,62 @@ +"use strict"; +var util = require("./util"); +var schedule; +var noAsyncScheduler = function() { + throw new Error("No async scheduler available\u000a\u000a See http://goo.gl/MqrFmX\u000a"); +}; +var NativePromise = util.getNativePromise(); +if (util.isNode && typeof MutationObserver === "undefined") { + var GlobalSetImmediate = global.setImmediate; + var ProcessNextTick = process.nextTick; + schedule = util.isRecentNode + ? function(fn) { GlobalSetImmediate.call(global, fn); } + : function(fn) { ProcessNextTick.call(process, fn); }; +} else if (typeof NativePromise === "function" && + typeof NativePromise.resolve === "function") { + var nativePromise = NativePromise.resolve(); + schedule = function(fn) { + nativePromise.then(fn); + }; +} else if ((typeof MutationObserver !== "undefined") && + !(typeof window !== "undefined" && + window.navigator && + (window.navigator.standalone || window.cordova)) && + ("classList" in document.documentElement)) { + schedule = (function() { + var div = document.createElement("div"); + var opts = {attributes: true}; + var toggleScheduled = false; + var div2 = document.createElement("div"); + var o2 = new MutationObserver(function() { + div.classList.toggle("foo"); + toggleScheduled = false; + }); + o2.observe(div2, opts); + + var scheduleToggle = function() { + if (toggleScheduled) return; + toggleScheduled = true; + div2.classList.toggle("foo"); + }; + + return function schedule(fn) { + var o = new MutationObserver(function() { + o.disconnect(); + fn(); + }); + o.observe(div, opts); + scheduleToggle(); + }; + })(); +} else if (typeof setImmediate !== "undefined") { + schedule = function (fn) { + setImmediate(fn); + }; +} else if (typeof setTimeout !== "undefined") { + schedule = function (fn) { + setTimeout(fn, 0); + }; +} else { + schedule = noAsyncScheduler; +} +module.exports = schedule; diff --git a/node_modules/bluebird/js/release/settle.js b/node_modules/bluebird/js/release/settle.js new file mode 100644 index 0000000..e24b204 --- /dev/null +++ b/node_modules/bluebird/js/release/settle.js @@ -0,0 +1,47 @@ +"use strict"; +module.exports = + function(Promise, PromiseArray, debug) { +var PromiseInspection = Promise.PromiseInspection; +var util = require("./util"); + +function SettledPromiseArray(values) { + this.constructor$(values); +} +util.inherits(SettledPromiseArray, PromiseArray); + +SettledPromiseArray.prototype._promiseResolved = function (index, inspection) { + this._values[index] = inspection; + var totalResolved = ++this._totalResolved; + if (totalResolved >= this._length) { + this._resolve(this._values); + return true; + } + return false; +}; + +SettledPromiseArray.prototype._promiseFulfilled = function (value, index) { + var ret = new PromiseInspection(); + ret._bitField = 33554432; + ret._settledValueField = value; + return this._promiseResolved(index, ret); +}; +SettledPromiseArray.prototype._promiseRejected = function (reason, index) { + var ret = new PromiseInspection(); + ret._bitField = 16777216; + ret._settledValueField = reason; + return this._promiseResolved(index, ret); +}; + +Promise.settle = function (promises) { + debug.deprecated(".settle()", ".reflect()"); + return new SettledPromiseArray(promises).promise(); +}; + +Promise.allSettled = function (promises) { + return new SettledPromiseArray(promises).promise(); +}; + +Promise.prototype.settle = function () { + return Promise.settle(this); +}; +}; diff --git a/node_modules/bluebird/js/release/some.js b/node_modules/bluebird/js/release/some.js new file mode 100644 index 0000000..400d852 --- /dev/null +++ b/node_modules/bluebird/js/release/some.js @@ -0,0 +1,148 @@ +"use strict"; +module.exports = +function(Promise, PromiseArray, apiRejection) { +var util = require("./util"); +var RangeError = require("./errors").RangeError; +var AggregateError = require("./errors").AggregateError; +var isArray = util.isArray; +var CANCELLATION = {}; + + +function SomePromiseArray(values) { + this.constructor$(values); + this._howMany = 0; + this._unwrap = false; + this._initialized = false; +} +util.inherits(SomePromiseArray, PromiseArray); + +SomePromiseArray.prototype._init = function () { + if (!this._initialized) { + return; + } + if (this._howMany === 0) { + this._resolve([]); + return; + } + this._init$(undefined, -5); + var isArrayResolved = isArray(this._values); + if (!this._isResolved() && + isArrayResolved && + this._howMany > this._canPossiblyFulfill()) { + this._reject(this._getRangeError(this.length())); + } +}; + +SomePromiseArray.prototype.init = function () { + this._initialized = true; + this._init(); +}; + +SomePromiseArray.prototype.setUnwrap = function () { + this._unwrap = true; +}; + +SomePromiseArray.prototype.howMany = function () { + return this._howMany; +}; + +SomePromiseArray.prototype.setHowMany = function (count) { + this._howMany = count; +}; + +SomePromiseArray.prototype._promiseFulfilled = function (value) { + this._addFulfilled(value); + if (this._fulfilled() === this.howMany()) { + this._values.length = this.howMany(); + if (this.howMany() === 1 && this._unwrap) { + this._resolve(this._values[0]); + } else { + this._resolve(this._values); + } + return true; + } + return false; + +}; +SomePromiseArray.prototype._promiseRejected = function (reason) { + this._addRejected(reason); + return this._checkOutcome(); +}; + +SomePromiseArray.prototype._promiseCancelled = function () { + if (this._values instanceof Promise || this._values == null) { + return this._cancel(); + } + this._addRejected(CANCELLATION); + return this._checkOutcome(); +}; + +SomePromiseArray.prototype._checkOutcome = function() { + if (this.howMany() > this._canPossiblyFulfill()) { + var e = new AggregateError(); + for (var i = this.length(); i < this._values.length; ++i) { + if (this._values[i] !== CANCELLATION) { + e.push(this._values[i]); + } + } + if (e.length > 0) { + this._reject(e); + } else { + this._cancel(); + } + return true; + } + return false; +}; + +SomePromiseArray.prototype._fulfilled = function () { + return this._totalResolved; +}; + +SomePromiseArray.prototype._rejected = function () { + return this._values.length - this.length(); +}; + +SomePromiseArray.prototype._addRejected = function (reason) { + this._values.push(reason); +}; + +SomePromiseArray.prototype._addFulfilled = function (value) { + this._values[this._totalResolved++] = value; +}; + +SomePromiseArray.prototype._canPossiblyFulfill = function () { + return this.length() - this._rejected(); +}; + +SomePromiseArray.prototype._getRangeError = function (count) { + var message = "Input array must contain at least " + + this._howMany + " items but contains only " + count + " items"; + return new RangeError(message); +}; + +SomePromiseArray.prototype._resolveEmptyArray = function () { + this._reject(this._getRangeError(0)); +}; + +function some(promises, howMany) { + if ((howMany | 0) !== howMany || howMany < 0) { + return apiRejection("expecting a positive integer\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + var ret = new SomePromiseArray(promises); + var promise = ret.promise(); + ret.setHowMany(howMany); + ret.init(); + return promise; +} + +Promise.some = function (promises, howMany) { + return some(promises, howMany); +}; + +Promise.prototype.some = function (howMany) { + return some(this, howMany); +}; + +Promise._SomePromiseArray = SomePromiseArray; +}; diff --git a/node_modules/bluebird/js/release/synchronous_inspection.js b/node_modules/bluebird/js/release/synchronous_inspection.js new file mode 100644 index 0000000..9c49d2e --- /dev/null +++ b/node_modules/bluebird/js/release/synchronous_inspection.js @@ -0,0 +1,103 @@ +"use strict"; +module.exports = function(Promise) { +function PromiseInspection(promise) { + if (promise !== undefined) { + promise = promise._target(); + this._bitField = promise._bitField; + this._settledValueField = promise._isFateSealed() + ? promise._settledValue() : undefined; + } + else { + this._bitField = 0; + this._settledValueField = undefined; + } +} + +PromiseInspection.prototype._settledValue = function() { + return this._settledValueField; +}; + +var value = PromiseInspection.prototype.value = function () { + if (!this.isFulfilled()) { + throw new TypeError("cannot get fulfillment value of a non-fulfilled promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + return this._settledValue(); +}; + +var reason = PromiseInspection.prototype.error = +PromiseInspection.prototype.reason = function () { + if (!this.isRejected()) { + throw new TypeError("cannot get rejection reason of a non-rejected promise\u000a\u000a See http://goo.gl/MqrFmX\u000a"); + } + return this._settledValue(); +}; + +var isFulfilled = PromiseInspection.prototype.isFulfilled = function() { + return (this._bitField & 33554432) !== 0; +}; + +var isRejected = PromiseInspection.prototype.isRejected = function () { + return (this._bitField & 16777216) !== 0; +}; + +var isPending = PromiseInspection.prototype.isPending = function () { + return (this._bitField & 50397184) === 0; +}; + +var isResolved = PromiseInspection.prototype.isResolved = function () { + return (this._bitField & 50331648) !== 0; +}; + +PromiseInspection.prototype.isCancelled = function() { + return (this._bitField & 8454144) !== 0; +}; + +Promise.prototype.__isCancelled = function() { + return (this._bitField & 65536) === 65536; +}; + +Promise.prototype._isCancelled = function() { + return this._target().__isCancelled(); +}; + +Promise.prototype.isCancelled = function() { + return (this._target()._bitField & 8454144) !== 0; +}; + +Promise.prototype.isPending = function() { + return isPending.call(this._target()); +}; + +Promise.prototype.isRejected = function() { + return isRejected.call(this._target()); +}; + +Promise.prototype.isFulfilled = function() { + return isFulfilled.call(this._target()); +}; + +Promise.prototype.isResolved = function() { + return isResolved.call(this._target()); +}; + +Promise.prototype.value = function() { + return value.call(this._target()); +}; + +Promise.prototype.reason = function() { + var target = this._target(); + target._unsetRejectionIsUnhandled(); + return reason.call(target); +}; + +Promise.prototype._value = function() { + return this._settledValue(); +}; + +Promise.prototype._reason = function() { + this._unsetRejectionIsUnhandled(); + return this._settledValue(); +}; + +Promise.PromiseInspection = PromiseInspection; +}; diff --git a/node_modules/bluebird/js/release/thenables.js b/node_modules/bluebird/js/release/thenables.js new file mode 100644 index 0000000..d6ab9aa --- /dev/null +++ b/node_modules/bluebird/js/release/thenables.js @@ -0,0 +1,86 @@ +"use strict"; +module.exports = function(Promise, INTERNAL) { +var util = require("./util"); +var errorObj = util.errorObj; +var isObject = util.isObject; + +function tryConvertToPromise(obj, context) { + if (isObject(obj)) { + if (obj instanceof Promise) return obj; + var then = getThen(obj); + if (then === errorObj) { + if (context) context._pushContext(); + var ret = Promise.reject(then.e); + if (context) context._popContext(); + return ret; + } else if (typeof then === "function") { + if (isAnyBluebirdPromise(obj)) { + var ret = new Promise(INTERNAL); + obj._then( + ret._fulfill, + ret._reject, + undefined, + ret, + null + ); + return ret; + } + return doThenable(obj, then, context); + } + } + return obj; +} + +function doGetThen(obj) { + return obj.then; +} + +function getThen(obj) { + try { + return doGetThen(obj); + } catch (e) { + errorObj.e = e; + return errorObj; + } +} + +var hasProp = {}.hasOwnProperty; +function isAnyBluebirdPromise(obj) { + try { + return hasProp.call(obj, "_promise0"); + } catch (e) { + return false; + } +} + +function doThenable(x, then, context) { + var promise = new Promise(INTERNAL); + var ret = promise; + if (context) context._pushContext(); + promise._captureStackTrace(); + if (context) context._popContext(); + var synchronous = true; + var result = util.tryCatch(then).call(x, resolve, reject); + synchronous = false; + + if (promise && result === errorObj) { + promise._rejectCallback(result.e, true, true); + promise = null; + } + + function resolve(value) { + if (!promise) return; + promise._resolveCallback(value); + promise = null; + } + + function reject(reason) { + if (!promise) return; + promise._rejectCallback(reason, synchronous, true); + promise = null; + } + return ret; +} + +return tryConvertToPromise; +}; diff --git a/node_modules/bluebird/js/release/timers.js b/node_modules/bluebird/js/release/timers.js new file mode 100644 index 0000000..cb8f1f4 --- /dev/null +++ b/node_modules/bluebird/js/release/timers.js @@ -0,0 +1,93 @@ +"use strict"; +module.exports = function(Promise, INTERNAL, debug) { +var util = require("./util"); +var TimeoutError = Promise.TimeoutError; + +function HandleWrapper(handle) { + this.handle = handle; +} + +HandleWrapper.prototype._resultCancelled = function() { + clearTimeout(this.handle); +}; + +var afterValue = function(value) { return delay(+this).thenReturn(value); }; +var delay = Promise.delay = function (ms, value) { + var ret; + var handle; + if (value !== undefined) { + ret = Promise.resolve(value) + ._then(afterValue, null, null, ms, undefined); + if (debug.cancellation() && value instanceof Promise) { + ret._setOnCancel(value); + } + } else { + ret = new Promise(INTERNAL); + handle = setTimeout(function() { ret._fulfill(); }, +ms); + if (debug.cancellation()) { + ret._setOnCancel(new HandleWrapper(handle)); + } + ret._captureStackTrace(); + } + ret._setAsyncGuaranteed(); + return ret; +}; + +Promise.prototype.delay = function (ms) { + return delay(ms, this); +}; + +var afterTimeout = function (promise, message, parent) { + var err; + if (typeof message !== "string") { + if (message instanceof Error) { + err = message; + } else { + err = new TimeoutError("operation timed out"); + } + } else { + err = new TimeoutError(message); + } + util.markAsOriginatingFromRejection(err); + promise._attachExtraTrace(err); + promise._reject(err); + + if (parent != null) { + parent.cancel(); + } +}; + +function successClear(value) { + clearTimeout(this.handle); + return value; +} + +function failureClear(reason) { + clearTimeout(this.handle); + throw reason; +} + +Promise.prototype.timeout = function (ms, message) { + ms = +ms; + var ret, parent; + + var handleWrapper = new HandleWrapper(setTimeout(function timeoutTimeout() { + if (ret.isPending()) { + afterTimeout(ret, message, parent); + } + }, ms)); + + if (debug.cancellation()) { + parent = this.then(); + ret = parent._then(successClear, failureClear, + undefined, handleWrapper, undefined); + ret._setOnCancel(handleWrapper); + } else { + ret = this._then(successClear, failureClear, + undefined, handleWrapper, undefined); + } + + return ret; +}; + +}; diff --git a/node_modules/bluebird/js/release/using.js b/node_modules/bluebird/js/release/using.js new file mode 100644 index 0000000..65de531 --- /dev/null +++ b/node_modules/bluebird/js/release/using.js @@ -0,0 +1,226 @@ +"use strict"; +module.exports = function (Promise, apiRejection, tryConvertToPromise, + createContext, INTERNAL, debug) { + var util = require("./util"); + var TypeError = require("./errors").TypeError; + var inherits = require("./util").inherits; + var errorObj = util.errorObj; + var tryCatch = util.tryCatch; + var NULL = {}; + + function thrower(e) { + setTimeout(function(){throw e;}, 0); + } + + function castPreservingDisposable(thenable) { + var maybePromise = tryConvertToPromise(thenable); + if (maybePromise !== thenable && + typeof thenable._isDisposable === "function" && + typeof thenable._getDisposer === "function" && + thenable._isDisposable()) { + maybePromise._setDisposable(thenable._getDisposer()); + } + return maybePromise; + } + function dispose(resources, inspection) { + var i = 0; + var len = resources.length; + var ret = new Promise(INTERNAL); + function iterator() { + if (i >= len) return ret._fulfill(); + var maybePromise = castPreservingDisposable(resources[i++]); + if (maybePromise instanceof Promise && + maybePromise._isDisposable()) { + try { + maybePromise = tryConvertToPromise( + maybePromise._getDisposer().tryDispose(inspection), + resources.promise); + } catch (e) { + return thrower(e); + } + if (maybePromise instanceof Promise) { + return maybePromise._then(iterator, thrower, + null, null, null); + } + } + iterator(); + } + iterator(); + return ret; + } + + function Disposer(data, promise, context) { + this._data = data; + this._promise = promise; + this._context = context; + } + + Disposer.prototype.data = function () { + return this._data; + }; + + Disposer.prototype.promise = function () { + return this._promise; + }; + + Disposer.prototype.resource = function () { + if (this.promise().isFulfilled()) { + return this.promise().value(); + } + return NULL; + }; + + Disposer.prototype.tryDispose = function(inspection) { + var resource = this.resource(); + var context = this._context; + if (context !== undefined) context._pushContext(); + var ret = resource !== NULL + ? this.doDispose(resource, inspection) : null; + if (context !== undefined) context._popContext(); + this._promise._unsetDisposable(); + this._data = null; + return ret; + }; + + Disposer.isDisposer = function (d) { + return (d != null && + typeof d.resource === "function" && + typeof d.tryDispose === "function"); + }; + + function FunctionDisposer(fn, promise, context) { + this.constructor$(fn, promise, context); + } + inherits(FunctionDisposer, Disposer); + + FunctionDisposer.prototype.doDispose = function (resource, inspection) { + var fn = this.data(); + return fn.call(resource, resource, inspection); + }; + + function maybeUnwrapDisposer(value) { + if (Disposer.isDisposer(value)) { + this.resources[this.index]._setDisposable(value); + return value.promise(); + } + return value; + } + + function ResourceList(length) { + this.length = length; + this.promise = null; + this[length-1] = null; + } + + ResourceList.prototype._resultCancelled = function() { + var len = this.length; + for (var i = 0; i < len; ++i) { + var item = this[i]; + if (item instanceof Promise) { + item.cancel(); + } + } + }; + + Promise.using = function () { + var len = arguments.length; + if (len < 2) return apiRejection( + "you must pass at least 2 arguments to Promise.using"); + var fn = arguments[len - 1]; + if (typeof fn !== "function") { + return apiRejection("expecting a function but got " + util.classString(fn)); + } + var input; + var spreadArgs = true; + if (len === 2 && Array.isArray(arguments[0])) { + input = arguments[0]; + len = input.length; + spreadArgs = false; + } else { + input = arguments; + len--; + } + var resources = new ResourceList(len); + for (var i = 0; i < len; ++i) { + var resource = input[i]; + if (Disposer.isDisposer(resource)) { + var disposer = resource; + resource = resource.promise(); + resource._setDisposable(disposer); + } else { + var maybePromise = tryConvertToPromise(resource); + if (maybePromise instanceof Promise) { + resource = + maybePromise._then(maybeUnwrapDisposer, null, null, { + resources: resources, + index: i + }, undefined); + } + } + resources[i] = resource; + } + + var reflectedResources = new Array(resources.length); + for (var i = 0; i < reflectedResources.length; ++i) { + reflectedResources[i] = Promise.resolve(resources[i]).reflect(); + } + + var resultPromise = Promise.all(reflectedResources) + .then(function(inspections) { + for (var i = 0; i < inspections.length; ++i) { + var inspection = inspections[i]; + if (inspection.isRejected()) { + errorObj.e = inspection.error(); + return errorObj; + } else if (!inspection.isFulfilled()) { + resultPromise.cancel(); + return; + } + inspections[i] = inspection.value(); + } + promise._pushContext(); + + fn = tryCatch(fn); + var ret = spreadArgs + ? fn.apply(undefined, inspections) : fn(inspections); + var promiseCreated = promise._popContext(); + debug.checkForgottenReturns( + ret, promiseCreated, "Promise.using", promise); + return ret; + }); + + var promise = resultPromise.lastly(function() { + var inspection = new Promise.PromiseInspection(resultPromise); + return dispose(resources, inspection); + }); + resources.promise = promise; + promise._setOnCancel(resources); + return promise; + }; + + Promise.prototype._setDisposable = function (disposer) { + this._bitField = this._bitField | 131072; + this._disposer = disposer; + }; + + Promise.prototype._isDisposable = function () { + return (this._bitField & 131072) > 0; + }; + + Promise.prototype._getDisposer = function () { + return this._disposer; + }; + + Promise.prototype._unsetDisposable = function () { + this._bitField = this._bitField & (~131072); + this._disposer = undefined; + }; + + Promise.prototype.disposer = function (fn) { + if (typeof fn === "function") { + return new FunctionDisposer(fn, this, createContext()); + } + throw new TypeError(); + }; + +}; diff --git a/node_modules/bluebird/js/release/util.js b/node_modules/bluebird/js/release/util.js new file mode 100644 index 0000000..8ca4d91 --- /dev/null +++ b/node_modules/bluebird/js/release/util.js @@ -0,0 +1,421 @@ +"use strict"; +var es5 = require("./es5"); +var canEvaluate = typeof navigator == "undefined"; + +var errorObj = {e: {}}; +var tryCatchTarget; +var globalObject = typeof self !== "undefined" ? self : + typeof window !== "undefined" ? window : + typeof global !== "undefined" ? global : + this !== undefined ? this : null; + +function tryCatcher() { + try { + var target = tryCatchTarget; + tryCatchTarget = null; + return target.apply(this, arguments); + } catch (e) { + errorObj.e = e; + return errorObj; + } +} +function tryCatch(fn) { + tryCatchTarget = fn; + return tryCatcher; +} + +var inherits = function(Child, Parent) { + var hasProp = {}.hasOwnProperty; + + function T() { + this.constructor = Child; + this.constructor$ = Parent; + for (var propertyName in Parent.prototype) { + if (hasProp.call(Parent.prototype, propertyName) && + propertyName.charAt(propertyName.length-1) !== "$" + ) { + this[propertyName + "$"] = Parent.prototype[propertyName]; + } + } + } + T.prototype = Parent.prototype; + Child.prototype = new T(); + return Child.prototype; +}; + + +function isPrimitive(val) { + return val == null || val === true || val === false || + typeof val === "string" || typeof val === "number"; + +} + +function isObject(value) { + return typeof value === "function" || + typeof value === "object" && value !== null; +} + +function maybeWrapAsError(maybeError) { + if (!isPrimitive(maybeError)) return maybeError; + + return new Error(safeToString(maybeError)); +} + +function withAppended(target, appendee) { + var len = target.length; + var ret = new Array(len + 1); + var i; + for (i = 0; i < len; ++i) { + ret[i] = target[i]; + } + ret[i] = appendee; + return ret; +} + +function getDataPropertyOrDefault(obj, key, defaultValue) { + if (es5.isES5) { + var desc = Object.getOwnPropertyDescriptor(obj, key); + + if (desc != null) { + return desc.get == null && desc.set == null + ? desc.value + : defaultValue; + } + } else { + return {}.hasOwnProperty.call(obj, key) ? obj[key] : undefined; + } +} + +function notEnumerableProp(obj, name, value) { + if (isPrimitive(obj)) return obj; + var descriptor = { + value: value, + configurable: true, + enumerable: false, + writable: true + }; + es5.defineProperty(obj, name, descriptor); + return obj; +} + +function thrower(r) { + throw r; +} + +var inheritedDataKeys = (function() { + var excludedPrototypes = [ + Array.prototype, + Object.prototype, + Function.prototype + ]; + + var isExcludedProto = function(val) { + for (var i = 0; i < excludedPrototypes.length; ++i) { + if (excludedPrototypes[i] === val) { + return true; + } + } + return false; + }; + + if (es5.isES5) { + var getKeys = Object.getOwnPropertyNames; + return function(obj) { + var ret = []; + var visitedKeys = Object.create(null); + while (obj != null && !isExcludedProto(obj)) { + var keys; + try { + keys = getKeys(obj); + } catch (e) { + return ret; + } + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (visitedKeys[key]) continue; + visitedKeys[key] = true; + var desc = Object.getOwnPropertyDescriptor(obj, key); + if (desc != null && desc.get == null && desc.set == null) { + ret.push(key); + } + } + obj = es5.getPrototypeOf(obj); + } + return ret; + }; + } else { + var hasProp = {}.hasOwnProperty; + return function(obj) { + if (isExcludedProto(obj)) return []; + var ret = []; + + /*jshint forin:false */ + enumeration: for (var key in obj) { + if (hasProp.call(obj, key)) { + ret.push(key); + } else { + for (var i = 0; i < excludedPrototypes.length; ++i) { + if (hasProp.call(excludedPrototypes[i], key)) { + continue enumeration; + } + } + ret.push(key); + } + } + return ret; + }; + } + +})(); + +var thisAssignmentPattern = /this\s*\.\s*\S+\s*=/; +function isClass(fn) { + try { + if (typeof fn === "function") { + var keys = es5.names(fn.prototype); + + var hasMethods = es5.isES5 && keys.length > 1; + var hasMethodsOtherThanConstructor = keys.length > 0 && + !(keys.length === 1 && keys[0] === "constructor"); + var hasThisAssignmentAndStaticMethods = + thisAssignmentPattern.test(fn + "") && es5.names(fn).length > 0; + + if (hasMethods || hasMethodsOtherThanConstructor || + hasThisAssignmentAndStaticMethods) { + return true; + } + } + return false; + } catch (e) { + return false; + } +} + +function toFastProperties(obj) { + /*jshint -W027,-W055,-W031*/ + function FakeConstructor() {} + FakeConstructor.prototype = obj; + var receiver = new FakeConstructor(); + function ic() { + return typeof receiver.foo; + } + ic(); + ic(); + return obj; + eval(obj); +} + +var rident = /^[a-z$_][a-z$_0-9]*$/i; +function isIdentifier(str) { + return rident.test(str); +} + +function filledRange(count, prefix, suffix) { + var ret = new Array(count); + for(var i = 0; i < count; ++i) { + ret[i] = prefix + i + suffix; + } + return ret; +} + +function safeToString(obj) { + try { + return obj + ""; + } catch (e) { + return "[no string representation]"; + } +} + +function isError(obj) { + return obj instanceof Error || + (obj !== null && + typeof obj === "object" && + typeof obj.message === "string" && + typeof obj.name === "string"); +} + +function markAsOriginatingFromRejection(e) { + try { + notEnumerableProp(e, "isOperational", true); + } + catch(ignore) {} +} + +function originatesFromRejection(e) { + if (e == null) return false; + return ((e instanceof Error["__BluebirdErrorTypes__"].OperationalError) || + e["isOperational"] === true); +} + +function canAttachTrace(obj) { + return isError(obj) && es5.propertyIsWritable(obj, "stack"); +} + +var ensureErrorObject = (function() { + if (!("stack" in new Error())) { + return function(value) { + if (canAttachTrace(value)) return value; + try {throw new Error(safeToString(value));} + catch(err) {return err;} + }; + } else { + return function(value) { + if (canAttachTrace(value)) return value; + return new Error(safeToString(value)); + }; + } +})(); + +function classString(obj) { + return {}.toString.call(obj); +} + +function copyDescriptors(from, to, filter) { + var keys = es5.names(from); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + if (filter(key)) { + try { + es5.defineProperty(to, key, es5.getDescriptor(from, key)); + } catch (ignore) {} + } + } +} + +var asArray = function(v) { + if (es5.isArray(v)) { + return v; + } + return null; +}; + +if (typeof Symbol !== "undefined" && Symbol.iterator) { + var ArrayFrom = typeof Array.from === "function" ? function(v) { + return Array.from(v); + } : function(v) { + var ret = []; + var it = v[Symbol.iterator](); + var itResult; + while (!((itResult = it.next()).done)) { + ret.push(itResult.value); + } + return ret; + }; + + asArray = function(v) { + if (es5.isArray(v)) { + return v; + } else if (v != null && typeof v[Symbol.iterator] === "function") { + return ArrayFrom(v); + } + return null; + }; +} + +var isNode = typeof process !== "undefined" && + classString(process).toLowerCase() === "[object process]"; + +var hasEnvVariables = typeof process !== "undefined" && + typeof process.env !== "undefined"; + +function env(key) { + return hasEnvVariables ? process.env[key] : undefined; +} + +function getNativePromise() { + if (typeof Promise === "function") { + try { + var promise = new Promise(function(){}); + if (classString(promise) === "[object Promise]") { + return Promise; + } + } catch (e) {} + } +} + +var reflectHandler; +function contextBind(ctx, cb) { + if (ctx === null || + typeof cb !== "function" || + cb === reflectHandler) { + return cb; + } + + if (ctx.domain !== null) { + cb = ctx.domain.bind(cb); + } + + var async = ctx.async; + if (async !== null) { + var old = cb; + cb = function() { + var $_len = arguments.length + 2;var args = new Array($_len); for(var $_i = 2; $_i < $_len ; ++$_i) {args[$_i] = arguments[$_i - 2];}; + args[0] = old; + args[1] = this; + return async.runInAsyncScope.apply(async, args); + }; + } + return cb; +} + +var ret = { + setReflectHandler: function(fn) { + reflectHandler = fn; + }, + isClass: isClass, + isIdentifier: isIdentifier, + inheritedDataKeys: inheritedDataKeys, + getDataPropertyOrDefault: getDataPropertyOrDefault, + thrower: thrower, + isArray: es5.isArray, + asArray: asArray, + notEnumerableProp: notEnumerableProp, + isPrimitive: isPrimitive, + isObject: isObject, + isError: isError, + canEvaluate: canEvaluate, + errorObj: errorObj, + tryCatch: tryCatch, + inherits: inherits, + withAppended: withAppended, + maybeWrapAsError: maybeWrapAsError, + toFastProperties: toFastProperties, + filledRange: filledRange, + toString: safeToString, + canAttachTrace: canAttachTrace, + ensureErrorObject: ensureErrorObject, + originatesFromRejection: originatesFromRejection, + markAsOriginatingFromRejection: markAsOriginatingFromRejection, + classString: classString, + copyDescriptors: copyDescriptors, + isNode: isNode, + hasEnvVariables: hasEnvVariables, + env: env, + global: globalObject, + getNativePromise: getNativePromise, + contextBind: contextBind +}; +ret.isRecentNode = ret.isNode && (function() { + var version; + if (process.versions && process.versions.node) { + version = process.versions.node.split(".").map(Number); + } else if (process.version) { + version = process.version.split(".").map(Number); + } + return (version[0] === 0 && version[1] > 10) || (version[0] > 0); +})(); +ret.nodeSupportsAsyncResource = ret.isNode && (function() { + var supportsAsync = false; + try { + var res = require("async_hooks").AsyncResource; + supportsAsync = typeof res.prototype.runInAsyncScope === "function"; + } catch (e) { + supportsAsync = false; + } + return supportsAsync; +})(); + +if (ret.isNode) ret.toFastProperties(process); + +try {throw new Error(); } catch (e) {ret.lastLineError = e;} +module.exports = ret; diff --git a/node_modules/bluebird/package.json b/node_modules/bluebird/package.json new file mode 100644 index 0000000..33f696c --- /dev/null +++ b/node_modules/bluebird/package.json @@ -0,0 +1,78 @@ +{ + "name": "bluebird", + "description": "Full featured Promises/A+ implementation with exceptionally good performance", + "version": "3.7.2", + "keywords": [ + "promise", + "performance", + "promises", + "promises-a", + "promises-aplus", + "async", + "await", + "deferred", + "deferreds", + "future", + "flow control", + "dsl", + "fluent interface" + ], + "scripts": { + "lint": "node scripts/jshint.js", + "test": "node --expose-gc tools/test.js", + "istanbul": "istanbul", + "prepublish": "npm run generate-browser-core && npm run generate-browser-full", + "generate-browser-full": "node tools/build.js --no-clean --no-debug --release --browser --minify", + "generate-browser-core": "node tools/build.js --features=core --no-debug --release --zalgo --browser --minify && mv js/browser/bluebird.js js/browser/bluebird.core.js && mv js/browser/bluebird.min.js js/browser/bluebird.core.min.js" + }, + "homepage": "https://github.com/petkaantonov/bluebird", + "repository": { + "type": "git", + "url": "git://github.com/petkaantonov/bluebird.git" + }, + "bugs": { + "url": "http://github.com/petkaantonov/bluebird/issues" + }, + "license": "MIT", + "author": { + "name": "Petka Antonov", + "email": "petka_antonov@hotmail.com", + "url": "http://github.com/petkaantonov/" + }, + "devDependencies": { + "acorn": "^6.0.2", + "acorn-walk": "^6.1.0", + "baconjs": "^0.7.43", + "bluebird": "^2.9.2", + "body-parser": "^1.10.2", + "browserify": "^8.1.1", + "cli-table": "~0.3.1", + "co": "^4.2.0", + "cross-spawn": "^0.2.3", + "glob": "^4.3.2", + "grunt-saucelabs": "~8.4.1", + "highland": "^2.3.0", + "istanbul": "^0.3.5", + "jshint": "^2.6.0", + "jshint-stylish": "~0.2.0", + "kefir": "^2.4.1", + "mkdirp": "~0.5.0", + "mocha": "~2.1", + "open": "~0.0.5", + "optimist": "~0.6.1", + "rimraf": "~2.2.6", + "rx": "^2.3.25", + "serve-static": "^1.7.1", + "sinon": "~1.7.3", + "uglify-js": "~2.4.16" + }, + "readmeFilename": "README.md", + "main": "./js/release/bluebird.js", + "webpack": "./js/release/bluebird.js", + "browser": "./js/browser/bluebird.js", + "files": [ + "js/browser", + "js/release", + "LICENSE" + ] +} diff --git a/node_modules/brace-expansion/LICENSE b/node_modules/brace-expansion/LICENSE new file mode 100644 index 0000000..de32266 --- /dev/null +++ b/node_modules/brace-expansion/LICENSE @@ -0,0 +1,21 @@ +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 new file mode 100644 index 0000000..6b4e0e1 --- /dev/null +++ b/node_modules/brace-expansion/README.md @@ -0,0 +1,129 @@ +# 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 new file mode 100644 index 0000000..0478be8 --- /dev/null +++ b/node_modules/brace-expansion/index.js @@ -0,0 +1,201 @@ +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) { + if (!str) + return []; + + // 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), 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, 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); + } + 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], false).map(embrace); + if (n.length === 1) { + var post = m.post.length + ? expand(m.post, 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, 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.abs(numeric(n[2])) + : 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, false) }); + } + + for (var j = 0; j < N.length; j++) { + for (var k = 0; k < post.length; 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 new file mode 100644 index 0000000..a18faa8 --- /dev/null +++ b/node_modules/brace-expansion/package.json @@ -0,0 +1,47 @@ +{ + "name": "brace-expansion", + "description": "Brace expansion as known from sh/bash", + "version": "1.1.11", + "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" + ] + } +} diff --git a/node_modules/buffer-crc32/LICENSE b/node_modules/buffer-crc32/LICENSE new file mode 100644 index 0000000..4cef10e --- /dev/null +++ b/node_modules/buffer-crc32/LICENSE @@ -0,0 +1,19 @@ +The MIT License + +Copyright (c) 2013 Brian J. Brennan + +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/buffer-crc32/README.md b/node_modules/buffer-crc32/README.md new file mode 100644 index 0000000..0d9d8b8 --- /dev/null +++ b/node_modules/buffer-crc32/README.md @@ -0,0 +1,47 @@ +# buffer-crc32 + +[![Build Status](https://secure.travis-ci.org/brianloveswords/buffer-crc32.png?branch=master)](http://travis-ci.org/brianloveswords/buffer-crc32) + +crc32 that works with binary data and fancy character sets, outputs +buffer, signed or unsigned data and has tests. + +Derived from the sample CRC implementation in the PNG specification: http://www.w3.org/TR/PNG/#D-CRCAppendix + +# install +``` +npm install buffer-crc32 +``` + +# example +```js +var crc32 = require('buffer-crc32'); +// works with buffers +var buf = Buffer([0x00, 0x73, 0x75, 0x70, 0x20, 0x62, 0x72, 0x6f, 0x00]) +crc32(buf) // -> + +// has convenience methods for getting signed or unsigned ints +crc32.signed(buf) // -> -1805997238 +crc32.unsigned(buf) // -> 2488970058 + +// will cast to buffer if given a string, so you can +// directly use foreign characters safely +crc32('自動販売機') // -> + +// and works in append mode too +var partialCrc = crc32('hey'); +var partialCrc = crc32(' ', partialCrc); +var partialCrc = crc32('sup', partialCrc); +var partialCrc = crc32(' ', partialCrc); +var finalCrc = crc32('bros', partialCrc); // -> +``` + +# tests +This was tested against the output of zlib's crc32 method. You can run +the tests with`npm test` (requires tap) + +# see also +https://github.com/alexgorbatchev/node-crc, `crc.buffer.crc32` also +supports buffer inputs and return unsigned ints (thanks @tjholowaychuk). + +# license +MIT/X11 diff --git a/node_modules/buffer-crc32/index.js b/node_modules/buffer-crc32/index.js new file mode 100644 index 0000000..6727dd3 --- /dev/null +++ b/node_modules/buffer-crc32/index.js @@ -0,0 +1,111 @@ +var Buffer = require('buffer').Buffer; + +var CRC_TABLE = [ + 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, + 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, + 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, + 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, + 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, + 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, + 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, + 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, + 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, + 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, + 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, + 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, + 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, + 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, + 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, + 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, + 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, + 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, + 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, + 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, + 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, + 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, + 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, + 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, + 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, + 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, + 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, + 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, + 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, + 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, + 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, + 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, + 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, + 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, + 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, + 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, + 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, + 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, + 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, + 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, + 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, + 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, + 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, + 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, + 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, + 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, + 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, + 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, + 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, + 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, + 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, + 0x2d02ef8d +]; + +if (typeof Int32Array !== 'undefined') { + CRC_TABLE = new Int32Array(CRC_TABLE); +} + +function ensureBuffer(input) { + if (Buffer.isBuffer(input)) { + return input; + } + + var hasNewBufferAPI = + typeof Buffer.alloc === "function" && + typeof Buffer.from === "function"; + + if (typeof input === "number") { + return hasNewBufferAPI ? Buffer.alloc(input) : new Buffer(input); + } + else if (typeof input === "string") { + return hasNewBufferAPI ? Buffer.from(input) : new Buffer(input); + } + else { + throw new Error("input must be buffer, number, or string, received " + + typeof input); + } +} + +function bufferizeInt(num) { + var tmp = ensureBuffer(4); + tmp.writeInt32BE(num, 0); + return tmp; +} + +function _crc32(buf, previous) { + buf = ensureBuffer(buf); + if (Buffer.isBuffer(previous)) { + previous = previous.readUInt32BE(0); + } + var crc = ~~previous ^ -1; + for (var n = 0; n < buf.length; n++) { + crc = CRC_TABLE[(crc ^ buf[n]) & 0xff] ^ (crc >>> 8); + } + return (crc ^ -1); +} + +function crc32() { + return bufferizeInt(_crc32.apply(null, arguments)); +} +crc32.signed = function () { + return _crc32.apply(null, arguments); +}; +crc32.unsigned = function () { + return _crc32.apply(null, arguments) >>> 0; +}; + +module.exports = crc32; diff --git a/node_modules/buffer-crc32/package.json b/node_modules/buffer-crc32/package.json new file mode 100644 index 0000000..e896bec --- /dev/null +++ b/node_modules/buffer-crc32/package.json @@ -0,0 +1,39 @@ +{ + "author": "Brian J. Brennan ", + "name": "buffer-crc32", + "description": "A pure javascript CRC32 algorithm that plays nice with binary data", + "version": "0.2.13", + "licenses": [ + { + "type": "MIT", + "url": "https://github.com/brianloveswords/buffer-crc32/raw/master/LICENSE" + } + ], + "contributors": [ + { + "name": "Vladimir Kuznetsov", + "github": "mistakster" + } + ], + "homepage": "https://github.com/brianloveswords/buffer-crc32", + "repository": { + "type": "git", + "url": "git://github.com/brianloveswords/buffer-crc32.git" + }, + "main": "index.js", + "scripts": { + "test": "./node_modules/.bin/tap tests/*.test.js" + }, + "dependencies": {}, + "devDependencies": { + "tap": "~0.2.5" + }, + "optionalDependencies": {}, + "engines": { + "node": "*" + }, + "license": "MIT", + "files": [ + "index.js" + ] +} diff --git a/node_modules/cacheable-lookup/LICENSE b/node_modules/cacheable-lookup/LICENSE new file mode 100644 index 0000000..92498ed --- /dev/null +++ b/node_modules/cacheable-lookup/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2019 Szymon Marczak + +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/cacheable-lookup/README.md b/node_modules/cacheable-lookup/README.md new file mode 100644 index 0000000..2507155 --- /dev/null +++ b/node_modules/cacheable-lookup/README.md @@ -0,0 +1,240 @@ +# cacheable-lookup + +> A cacheable [`dns.lookup(…)`](https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback) that respects TTL :tada: + +[![Node CI](https://github.com/szmarczak/cacheable-lookup/workflows/Node%20CI/badge.svg)](https://github.com/szmarczak/cacheable-lookup/actions) +[![Coverage Status](https://coveralls.io/repos/github/szmarczak/cacheable-lookup/badge.svg?branch=master)](https://coveralls.io/github/szmarczak/cacheable-lookup?branch=master) +[![npm](https://img.shields.io/npm/dm/cacheable-lookup.svg)](https://www.npmjs.com/package/cacheable-lookup) +[![install size](https://packagephobia.now.sh/badge?p=cacheable-lookup)](https://packagephobia.now.sh/result?p=cacheable-lookup) + +Making lots of HTTP requests? You can save some time by caching DNS lookups :zap: + +## Usage + +### Using the `lookup` option + +```js +const http = require('http'); +const CacheableLookup = require('cacheable-lookup'); + +const cacheable = new CacheableLookup(); + +http.get('http://example.com', {lookup: cacheable.lookup}, response => { + // Handle the response here +}); +``` + +### Attaching CacheableLookup to an Agent + +```js +const http = require('http'); +const CacheableLookup = require('cacheable-lookup'); + +const cacheable = new CacheableLookup(); +cacheable.install(http.globalAgent); + +http.get('http://example.com', response => { + // Handle the response here +}); +``` + +## API + +### new CacheableLookup(options) + +Returns a new instance of `CacheableLookup`. + +#### options + +Type: `object`
+Default: `{}` + +Options used to cache the DNS lookups. + +##### cache + +Type: `Map` | [`Keyv`](https://github.com/lukechilds/keyv/)
+Default: `new Map()` + +Custom cache instance. If `undefined`, it will create a new one. + +**Note**: If you decide to use Keyv instead of the native implementation, the performance will drop by 10x. Memory leaks may occur as it doesn't provide any way to remove all the deprecated values at once. + +**Tip**: [`QuickLRU`](https://github.com/sindresorhus/quick-lru) is fully compatible with the Map API, you can use it to limit the amount of cached entries. Example: + +```js +const http = require('http'); +const CacheableLookup = require('cacheable-lookup'); +const QuickLRU = require('quick-lru'); + +const cacheable = new CacheableLookup({ + cache: new QuickLRU({maxSize: 1000}) +}); + +http.get('http://example.com', {lookup: cacheable.lookup}, response => { + // Handle the response here +}); +``` + +##### options.maxTtl + +Type: `number`
+Default: `Infinity` + +The maximum lifetime of the entries received from the specifed DNS server (TTL in seconds). + +If set to `0`, it will make a new DNS query each time. + +**Pro Tip**: This shouldn't be lower than your DNS server response time in order to prevent bottlenecks. For example, if you use Cloudflare, this value should be greater than `0.01`. + +##### options.fallbackDuration + +Type: `number`
+Default: `3600` (1 hour) + +When the DNS server responds with `ENOTFOUND` or `ENODATA` and the OS reports that the entry is available, it will use `dns.lookup(...)` directly for the requested hostnames for the specified amount of time (in seconds). + +If you don't query internal hostnames (such as `localhost`, `database.local` etc.), it is strongly recommended to set this value to `0`. + +##### options.errorTtl + +Type: `number`
+Default: `0.15` + +The time how long it needs to remember queries that threw `ENOTFOUND` or `ENODATA` (TTL in seconds). + +**Note**: This option is independent, `options.maxTtl` does not affect this. + +**Pro Tip**: This shouldn't be lower than your DNS server response time in order to prevent bottlenecks. For example, if you use Cloudflare, this value should be greater than `0.01`. + +##### options.resolver + +Type: `dns.Resolver | dns.promises.Resolver`
+Default: [`new dns.promises.Resolver()`](https://nodejs.org/api/dns.html#dns_class_dns_resolver) + +An instance of [DNS Resolver](https://nodejs.org/api/dns.html#dns_class_dns_resolver) used to make DNS queries. + +##### options.lookup + +Type: `Function`
+Default: [`dns.lookup`](https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback) + +The fallback function to use when the DNS server responds with `ENOTFOUND` or `ENODATA`. + +**Note**: This has no effect if the `fallbackDuration` option is less than `1`. + +### Entry object + +Type: `object` + +#### address + +Type: `string` + +The IP address (can be an IPv4 or IPv6 address). + +#### family + +Type: `number` + +The IP family (`4` or `6`). + +##### expires + +Type: `number` + +**Note**: This is not present when falling back to `dns.lookup(...)`! + +The timestamp (`Date.now() + ttl * 1000`) when the entry expires. + +#### ttl + +**Note**: This is not present when falling back to `dns.lookup(...)`! + +The time in seconds for its lifetime. + +### Entry object (callback-style) + +When `options.all` is `false`, then `callback(error, address, family, expires, ttl)` is called.
+When `options.all` is `true`, then `callback(error, entries)` is called. + +### CacheableLookup instance + +#### servers + +Type: `Array` + +The DNS servers used to make queries. Can be overridden - doing so will clear the cache. + +#### [lookup(hostname, options, callback)](https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback) + +#### lookupAsync(hostname, options) + +The asynchronous version of `dns.lookup(…)`. + +Returns an [entry object](#entry-object).
+If `options.all` is true, returns an array of entry objects. + +##### hostname + +Type: `string` + +##### options + +Type: `object` + +The same as the [`dns.lookup(…)`](https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback) options. + +#### query(hostname) + +An asynchronous function which returns cached DNS lookup entries.
+This is the base for `lookupAsync(hostname, options)` and `lookup(hostname, options, callback)`. + +**Note**: This function has no options. + +Returns an array of objects with `address`, `family`, `ttl` and `expires` properties. + +#### queryAndCache(hostname) + +An asynchronous function which makes two DNS queries: A and AAAA. The result is cached.
+This is used by `query(hostname)` if no entry in the database is present. + +Returns an array of objects with `address`, `family`, `ttl` and `expires` properties. + +#### updateInterfaceInfo() + +Updates interface info. For example, you need to run this when you plug or unplug your WiFi driver. + +**Note:** Running `updateInterfaceInfo()` will trigger `clear()` only on network interface removal. + +#### clear(hostname?) + +Clears the cache for the given hostname. If the hostname argument is not present, the entire cache will be emptied. + +## High performance + +Performed on: +- Query: `example.com` +- CPU: i7-7700k +- CPU governor: performance + +``` +CacheableLookup#lookupAsync x 2,896,251 ops/sec ±1.07% (85 runs sampled) +CacheableLookup#lookupAsync.all x 2,842,664 ops/sec ±1.11% (88 runs sampled) +CacheableLookup#lookupAsync.all.ADDRCONFIG x 2,598,283 ops/sec ±1.21% (88 runs sampled) +CacheableLookup#lookup x 2,565,913 ops/sec ±1.56% (85 runs sampled) +CacheableLookup#lookup.all x 2,609,039 ops/sec ±1.01% (86 runs sampled) +CacheableLookup#lookup.all.ADDRCONFIG x 2,416,242 ops/sec ±0.89% (85 runs sampled) +dns#lookup x 7,272 ops/sec ±0.36% (86 runs sampled) +dns#lookup.all x 7,249 ops/sec ±0.40% (86 runs sampled) +dns#lookup.all.ADDRCONFIG x 5,693 ops/sec ±0.28% (85 runs sampled) +Fastest is CacheableLookup#lookupAsync.all +``` + +## Related + + - [cacheable-request](https://github.com/lukechilds/cacheable-request) - Wrap native HTTP requests with RFC compliant cache support + +## License + +MIT diff --git a/node_modules/cacheable-lookup/index.d.ts b/node_modules/cacheable-lookup/index.d.ts new file mode 100644 index 0000000..528b1e2 --- /dev/null +++ b/node_modules/cacheable-lookup/index.d.ts @@ -0,0 +1,139 @@ +import {Resolver, promises as dnsPromises, lookup} from 'dns'; +import {Agent} from 'http'; + +type AsyncResolver = dnsPromises.Resolver; + +export type IPFamily = 4 | 6; + +type TPromise = T | Promise; + +export interface CacheInstance { + set(hostname: string, entries: EntryObject[], ttl: number): TPromise; + get(hostname: string): TPromise; + delete(hostname: string): TPromise; + clear(): TPromise; +} + +export interface Options { + /** + * Custom cache instance. If `undefined`, it will create a new one. + * @default undefined + */ + cache?: CacheInstance; + /** + * Limits the cache time (TTL). If set to `0`, it will make a new DNS query each time. + * @default Infinity + */ + maxTtl?: number; + /** + * DNS Resolver used to make DNS queries. + * @default new dns.promises.Resolver() + */ + resolver?: Resolver | AsyncResolver; + /** + * When the DNS server responds with `ENOTFOUND` or `ENODATA` and the OS reports that the entry is available, + * it will use `dns.lookup(...)` directly for the requested hostnames for the specified amount of time (in seconds). + * + * If you don't query internal hostnames (such as `localhost`, `database.local` etc.), + * it is strongly recommended to set this value to `0`. + * @default 3600 + */ + fallbackDuration?: number; + /** + * The time how long it needs to remember failed queries (TTL in seconds). + * + * **Note**: This option is independent, `options.maxTtl` does not affect this. + * @default 0.15 + */ + errorTtl?: number; + /** + * The fallback function to use when the DNS server responds with `ENOTFOUND` or `ENODATA`. + * + * **Note**: This has no effect if the `fallbackDuration` option is less than `1`. + * @default dns.lookup + */ + lookup?: typeof lookup; +} + +export interface EntryObject { + /** + * The IP address (can be an IPv4 or IPv5 address). + */ + readonly address: string; + /** + * The IP family. + */ + readonly family: IPFamily; + /** + * The original TTL. + */ + readonly ttl?: number; + /** + * The expiration timestamp. + */ + readonly expires?: number; +} + +export interface LookupOptions { + /** + * One or more supported getaddrinfo flags. Multiple flags may be passed by bitwise ORing their values. + */ + hints?: number; + /** + * The record family. Must be `4` or `6`. IPv4 and IPv6 addresses are both returned by default. + */ + family?: IPFamily; + /** + * When `true`, the callback returns all resolved addresses in an array. Otherwise, returns a single address. + * @default false + */ + all?: boolean; +} + +export default class CacheableLookup { + constructor(options?: Options); + /** + * The DNS servers used to make queries. Can be overridden - doing so will clear the cache. + */ + servers: string[]; + /** + * @see https://nodejs.org/api/dns.html#dns_dns_lookup_hostname_options_callback + */ + lookup(hostname: string, family: IPFamily, callback: (error: NodeJS.ErrnoException, address: string, family: IPFamily) => void): void; + lookup(hostname: string, callback: (error: NodeJS.ErrnoException, address: string, family: IPFamily) => void): void; + lookup(hostname: string, options: LookupOptions & {all: true}, callback: (error: NodeJS.ErrnoException, result: ReadonlyArray) => void): void; + lookup(hostname: string, options: LookupOptions, callback: (error: NodeJS.ErrnoException, address: string, family: IPFamily) => void): void; + /** + * The asynchronous version of `dns.lookup(…)`. + */ + lookupAsync(hostname: string, options: LookupOptions & {all: true}): Promise>; + lookupAsync(hostname: string, options: LookupOptions): Promise; + lookupAsync(hostname: string): Promise; + lookupAsync(hostname: string, family: IPFamily): Promise; + /** + * An asynchronous function which returns cached DNS lookup entries. This is the base for `lookupAsync(hostname, options)` and `lookup(hostname, options, callback)`. + */ + query(hostname: string): Promise>; + /** + * An asynchronous function which makes a new DNS lookup query and updates the database. This is used by `query(hostname, family)` if no entry in the database is present. Returns an array of objects with `address`, `family`, `ttl` and `expires` properties. + */ + queryAndCache(hostname: string): Promise>; + /** + * Attaches itself to an Agent instance. + */ + install(agent: Agent): void; + /** + * Removes itself from an Agent instance. + */ + uninstall(agent: Agent): void; + /** + * Updates interface info. For example, you need to run this when you plug or unplug your WiFi driver. + * + * **Note:** Running `updateInterfaceInfo()` will trigger `clear()` only on network interface removal. + */ + updateInterfaceInfo(): void; + /** + * Clears the cache for the given hostname. If the hostname argument is not present, the entire cache will be emptied. + */ + clear(hostname?: string): void; +} diff --git a/node_modules/cacheable-lookup/package.json b/node_modules/cacheable-lookup/package.json new file mode 100644 index 0000000..f20991e --- /dev/null +++ b/node_modules/cacheable-lookup/package.json @@ -0,0 +1,45 @@ +{ + "name": "cacheable-lookup", + "version": "5.0.4", + "description": "A cacheable dns.lookup(…) that respects the TTL", + "engines": { + "node": ">=10.6.0" + }, + "files": [ + "source", + "index.d.ts" + ], + "main": "source/index.js", + "types": "index.d.ts", + "scripts": { + "test": "xo && nyc --reporter=lcovonly --reporter=text ava && tsd" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/szmarczak/cacheable-lookup.git" + }, + "keywords": [ + "dns", + "lookup", + "cacheable", + "ttl" + ], + "author": "Szymon Marczak", + "license": "MIT", + "bugs": { + "url": "https://github.com/szmarczak/cacheable-lookup/issues" + }, + "homepage": "https://github.com/szmarczak/cacheable-lookup#readme", + "devDependencies": { + "@types/keyv": "^3.1.1", + "ava": "^3.8.2", + "benchmark": "^2.1.4", + "coveralls": "^3.0.9", + "keyv": "^4.0.0", + "nyc": "^15.0.0", + "proxyquire": "^2.1.3", + "tsd": "^0.11.0", + "quick-lru": "^5.1.0", + "xo": "^0.25.3" + } +} diff --git a/node_modules/cacheable-lookup/source/index.js b/node_modules/cacheable-lookup/source/index.js new file mode 100644 index 0000000..21f731e --- /dev/null +++ b/node_modules/cacheable-lookup/source/index.js @@ -0,0 +1,436 @@ +'use strict'; +const { + V4MAPPED, + ADDRCONFIG, + ALL, + promises: { + Resolver: AsyncResolver + }, + lookup: dnsLookup +} = require('dns'); +const {promisify} = require('util'); +const os = require('os'); + +const kCacheableLookupCreateConnection = Symbol('cacheableLookupCreateConnection'); +const kCacheableLookupInstance = Symbol('cacheableLookupInstance'); +const kExpires = Symbol('expires'); + +const supportsALL = typeof ALL === 'number'; + +const verifyAgent = agent => { + if (!(agent && typeof agent.createConnection === 'function')) { + throw new Error('Expected an Agent instance as the first argument'); + } +}; + +const map4to6 = entries => { + for (const entry of entries) { + if (entry.family === 6) { + continue; + } + + entry.address = `::ffff:${entry.address}`; + entry.family = 6; + } +}; + +const getIfaceInfo = () => { + let has4 = false; + let has6 = false; + + for (const device of Object.values(os.networkInterfaces())) { + for (const iface of device) { + if (iface.internal) { + continue; + } + + if (iface.family === 'IPv6') { + has6 = true; + } else { + has4 = true; + } + + if (has4 && has6) { + return {has4, has6}; + } + } + } + + return {has4, has6}; +}; + +const isIterable = map => { + return Symbol.iterator in map; +}; + +const ttl = {ttl: true}; +const all = {all: true}; + +class CacheableLookup { + constructor({ + cache = new Map(), + maxTtl = Infinity, + fallbackDuration = 3600, + errorTtl = 0.15, + resolver = new AsyncResolver(), + lookup = dnsLookup + } = {}) { + this.maxTtl = maxTtl; + this.errorTtl = errorTtl; + + this._cache = cache; + this._resolver = resolver; + this._dnsLookup = promisify(lookup); + + if (this._resolver instanceof AsyncResolver) { + this._resolve4 = this._resolver.resolve4.bind(this._resolver); + this._resolve6 = this._resolver.resolve6.bind(this._resolver); + } else { + this._resolve4 = promisify(this._resolver.resolve4.bind(this._resolver)); + this._resolve6 = promisify(this._resolver.resolve6.bind(this._resolver)); + } + + this._iface = getIfaceInfo(); + + this._pending = {}; + this._nextRemovalTime = false; + this._hostnamesToFallback = new Set(); + + if (fallbackDuration < 1) { + this._fallback = false; + } else { + this._fallback = true; + + const interval = setInterval(() => { + this._hostnamesToFallback.clear(); + }, fallbackDuration * 1000); + + /* istanbul ignore next: There is no `interval.unref()` when running inside an Electron renderer */ + if (interval.unref) { + interval.unref(); + } + } + + this.lookup = this.lookup.bind(this); + this.lookupAsync = this.lookupAsync.bind(this); + } + + set servers(servers) { + this.clear(); + + this._resolver.setServers(servers); + } + + get servers() { + return this._resolver.getServers(); + } + + lookup(hostname, options, callback) { + if (typeof options === 'function') { + callback = options; + options = {}; + } else if (typeof options === 'number') { + options = { + family: options + }; + } + + if (!callback) { + throw new Error('Callback must be a function.'); + } + + // eslint-disable-next-line promise/prefer-await-to-then + this.lookupAsync(hostname, options).then(result => { + if (options.all) { + callback(null, result); + } else { + callback(null, result.address, result.family, result.expires, result.ttl); + } + }, callback); + } + + async lookupAsync(hostname, options = {}) { + if (typeof options === 'number') { + options = { + family: options + }; + } + + let cached = await this.query(hostname); + + if (options.family === 6) { + const filtered = cached.filter(entry => entry.family === 6); + + if (options.hints & V4MAPPED) { + if ((supportsALL && options.hints & ALL) || filtered.length === 0) { + map4to6(cached); + } else { + cached = filtered; + } + } else { + cached = filtered; + } + } else if (options.family === 4) { + cached = cached.filter(entry => entry.family === 4); + } + + if (options.hints & ADDRCONFIG) { + const {_iface} = this; + cached = cached.filter(entry => entry.family === 6 ? _iface.has6 : _iface.has4); + } + + if (cached.length === 0) { + const error = new Error(`cacheableLookup ENOTFOUND ${hostname}`); + error.code = 'ENOTFOUND'; + error.hostname = hostname; + + throw error; + } + + if (options.all) { + return cached; + } + + return cached[0]; + } + + async query(hostname) { + let cached = await this._cache.get(hostname); + + if (!cached) { + const pending = this._pending[hostname]; + + if (pending) { + cached = await pending; + } else { + const newPromise = this.queryAndCache(hostname); + this._pending[hostname] = newPromise; + + try { + cached = await newPromise; + } finally { + delete this._pending[hostname]; + } + } + } + + cached = cached.map(entry => { + return {...entry}; + }); + + return cached; + } + + async _resolve(hostname) { + const wrap = async promise => { + try { + return await promise; + } catch (error) { + if (error.code === 'ENODATA' || error.code === 'ENOTFOUND') { + return []; + } + + throw error; + } + }; + + // ANY is unsafe as it doesn't trigger new queries in the underlying server. + const [A, AAAA] = await Promise.all([ + this._resolve4(hostname, ttl), + this._resolve6(hostname, ttl) + ].map(promise => wrap(promise))); + + let aTtl = 0; + let aaaaTtl = 0; + let cacheTtl = 0; + + const now = Date.now(); + + for (const entry of A) { + entry.family = 4; + entry.expires = now + (entry.ttl * 1000); + + aTtl = Math.max(aTtl, entry.ttl); + } + + for (const entry of AAAA) { + entry.family = 6; + entry.expires = now + (entry.ttl * 1000); + + aaaaTtl = Math.max(aaaaTtl, entry.ttl); + } + + if (A.length > 0) { + if (AAAA.length > 0) { + cacheTtl = Math.min(aTtl, aaaaTtl); + } else { + cacheTtl = aTtl; + } + } else { + cacheTtl = aaaaTtl; + } + + return { + entries: [ + ...A, + ...AAAA + ], + cacheTtl + }; + } + + async _lookup(hostname) { + try { + const entries = await this._dnsLookup(hostname, { + all: true + }); + + return { + entries, + cacheTtl: 0 + }; + } catch (_) { + return { + entries: [], + cacheTtl: 0 + }; + } + } + + async _set(hostname, data, cacheTtl) { + if (this.maxTtl > 0 && cacheTtl > 0) { + cacheTtl = Math.min(cacheTtl, this.maxTtl) * 1000; + data[kExpires] = Date.now() + cacheTtl; + + try { + await this._cache.set(hostname, data, cacheTtl); + } catch (error) { + this.lookupAsync = async () => { + const cacheError = new Error('Cache Error. Please recreate the CacheableLookup instance.'); + cacheError.cause = error; + + throw cacheError; + }; + } + + if (isIterable(this._cache)) { + this._tick(cacheTtl); + } + } + } + + async queryAndCache(hostname) { + if (this._hostnamesToFallback.has(hostname)) { + return this._dnsLookup(hostname, all); + } + + let query = await this._resolve(hostname); + + if (query.entries.length === 0 && this._fallback) { + query = await this._lookup(hostname); + + if (query.entries.length !== 0) { + // Use `dns.lookup(...)` for that particular hostname + this._hostnamesToFallback.add(hostname); + } + } + + const cacheTtl = query.entries.length === 0 ? this.errorTtl : query.cacheTtl; + await this._set(hostname, query.entries, cacheTtl); + + return query.entries; + } + + _tick(ms) { + const nextRemovalTime = this._nextRemovalTime; + + if (!nextRemovalTime || ms < nextRemovalTime) { + clearTimeout(this._removalTimeout); + + this._nextRemovalTime = ms; + + this._removalTimeout = setTimeout(() => { + this._nextRemovalTime = false; + + let nextExpiry = Infinity; + + const now = Date.now(); + + for (const [hostname, entries] of this._cache) { + const expires = entries[kExpires]; + + if (now >= expires) { + this._cache.delete(hostname); + } else if (expires < nextExpiry) { + nextExpiry = expires; + } + } + + if (nextExpiry !== Infinity) { + this._tick(nextExpiry - now); + } + }, ms); + + /* istanbul ignore next: There is no `timeout.unref()` when running inside an Electron renderer */ + if (this._removalTimeout.unref) { + this._removalTimeout.unref(); + } + } + } + + install(agent) { + verifyAgent(agent); + + if (kCacheableLookupCreateConnection in agent) { + throw new Error('CacheableLookup has been already installed'); + } + + agent[kCacheableLookupCreateConnection] = agent.createConnection; + agent[kCacheableLookupInstance] = this; + + agent.createConnection = (options, callback) => { + if (!('lookup' in options)) { + options.lookup = this.lookup; + } + + return agent[kCacheableLookupCreateConnection](options, callback); + }; + } + + uninstall(agent) { + verifyAgent(agent); + + if (agent[kCacheableLookupCreateConnection]) { + if (agent[kCacheableLookupInstance] !== this) { + throw new Error('The agent is not owned by this CacheableLookup instance'); + } + + agent.createConnection = agent[kCacheableLookupCreateConnection]; + + delete agent[kCacheableLookupCreateConnection]; + delete agent[kCacheableLookupInstance]; + } + } + + updateInterfaceInfo() { + const {_iface} = this; + + this._iface = getIfaceInfo(); + + if ((_iface.has4 && !this._iface.has4) || (_iface.has6 && !this._iface.has6)) { + this._cache.clear(); + } + } + + clear(hostname) { + if (hostname) { + this._cache.delete(hostname); + return; + } + + this._cache.clear(); + } +} + +module.exports = CacheableLookup; +module.exports.default = CacheableLookup; diff --git a/node_modules/cacheable-request/LICENSE b/node_modules/cacheable-request/LICENSE new file mode 100644 index 0000000..f27ee9b --- /dev/null +++ b/node_modules/cacheable-request/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Luke Childs + +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/cacheable-request/README.md b/node_modules/cacheable-request/README.md new file mode 100644 index 0000000..725e7e0 --- /dev/null +++ b/node_modules/cacheable-request/README.md @@ -0,0 +1,206 @@ +# cacheable-request + +> Wrap native HTTP requests with RFC compliant cache support + +[![Build Status](https://travis-ci.org/lukechilds/cacheable-request.svg?branch=master)](https://travis-ci.org/lukechilds/cacheable-request) +[![Coverage Status](https://coveralls.io/repos/github/lukechilds/cacheable-request/badge.svg?branch=master)](https://coveralls.io/github/lukechilds/cacheable-request?branch=master) +[![npm](https://img.shields.io/npm/dm/cacheable-request.svg)](https://www.npmjs.com/package/cacheable-request) +[![npm](https://img.shields.io/npm/v/cacheable-request.svg)](https://www.npmjs.com/package/cacheable-request) + +[RFC 7234](http://httpwg.org/specs/rfc7234.html) compliant HTTP caching for native Node.js HTTP/HTTPS requests. Caching works out of the box in memory or is easily pluggable with a wide range of storage adapters. + +**Note:** This is a low level wrapper around the core HTTP modules, it's not a high level request library. + +## Features + +- Only stores cacheable responses as defined by RFC 7234 +- Fresh cache entries are served directly from cache +- Stale cache entries are revalidated with `If-None-Match`/`If-Modified-Since` headers +- 304 responses from revalidation requests use cached body +- Updates `Age` header on cached responses +- Can completely bypass cache on a per request basis +- In memory cache by default +- Official support for Redis, MongoDB, SQLite, PostgreSQL and MySQL storage adapters +- Easily plug in your own or third-party storage adapters +- If DB connection fails, cache is automatically bypassed ([disabled by default](#optsautomaticfailover)) +- Adds cache support to any existing HTTP code with minimal changes +- Uses [http-cache-semantics](https://github.com/pornel/http-cache-semantics) internally for HTTP RFC 7234 compliance + +## Install + +```shell +npm install cacheable-request +``` + +## Usage + +```js +const http = require('http'); +const CacheableRequest = require('cacheable-request'); + +// Then instead of +const req = http.request('http://example.com', cb); +req.end(); + +// You can do +const cacheableRequest = new CacheableRequest(http.request); +const cacheReq = cacheableRequest('http://example.com', cb); +cacheReq.on('request', req => req.end()); +// Future requests to 'example.com' will be returned from cache if still valid + +// You pass in any other http.request API compatible method to be wrapped with cache support: +const cacheableRequest = new CacheableRequest(https.request); +const cacheableRequest = new CacheableRequest(electron.net); +``` + +## Storage Adapters + +`cacheable-request` uses [Keyv](https://github.com/lukechilds/keyv) to support a wide range of storage adapters. + +For example, to use Redis as a cache backend, you just need to install the official Redis Keyv storage adapter: + +``` +npm install @keyv/redis +``` + +And then you can pass `CacheableRequest` your connection string: + +```js +const cacheableRequest = new CacheableRequest(http.request, 'redis://user:pass@localhost:6379'); +``` + +[View all official Keyv storage adapters.](https://github.com/lukechilds/keyv#official-storage-adapters) + +Keyv also supports anything that follows the Map API so it's easy to write your own storage adapter or use a third-party solution. + +e.g The following are all valid storage adapters + +```js +const storageAdapter = new Map(); +// or +const storageAdapter = require('./my-storage-adapter'); +// or +const QuickLRU = require('quick-lru'); +const storageAdapter = new QuickLRU({ maxSize: 1000 }); + +const cacheableRequest = new CacheableRequest(http.request, storageAdapter); +``` + +View the [Keyv docs](https://github.com/lukechilds/keyv) for more information on how to use storage adapters. + +## API + +### new cacheableRequest(request, [storageAdapter]) + +Returns the provided request function wrapped with cache support. + +#### request + +Type: `function` + +Request function to wrap with cache support. Should be [`http.request`](https://nodejs.org/api/http.html#http_http_request_options_callback) or a similar API compatible request function. + +#### storageAdapter + +Type: `Keyv storage adapter`
+Default: `new Map()` + +A [Keyv](https://github.com/lukechilds/keyv) storage adapter instance, or connection string if using with an official Keyv storage adapter. + +### Instance + +#### cacheableRequest(opts, [cb]) + +Returns an event emitter. + +##### opts + +Type: `object`, `string` + +- Any of the default request functions options. +- Any [`http-cache-semantics`](https://github.com/kornelski/http-cache-semantics#constructor-options) options. +- Any of the following: + +###### opts.cache + +Type: `boolean`
+Default: `true` + +If the cache should be used. Setting this to false will completely bypass the cache for the current request. + +###### opts.strictTtl + +Type: `boolean`
+Default: `false` + +If set to `true` once a cached resource has expired it is deleted and will have to be re-requested. + +If set to `false` (default), after a cached resource's TTL expires it is kept in the cache and will be revalidated on the next request with `If-None-Match`/`If-Modified-Since` headers. + +###### opts.maxTtl + +Type: `number`
+Default: `undefined` + +Limits TTL. The `number` represents milliseconds. + +###### opts.automaticFailover + +Type: `boolean`
+Default: `false` + +When set to `true`, if the DB connection fails we will automatically fallback to a network request. DB errors will still be emitted to notify you of the problem even though the request callback may succeed. + +###### opts.forceRefresh + +Type: `boolean`
+Default: `false` + +Forces refreshing the cache. If the response could be retrieved from the cache, it will perform a new request and override the cache instead. + +##### cb + +Type: `function` + +The callback function which will receive the response as an argument. + +The response can be either a [Node.js HTTP response stream](https://nodejs.org/api/http.html#http_class_http_incomingmessage) or a [responselike object](https://github.com/lukechilds/responselike). The response will also have a `fromCache` property set with a boolean value. + +##### .on('request', request) + +`request` event to get the request object of the request. + +**Note:** This event will only fire if an HTTP request is actually made, not when a response is retrieved from cache. However, you should always handle the `request` event to end the request and handle any potential request errors. + +##### .on('response', response) + +`response` event to get the response object from the HTTP request or cache. + +##### .on('error', error) + +`error` event emitted in case of an error with the cache. + +Errors emitted here will be an instance of `CacheableRequest.RequestError` or `CacheableRequest.CacheError`. You will only ever receive a `RequestError` if the request function throws (normally caused by invalid user input). Normal request errors should be handled inside the `request` event. + +To properly handle all error scenarios you should use the following pattern: + +```js +cacheableRequest('example.com', cb) + .on('error', err => { + if (err instanceof CacheableRequest.CacheError) { + handleCacheError(err); // Cache error + } else if (err instanceof CacheableRequest.RequestError) { + handleRequestError(err); // Request function thrown + } + }) + .on('request', req => { + req.on('error', handleRequestError); // Request error emitted + req.end(); + }); +``` + +**Note:** Database connection errors are emitted here, however `cacheable-request` will attempt to re-request the resource and bypass the cache on a connection error. Therefore a database connection error doesn't necessarily mean the request won't be fulfilled. + +## License + +MIT © Luke Childs diff --git a/node_modules/cacheable-request/package.json b/node_modules/cacheable-request/package.json new file mode 100644 index 0000000..b3e0242 --- /dev/null +++ b/node_modules/cacheable-request/package.json @@ -0,0 +1,56 @@ +{ + "name": "cacheable-request", + "version": "7.0.2", + "description": "Wrap native HTTP requests with RFC compliant cache support", + "license": "MIT", + "repository": "lukechilds/cacheable-request", + "author": "Luke Childs (http://lukechilds.co.uk)", + "main": "src/index.js", + "engines": { + "node": ">=8" + }, + "scripts": { + "test": "xo && nyc ava", + "coverage": "nyc report --reporter=text-lcov | coveralls" + }, + "files": [ + "src" + ], + "keywords": [ + "HTTP", + "HTTPS", + "cache", + "caching", + "layer", + "cacheable", + "RFC 7234", + "RFC", + "7234", + "compliant" + ], + "dependencies": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^4.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^6.0.1", + "responselike": "^2.0.0" + }, + "devDependencies": { + "@keyv/sqlite": "^2.0.0", + "ava": "^1.1.0", + "coveralls": "^3.0.0", + "create-test-server": "3.0.0", + "delay": "^4.0.0", + "eslint-config-xo-lukechilds": "^1.0.0", + "nyc": "^14.1.1", + "pify": "^4.0.0", + "sqlite3": "^4.0.2", + "this": "^1.0.2", + "xo": "^0.23.0" + }, + "xo": { + "extends": "xo-lukechilds" + } +} diff --git a/node_modules/cacheable-request/src/index.js b/node_modules/cacheable-request/src/index.js new file mode 100644 index 0000000..3fcea3f --- /dev/null +++ b/node_modules/cacheable-request/src/index.js @@ -0,0 +1,251 @@ +'use strict'; + +const EventEmitter = require('events'); +const urlLib = require('url'); +const normalizeUrl = require('normalize-url'); +const getStream = require('get-stream'); +const CachePolicy = require('http-cache-semantics'); +const Response = require('responselike'); +const lowercaseKeys = require('lowercase-keys'); +const cloneResponse = require('clone-response'); +const Keyv = require('keyv'); + +class CacheableRequest { + constructor(request, cacheAdapter) { + if (typeof request !== 'function') { + throw new TypeError('Parameter `request` must be a function'); + } + + this.cache = new Keyv({ + uri: typeof cacheAdapter === 'string' && cacheAdapter, + store: typeof cacheAdapter !== 'string' && cacheAdapter, + namespace: 'cacheable-request' + }); + + return this.createCacheableRequest(request); + } + + createCacheableRequest(request) { + return (opts, cb) => { + let url; + if (typeof opts === 'string') { + url = normalizeUrlObject(urlLib.parse(opts)); + opts = {}; + } else if (opts instanceof urlLib.URL) { + url = normalizeUrlObject(urlLib.parse(opts.toString())); + opts = {}; + } else { + const [pathname, ...searchParts] = (opts.path || '').split('?'); + const search = searchParts.length > 0 ? + `?${searchParts.join('?')}` : + ''; + url = normalizeUrlObject({ ...opts, pathname, search }); + } + + opts = { + headers: {}, + method: 'GET', + cache: true, + strictTtl: false, + automaticFailover: false, + ...opts, + ...urlObjectToRequestOptions(url) + }; + opts.headers = lowercaseKeys(opts.headers); + + const ee = new EventEmitter(); + const normalizedUrlString = normalizeUrl( + urlLib.format(url), + { + stripWWW: false, + removeTrailingSlash: false, + stripAuthentication: false + } + ); + const key = `${opts.method}:${normalizedUrlString}`; + let revalidate = false; + let madeRequest = false; + + const makeRequest = opts => { + madeRequest = true; + let requestErrored = false; + let requestErrorCallback; + + const requestErrorPromise = new Promise(resolve => { + requestErrorCallback = () => { + if (!requestErrored) { + requestErrored = true; + resolve(); + } + }; + }); + + const handler = response => { + if (revalidate && !opts.forceRefresh) { + response.status = response.statusCode; + const revalidatedPolicy = CachePolicy.fromObject(revalidate.cachePolicy).revalidatedPolicy(opts, response); + if (!revalidatedPolicy.modified) { + const headers = revalidatedPolicy.policy.responseHeaders(); + response = new Response(revalidate.statusCode, headers, revalidate.body, revalidate.url); + response.cachePolicy = revalidatedPolicy.policy; + response.fromCache = true; + } + } + + if (!response.fromCache) { + response.cachePolicy = new CachePolicy(opts, response, opts); + response.fromCache = false; + } + + let clonedResponse; + if (opts.cache && response.cachePolicy.storable()) { + clonedResponse = cloneResponse(response); + + (async () => { + try { + const bodyPromise = getStream.buffer(response); + + await Promise.race([ + requestErrorPromise, + new Promise(resolve => response.once('end', resolve)) + ]); + + if (requestErrored) { + return; + } + + const body = await bodyPromise; + + const value = { + cachePolicy: response.cachePolicy.toObject(), + url: response.url, + statusCode: response.fromCache ? revalidate.statusCode : response.statusCode, + body + }; + + let ttl = opts.strictTtl ? response.cachePolicy.timeToLive() : undefined; + if (opts.maxTtl) { + ttl = ttl ? Math.min(ttl, opts.maxTtl) : opts.maxTtl; + } + + await this.cache.set(key, value, ttl); + } catch (error) { + ee.emit('error', new CacheableRequest.CacheError(error)); + } + })(); + } else if (opts.cache && revalidate) { + (async () => { + try { + await this.cache.delete(key); + } catch (error) { + ee.emit('error', new CacheableRequest.CacheError(error)); + } + })(); + } + + ee.emit('response', clonedResponse || response); + if (typeof cb === 'function') { + cb(clonedResponse || response); + } + }; + + try { + const req = request(opts, handler); + req.once('error', requestErrorCallback); + req.once('abort', requestErrorCallback); + ee.emit('request', req); + } catch (error) { + ee.emit('error', new CacheableRequest.RequestError(error)); + } + }; + + (async () => { + const get = async opts => { + await Promise.resolve(); + + const cacheEntry = opts.cache ? await this.cache.get(key) : undefined; + if (typeof cacheEntry === 'undefined') { + return makeRequest(opts); + } + + const policy = CachePolicy.fromObject(cacheEntry.cachePolicy); + if (policy.satisfiesWithoutRevalidation(opts) && !opts.forceRefresh) { + const headers = policy.responseHeaders(); + const response = new Response(cacheEntry.statusCode, headers, cacheEntry.body, cacheEntry.url); + response.cachePolicy = policy; + response.fromCache = true; + + ee.emit('response', response); + if (typeof cb === 'function') { + cb(response); + } + } else { + revalidate = cacheEntry; + opts.headers = policy.revalidationHeaders(opts); + makeRequest(opts); + } + }; + + const errorHandler = error => ee.emit('error', new CacheableRequest.CacheError(error)); + this.cache.once('error', errorHandler); + ee.on('response', () => this.cache.removeListener('error', errorHandler)); + + try { + await get(opts); + } catch (error) { + if (opts.automaticFailover && !madeRequest) { + makeRequest(opts); + } + + ee.emit('error', new CacheableRequest.CacheError(error)); + } + })(); + + return ee; + }; + } +} + +function urlObjectToRequestOptions(url) { + const options = { ...url }; + options.path = `${url.pathname || '/'}${url.search || ''}`; + delete options.pathname; + delete options.search; + return options; +} + +function normalizeUrlObject(url) { + // If url was parsed by url.parse or new URL: + // - hostname will be set + // - host will be hostname[:port] + // - port will be set if it was explicit in the parsed string + // Otherwise, url was from request options: + // - hostname or host may be set + // - host shall not have port encoded + return { + protocol: url.protocol, + auth: url.auth, + hostname: url.hostname || url.host || 'localhost', + port: url.port, + pathname: url.pathname, + search: url.search + }; +} + +CacheableRequest.RequestError = class extends Error { + constructor(error) { + super(error.message); + this.name = 'RequestError'; + Object.assign(this, error); + } +}; + +CacheableRequest.CacheError = class extends Error { + constructor(error) { + super(error.message); + this.name = 'CacheError'; + Object.assign(this, error); + } +}; + +module.exports = CacheableRequest; diff --git a/node_modules/chownr/LICENSE b/node_modules/chownr/LICENSE new file mode 100644 index 0000000..19129e3 --- /dev/null +++ b/node_modules/chownr/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and 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/chownr/README.md b/node_modules/chownr/README.md new file mode 100644 index 0000000..70e9a54 --- /dev/null +++ b/node_modules/chownr/README.md @@ -0,0 +1,3 @@ +Like `chown -R`. + +Takes the same arguments as `fs.chown()` diff --git a/node_modules/chownr/chownr.js b/node_modules/chownr/chownr.js new file mode 100644 index 0000000..0d40932 --- /dev/null +++ b/node_modules/chownr/chownr.js @@ -0,0 +1,167 @@ +'use strict' +const fs = require('fs') +const path = require('path') + +/* istanbul ignore next */ +const LCHOWN = fs.lchown ? 'lchown' : 'chown' +/* istanbul ignore next */ +const LCHOWNSYNC = fs.lchownSync ? 'lchownSync' : 'chownSync' + +/* istanbul ignore next */ +const needEISDIRHandled = fs.lchown && + !process.version.match(/v1[1-9]+\./) && + !process.version.match(/v10\.[6-9]/) + +const lchownSync = (path, uid, gid) => { + try { + return fs[LCHOWNSYNC](path, uid, gid) + } catch (er) { + if (er.code !== 'ENOENT') + throw er + } +} + +/* istanbul ignore next */ +const chownSync = (path, uid, gid) => { + try { + return fs.chownSync(path, uid, gid) + } catch (er) { + if (er.code !== 'ENOENT') + throw er + } +} + +/* istanbul ignore next */ +const handleEISDIR = + needEISDIRHandled ? (path, uid, gid, cb) => er => { + // Node prior to v10 had a very questionable implementation of + // fs.lchown, which would always try to call fs.open on a directory + // Fall back to fs.chown in those cases. + if (!er || er.code !== 'EISDIR') + cb(er) + else + fs.chown(path, uid, gid, cb) + } + : (_, __, ___, cb) => cb + +/* istanbul ignore next */ +const handleEISDirSync = + needEISDIRHandled ? (path, uid, gid) => { + try { + return lchownSync(path, uid, gid) + } catch (er) { + if (er.code !== 'EISDIR') + throw er + chownSync(path, uid, gid) + } + } + : (path, uid, gid) => lchownSync(path, uid, gid) + +// fs.readdir could only accept an options object as of node v6 +const nodeVersion = process.version +let readdir = (path, options, cb) => fs.readdir(path, options, cb) +let readdirSync = (path, options) => fs.readdirSync(path, options) +/* istanbul ignore next */ +if (/^v4\./.test(nodeVersion)) + readdir = (path, options, cb) => fs.readdir(path, cb) + +const chown = (cpath, uid, gid, cb) => { + fs[LCHOWN](cpath, uid, gid, handleEISDIR(cpath, uid, gid, er => { + // Skip ENOENT error + cb(er && er.code !== 'ENOENT' ? er : null) + })) +} + +const chownrKid = (p, child, uid, gid, cb) => { + if (typeof child === 'string') + return fs.lstat(path.resolve(p, child), (er, stats) => { + // Skip ENOENT error + if (er) + return cb(er.code !== 'ENOENT' ? er : null) + stats.name = child + chownrKid(p, stats, uid, gid, cb) + }) + + if (child.isDirectory()) { + chownr(path.resolve(p, child.name), uid, gid, er => { + if (er) + return cb(er) + const cpath = path.resolve(p, child.name) + chown(cpath, uid, gid, cb) + }) + } else { + const cpath = path.resolve(p, child.name) + chown(cpath, uid, gid, cb) + } +} + + +const chownr = (p, uid, gid, cb) => { + readdir(p, { withFileTypes: true }, (er, children) => { + // any error other than ENOTDIR or ENOTSUP means it's not readable, + // or doesn't exist. give up. + if (er) { + if (er.code === 'ENOENT') + return cb() + else if (er.code !== 'ENOTDIR' && er.code !== 'ENOTSUP') + return cb(er) + } + if (er || !children.length) + return chown(p, uid, gid, cb) + + let len = children.length + let errState = null + const then = er => { + if (errState) + return + if (er) + return cb(errState = er) + if (-- len === 0) + return chown(p, uid, gid, cb) + } + + children.forEach(child => chownrKid(p, child, uid, gid, then)) + }) +} + +const chownrKidSync = (p, child, uid, gid) => { + if (typeof child === 'string') { + try { + const stats = fs.lstatSync(path.resolve(p, child)) + stats.name = child + child = stats + } catch (er) { + if (er.code === 'ENOENT') + return + else + throw er + } + } + + if (child.isDirectory()) + chownrSync(path.resolve(p, child.name), uid, gid) + + handleEISDirSync(path.resolve(p, child.name), uid, gid) +} + +const chownrSync = (p, uid, gid) => { + let children + try { + children = readdirSync(p, { withFileTypes: true }) + } catch (er) { + if (er.code === 'ENOENT') + return + else if (er.code === 'ENOTDIR' || er.code === 'ENOTSUP') + return handleEISDirSync(p, uid, gid) + else + throw er + } + + if (children && children.length) + children.forEach(child => chownrKidSync(p, child, uid, gid)) + + return handleEISDirSync(p, uid, gid) +} + +module.exports = chownr +chownr.sync = chownrSync diff --git a/node_modules/chownr/package.json b/node_modules/chownr/package.json new file mode 100644 index 0000000..5b0214c --- /dev/null +++ b/node_modules/chownr/package.json @@ -0,0 +1,32 @@ +{ + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "name": "chownr", + "description": "like `chown -R`", + "version": "2.0.0", + "repository": { + "type": "git", + "url": "git://github.com/isaacs/chownr.git" + }, + "main": "chownr.js", + "files": [ + "chownr.js" + ], + "devDependencies": { + "mkdirp": "0.3", + "rimraf": "^2.7.1", + "tap": "^14.10.6" + }, + "tap": { + "check-coverage": true + }, + "scripts": { + "test": "tap", + "preversion": "npm test", + "postversion": "npm publish", + "prepublishOnly": "git push origin --follow-tags" + }, + "license": "ISC", + "engines": { + "node": ">=10" + } +} diff --git a/node_modules/chromedriver/LICENSE.txt b/node_modules/chromedriver/LICENSE.txt new file mode 100644 index 0000000..b395eee --- /dev/null +++ b/node_modules/chromedriver/LICENSE.txt @@ -0,0 +1,201 @@ + 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 2014 Giovanni Bassi and Elemar Jr. + + 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/chromedriver/README.md b/node_modules/chromedriver/README.md new file mode 100644 index 0000000..332f4a4 --- /dev/null +++ b/node_modules/chromedriver/README.md @@ -0,0 +1,327 @@ +# ChromeDriver + +[![Build app](https://github.com/giggio/node-chromedriver/actions/workflows/build.yml/badge.svg)](https://github.com/giggio/node-chromedriver/actions/workflows/build.yml) +[![npm](https://img.shields.io/npm/dt/chromedriver.svg)](https://www.npmjs.com/package/chromedriver) + +An NPM wrapper for Selenium [ChromeDriver](https://sites.google.com/chromium.org/driver/). + +## Building and Installing + +```shell +npm install chromedriver +``` + +Or grab the source and + +```shell +node ./install.js +``` + +What this is really doing is just grabbing a particular "blessed" (by +this module) version of ChromeDriver. As new versions are released +and vetted, this module will be updated accordingly. + +The package has been set up to fetch and run ChromeDriver for MacOS (darwin), +Linux based platforms (as identified by Node.js), and Windows. If you +spot any platform weirdness, let us know or send a patch. + +## Force download + +By default this package, when installed, will search for an existing +Chromedriver binary in your configured temp directory. If found, and it is the +correct version, it will simply copy it to your node_modules directory. You can +force it always download by configuring it: + +```shell +npm install chromedriver --chromedriver-force-download +``` + +Or add property into your [`.npmrc`](https://docs.npmjs.com/files/npmrc) file. + +``` +chromedriver_force_download=true +``` + +Another option is to use PATH variable `CHROMEDRIVER_FORCE_DOWNLOAD`. + +```shell +CHROMEDRIVER_FORCE_DOWNLOAD=true npm install chromedriver +``` + +## Custom binaries url + +To use a mirror of the ChromeDriver binaries use npm config property `chromedriver_cdnurl`. +Default is `https://chromedriver.storage.googleapis.com`. + +```shell +npm install chromedriver --chromedriver_cdnurl=https://npmmirror.com/mirrors/chromedriver +``` + +Or add property into your [`.npmrc`](https://docs.npmjs.com/files/npmrc) file. + +``` +chromedriver_cdnurl=https://npmmirror.com/mirrors/chromedriver +``` + +Another option is to use PATH variable `CHROMEDRIVER_CDNURL`. + +```shell +CHROMEDRIVER_CDNURL=https://npmmirror.com/mirrors/chromedriver npm install chromedriver +``` + +## Custom binaries file + +To get the chromedriver from the filesystem instead of a web request use the npm config property `chromedriver_filepath`. + +```shell +npm install chromedriver --chromedriver_filepath=/path/to/chromedriver_mac64.zip +``` + +Or add property into your [`.npmrc`](https://docs.npmjs.com/files/npmrc) file. + +``` +chromedriver_filepath=/path/to/chromedriver_mac64.zip +``` + +Another option is to use the PATH variable `CHROMEDRIVER_FILEPATH` + +```shell +CHROMEDRIVER_FILEPATH=/path/to/chromedriver_mac64.zip +``` + +This variable can be used to set either a `.zip` file or the binary itself, eg: + +```shell +CHROMEDRIVER_FILEPATH=/bin/chromedriver +``` + +## Custom download options + +Install through a proxy. + +```shell +npm config set proxy http://[user:pwd]@domain.tld:port +npm config set https-proxy http://[user:pwd]@domain.tld:port +``` + +Use different User-Agent. + +```shell +npm config set user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0" +``` + +## Skipping chromedriver download + +You may wish to skip the downloading of the chromedriver binary file, for example if you know for certain that it is already there or if you want to use a system binary and just use this module as an interface to interact with it. + +To achieve this you can use the npm config property `chromedriver_skip_download`. + +```shell +npm install chromedriver --chromedriver_skip_download=true +``` + +Or add property into your [`.npmrc`](https://docs.npmjs.com/files/npmrc) file. + +``` +chromedriver_skip_download=true +``` + +Another option is to use the PATH variable `CHROMEDRIVER_SKIP_DOWNLOAD` + +```shell +CHROMEDRIVER_SKIP_DOWNLOAD=true +``` + +## Running + +```shell +bin/chromedriver [arguments] +``` + +And npm will install a link to the binary in `node_modules/.bin` as +it is wont to do. + +## Running with Selenium WebDriver + +```javascript +require('chromedriver'); +var webdriver = require('selenium-webdriver'); +var driver = new webdriver.Builder() + .forBrowser('chrome') + .build(); +``` + +(Tested for selenium-webdriver version `2.48.2`) + +The path will be added to the process automatically, you don't need to configure it. +But you can get it from `require('chromedriver').path` if you want it. + +## Running via node + +The package exports a `path` string that contains the path to the +chromedriver binary/executable. + +Below is an example of using this package via node. + +```javascript +var childProcess = require('child_process'); +var chromedriver = require('chromedriver'); +var binPath = chromedriver.path; + +var childArgs = [ + 'some argument' +]; + +childProcess.execFile(binPath, childArgs, function(err, stdout, stderr) { + // handle results +}); + +``` + +You can also use the start and stop methods: + +```javascript +var chromedriver = require('chromedriver'); + +args = [ + // optional arguments +]; +chromedriver.start(args); +// run your tests +chromedriver.stop(); + +``` + +With the latest version, you can optionally receive a Promise from the `chromedriver.start` function: + +```javascript +var returnPromise = true; +chromedriver + .start(args, returnPromise) + .then(() => { + console.log('chromedriver is ready'); + }); +``` + +Note: if your tests are ran asynchronously, chromedriver.stop() will have to be +executed as a callback at the end of your tests + +## Versioning + +The NPM package version tracks the version of chromedriver that will be installed, +with an additional build number that is used for revisions to the installer. +You can use the package version number to install a specific version, or use the +setting to a specific version. If there is a new Chromedriver version available which is not yet available as a version of `node-chromedriver`, the npm command `npm run update-chromedriver` in this repository can be used to make the required updates to this module, please submit the change as a PR. To always install the latest version of Chromedriver, +use `LATEST` as the version number: + +```shell +npm install chromedriver --chromedriver_version=LATEST +``` + +Or add property into your [`.npmrc`](https://docs.npmjs.com/files/npmrc) file. + +``` +chromedriver_version=LATEST +``` + +Another option is to use env variable `CHROMEDRIVER_VERSION`. + +```shell +CHROMEDRIVER_VERSION=LATEST npm install chromedriver +``` + +You can force the latest release for a specific major version by specifying `LATEST_{VERSION_NUMBER}`: + +```shell +CHROMEDRIVER_VERSION=LATEST_80 npm install chromedriver +``` + +You can also force a different version of chromedriver by replacing `LATEST` with a version number: + +```shell +CHROMEDRIVER_VERSION=75.0.3770.140 npm install chromedriver +``` + +## Detect ChromeDriver Version + +The NPM package version may not be always compatible to your Chrome version. +To get the chromedriver that corresponds to the version of Chrome installed, +you can use the npm config property `detect_chromedriver_version`. + +```shell +npm install chromedriver --detect_chromedriver_version +``` + +Or add property into your [`.npmrc`](https://docs.npmjs.com/files/npmrc) file. + +``` +detect_chromedriver_version=true +``` + +Another option is to use environment variable `DETECT_CHROMEDRIVER_VERSION`. + +```shell +DETECT_CHROMEDRIVER_VERSION=true npm install chromedriver +``` + +**Note:** When the property `detect_chromedriver_version` is provided, +`chromedriver_version` and `chromedriver_filepath` properties are ignored. + +## Include Chromium + +If you don't have Chrome installed, you can check for Chromium version instead by setting the argument `include_chromium` to `true`. + +```shell +npm install chromedriver --include_chromium +``` + +Or add property into your [`.npmrc`](https://docs.npmjs.com/files/npmrc) file. + +``` +include_chromium=true +``` + +Another option is to use environment variable `INCLUDE_CHROMIUM`. + +```shell +INCLUDE_CHROMIUM=true npm install chromedriver +``` + +**Note:** The property `INCLUDE_CHROMIUM` is ignored if the property `DETECT_CHROMEDRIVER_VERSION` is not used. + +## A Note on chromedriver + +Chromedriver is not a library for NodeJS. + +This is an _NPM wrapper_ and can be used to conveniently make ChromeDriver available. +It is not a Node.js wrapper. + +## Supported Node.js versions + +We will do our best to support every supported Node.js versions. +See [nodejs/Release](https://github.com/nodejs/Release) for +the current supported versions. You can also view our +[build scripts](https://github.com/giggio/node-chromedriver/blob/main/.github/workflows/build.yml#L41) and check the versions there. + +## Contributing + +Questions, comments, bug reports, and pull requests are all welcome. Submit them at +[the project on GitHub](https://github.com/giggio/node-chromedriver/). + +Bug reports that include steps-to-reproduce (including code) are the +best. Even better, make them in the form of pull requests. + +We have added +[VS Code Remote support with containers](https://code.visualstudio.com/docs/remote/containers). +If you are on Windows, set `git config core.autocrlf input` so you don't get git errors. + +## Author + +[Giovanni Bassi](https://github.com/giggio), with collaboration from +[lots of good people](https://github.com/giggio/node-chromedriver/graphs/contributors). + +Thanks for Obvious and their PhantomJS project for heavy inspiration! Check their project on [Github](https://github.com/Obvious/phantomjs/). + +## License + +Licensed under the Apache License, Version 2.0. diff --git a/node_modules/chromedriver/bin/chromedriver b/node_modules/chromedriver/bin/chromedriver new file mode 100644 index 0000000..39e31fe --- /dev/null +++ b/node_modules/chromedriver/bin/chromedriver @@ -0,0 +1,13 @@ +#!/usr/bin/env node +const path = require("path"); +const spawn = require("child_process").spawn; +const binPath = require(path.join(__dirname, "..", "lib", "chromedriver")).path; +const args = process.argv.slice(2); +const cp = spawn(binPath, args); +cp.stdout.pipe(process.stdout); +cp.stderr.pipe(process.stderr); +cp.on("exit", process.exit); +process.on("SIGTERM", function() { + cp.kill("SIGTERM"); + process.exit(1); +}); \ No newline at end of file diff --git a/node_modules/chromedriver/install.js b/node_modules/chromedriver/install.js new file mode 100644 index 0000000..9e28421 --- /dev/null +++ b/node_modules/chromedriver/install.js @@ -0,0 +1,397 @@ +'use strict'; +// @ts-check + +const fs = require('fs'); +const helper = require('./lib/chromedriver'); +const axios = require('axios'); +const path = require('path'); +const child_process = require('child_process'); +const os = require('os'); +const url = require('url'); +const https = require('https'); +const { promisify } = require('util'); +const { finished } = require('stream'); +const extractZip = require('extract-zip'); +const { getChromeVersion } = require('@testim/chrome-version'); +const HttpsProxyAgent = require('https-proxy-agent'); +const getProxyForUrl = require("proxy-from-env").getProxyForUrl; +const { compareVersions } = require('compare-versions'); + +const finishedAsync = promisify(finished); + +const skipDownload = process.env.npm_config_chromedriver_skip_download || process.env.CHROMEDRIVER_SKIP_DOWNLOAD; +if (skipDownload === 'true') { + console.log('Found CHROMEDRIVER_SKIP_DOWNLOAD variable, skipping installation.'); + process.exit(0); +} + +const libPath = path.join(__dirname, 'lib', 'chromedriver'); +let cdnUrl = process.env.npm_config_chromedriver_cdnurl || process.env.CHROMEDRIVER_CDNURL || 'https://chromedriver.storage.googleapis.com'; +const configuredfilePath = process.env.npm_config_chromedriver_filepath || process.env.CHROMEDRIVER_FILEPATH; + +// adapt http://chromedriver.storage.googleapis.com/ +cdnUrl = cdnUrl.replace(/\/+$/, ''); +const detect_chromedriver_version = process.env.npm_config_detect_chromedriver_version || process.env.DETECT_CHROMEDRIVER_VERSION; +const include_chromium = (process.env.npm_config_include_chromium || process.env.INCLUDE_CHROMIUM) === 'true'; +let chromedriver_version = process.env.npm_config_chromedriver_version || process.env.CHROMEDRIVER_VERSION || helper.version; +let chromedriverBinaryFilePath; +let downloadedFile = ''; +let platform = ''; + +(async function install() { + try { + if (detect_chromedriver_version === 'true') { + // Refer http://chromedriver.chromium.org/downloads/version-selection + const chromeVersion = await getChromeVersion(include_chromium); + console.log("Your Chrome version is " + chromeVersion); + const versionMatch = /^(.*?)\.\d+$/.exec(chromeVersion); + if (versionMatch) { + const chromeVersionWithoutPatch = versionMatch[1]; + await getChromeDriverVersion(getRequestOptions(cdnUrl + '/LATEST_RELEASE_' + chromeVersionWithoutPatch)); + console.log("Compatible ChromeDriver version is " + chromedriver_version); + } + } + if (chromedriver_version === 'LATEST') { + await getChromeDriverVersion(getRequestOptions(`${cdnUrl}/LATEST_RELEASE`)); + } else { + const latestReleaseForVersionMatch = chromedriver_version.match(/LATEST_(\d+)/); + if (latestReleaseForVersionMatch) { + const majorVersion = latestReleaseForVersionMatch[1]; + await getChromeDriverVersion(getRequestOptions(`${cdnUrl}/LATEST_RELEASE_${majorVersion}`)); + } + } + platform = validatePlatform(); + const tmpPath = findSuitableTempDirectory(); + const chromedriverBinaryFileName = process.platform === 'win32' ? 'chromedriver.exe' : 'chromedriver'; + chromedriverBinaryFilePath = path.resolve(tmpPath, chromedriverBinaryFileName); + const chromedriverIsAvailable = await verifyIfChromedriverIsAvailableAndHasCorrectVersion(); + if (!chromedriverIsAvailable) { + console.log('Current existing ChromeDriver binary is unavailable, proceeding with download and extraction.'); + await downloadFile(tmpPath); + await extractDownload(tmpPath); + } + await copyIntoPlace(tmpPath, libPath); + fixFilePermissions(); + console.log('Done. ChromeDriver binary available at', helper.path); + } catch (err) { + console.error('ChromeDriver installation failed', err); + process.exit(1); + } +})(); + +function validatePlatform() { + /** @type string */ + let thePlatform = process.platform; + if (thePlatform === 'linux') { + if (process.arch === 'arm64' || process.arch === 'x64') { + thePlatform += '64'; + } else { + console.log('Only Linux 64 bits supported.'); + process.exit(1); + } + } else if (thePlatform === 'darwin' || thePlatform === 'freebsd') { + const osxPlatform = getMacOsRealArch(); + + if (!osxPlatform) { + console.log('Only Mac 64 bits supported.'); + process.exit(1); + } + + thePlatform = osxPlatform; + } else if (thePlatform !== 'win32') { + console.log('Unexpected platform or architecture:', process.platform, process.arch); + process.exit(1); + } + + return thePlatform; +} + +async function downloadFile(dirToLoadTo) { + if (detect_chromedriver_version !== 'true' && configuredfilePath) { + downloadedFile = configuredfilePath; + console.log('Using file: ', downloadedFile); + return; + } else { + const fileName = `chromedriver_${platform}.zip`; + const tempDownloadedFile = path.resolve(dirToLoadTo, fileName); + downloadedFile = tempDownloadedFile; + const formattedDownloadUrl = `${cdnUrl}/${chromedriver_version}/${fileName}`; + console.log('Downloading from file: ', formattedDownloadUrl); + console.log('Saving to file:', downloadedFile); + await requestBinary(getRequestOptions(formattedDownloadUrl), downloadedFile); + } +} + +function verifyIfChromedriverIsAvailableAndHasCorrectVersion() { + if (!fs.existsSync(chromedriverBinaryFilePath)) + return Promise.resolve(false); + const forceDownload = process.env.npm_config_chromedriver_force_download === 'true' || process.env.CHROMEDRIVER_FORCE_DOWNLOAD === 'true'; + if (forceDownload) + return Promise.resolve(false); + console.log('ChromeDriver binary exists. Validating...'); + const deferred = new Deferred(); + try { + fs.accessSync(chromedriverBinaryFilePath, fs.constants.X_OK); + const cp = child_process.spawn(chromedriverBinaryFilePath, ['--version']); + let str = ''; + cp.stdout.on('data', data => str += data); + cp.on('error', () => deferred.resolve(false)); + cp.on('close', code => { + if (code !== 0) + return deferred.resolve(false); + const parts = str.split(' '); + if (parts.length < 3) + return deferred.resolve(false); + if (parts[1].startsWith(chromedriver_version)) { + console.log(`ChromeDriver is already available at '${chromedriverBinaryFilePath}'.`); + return deferred.resolve(true); + } + deferred.resolve(false); + }); + } + catch (error) { + deferred.resolve(false); + } + return deferred.promise; +} + +function findSuitableTempDirectory() { + const now = Date.now(); + const candidateTmpDirs = [ + process.env.npm_config_tmp, + process.env.XDG_CACHE_HOME, + // Platform specific default, including TMPDIR/TMP/TEMP env + os.tmpdir(), + path.join(process.cwd(), 'tmp') + ]; + + for (const tempDir of candidateTmpDirs) { + if (!tempDir) continue; + const namespace = chromedriver_version; + const candidatePath = path.join(tempDir, namespace, 'chromedriver'); + try { + fs.mkdirSync(candidatePath, { recursive: true }); + const testFile = path.join(candidatePath, now + '.tmp'); + fs.writeFileSync(testFile, 'test'); + fs.unlinkSync(testFile); + return candidatePath; + } catch (e) { + console.log(candidatePath, 'is not writable:', e.message); + } + } + console.error('Can not find a writable tmp directory, please report issue on https://github.com/giggio/chromedriver/issues/ with as much information as possible.'); + process.exit(1); +} + +function getRequestOptions(downloadPath) { + /** @type import('axios').AxiosRequestConfig */ + const options = { url: downloadPath, method: "GET" }; + const urlParts = url.parse(downloadPath); + const isHttps = urlParts.protocol === 'https:'; + const proxyUrl = getProxyForUrl(downloadPath); + + if (proxyUrl) { + const proxyUrlParts = url.parse(proxyUrl); + if (proxyUrlParts.hostname && proxyUrlParts.protocol) + options.proxy = { + host: proxyUrlParts.hostname, + port: proxyUrlParts.port ? parseInt(proxyUrlParts.port) : 80, + protocol: proxyUrlParts.protocol + }; + } + + if (isHttps) { + // Use certificate authority settings from npm + let ca = process.env.npm_config_ca; + if (ca) + console.log('Using npmconf ca.'); + + if (!ca && process.env.npm_config_cafile) { + try { + ca = fs.readFileSync(process.env.npm_config_cafile, { encoding: 'utf8' }); + } catch (e) { + console.error('Could not read cafile', process.env.npm_config_cafile, e); + } + console.log('Using npmconf cafile.'); + } + + if (proxyUrl) { + console.log('Using workaround for https-url combined with a proxy.'); + const httpsProxyAgentOptions = url.parse(proxyUrl); + // @ts-ignore + httpsProxyAgentOptions.ca = ca; + // @ts-ignore + httpsProxyAgentOptions.rejectUnauthorized = !!process.env.npm_config_strict_ssl; + // @ts-ignore + options.httpsAgent = new HttpsProxyAgent(httpsProxyAgentOptions); + options.proxy = false; + } else { + options.httpsAgent = new https.Agent({ + rejectUnauthorized: !!process.env.npm_config_strict_ssl, + ca: ca + }); + } + } + + // Use specific User-Agent + if (process.env.npm_config_user_agent) { + options.headers = { 'User-Agent': process.env.npm_config_user_agent }; + } + + return options; +} + +/** + * + * @param {import('axios').AxiosRequestConfig} requestOptions + */ +async function getChromeDriverVersion(requestOptions) { + console.log('Finding Chromedriver version.'); + // @ts-expect-error + const response = await axios.request(requestOptions); + chromedriver_version = response.data.trim(); + console.log(`Chromedriver version is ${chromedriver_version}.`); +} + +/** + * + * @param {import('axios').AxiosRequestConfig} requestOptions + * @param {string} filePath + */ +async function requestBinary(requestOptions, filePath) { + const outFile = fs.createWriteStream(filePath); + let response; + try { + // @ts-expect-error + response = await axios.request({ responseType: 'stream', ...requestOptions }); + } catch (error) { + if (error && error.response) { + if (error.response.status) + console.error('Error status code:', error.response.status); + if (error.response.data) { + error.response.data.on('data', data => console.error(data.toString('utf8'))); + try { + await finishedAsync(error.response.data); + } catch (error) { + console.error('Error downloading entire response:', error); + } + } + } + throw new Error('Error with http(s) request: ' + error); + } + let count = 0; + let notifiedCount = 0; + response.data.on('data', data => { + count += data.length; + if ((count - notifiedCount) > 1024 * 1024) { + console.log('Received ' + Math.floor(count / 1024) + 'K...'); + notifiedCount = count; + } + }); + response.data.on('end', () => console.log('Received ' + Math.floor(count / 1024) + 'K total.')); + const pipe = response.data.pipe(outFile); + await new Promise((resolve, reject) => { + pipe.on('finish', resolve); + pipe.on('error', reject); + }); +} + +async function extractDownload(dirToExtractTo) { + if (path.extname(downloadedFile) !== '.zip') { + fs.copyFileSync(downloadedFile, chromedriverBinaryFilePath); + console.log('Skipping zip extraction - binary file found.'); + return; + } + console.log(`Extracting zip contents to ${dirToExtractTo}.`); + try { + await extractZip(path.resolve(downloadedFile), { dir: dirToExtractTo }); + } catch (error) { + throw new Error('Error extracting archive: ' + error); + } +} + +async function copyIntoPlace(originPath, targetPath) { + fs.rmSync(targetPath, { recursive: true, force: true }); + console.log(`Copying from ${originPath} to target path ${targetPath}`); + fs.mkdirSync(targetPath); + + // Look for the extracted directory, so we can rename it. + const files = fs.readdirSync(originPath, { withFileTypes: true }) + .filter(dirent => dirent.isFile() && dirent.name.startsWith('chromedriver') && !dirent.name.endsWith(".debug") && !dirent.name.endsWith(".zip")) + .map(dirent => dirent.name); + const promises = files.map(name => { + return /** @type {Promise} */(new Promise((resolve) => { + const file = path.join(originPath, name); + const reader = fs.createReadStream(file); + const targetFile = path.join(targetPath, name); + const writer = fs.createWriteStream(targetFile); + writer.on("close", () => resolve()); + reader.pipe(writer); + })); + }); + await Promise.all(promises); +} + + +function fixFilePermissions() { + // Check that the binary is user-executable and fix it if it isn't (problems with unzip library) + if (process.platform != 'win32') { + const stat = fs.statSync(helper.path); + // 64 == 0100 (no octal literal in strict mode) + if (!(stat.mode & 64)) { + console.log('Fixing file permissions.'); + fs.chmodSync(helper.path, '755'); + } + } +} + +function getMacOsRealArch() { + if (process.arch === 'arm64' || isEmulatedRosettaEnvironment()) { + if (compareVersions(chromedriver_version, '106.0.5249.61') < 0) { + return 'mac64_m1'; + } + + return 'mac_arm64'; + } + + if (process.arch === 'x64') { + return 'mac64'; + } + + return null; +} + +function isEmulatedRosettaEnvironment() { + const archName = child_process.spawnSync('uname', ['-m']).stdout.toString().trim(); + + if (archName === 'x86_64') { + const proc = child_process.spawnSync('sysctl', ['-in', 'sysctl.proc_translated']); + + // When run with `-in`, the return code is 0 even if there is no `sysctl.proc_translated` + if (proc.status) { + throw new Error('Unexpected return code from sysctl: ' + proc.status); + } + + // If there is no `sysctl.proc_translated` (i.e. not rosetta) then nothing is printed to + // stdout + if (!proc.stdout) { + return false; + } + + const processTranslated = proc.stdout.toString().trim(); + + return processTranslated === '1'; + } + + return false; +} + +function Deferred() { + this.resolve = null; + this.reject = null; + this.promise = new Promise(function (resolve, reject) { + this.resolve = resolve; + this.reject = reject; + }.bind(this)); + Object.freeze(this); +} diff --git a/node_modules/chromedriver/lib/chromedriver.js b/node_modules/chromedriver/lib/chromedriver.js new file mode 100644 index 0000000..b565de3 --- /dev/null +++ b/node_modules/chromedriver/lib/chromedriver.js @@ -0,0 +1,47 @@ +const fs = require('fs'); +const path = require('path'); +const tcpPortUsed = require('tcp-port-used'); +function getPortFromArgs(args) { + let port = 9515; + if (!args) { + return port; + } + const portRegexp = /--port=(\d*)/; + const portArg = args.find(function (arg) { + return portRegexp.test(arg); + }); + if (portArg) { + port = parseInt(portRegexp.exec(portArg)[1]); + } + return port; +} +process.env.PATH = path.join(__dirname, 'chromedriver') + path.delimiter + process.env.PATH; +exports.path = process.platform === 'win32' ? path.join(__dirname, 'chromedriver', 'chromedriver.exe') : path.join(__dirname, 'chromedriver', 'chromedriver'); +exports.version = '109.0.5414.74'; +exports.start = function (args, returnPromise) { + let command = exports.path; + if (!fs.existsSync(command)) { + console.log('Could not find chromedriver in default path: ', command); + console.log('Falling back to use global chromedriver bin'); + command = process.platform === 'win32' ? 'chromedriver.exe' : 'chromedriver'; + } + const cp = require('child_process').spawn(command, args); + cp.stdout.pipe(process.stdout); + cp.stderr.pipe(process.stderr); + exports.defaultInstance = cp; + if (!returnPromise) { + return cp; + } + const port = getPortFromArgs(args); + const pollInterval = 100; + const timeout = 10000; + return tcpPortUsed.waitUntilUsed(port, pollInterval, timeout) + .then(function () { + return cp; + }); +}; +exports.stop = function () { + if (exports.defaultInstance != null) { + exports.defaultInstance.kill(); + } +}; diff --git a/node_modules/chromedriver/lib/chromedriver/chromedriver.exe b/node_modules/chromedriver/lib/chromedriver/chromedriver.exe new file mode 100644 index 0000000000000000000000000000000000000000..bc6efd75ee378af04f36c296c1a2b0faeed80c7a GIT binary patch literal 12822528 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 z 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 _f1nW@RP{W_{br;p6j@)s6 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≠+H>RpR3GZE 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

3py`^31m$$*LGOh~4Jk7ZSAtyrS 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%0Ad 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

s9F5#CMn+AtePG#jv2LGwW*hm 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	qCsQ+)N5sIMw0PxD1
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

D5*R7Ed2w`GO_dq}JTkq_A{^25 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

    u}ik4;fFT^^wAsB~n-tCcu!j8C#?Kji!%Q<7; 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
    eX6|k_Az1tT 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�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

    w2v!q=Hj z_ag89DypXwH9(PBd@)FAjFIH6C4QVpap-iFtE9@ka-?~nUfr`1Tt~abekhz-3wy&Y z8sYnFgn#rJoBWWkE$P_(fL&xB46k9*jfz%y!0@?tp$(%(gvlg6XQ!?fhx*$?{-Q7g z21$8~WO>PsS2m&7h}IO_4c$iIj*MzTL6DF-%z8}!epPl!nO=K*ESAQ~Vyk9Sq~nK? zJ%hi$k2ic-t(89EZ`Tf|OQ($ID~p$s)0$dY z@bTFyh#DE{^q`5a4y}=meJWisNd!Wk!SSzm4mzV%X?JkxF(RX>X8aCw4{`*?qsnb| zZ=u}^&ecS+oX1_3{MIMBV z*3*EIyCOm?DnJ@S@mok(!Mnj?J$;SV(yG-F-0`^7h2Drs8 z=R48L;@EZ+9OBf*a=mhKccmoaWEXhGDG`29E$hQ2X3adaX1-aou)DH+(togqs0o-g z%gmbPOU=q4?8H~;3RaMX8NSn9Ss-<2a(E;!xBsJ_9{ zL3Fl8>(gRot}LJoCBR*8926~z)e=aw7h+dn(cpeIqrEITUk}Vj52Cm@K=j$CR%Jjc zY+2@4Kfh7~k=F|7rd2Z+<4C>LGLJ~r*MpORySY>F`E%N!AwNop=W<>msQy)_q;ABA z<~Fq`St8JX9q8|nIm0(<=K0lR`y1hwS}n>{t3tZ~ECD0D=b}$JtsFuhzZ#x+w5ACL zIWC{?4mq!&%b20(EEDzSk2U+UD$6yb=+3Q73gGit5yGM zlsS-7(9+0ofo8%JG(%_2PX~P8U9Wz;3%kEjAv?D9`6Y@GyY~-zE!!* zEGw`omz!mxzvW0lWdQmRTxw3ANTQw(m@60HVn6E3bs#)+MZ^)|nRo*F1!g+a!3Mpt z?i;*btB&ZQamHqGHTdw1!H28W?jrmg7jk(HAN)z++O(aHz+nmTy#eeFJbiM9BmP9K z`bnaOdjXkhZO(D1s~Rppmz$*UlSr>W$wkTuOi6m1>bOU%nf(3PlBCw*J7GI7pfPpg zZ;B^Vt#ToJqZiI0HZgZ)q0GJS2~LQHRfp`NV1vn2?NC$*z{_Kz8dmJ>6K#_)f@IL+w19jix+@ui$??AJGQ^;7z38dtD?k z#Kzd|B&D1rqMA!w8Ic_*dquD9)WL%jC6~V#Aa;Wbi1eJ!pfb-( zRAC1aea*`(ABxL#I?jt0V^UEkMKwMA6Qrw@yg&)*Dg{5*_R6X~i6X7uC%DpBBE#t6 zKb!TfHQ)6Dihy|Vet=GZc6-2(Y#T!!urXwL5<>z*7_toP2=Kq$#t@Ij z5Zr37>C+hE0YltI>%}&PthD_J11fv0jUin*zC-d=jUke?Uv`;ekOLK$>?Fs>6l^ie z1S=MJ=V7eL7SjyhvN1y<+$ITT*ch?)u>?kF=g3UjFDVjj-$=XyO`oI_0%f}$>jVo* zotM&coc05RU)QUr{W9d@1_`atVw*wrP>wy~IucutxCcgaDmmhzp%JgPACwV4l^Ah1 zRwXh;-JGc6F&q3bRf^bnR+|359CT0bmj^we&k*@i#`~-bY|4liFxp}VnP@e8t%vgM z5r-~_1G|~)Wr8jivd{_T0%(N{`b2xs*%VpGLLfQli-!h%34^d$2Hqa@LOtk2i{12z z9`r&6y})SwjXmgpXAk;fb=74Fvf$BVVX+?c0=`ga?n<`*fG(3u$1a9?}L~oKSs>|%_MGLp4zMVqeuBU2y)o8fxgk>)lA*8I z`^fXIzqY~bLtX?QA%Io}!m8|zhG6t6m75=mChQ0cI*HlgBZB9Z#j<<=*O_&b%$iB4 zm`EdM)|8rT6;N4j)|8uNxoY=yw;?GKuTgDgS(P(bA6S)sdC|`#QU8m(CZ$JJHOm0= zG@m4ZO#QPImpRpU^-)G0wdjB}@aT6+5d}S%g`$;n@z|dIgHqvW>GbJ?Yj5M!S9LmQ z5Z~kR_u#K1KJoB9)z8S1j#r)osWVnd(uVkWl7F z)hTGJ@w|tY74tud|I*0GEch;4Qivr{=SqrJruo&?V^|2lkHK+TS-cj92yz)o5E@%1 z&1uA|zf1jDg3R|N_|J)OgLzD+%-imlbVJ-^DIo1DMT>@m3}U6Ui~myk znPV2|c!{|Cf%1(}kG-9Oc+!6^>GiUIZA;ab15 zZZTCY1&Wu-51Jo7ekto$o|72Kcf{T-Wu)WyPNJ-vGO3=~jvJftJU5N!XLv6)o}cTj zHZ}#l(cq>?p1#d*ESX-M`D_rp`&DSCyxAMEZ>v_5CUPqb>N(zJjgkCx$UDyXbk*$59_pO-+H%!jZf#L9jp7yeguE`mWhS_TW zmGUTd4<~+s3l*uJBy~bX4;GD#;%yI4@Ky8#Z>FtLcRE8#Hb<0m*JL)><+R`-e8em6+NjR-B6Zsrh|`%9~t2YU1x0SsPuKMyn>|J zgi2UXTKz(ko&u5Z_hBP6gJEEPr$L_%T<$*}dbTP_u96tQ=xKG(mHz;3Yz z0`XuL`jo5zS}j(QrB~S?1)f0F25B#~oY_V#)>!-HG=fH43?1=mER3gTV81HveE8Ap&^b`JtEw~z}&o{l3}7tMcbp_a8LlycmVZ7ARHOBF2s6q7OVZbG$ZS6w`Bm-ye}VE@6a_yM z`$1lVw91Gk@RQsknr2Le=p|`JEE8(@zoidt+D+SOo|is6l(CM;ke*O>3Vrw;q?!v+MhDfnK;l8Xt0=rpy zkuq8>xa%?+FMHM3D^F`&I0DO#v+vmTVOI02pV+rk@9OW@TO>6Py5TCf_|;2)K&$!{ zF<4^@(&o=;F8KnYEh=&?j`J|O>IwJVAjRi=%BW! zq#i~BCNgts7c|e9y33ONBK{cvs)co;lC4FRZwER2SND!RrDIyhz7yV=R@7g#BXf(f zY2Rk%j>9P59e=T8<{J{BvAQQXnLTpQCi=FTC&zxqj&wz5iuPyrg|4?I=dja`c2-fo zPHG&w&s#;?_Suh+w~N=dn8#LJEEzV!)6)WsieP< zu#eWag)HGUAaNm*8G&6_u!<|-ivgjD_-n2h4 zy!+#%d+G6ghT(XM$NE;be3vh7Ve=yMz}Nxf?>mc56>Z6Un-7KZth;lp6}fnE`1XsL zd0^~Oxi9WHph15S@i#P#WEz!u#4!g)v)D@+CbR%$Ko=Qrq^OE4^DO0 zvulrfeWHeaz53iK1L=)F&w@YxUdnb5TYzFps{S+kzd$~Q`~yHt#mo|y?vE3YXFPhC zXN1FB5~S0sA>St!gz2Qv4-7`58XDDRBFRI+e?@E&Wr$6BeswS(zw z_K)o&c!g2kk$Ez7wKYA*TA9lXr^cN!wT5o*%sgf81L_^2vDS1iKAq9YX=a%hmYnuT zfp6Cue2elW^$$I%&z5@_@pe#J$1$mQxFt1?bT>{SObfM z1pA{nJQ3&x;zEi9SO-DX0qp2w59l6_-43v9RNW4$DxpSf+{xB8Zzf355VU%1XdONe zw6-NsbsNwEJ7?|>)>(IZtQFuYQ}7@=YBFcK$DT0$zM`+FujuW}Eqp3;jrFY@b9JxA z*B+mYp!sg%nPU?wdZCXQvTIo=b8s5*UheTz3I?aLgiD1>5*|4?6NqKxQ{aJNn2@<{ zmo>&DwJy$I%;4F2?oI`#dd=04XD9?&q7t}sj1e88uh7dqnMduJySgu0t!M5wV`{&q zZ9H6u% z^p^K5UY8)(-~R`>a#<^r5lWEGVwTT;e*7AQm=6afPSD9+Rl?EJIX}P=-v388jrqa*@|M#q3-VBP@*#4d)Du^JlRTHtbFCec zWFt6U^bP^P`rTc2|H?7wEpI{zv;?c~42-stmuTH=PN=MSs4_C{AEx8+U6!}o6kwDdfINLMLH&P{f~J})SwOOhdt5|xAn3JAB@Pl z1&oLW*m^19EMTtxrG2){TrbP}apuM=S@{^Uv^N zcbojmALDc<(EYUGy}^1l_KZE6`WgLc{anhJ=JM=T{p`no)z7j+qKv72P5?oJyte)p z^TGDx_IF3aXJ=Sx?BwLz7A%Vtrw50lcZq){6{9y4OODf8D}=RVt;C%hk?Brx9xz(( z!2hP(ARHiq$3=)#&5$qI&W1Oh?yxxo0B+oHgiO2Ec2vkgzj0Dt=#NtCG~>yZEejZ_E-! z{okL~pdB)seA~W`mMLwwmHf`jP{E-z3)pv1#?zZ?ZDUrBnq!v+vKIlQ|GF#zq|haS zJSliJSzxs0u@u3(?*Izk9CM}9oWSM_wT-U8-wD)CciK?<584lUMvv*Sv{72;{G%7n z@QVUeCdvY;qFn(qBAFF+3nPc^v*l)_hcgW{4KRR)--5iDrmG9q0PX-dQc0D|P?YQp z;;eMK7FA!v^VcxznbdgA^h*7LV`%wsoLP3tM!+!?JHwk3?f5nApgXQ)cbNUPjh?_C zYmPb84T&D5gDmtYYv62;5IC6};a7TTlq0yrdR{mgBHFs9WWU;^ME9%hxP7+VWHtE3 ze#P%esVL!}K2+HTKHSx&zY(7xy)pj}YqeiWK&uKg3V=p;@ug+jyAp5a<3hvRXsmX9 z5r@hdCpCPcRmZhM<-7WOAfR8}V&4JwtP~}Au1j4tR5XM|Zo7z&i6PrdPlZ@Wp8AnpWIg8nM*(U~{b#zU z#FB|}%mZsX1+&!8KPdgbLbTXF*~VjMwEefdPyAN%6^_`8WZ<&&K$=H=eL?RziNY_k zn}X-tF%pFf(cCD5Z$2*rKU*E^*By`Dg7P3`x);1Q!N!mELu6z95ZPG&WwH_bP};y8 z8tU2&zrDs`&kINF2pZuFHt-?41s7`IoJ0d<`{WB~H|~8c*J1sOa1(8*y_M;Pzuz=# zLL%VJ9%%DU;R@+?b9n#4j)X+@6KxT#=k*`&FG? zAo8{Lk`5s4iDo%JVeK92R8oE>Ir2FX6_HLa8_pZ8&j3AHmoD-~y7GO;jMm>#V3lD* z!pV5>YnQ`PLpX_&?_0`AsJT7pW-UF&+=JokbK+piT)rHfPEMFx$>h=%Z|)}EfQKi8KT$|Ay?os6!5ZCz3F<%W>jw36 z`y^?LPw|{evBf{LEjJl|FZN!cM&L0vowHt4iZX;RMCtoRsKMw<+O#VECUdz&>iLaF zatXSS`iZ9;V27=vY6FK>vcbb6=~jcfJW~zEZWo4!3Klm6rr`rK(|d&#UO;vhi|i|kCaY)zcl2z*bdNar@a71}Bm zKu>s*SMut)jOu+&*CV6hV7y_j+jD#N=#WlX^jZ8?c|=HY^EaR(p7=O$`I^~8pk1fk zK_u4eV!6#ttPaOM(?c1bY>kjKD&!-Ptt;d{+Z~hEOP->r)+x0%U*Z=hAGUaTiPy}} zM6eWbX3xXJEK)W*Nuf?I_oJ{91`jV#)KukWWog1{D#;{CPAWf==QBgxDCFX>{17&z zzTzF_*!=WUpWv_1gDUaI|MCf{M0~$1vD!?x!#_wqKMq&3_tr4RfI-|Q7r@Zx0c8h6 zl5dR1zRF1fXaGg^;J@%U!}OBtB&nyvFL@*Kq-NYr>cmkSjbHM9SC<-tztsb;4%s(g z--3v+?>@w{At%DEQ5%1a(3u?~LqPmP%pAZk|T5>=JU6A~gaca{VY%l0qdkR~K0h%Gv4 z#}M_?`UCPq?26)SIiS|m=m4@D9jtW`1rOQU=}^6DDVSl~>g0;lrGpRr$Jn95cSXs-UatCTZ?VckLUzP;>iA&)eKWwgO~*##WUm z|Lmr3!b)(VT7GrjTCO+mov0g6G)J*DnP`qlx^+3ab*1|J3Vl8q@>Eq$G!%hs(WYvh zgM~nCjXH;Rk$QxXxOCJAC<$BK>a`c(P1i?fEmqe=M=?mt9seng+JGn+oz5eR8?lwt6lx)U7a!xaTX&*M*hi&#@zkTT85N+${7f6^JACr@f?fO@e zE}I*p{6;JCEU8Ey3vX@*by&~dH%focEmw~AjiWhAJl-8*s%i6ZB{?i`DGT>WJ#Dg* z)|dKQZC)r|k*39JBGq9IPtschB_T{bwi`T$Se^T$!Uz|3yk(qr@Z* zV$pw&67Ju2SgzZ8^snOAnvSPkskyP2^RBi&e(9}RPFUfE#{Shw=NWrun)%de-i|&c z+8^0N^1W!q48OYcHKyT}ko%b#q&{E{X#yAql#y3lJn0B!nOh^TIOQ}r${MZyID+S% z%H~=~=lN)B*##Sr!&}j(a`{a(V6I>N!_GtlX1G!s@KxOauYA>RK%SiH2E3Xn4JhRL zLJinbav=yzi2p$1Go zZv&q4^NPTCUf@D6y3YUNTzPR}9!VwI#nBiSt##LBinK`bqxQCW+~rnS-@+mtZW`+_ z{-Hx+c+S?XLeNQdsHvxtvel?0D51_&I(m8;zv5C74>K9d{ zWT=nHHF=kg)$lx zj-YThg|a>L)Q=%3v&!{QC-y-afoV?X0)KxE-jn+qczag4l^*Fp)jo|YR*w_ZPZ$*h z@sU} z=0Lp#Q_8355MSTH_oSIW?LFJf!Dl+CL)|r>TC2*ftPQ46>GpOPs`)?%r+WVh%@bcF zc1#rVHbLwFV~kDhm(yB0GdN+kUq7@yi)(^2@ZW_Blh&|u-U}iQq)XeIH~(c2>UR+v zOCeHP?v!3nmR@VXMK%iyafWguo85fh5xO|C*~3YC$cE1p4IjG^chZRPW+6+C;3{Ck zSbXjMuP~cfu0Ys@lApi|EX}^fW2?9&sE##-J(fPHFx~pc zgN&H9QK%>rt})EUXu%nhDZIYetek)^~K@5{LBa2)@7SBvPKUw_VkuQ+N!~gOBarQ3oQB-H+{{{jCSlLA*MvW3R z)mUi_ijoNGLXu4s2n)dk6(VhgMrtdSU5E-{!{#;_Cg2?}1#P{ywxwzjyo7{cf_G4> zAgB=#&UR7JQb`ou|Mxkwy9o;K`+NWS!0gPKGw1r8=RD`RRytIR(?*L|Re~K;We5Z@ z_P6okGxHdQInLk)p`{3zWz1m>awtwYN&}?o&@rk$^@mlvi`P3;fnD{1pRPYj)j4}v zOmm$7dv{&OsPpk%Kj^NmbL(K;UEg^}t8>pyc6aeK2V4=Cwm3~4xLhAc3ql)&5_I^- zO5zTk=&JcM=d~D8`Xjf&b+Sn~h)*l&%jJW9S)@c4vS{i*);Pc&IGCnH((1}qYNGzVUgh&^HVF;Hk^cTjFRsGI8yyKgNr%@14oU#7y*$>BwwDJEW;k(apazWW zcoQ$ZkOpdC%LhBT)=rTaegi}mi2aLjOQPG6v0mD@M`3JsBL(L%*EA=?c8K6j4B2`$O_zYi>wZ(ELBWeVeJR2V6hs@ zxQi|rr5^6oP!nDxOn)5tpuF+wxf?^@WJ50njwc#*&5KM=s4}ast7bEIBU{4%{2Gqq z90?NlL@;os(P{J-0cmk6#trJ`s0RSaF^6DRv|a59odS3K$Q(X$=;4Uv3D%qf+$XcZ z1c46`3aFQVvYRzE6i4fkfn~})Qm=N%p0ywU5a5OE=}bwGJwIIEsjBUCnl}gcLDGeH ztmTIptKhnO1pr;fSRSHlR`3vAvy7|y$$xjjYH^Fd$`3}q60Z1)Au3L(Zj~)grR?zF zIl{?2K~K198)2i_V_eN!fE@w*lEtJO`nOm zN=o@E?CzkfVh$h2Q=R$+VgZzSOz$kwrhJ7M#O2d$Ezy`iuY#0t>3=0gJvA9#JQ)y_ zsLJc366^*`v)5N*h^-=53#pM3UICO?rK3WfOOPw{w?}|l9AOh6?;MaOaA= zB=jz+Y{`giwh0nZdq318)gID&H++=vc#)jwy3`e)o~peFVvDEN65mT(mj8qX+Lq;* zuHdQg?v}9n4+5hjV|?}Uwe!qBv??9^HPKRxohS$%hC}5e7E9nWvrMB}aB1 ztzuijcZOYTf+I-zbH7*kc#0|X_TuNYFuJf!d%I4n$rM5$xIwPs-ietv8#E~Z;wT0B za5rS#+rmpGsdZadR7eDIoT<%i5Z((17bxn@-L)oHz#qpX?vqt}qX>R}O2kwqoHg9} zi4!J(NSbUnn6Y|YHLp;?k#&DUinY)w+AV&cDx_wkRp(f#TZg=6BRS}e6BUA#L_tD_ zRClz~B?nhb6j6ysT5+7VdI=j%MWpJmzds?&ulNOpmw)I? zn;cZgP>hpN87G4>&dnuBsJAI<5{D9*T*2WZjNR>!LE<{_?3)<}&SrhF-IXe>Iw=LK zM3D!=*w4fDL>B1|HTIcLK`JA_r19?PbJ0Kl{HdIazMnxkly|X|r(2>T2b>Na{_%+M z+VAh-wwt%)2RE#g(m9oHXwf&r;vp4>?~$npZSsq#sx7!dXbgw{6QqYm9PU$qZ?kZ0 zZeflcsnc5h5P3o^k8oal>0h!20{<`qHL-79HLH1R)eCFHd~Sqvv!H=!12xqo8;h42 zGgnxP?=lN&%mnB*$p^*gs4c%3Laks~aGl-Ss}XcX11r>YDlrOz+5zWNA2Gm-g9QKB z=&BvfMvL|WEat^@NklwO)%U;M*En82IHN;z2OtdlTZd$&m@J#*D$E7$0^47 z%!o!^HU>H6uOKEe97U8E`A|Ugh(CePQp6kLyL#SKx_nP2#aUNI32)%KV^hW^+}wBf znSWA7Tg@K-MabpyI3iDgL@CD`WU`}S_SX#shY+n!tT-?eHJIwB>=!7HSfxOQ4%BTNolVh$Z^CG`3LuAbp}LYXmcN*y0ma#H1aT^VK>HF znOHyCzL&#n94@@mgX?RVSw~=4XuT{g*h<0mnmET7FntKE*C$daP#$Ct%P_nmcZGH` z$K{*rv{F?to0@S#EYd#_FhJEK+}Ul_cTylB6})ctqw5C>C3*Z!w&u}`ynz~LKlZ(! zpfc3KJ5X6HN8(eaPQFvzz&jhg(;9F?4~G{lY{6b(`xT2~{G&c9a+=IB-mLlQf`I=; z>#?|mU0!6QKrl%=ON%1s;HkSr{pK+;mlt(-i>OylhjRYwfBPr6P;uDx<3y>$Ys+@+ zx6?m3lhfg@_jK#3JG%I8Ocg%6hXXm0LOy?d+1{v7CKm~8ZJ#?(4T~jY+6hC6|7z!u z7_H8AStx}0;Eu$n(AQ&k@uqD9-e$c3w$3 zros5r@BcN#o7gkI4cQp?OO~dI>=uhTiJQ^qC7;)~wX5$9En+wCQ%U_iaFNA7GCJd} zf!SjD?KC>|ESkj=#b^S{?IK}qfjY6=_7;h+o?G{L#Cp5Dh`Bu5teU7@Sq%+!?4jYG zUwf(}_v64`zo0~mo% zS;Q~#sz_$s{MVd{8*ls+ILB1MiG2X#G<+TxJWkTuE=DIZg!_|eq0B*Wygq}@u|G1QzYA4iwtDEK?lS@GSMcsa@tS4aElbcKhz$g4+a zEj@Px`cCMZ=dk1T_J9r0;i?d8R&-FRx$!RDAzS)wZm3lhV?=;@TZCph*A8c3SNSd3azS(MH zRq-_KS#Y#vQSKx;AG$HZo%EtAc@+WV>`k;mt)t?wLw|?TfA07Gp~S0aP+GnkK{(V>4)Jxab9KDpNNd7{va+Nmx`^(oRZYz{2m6`5168 z@6mL|U{9GUym4!kynGRUlA3Nyg0NmSKHZlENXX*oR zg&cy^(_8FuEZD?AW=~%4sPGA=X-BtiV~58*?>dIjWAnM@rCCK8WopPSnE!l$0h*2i z>KC1ct2P@KSc_k`uG)#?AFE(9{x8(O-eNHkD|A526Lj+)K+LF+#j}V9y_+)(ItNv=4BTOg zQ6GUeG&4b>AE^s+&^DTb2L(0#Q=!r`lu!Srsg-mo{5XI~F&dRVzQ^f^JZm3!dZtR> zCFU!%f4WRoe5SlWjyqI&7*5lNG)Seg{5WOMHT*?_B#=0*)<~j5kOZf_s_Zhg`aBt8 z5Aaq%6KL7#B!D8`f5RSJk!t+_MT|WJipaB3gw4aXCZt(ao-);^5G;W-EiYZ9hhV+D z4Dm5}U2;WX0#8g~y&-%mQJ)?bI@WCrXP{J8JE#I_Ua?16(xSy~?SZk@!7^iu2hi?= z5{nZKII;gW;k~h9CMA}suP+f+3myQ{%{+L<8Rh_JJZXl*7C1s32!6)E^3`*{fx{LU z1fqql_A!7B_tG4Qq)!~dWE-&2i*wBB;%__mTUX6GnRcwo^0JCTU432kAJZg)MUGnC z1xD4~eyv4C%fy8XgcbfQt^ji*dMJ()ls5k~ly^TAjZZ!k`> zK;l)<>=gn=#Rvj$GMa6?f9}Vv(LUDXBurGbV^ohTw2qI?-Db3I?H*H{?D7^TUkVFr z$vXCd%VSeE*fRq60pKdLIxt6faj|JtkTj;!h#zDe}z)}E@wgkN06_DSM+bc4V_ zF-|HPWTXcmn1(K_d0R^28Oz`Chdag}mXX2XQfTAhP{-li5AXt8nr)VkGODuWD=*AW z$mN_|teGF?OQGURC4xcCMN)cCV3Sm$5=bn$xCe4#Ka>g?k2iU&{@MbshlLR0z|!IH&e)6ELbu^$(n?{<+zPFPS5Er0l49Zja?j;0`Dsk-J~L zub*IPHS$RUT%;fM(^C7>P+K-gtF~B747?N3F89Ez_K1@_&^>2kAH?9`0vkhNf}3T! zYF{y{(y?U)g2VvFqmO+WV3PkIJ6@ckkAAO1&`=ck)2B9f#5$YBsS^FS3q-UCE)K3s zr%*>=yhxcshoq4sgcKNzZ#;=PLJU{#eCml7O=gAvgGGU4Ejr~?2kPIyw~GyjN!Fsl ziANP%+|*kd9hsZkZLj=BIT95$peyI;5Lz@UN)UJ%e4r9;xOXD&rj&rgJ@6ws1edMHI4JjXT4dw#xNI3=ilTn8~yWaJ>uttbJ0Z7N!JNAwr|tG7mJQWDkAhPQ&Zb@ zv&;c(R4&uhT5Tb@3TsPiZFs)Af>r84D8?wq1#Rb%Nas`uw6mUtaMiIX=F9HK``dQc zDGqhlS!oV+e$pvNdi8uaejXBi*KAq-iKr%QBtRYt_Fw5#vNYQLMQr)7xwBKK8gmL5AZDmRLf7WS*F;5Z4}O{ z>Lg(i3gxca`?>wvn?d4nyl=v_1qVF@Y*L}&nl&8zYNfpPLvh9~CgvYYXhbS_5 zixBKfsSAIHr=ta<9xC6(9n(rbXnNnrqk>996lVMnDL&fyfN zb9NS!bJZh!t{Zs-6DRXscqrfVJysJ#%+=C;Q-cmh1G|?H9^}FuWcZK_N8_2;oN)I& zU<>mzkWQ1V`i?re%AeMTf!Jg7dWzTKgKS8gLxZ>t42v8bNof|HjE38J&{7lD2^_Wo z$W{bD;`S15!(c|WOpSRFo@|EI`z z=4ELp4bPF+GcsoZDi$h)}t;>Z@3MKVF&ahw!g zkPj07aA=Mraj0(+^=6|^uB;HzyK6d#>&Ho|qd?iisQ3R{NHk`5nmVI+h%$B`ja}gi z8GJ;%HIxtGy|Nd%TYC1Q9_7SK!g??29L3StX7U(B(;;5i9zrLVD3jL=SLVN2GgR6v ztpjrriaQol%_{hUP1)#(zC*l6SIzf~6C;3A@_(>>sTu3fafH7jtvBx^d=ryxA7p!- zUyFK%G(XeRk)*98#@SX9<7_L5aoS2Eu5(gz2OYGf`1zUXF){vsWc7CxIuD2_ztFu1 zQ9cnDQ^={@8(>fqnbDT!7a}_biZc110s7O|p-A&#iXS1$fBh(;{ChI@KytX_a(rCg z#*oq2%;?r&v*?L~2O}(Ov(7De>mFeVp0Op=1-tJvl7m$qGF-=9tTXf|bg^|uQa;9a#+)g=U8f5- zu0!+WWH=>#CFxePrf!-)$uQah?>Sq?$M_J zKux3Mb_BO(b2hiqUNM(*oX>1- zAg7djvCbu^qeEjY{WT*nM$+pRk$&v?c=b3NQY4qz?3cWCa+Pvj`g@_-px|oH&~@I( zQ%9X#?KbK`xcgefg$%-_FAR&5Ew0+{_4o--L-lLKSjKkP@Qs0XYV(VvN)2C<$E;f? zPXs`fMRVmJnXYCbIISjOk*Y8bD9oluxb4u}FgE~;-v!!{MyRXb*@1kL7^G@)6`xjB zayR>G^wzu8N7E%?7I)L^gg10T5ea#A!iyw;PCLB$KP>ibM7I+v9!PTN^{53_V!9Uyw(18IHUlhHVHp9GS647ALa;ml4dmvnDgdO!)!8g z8Ar-cvsS2d)hywGclEJ%XONX~lGA_)u@gF#E=g~aZ_LuMTCEZZs(5o(Gyh3x`%}Uf zQ;_WYzs-bH*T~+`h(DYnFTDA|b#fM99rcyxOKT2Cfv&)CjEOQUber7T~@6T4F zPPu}8ZnM)m7V{KlpLM^&~xN}m$YE>00zYY z#aMS3SeFsm!MpZ4jY7iBWU-o7@F6Ains(6zrv z+5xG))&5}C1AFx%u9OdY1IDi-qxA>>Am0%q^@DD2m2zlf{i@?|&C7$;B&4D$dK=km_2TNGc?WpnG}nMuy7m%vAG7NEwZV zZuRU7PWa%(Yc<6eBvMiB2=WJ;W9WP=4-(pI=8F>T5#GEA<_{DzA=?Qas@58eG#}cD-r!{jkRA7m^am>Cb)!~+8@#~n# z=a@6MXx|cNh1w1x9KI>x&gPka>ZbKX0l-(n;w?V)fSn#(yi*j72~s!Lhj=C4?gxN2 z3u)q2B--?K6GUBTQ;xQrcRS`Lm8e^CB_$>NF;r)7QEo3w`Z-2AcEocJt4qH?w_>e~ z7dvm6I^C{39N^PXTe1zivC93qCF*a_qdc{Vmoca=<~a`4f9**g-7C466;z`B`)oX8 zQn-eU2`LWngLVvi%b>&oB3Z(|+96zhYJa~RN96NF_SpFY|DNlevhrND8@QUQ^mer) zaF(SvE~~DERI5q0Egue%M{Dn0qMIv@p57 zE(7pL0-u?6ExbLiPV#VCS$?q`X`?8Je@Sp|m2sBrk^cS%qLY*T{j@?Dt1r7JjwM{= z_agg3T|)yytJ^v0Gv<;j{C=%lhW~rj{29aF-d=YceMySE)N{Vtb3p4K8Lx@5XIyu$ zc)In1tRUe5zWXrK#y8SE#F>0asmn z-_^<|SH09r&kxlq*Wl2`G=kab^JlRr>Ln47huMoh&tX`Y$5Ykc3h?X!|L5jqLD_&8gZr= z8PMT%^EpylP0dSWY*)=7$$&^_PP%D6%TQ?n>^`dyZL1fycSRXCbKKb6aXJ2sxPjqR%_nnDkE?pFSp96}Irc`0G0{YcyZQaCqS@?qw(W>4e z$~rl*6Qz{n&Uivs4y~R>%P>prgMv-95V6&*Gq_sg(~SPPtypOLE8t=Mnk3iS@n_-P zTUb~Rv8|%va=h8!R(D3h1#L?dT*l&S(Hx(yc{sl$6OxRErSh?ro|O9*N;coR>T5`6 z=?#`OQlf1(ob7!s;t5uPBS6~ARm4CuRs*u!!CFD{p1gQ z+b?jAa8r>YJ3^h`hr0R%PBOZyTc4srRYB$#u-1)+`$J6zH@rw9C*@>n$1pAWoIr8( zxpi_S?8BA6fC0T+W9to?fJAh|D{W`?yIEO|@Sk`>N*!8vJ*7Ed39XZ(AO*f6*=Piu z^R?s7LVKpKIWB$V4gmm*R~0RyG5FeRT4PXnqm{Az2!2v&d8j2#!+w=dSTCHN1@?jQ z`wk>aU(r0i9GP3DQJ!U#j}Wxu5ZN7EtXrf(<&;PL1UaDV*v7;!J@~ol{}_ugzh`fegaM6*1o2gS`8PzJdCQWVAUAMEkmOVveg@ZqerDgb1Y&{XGdXx zY7Yn`oWUwHy_u*&p4(x3)A~&xYrKv&iJbHzDXDvF6dg%#mzJMGiNxikT}Bru_Y$Mj zeJMjoZrKKKHk4e;BV5A~R7h3k5VO=BIoT@Cj^3OSy*XL!X@h+yVJVD`kuBzs)?Iy) zHo9u=qZQWJb+}Qq1<-D^E6l32GSugi)i|{Ca5G!w)&lHg6#3{HrXs}R(;lS1{Hv~t zzJ>SDB@Lj9AB2*s7qCqdo6FC647GJ1YJ+Zyt`latFf*gB{B2?*wB>z{8BKx(I2g1; zU-jsCi=ul3Rd=5QrxpNt|Hw%r;nES!kh+nXO~<~)u0FRa(|@BZ+2u2U0QKS)oR*wz z*3aWXt2#K*E)}aFP`cfHK(J9&-n@X^%J&iRoR(-EN`exQYXR}kLo7XuN}H10cDn_K*V zzgE3p4&!L^1QOajHJNfEuMmETI`|ixBoKF?Sq0(_)SR3TX0BetdH^{Sa>!l1&b}u& z&g_%-p~r1&2h1m`vs=96EfJ>FUJc*d4Tp@F?OZ$9!5caqP)3boLJJ>`(j|0O21thC%eHM3!U0WwCa+CV_e4ep1olm&)8%v#1HB3#PYv@v;=184oES1xaSs0T{H7vc9 zN22@Svgod*aw0Gn=38}Ikkq6FNsaj=TKY=d+nOMwVl@^?TAeLbx}$^#*VY&^i&`NH_e8 z&0q!h#`qDWn_9+WEUl3y$>S(qwW`!m=YUYlcTfkeJC+Kag*=?s#JC9z?GXzR;P;ah z|Ici>P~$SP1)rC->oDH;r})%2eNovzj(F{TkWSRgizM79du6c(yQqf6x^z0r1wJ^` zXZl|>_n(&oXglwMvt%j3s`%vzv4t>JF9cN7^3|#nNdvqay^P#MwV`y#Yj3cOPI=b%p*w zF~(b=w_Jr~RPI#!9|PjJ0qYq3t3^jED87MEw~hT5HmZnG%c$T~v~i6i`zdileX;FU2WfkC##iT~e`uNjfXU?xM?u(X@b zTH5;xW;onC*0D4k{{CjYKJF~dk+#35PW}@=b)$Gd=9QsNc^(wCOrv(T)tlDPB&gX~ zG5H_-Ob4F$b6Muc= zM4nDFS7}+HMhKDPZCT-f4HR@H1=){XvJoEQ@o4*;eO~z2Eyq&PR;Tn$JF1_)$jd+8 zAfG-E9pb936g`nI)kv5arE0>X_743k5__L76Ya*Jn7X)&rgW>bnK*vV7Yv9- z=*k>EfZ^imBRom}1*C=631{BnKbzz(^rnSA_e!x|r`aH{qHD6`I?tnWALzD)q~&5# zmM16GJdu|6<B{aGn?=Ntffd zqLGPpi>P2(;*aFUawq(T1uZP&--%(+jVwg(EUSDL5Od&Ku??z}3dANR+owKy6J}}g zjasSuZSKwT{4wQ4^G}scLKcK%n}xrI-Iv>@Gx=gSbf81{xhDpzuGImBe5!l3p4xWrM8w!^z(g5xt37sN zaD(P_yJ`+gr{_4^>#t??CYkj%Gb#nfQ@X4cyc?h!nA~`;>}%%gO>!kVXOZZB8AYNm zjq<%{U>8ZO&SFo@4G0?Al)FBMZsA&|=I!SxoOnPVRCfqDV&t#}rQH%-2j@!3Mp3$) z;Znv5*9yN2vmE}R!K#~dldo4JV@(DLNFOp(Mm&MjI|B9@};-zqjq!(?5yZ zjtO9Ko?E4d1&dM5Gulm8K@9XkYyN|-y44qd^*D^3`n3F`z02MQ-?*7$T-sv^bLND; z$%yzm5cz`0xmk0+V$_&0!dPk3BlyVXN*Nk6IF_qXusOGlqbiwKEr>XW6a(e35Nud9sY)!H$BRl(c3y*nN+=Rbum&044k?`h3-khP|{Kb9~>B|eT z;w;$TfE8!K7BCfTxSjkYTY+t4Kl4WLptgQuy|9-oq`e)|Rs;dtY&*_^Js5FL>MT`{ zN#4M=j)HCSp8CX9@;Du_U`(PVJ?)gYcRnQTJk5Sv-6kiwF*7&2YTH0c5ijGkYpQLc zxs3!=<_D@Nu>>8Ltb6WI<%uP%wR4=P&L_b*$W~q}W=4@GvG>Yd-07cV%-$k4oB@<% z^G)B_Tpu=^ZPJlunOQO5Y?spk8!&C;2H{p(@8*d)?^r_)?DqL*lD-3d#pSCsgoYc*B0z(bRKs`NGun;ivv zqy=WPM;2Y3T&0?1`I?4!^so4&-40n9rvOsG`eo|bcL9)HR2jKMw$Hoo*HdDS(Y>IM znhQYlynbE3USPitpC*a3I|b9s-ifvd&||Kuh3Z^1SPdpFz9_I$cxP1>&}kcci= zvR#69RM%tD;}}rsP&c$`lOErggr6cY>5*=pe*z{w*f{3lReYy$b+V}k-SoJPB&eQw zDLs;(=zHeuPU=>#Q(brf&4dV``I8X=su8D^QAhE9Hr`RJ4g6s z5_^M793Lk1jraEWVb=m&6x%xnhyX;W7q)T_Onc(@7K+cT#q@iqRi}{_)NGl0 z@{qj5-4pN3T+>{~*P`rmnjp~^pZaX3s4k?)ko-le(Bl@Y9PYSfOsEnI=9)}t zc(-~~MpvK4o}vR*lYoPocReSjrYsUbnU6t>#rL1U8||LqgW%bQzu+ZG)~?$5HhTQ+ z;~qJr+Fj}056tUWPNU4FBk201P!g+=dviWn4? zx>e31bhJv{a$ek&9DW5xNBqs{N4$B1H#m1Vs5;)H5;-xcnJs8bYmdYonysJ*9p6Fk zkrn;lDqe?QmCt&4RJ7Hndnf#cE%L`_!0>R|tB-x+;lT~9FCOJ_SYvB&d^>z=X{em zPnc@imF7k(h-__J1*yhKyOFgO%{{ZCP1^@uv*ly})M=LGn^%s_y)wt2P7I3HN2d6c znC5Eym0JKy}B5(WtnbK~3YN*X`Q`|4j5xWF3Gl zWgLRd`jG3YeV+%jNpO%gj;IV%hGSaafls~u5;XK`abZr}3|EcF^g`dB5EzNHzn>%e zl}Py;RMO%*zRL~^v_hW`_)s;m% z8N*{bDH}37ruLAaS>pVRF5L6}z?j~f-CixC8B7QAS*Z{eH6wXsEi|3WFXk7#lbu2Y zLBzN0Tfd0}m|I=!7s4Mr#0Fq4mqbkTt>lw!_wk_(LXT(^jxhuTH946_Axaru)PWYBItaBh)KcKf8qf!zFNO_ z)%;$nUoG!`utmtW!XCkf<}~Ux4TMo>y{?$%%*5STOhJAiC9FwGH25^#`>M+uXF4Io z2Xe?tQZs=2njHZl#*=mkk1CtJ;C`sX9`e~90)}mQ7x*XgaA<=J9P*lxEhOI6B1h8` zDMqaOCcQ$A=asi9VGZvV;&~2MUFL>G^sl;Alh4A&ynVkgxw5d498HhuxSIrMuveOF z+DAuq7oZ-H*iHv!ZuRWb%T-?I^A1KccdKjs zR%Y6DXX~J1XM^ZZ%p~El@B4$X$~ZeivM3Qxn1^f|rzLAWMtmK>YBM4FUl~ zXfc<#WrNrgnn(R+yJ)kdjY?{$ms-qwHMY7kHFvxJ9M{@whNBvCmM9j*%l}e63WnVWo_;aFaD#*;ONK5^MPiu4-o* zC)L%Da2xjWmGQCIBt!S(2xvsZ_~9aNe(mPu+>aMd<-j}`^EP$KOVWNPa^`SfnvK`d z>3pb-$52Tt6YoR&{(yjIFI5{GL%WtRYDJ~&ZfUL}ZyHju?nijLnYYIl|GalyIs~r9 z3Neh8c?fR=aPaO;6-=dLErdmV7fY=seoP$+p`%_9r~I)5YQ99ZnpOI5yakk~X{J5u zJ4rm+o)@XJQFJf-oZVYF&6}05GD0&{3yzD%<`zMAKf#m(R>qJY`VY0d?hcPryAbub zV=hGh(5RcCd6Bpf#cLgmWI0@*!-5|U1hQ@~fF*WE+C6&)LdZ1ZwGK4A|CscexDZXa z6#eWdc1S}~Xv?Nd69H-5rD&?X5N(&DjoN>{eJZf!CkZ5f=RQI5_z|Xe2@L-S9vH%f zv3F~w=NiKsXNUG@8=dVQTy>VU5U1S9|8#S?KK~XG4@K`el3kxbeCm1=IQtQ1I6H3b z^b;8aJl+fTl`#fyq_D?}w#wq_eY!8gVwtrX*u9Jr);Mylp zx+8oAKS!H+o6&mxOnaw}%|CmFJoQtr3@ z+2WNX@Oz2$Jis;>G3z$*DoGpXhVBt26nrVY8F2^ZI}ye5fXGM|;IF()t!dD}(V@SR z%r>X(#XBT9MQb#($_w_h5?A}w+czCYa&qJ@pX!L+*4Xq~>tR$w(b`^t3BBkJCy0*( zy%rLET92^U63RdMnK^TF)OYo|3Bm?ax1WUC&v4WRGRoAajR~~@5tNDMLrkk@H|;bI zVe{-XeOqeZcIl&<2%fdS(5caRuXFtKse`L`MYVgm`6&pGoxvq1AZgpiw`9%4VJqMd z^*-(}#BzV*O_88*`X6@~xib2T`L@b{=Re|+1pqPE*4X1jc}x6E)nX?^%w7`&{FRk* zj7YHe51LoxTZ?g0HU2AlKRUR?(m@*erxl2|2;!G2v8W^<-c7LrJ9`SGyiy7J zd__L-lNmqbK)Dd{i41Xk7n85WtF;5SnbpEazyoDh^1^=XRe@pVIILm(=h~bX?)r&S zr_)d`h)LYs(xh#1T1BY73s;I+%7`E1`e1r zMjtjOj!q^R{5E5fa*c0g94<4RqkU2T=q}=`Pf^K_ON~y_&%R}(nLoOV{D%#`F_K3M zdXN;@rum}}huXUWe~TQKJ5#YPl1Jk$F7g&EUfjoqsFy|r>Oz}zbi%eH+H0@hy{MU~Z+lC}huhhcGbrTE!SHe?{;n@%-yB`ZF=& z$A}6(d$6Cxq%|(HQSB6pHsZ12^oZN=LHSNI(7TFR>g}b8DpHM3!6@cnr2T~2K=3~S zAzuoVD8D2Ore_}M&#H7B3-?sF3sUgN>SFy7E1{H*B=Njt-jddPr z#KA_e+zdcx8k$=LTI|HI0!S$UQZj&~at>>N5$`cXlZHGp7iYA42P9Q5PSsV_4kOKW z`<9M2ZVZy#!jdG6q-+I%4KkgFzCj`mWt4~AfuML&^8hAyL!R5XE!8YQE0-2zX@-e2 z)Nv%w1V|Ox@;*XaL0w6NQp(`OcN>M$bAdMZ1c5t&z@d`|N=1c)`$@$xz$k+W52gBd zz+Y>0q#B=~F;=E7vp+6OX1C!JQ6d{UE}3oT3iuCB9_^QbL!3xS6O9ui#4-m#di_`W+b8~>i(3*3eRMU zaO*FHQ*>wo)cu!g#&uGrbkNDh=60x4Psa<=UR~hl=v&1K+#PST-CiMlI+Aoy8%U3% znad7D9==seSvtI&qcyq4B0FwLd@rE`vW@EULi;n!fJ9483_8AC(+n&NKiq~&dm&*J z4HY3^W4%w4-j~x9{g>!(@6K8{i1<=X*`Wod{X41#P&vJFYp@$HX!9Fdlu_6j|eam3)-^?mZekLz2Z=~q2;g6k*i5udc* zxT;rWm>N)*MqIkSSAI}mNm;3n@r6&o3SMMaa-j|Z`ZHL*1`7&ZKJ>rrH)r&%N)NSX zm@^Ob((wv7OJR;|O4c@T!WU2cF@9415$khiTE%9@SOpg)b`(*H87zt~vYnvL%63A; zk@$8Zp?L?g*U%ABGD{UbnMt^@0BfliehSqd+s>9k4<`1PjcG#l+4ajV{H8H`ztw9N z4|F8W`}?a7Y$8_hW1;<1pa3timza=TrrNG$DPM^55w+gSd3*MLvyd|@(l9h5vvjnw z5d!nXR4UXEV=ftWH1}Jskmx>^sXb_nF+fJuD6vqQo^!NVau)2VPzu>g)IVd{%X84h zQim=h%pe+EKBIhwQ9d0NA60WQ(K)^I)@>GFg}6YW5Wn4ojvTy^(-Ci`rVeF&P zL3!n{R@Lwu8;@z6C$C{VwyPKJW3&!i%@6TXRo%W9v6IhOyuVCsyl1a$6f#|vGmhSn zD&3HQ@rJCEx|?3)TBQxOluwAF#Vy~8j=v#-@Tl7abu6gb?|LhSt&ridRC~&)VItXueXRukpYL#;|KCWCt z>kjY~7|>oPsS?b)b?+m<2UxxcU8XaD@{gm(J)2Gf-yMNnLanom zNe9$T!x%0N6e|Bcfe(QdmCG$IHn=_3&fM{e1_CSzn{61=z&h@Blqoe(V?-ujH_H`? zyf{hRvwVjz13$b(YLrEx&h#Qpu9L-btZHW2)pY1gj2vIedQ|JWIf~TDv>ofqvwIq- zSGkQpw!F&;UZWMGS&$1%%GwWgu^RUbUBn4@l^`j+qH)D@3s?Dz^&!LV!^zTz;z~8t zV%QfSU;@rLQKPblQh8BDR4`wM*VpSi)kNRB)hD?^D&-uj%{On3ZTLCz>9O31Kp9*S z&p1jlirVi<5AkWcguwm-O)$QU?R;UEJZ)DwAk`A}c0jM!@DPaCIJ719BhlaKq_o}u zC)}andV4W?m{_SyW9brgF(sPKYnVGc*^6-D75Vl{CCZIJqI?M?h9K7BB(}YP)oCMT z`6k26`&+2_A+kAc85nAQLT)M_jMed?4rz}Wqfv;7uP4U5D9q+OT_}g@LU>9`5H0GU z>xG??B9rj+V?L;t}Yv}hnV+u%V{p=szXdYD5h40#xEO2t9<1vncKHQ zn8m7Pgw7qZb7S0EX?hn$`dg)y@vKv0rsem!$$mT8ZHGWu=V6&QrD$(d3M`pBpu#s1 z6Lt5`_e8b72B&yjR7rk4p|nTaBTLnDT^09=z5AT=_DI+&q3VRefMJVSH;cJ}hvdHz z97j-s{LEA7!XS)C+_2_S?dCVhLKZ?W){zq{s-?I?6bF9}-D11u`uR5M?}j-!uMBw+ zT96e71ke3p+&O}g+HW812=7NEL^*C;kNF?!azqB}hvO@L!Gp@2j|@%Jrh7n9-^J)7 zfk(lXy+r_ZA|s0dq^m|Ts=*DiZ?kvp;A+;dp9_h{F9=NaBgwRs0tRN_$_ zMTpysjiNJvBCbhpTQ{NDS@VijJkM3cS){+KXduEX*V+k#?Ux(ToDjdvV}|($h1#5B z%H4rok%`6!B=<2-s5}Qyz68op+axun;u8;-vdNdE=890NI63h8xZKTwJp@ePbas67 zVgyiA)$F@u_~gv=H{*jyUr|+&CfwqRE|`b+!gFtC%ObKwvbLi>o=#hZmBO0eP{9-; zA^fY1!-j0G2!S8c4|8!wh$JyD>Tgc2G|LvnWAXjBADs7%f#J2d zxfYL%b`ZWPDx?)q=%K5|L2|{lEuTBoClhQ#w4Q>lTckA*;8Hv#1-0RT3WyNd(W}(y z)1OUI7bgmdfVaZ-(Xp|HWQ z7Jh}%9Y+q1u@Z2oK0Hoz&1+g3`ukI#P6}?YvH##u6}E?WZ6p}<+tzZy5$0-*{PQ&O z7az>+^+A%wn`uqC-4neHfTQ4*Wj9SqM*^PcCPmRGVXjy~zBx8H1 zHA~OUg>=EJ7ji|Qx{h|6MR<|UG>dYOce~aW;hR2#vVH2wu|phl$Epi{XCukeMVNz) zmhh4mWLREu9GXF2`Ww?T&C{hdX_rC?>7vcay2#~njKQwoS}ybsUDwM z^pUT`3pgWQfd8bCuY@Xd`UYIV4b}8FX+5Ll2yJ&5)M1a#l`=Z;0t-j9D7>mQgjo$QzJfdfh5RRmH3m|Mnh6Ff3n4g#3 z=sl?+Z2C748g|aBLw$!ia}aasdSmtGG}0<}>Afc*PpIA13!h zE4Ik}Ap3roRQdbga4x7y371pAu~n`fxcmr}tN4D-fhGr_=}li|^BlS*)8RiY)U0>5 zKrgV<55$;sA>nOgwgGPRo*T8vqy)M;*B`zb#OgpQz=)7kf``yTsrHk9Q^4cDyHr!(m-5Oxzp zTU}~0qTtcNRXdSM4|SyF9tyO=u^aidw^Rhthdw(|I?TOWMeKWXG=)kn zx$XWEsn*g4uhvSb9r&|r9>xN)YyOJmJXNh?cRT7!p{=WV$th$E4AsC(Vx@0s%MDbK zXu`8Y*jSr|yW$88UnkSuS06EH67ev<=;Bl$TFEsJlfm|(DUGe-EBte3#|{m+VwTs% zm2fVTU|d4qiX#z7To#eG4TO;^_JMUR%$}t=2SUx_AK-UPbKSF~y4Kzkq7a-UY~V>8 zK?r)oNy2E%(xHYC7>NdinCLuo)nCY^o23-Ex#aWUiHh!Hrx| z+>t_D^;eLupG+3SL_`pTW_mihC-!GwW{T z8X0KmCpj=^_+p%2xq-eki5(LDPUsgfR{C4cV|A5$VASPE1M4!lw_Pdt)V3(1k7j$D zD6v)vC1E|Qmj#5ovs6vL#a<8FOKAyGmX+f^#gm}UPh3*!5qV+BB}B07R%8E-tI}oq zW0hS+t#sBV82gNm5sZ3#jqO^^w7AkNO;C$_Xc^R^2kP;JIHh>CA*)De;d9OAWn{oh zHCOrTEq42~NyKihU+X0o;}Ef((>9w+6yp!cK|~p7a#JKMq6zVwH9pCy2hjLHbtSWH zUXDUm;`J-8)$Nlp#piP25(B;y#(BlQewR3Q$v=p zLp@A3*Wg6&zhU|XL)H!kkH<#9f1zvbw9HeDErMiPnYm<&NVVZ|mB6r^6#l}mB$*2q zg&*PGw#x+}xz;udHDRq1g4A~5$f`>*?~!FLlqgFux>iWhGM@wsNK=n7144(^2_4Go zWaXa(mc;p1AeD7*JKIy)n>y`dr^|Q&wK2YQE9Yzt0^vW49@$ac^w`=&!*cN__)%!@ zlH4x?ISkPt0c`VP5jSYCgdGq`7N$TYZn^yVBVUpCjnka&OHzjf2FQ`^tH{r#ui?E6 z9_*hprpQv6s{X7sJOEdD>8h0(K>6_?Xkd+YOcD-rd$i3lEJPV6+{At;`dcDpj*F}S z7qdDiM!{`mAVcCLQWU`Or*U5Cbn~{$jUR&|sSfkgP(#ifw+HL zR>1t9`Wk)UE4u8Y6?VYg|0%D_9+!cVcQ;cSx-I7vSFHqq2sUe(gG*bc*!)W{dZ{Lu ze+6qtx4v5mg(!r{ZH=0nJSr(t6umGye;xwht6R?!lovjga)Y-??0E@0VCCiDf)QNt zO&aHqyzH=>UjyLv#kiJM8}CP-*1VkGpBCG811GijkFnF&KxoEP zo(MM_+8`Nm=y*Thg*GT2lKk(Ksj~Q&t{P#Lxz^U73nt)XKn82(9tm@kNf=)S0fWkG zF&PNBb3gXq-`+n7VK3-OJS%jOaxTWDA?>I1nuMRy!N1UO*UL{SLVN6El}{a*rC&v! zu?wOcN4S6~vmdG35xzL_D4R_993Fey!uE1W`pzg#$M#yUMBeO)=a!#Y)V%5a&yk1> z8l(3;aWbW4?%(`|Ex9%LWs+-cH+xX2j!G>8O`-Pv#>XOuEl@&f}D!4=niwL;IxQRtFS$-{SxQ`$qaZQ)lnmFPt$ za9%*YBUDY28G4Y0nl7VSl+hdQG#78HztPW?tUuG$P~Al}mMP0lrACNxO%T63$MPh& zeRqrpotFk98drCDS+v6;(TZ>tOjCsX&J(Sz!elBMYz#2As`J}HfD|&^jw&hgiG|XW zLVRPmYOA@mzuzc{O)}Piz-bjdI51m!?-7qNH6ai{b!B=snXtJCFW^y_CUuXHVAKiM zFvdF3?&D!~Yw48y%CrSv5Mq+1hNRLLgwO&{$%7S=BIPWqvWa4DhGeYK@FDbTg`*PU z=g;?_EUge*Ojk__FXezck<%?vfH^yihQu9=Hyaq5rZ+n>5Q@Vp9f662Ra!JvT+*qN z&$4YcucV%K?+o~HC1{$SDs>lUR9q`{czf5;MLwwm=Q$j}J=AfYK0H@tm{_~@mkO#f ztkRsRXxqGWrd{>`U3L*==TY`s(xbdZR_Q#P#9B=<08_C|uu5l4Ekow`1pZt@o6-cG z<94G=^Y$jHr86|PX(uqXSV{sJ>PvD>U%6JQiJ z^Bk=D4c$s1gAAbNvvVWvMZ865OL=FRUZ3Hu2>%7Bpac3vj=X?d>M^|2!k_bkia!6g z6KBaQuhl&b`zhI{J{Yg{p2NTANhXo0o)PNCmvarTdUQ-(;k4VckjcViPjjr}B5B7~=iPbJ9K0pg0) z0fE13iLtK?^|%AW1(*Y;vpXZ58SJPWE0i`UVbJxq&|7OBvHNkp7po(PI_+{!TE*CQC|39{S^-v^oBIL(lsSs7e!*eK#-fmI=8V+e&)x#+So zs1jd`O|jw(VISRb4|rjM#tIwwf+pl=j^ckd|8qnhbR!zqp9hSC77C$Les^ z2B|4g+I>7&b-L1tnb|)4tH2Uil$i}-b?Ozm%!d5TzN{__{(uZA6C$LAoTl~KLVI|Ch)7j`wBLrelZyGq+x$R%WUE22A0l_?sR-XjBAK&Q zAeMP92}jTvz2IjJqjofUA=KK{5z1ibgz}5g2yE;S4G8vVHJ-fDzl=r`yE8r;-InRm zgZ&f+{uMqUC6?YCBPDR%L_xjC30IAn=Lty>v-w9Y+il&p$P9@I7I?R*1oGFq=Lwz& z#m6r6%rb7v)P~>TYOmNGYQ;p^TcS6WQkb+8V;tEcm@&>@>J6o)M%az0=3wOJwu9a= zztLaYjFm28iU7t3VvlfBE~-RC)rPqmlM$B5vqP7B#I3#EZKb@L9oAJTkSZwnn}UjL zQpY?#w9!2>TIegATBd$``15G!g&Wx$@#g$re$3D!VA3i|GEBJ%b){lbL|Fo3v;v^| zp&;G0Hl!IxVuu})l>+t?g{q-cV})erkJ%fdT;^tIM2@UxGhm@jZp}xyIo|c^ob$=; zKMC9!YJooJTo^k*xN3hv9*{p&uk`0~JyOg7g9QU52i7czk~MR-od?Z-$q$ic%2F#+ z3l{1nHK1KLHAz0tF$WkSVbWTr2&p9GX{&#PYwexS@#I>29idrW4QBv8;Dd%Klyam$ za$UHvO{_u~kaMnK3d}Saxk4KL_YSlsm;y&19ONnB6iS zY{C>$Ln0OSCQc_O$Enj8JzCQVJ-W^K76t4EnBKNKNE0*CnIq@OA5l(D?{Zdvabg6j|I#DjsuM(P z!&PR2gw3Kqaj41&{1~e2DOxbK*A%@n^?#V64`^9z$cKK+knc0i#Bf_PQ+_<+J6@0x zH@1cE65MI8rUB^WK;I$q7Z$iv%qoRc7aoG4LutlI^&lxMVXugnyt5KS`dk{3=%IM2 zj1lP?srXdG96AuA(}`S=#g42gb;oj?G8Pw=F>1KhpQ2_#T{1fsVPd;&I{Tw0a(G9T zfe)g;PZoLJ*jOH@WnH>eI!i2hDF#;NRJGXIn^exzv~P|oo1%xaoybSQs&jN=x*BgM z2CIq?UJ6<5YIvHJWYg0Z>P%VcG&@rwjOa_CP*lGd1|gkmZ|4J94doIIA^Z-aICd)G z6&?{waoaE9f)0j?JR)_Yq)sIj{@^L*bt#;(Vjfgii-{oYe6Dd1sxRL_=FLnD+*K_8 z*UIBCzCAVz^3F_cmKHzxgrB8xLZnXc>9Gh8r#9_Yn{YG|8qUHoTi1$#o^hoUoIW9&et(W@4VL=UAmq<$3t|s%oL>WG9 z^udnRm))vxdJNh0MU5AbjYt9h)5=S;CeIrAHYcn1E@0IaW>JAz2&V$yT?{(} z-S-!g&L*9Qg-JYaI`}twu45w z+ZFnpF(^~h{-Aq}Uc@&O5_?ZYPgKy%z>oB*aVdsL6>W2?1?SN&7)Pi+)C<&z<1GK6 zVAW)h>LI4e)Dd?6b5&ydZnLl;hFxNNQNRp$Xp*o{7-#fFvfIZU#)*QQvLwoUY?gQJ zVwTaWn1emqSSBKGRD86a82SHE_Ac;I7T3f7CRt#Cz%H^%fK+3f+91?|Mok25fZPxg z76J*jTzp%hYf39ZRzM|e+ywLRuz2~QwN+cMt+m$Dsu-$Z0+>ZmE^0LhN))QIF4mw_ zi75Gh&&=*7D89e5_mW(8kKMM5FSMP(JzT@dQrTeYq{@% z0u%TF`-v>pLi0~$Nu|*$(eJDtU)UH5GEw1Tm*2yKxQz4;vbTtgbb&K;q}2L=^#y;F zg> zD<21s-dB+Xt1YE43$ROkBh-ux`sAfpuobylOI(=K6OTbGG`={D@aHKaFQ|g0ye)IZ z{)XU3RpfzP|B}>C6!z3lVAIC%R6#WpzUm$>t)lgW;KW)>n}&cnwx95L5L+jb~tKk z!)g!IYl`~EJ4Q*4tjwo+jr_N4U<3@Fs_I_;kNRN`J?+S$uB5^-N1aikm(TR&g!F~N zT}wRG{rm$lW>VjcQe38^{uvp_hRNsDzZ6$mPt4GkL`0v|_T4hPe=r&dO=5^BOmib9BroOV#A zH9k`!|LpZSc36`=rhi7baN%b>LXD}ex>)Is2i8DvZAV$*kodQG$bLz)>srXZiA2GAtXlA;-*-Wi>&k8yaZ!_jF<6&O~k#~I45SZw#K#b`FHca z&*S*=2;QJQ+{KNkRa`%bhi<-KgU6m-lwr^G+AB4JJhZxRW7)^zUpNWm7o>culX)MtfKWJ*BcZBRXqz3616mefE@MYuf+!x2#y`sk%eMM$213Pb5cTk z(qixTSh3`JA;;PKI0kng7R4EnK5c*7fn}w$gCBe7>3sg&A&CrCp|-8l^oVs{B8Y%6 zvmn8#9M{^teky0R3wLb{s)=O%F5ZZt=Gi`#o(;)a?o{=(VxMRKH2w4+k+ZBq&FlWi zC^?>T<#>|6qr>yYNvlnwv`a%Lpq~Doc4hf!4zqb)c-{>CRxFwH+q=!%saKn~3-#Np z6K|K9xBus7`t5Cv%%}41Iz+aXHZD=GrN=YN21bPEx++v&xh9CapSwM2Bx(`S0gh_H zEPin&CN7E#%aCE+#cJk;T1M-1v_4gM8R!CDWmZy{vOh51p5?-va4HG{z-9gvko57y zp@A)6TMy?l$w_(21Br4Cdf2Cix4(r-rq={ujYAgi^T)gT2mZ>7_wKxuDLpb?Z_e1g zahNdhfWNDCC~>e9bwKOjg&EJj1^-;7W`39HJ*xiW;V?MBCYjH@IoUQtj&`3VNj-1^ z?LvEPkj03slE3m_ z-0A8sS83;|N1WnYHN!6VM~eMDUav8)8}#dMx?cUtyj~!$$-Q<%uDbU!NK4d@-{N$B zPY;Xt7_P!;2-vzw<~~6o?uy zB%BPfvBkH{o_`qhp_Wr9T$ZJ#(TahI$0sE*-InZAIraqp5q~lk927JVA$FphtJ-*m z6$2g*H#x1b5M3L^CM4}jZ$)))fA!Q)9qOjHOtKa60MY(Baw2k)mloI9_~=a9$?3?x zbJsr!XF2B8cys_F%ay1SXbqM(No zStWW2`F$Y%dwcvh$ZxPoq(IOV!bJhEJaVrqcJ*rJmiXHhh>cgt!`1>K$rU^MA!KNH zSt@KOz6pK7_4eFFn5)MYe!Vlu*T;LU&AKz2|9^JI+Fi3StW&w`ZU`;*M?{pZCC5`@ zKGAk>4$=c2SE%3rSX2wr!76p()uM6$yhcn!hBly4QeM9lI19tYaY9y9ydr=P+&(OC z+#9y~)b0NQe)O~jo3@LHsAfQ@DINB5u)86~tw%Nkr{B;y~TufIUz-Bt_ej( z6BJeY_SWxc<@dTv`>N2dSE*(9YCnK!ys*PvO=se*LOsaEe5=>zsQk>YElDd};QH~7yCI?BRHB8tXhS0i~skZt{tZ;Fid z5Klw33wghfD|;$|3DcF2lvwZ$m}t7KsB}tVp`=F-b16eL(+UiU1ETgi>BDTsy3#pO zy_BI-p=E?#;BSVbCOur1@mY$;-SBT_4jyddcKVa1Ghcyzu@4E~gqT%5L3LY8dZ9el zYKiYeTqnXB4dU;Bg%@KjNSClV5Rl=bET4KTlMN|?dcq+1)Z@e1!#Aai9|XL!i~KZ~ z2yEn`lf>brlp5;k-Gvy$OOk;1Sk)Wye z8pbj!J@}j)q0D_>QM<7!zrn;>R^`Xj|7#f3bK?}SiOv+M+xl{ZMeWxBMB z)7D|EREam()FyCOGbGfsPH&lkz2ujY*vqg|SXU*h-2RO!L_?zPz+Uo8NuTiu_X2r*`Nn&{Oe_oquYTVWFn=y2_wl@{6d-r+#CKh@0G5aEW%~cDk{8 z($#FL#`2Mo;%vBru3kbU(#S@w;iPAA!NhaRIo{ywYqSsMK#cLumL`>Mqg zRqB)LWNV8Fi2Aweiu5_gHxLwH%2i5!?y;H#!y8Ouw0i9{HeEba0vq5@1e>53M9&YO zN5U#Oy4JnO#bj@l+W81P`DAZoqTZ5mxL+`BKcekYHTO%whe7(Iwl08!yB4tMDUGSl zQa9ykj3e4PBYx8n{U7~5TKv}h(Dg(&&@B_uKTMp{p=My=xg(Kbg)6VAstDJP0?nZ_ zsU4@$9WmwoIBFDmxgb$dQ4aqk_og#kl)ec&Eaisg&dnddmb4(Y3jFS?e0Mg@)A@ZA} z21+m2Y9b=4vLSU7skPcnYzmU2gdr5n zr7+Ms)MvVtDKXfbx1-nP)1QJDqbUdq1!cKT$Hgq3(vw1um4r*Z>i+8s1ldz(S&oEw zLQG25dI2~w?Y(Yh0f^hn-Vxi3clTis(;HMBeH+~n{@%Ch?NXhgKEK$&pt#1Zug5j+ z_Ts-e)VcFGHs^V*+EQu$v@+#y8YX?Y$~2m#9*Q?AfL*YhMuYrOFVEG0-SMNp$>f0O z0qfdv1nl6@5h~uc+Ub0_GS}*72OUflQ~$l&Vf ztn9d(<(Fe-uh{Eu$9Ewbn`m7sPTr^-p+-ZvI%fr^$3^WtSil!@2?J)QbM{Q z_Z+p8NF)cfOPG{ABW3l zcLhpSSVB;g&*%yis$2Bsl&(O5TB{Q5&eppL}%k#Pdx$56fpwBPL z)fCS-yJ$2ZTBPivQ8q{}yDN~bw&?=dxY*iHDXon0vxxk@sFK z%u=v!BfF*5+k%fOBL15W76Jh zhWr==RS&E(4{ziN`B8I*VYkMPlSR+e!K}h_+P{J0@;ICX#}&23aa<9ZyNDL(DQeRm z92&>r`|>pmH;8Y=?(flexlHsw!zw#KFud+ju$Wd+JK{PZjz!ntkx9Hvh*=^$o(?}Q znO~t++>$^)-y747)4J7KWj_I-0}O;_g8_xMo|i$w3Jnq%N45(^0;k&BE<2ze+Js0` z3)@GI?MD0=r^roWcboNA^GQdQkXP;-ZNB_%@=Dh0lz3n&;}{nFhk#&`Rxr4CHAmsH zrV&j9QOWrzO%at$l$8=u$z@vcDx&qXO!wAY)&pvZvZrI=k*(?a5t^on?dv(^@%ff` zqFJX%>u}ZyaFBhS(2%l7b_Y~?OJhrnXp zpAlI6PQ#1HhyUFVI=T1g^*g{mnKE;1_biwv3Hn$($SNK{OpUOXr651pdRUyBmJSxEld<>TzD3i1!S>&eC7 zK-$%*e%3#V8D`Dsy2u_LYbxI9O~z(xU6-mg%WL0*yYH-G;j_HIrX+V23cjb!Q<-yr7raOHy!GV zy+S^C^~bR+_tw~(-R&STp1>7oK~PKM z$P>t@l6mu~sP0psXv|CF1-VI*Og%`iqpnqh>PdIQTo&Fs8CwNO(UnSUSf2{j39vcE zo2SI;jJ-IfnTyz6p{;Ci>yrvK@!A5JNzRi@Vuyd9?h(ZS8>w|Ip_fwm&I zLibwk*QfBx8T-2~YGUTX0_glwvYTdk8}`?hVBynsy+=*Q$VE!ihB&Rd)VY_iNqC@D zn)=Dg^YzK1BO>r1L;X7bU>4uP{Cit+KZ(JAMmN6l1earN)H^7deMYjzE4;GEWA^*h zeJk}cGe{4E9G@#&HZepmh)wimGO;Uf)?*-|bvAv1u^KJ0T-uqk%jwa}dG~ni;g<0tNk53LoM_mq=XmUkb=1`VScL8l5LoF%c#f*X zeW616gu5c7r6|v;AZ*34Fg?B%5&&x8GoF07hsz?zVi>FaEGc|M%4@<#9>%c;sN<80PTk5o0Z|BdY|$xC~*8e#R^MN zu}}+dZl?lRv9H?rHoEUkQY9^LCecJyTkCnUG?H-VEOjq$t^1{#)zRxXb!>CfI#zce z@Hle&9KGb7sPB8tqT|3 zZWY~Q={E8^19PnvL3>38c9B-Y%~CiJw4RYgw$1Hb`g#s&3w_hkiOaOA%X5!lDu=~B zqvp2u&QXpE{6Vw!h<4xfJa{N2`g^ol&*{PFWw9G%qQZ?bCF=3bn)V%P9;URVykqIt z`NsoqMr9LQ$47Lq%D1}Y+N^>uP*WR!5I%x5+FD54cM?z zR-~(NQ7`DI0_Z6A57h5z>FP@>)c2Qa0?C?tS~0+q?^UU^cnQR=CL%e=tA~a$wyme! zE7sOyzp*z|;92op(ClvFjrpa&@aIg;VAi9c1iDKG5%ko&uoDz~(5>8`smadjwLk?cd^2##Qk#ZQ0vB;392HI)AfDN8h z!g^6LihInnifFF`$;YjYJeNmxo#U23xOE7v+K)tcOjTpCbE9kb zM-Fva+M%w-;$HqQ<>f~|j=$_3CuC*32r>?W^{hs%ydQsjun`mpIoy~Hc!E^JMY z)5merN1@yBxR&|S`6S9D)n)%mHKhoxj?l>9@k({Y`}Fba@&@5YC7xb0twR}O6_PlJ z>a&}8rmb@DjDqAX5t3IzE}q6qqzLDaKzfyW+|pDp&P@M7`2Ap}eL%OY= z*1g8Z1gG*&)%z2Dw$-fW`irA-Ely{g6U`fi%5xXCaHysyIfp;Th7sgYXt%%0{@xm$ z#@>oe}5!fX#gp(y-a|-39Q-8T{Hv18Dv@%`IHzkwZY#A5PiN^jGkeizKG(vqYk? zqZM6m3dIQ_)AIQ~8E{dHZl_1GlkWYF1?esbs{|kxb?Ec_a6kgP3h!B{> zmFsnRfbu$F^NU`$irT_u?ct)=ed;3Kbp>7zuV}7PKS@!r6pqzzwK%xztNO9=mL*A zh$@TIl^yPQ=(wZlf`?u~6x#G>$ES|i=S?RwcRFGnO+#+sE{cmiKkqdSfAMoiY=6`3 z6py{$^uo-4J7TXi{Z;N-n>Nbb3r$PquBoYBe*WIHT7DjH`mOvt-1LC_+}HG?l)S6y z_jl}a#MU-#mxs4DeJ6p^VB2Tc8&J3#L0wraOPv-J$=|7y2(9q5pcMcbSo{H6y*%j5Mf6YWgpOHT{?I zo~HloFJz#h6`3i4vGyD+=`yg8Qx^$d+VDarC;^6VO9et%wse-@rFh63wVooOZCU2L z-zrYM$GXo~v6p>6vEPbuAhc?o))mApr^dZc!-ZBBB&^sw<_(5$izguVR^^ z4bCO^Q%dZRV3h>^%M^KISvHwU5`9GQJ;y7CdnE+L!%hA}Mn_)dL>L>xexj7B1pK zZGAfCvvLx*Ti3g+>z&pZJ*1g!K8yyv9Be4S`y~doP7f;Z{cnEu67~@aL%%Jxi?I5BekeR%TE|A%-8qC`i<#|hG-}Z@jSBwfDw_%N*!1w)Y-SD zAk>*&b9Sh+e_(2LfB)oN5()NSTE5OH5*RBol}oDA{p0DiPd#s50Dh+aK}T$8bzlFb z`sE*zwR&mUia8`YRP`{uH-G@^IOmU?4_m)o^R@6l!%s1wGUKZ|A{uz>O>1ZOZU_g~ zRjN5-A@`1|yU!PyM$Le5**f);a}X512n1XAk7mBY&*TZ%bRv&2WveNRHv6a=LqVx9 zf?six7w5S#`zKadn?_NiN@xW25pEkCsIWKER;7B|+`Bh4Oq5n7og`6k8gjY8ys5W+ z|2VGP8_NEm?Ujq};hYwGt^BQlT%K@Fud_|mq)k%A;V$i1b^)@x!ZDw%uD@71dYSXm zK;Pp0PXZs~TAzwTzbUvp*VKz;u}y~w#nGxRKO5w>beY!%WdK}rlAvk8)&&agJTfM7CtDT>mwpAyR!^`qppwa@FG?|fT zvMSLeZ)64xMk)EO&|-Dl1P=Ze5E^l$2MERSspu1~77{B->lbFvl1-Ckmt~+I7&E5% z^DT%!xYH`YYD|vxCQv*9fD?CEP_ABznHit{T zVr$&+iZC-sky<1HmCk=Alsr7dcoCbA7qR(xxlJLI%14m*P%=Wq8;kW(`QkxWGl z`v1TWf##d&n8ZUGh~Or)JyksMh(mc$0=7v_^(KNN&ZwOxuoL*t5!({S6FtW76Z_}H z{y||~loLsLKsf7J?Wbj{`&X!4ztHSjOj|9V*%~aky33Iw*@)*M-jJ}61(K`^)87J* z-0){mNfzEt;^|c4376!cGU7lqIa|U-nb<>r#_l75uvewNdlDuzJv^^KtdqqKL>-iu zb0wM0{NJLM<|S11M5fS0ub&lcY80I4Zn%c68lJikBQ15)zI2gv-WueEJvqm^t)2@p z+MGPft{83oM&Q=cHqO?qBDS(_)kbBv-othHw)^;7rH0h>b0pHKHe4!)-$YEKjNuX{ ze%hqS-5}Am8T+^SuPy0crGBriE1b+%50@s4Xf8QZZ^>>W8f|NE^%dIIV9#wEdl=CO zQ6TQ(6nQ&5(v`utZgRgO9+zW~>)9I(Lfj;_g01Z1S7mqcapTuTIA>>_hLhFDQG z_?#YO%9dRA59Ep1rWYhe=dS+`gX$#%B)=4`i*(?s8w$|mMR6hP3eTGro;o|&^cy|x z)}JZdwf=T)y4J7Zue#v;_wa`#ONlG`D}BNtqk%v{Izf&gc0jsH&lGG+vR$9r`%A4Z zQ~5vduX${?K(TCw;?WBt#aStRu&a_Z0Xni-sy&?GM%GoHG5h@(vN@)q$eHG=AT+tB z>jqbae;G%PU$O#L|4fa5#tLo2yfQ0@SHgFtGvnw?FX`c_K@Orm+2Q?>60I&g``mFZ ziLXG6)7H^U=aoz(^XTb0k68RrviG^;`UXaJm&^)Jo~@4ASY}PmQL}%DRD7ShIPAi> zX60bL%=TQ@L=0ZD2;d%)BRjUX`_N`TqFzM}nb?R$$F%&Yrf;z6IMYk?6zc;Y@*KoA z5yY=d@>Ov1c*q}B1(zeM(P^ymp*KxV6QoStjdPXQ?-Ed_+hwdUoAhF`*OO5GZ(0to z74TPAT~D){WmiPBZ6p`iNx2)G0)X1L9BQ(mzuaw>&4mqBzmBe{PIrATo}JcG-QAGN zD~R2%{w0P?v)Hm~XKT>$>D%%nDVD-oJ;hZhy(v}+CgZM?caba5Q4(Bn+^O`BFx zHLV9s%~$`rNyC&5_CjY?wYxzR4-C@F8~p(2BA(oFEfUms2pO=6+82i%oiSX8NklPx zVgwGBpHL%M`wQ*FKU>W*?X(upa_IP&Jr}UY`W1k$lk`q;UU)@%RoBul)jt7iK6R-& z3QY*mM;s#a!+eD_#|18?-GPUkZOcljUw`@`q!0Gcz40+-KaD4tfy7c8LJ$MXe?(1qT^5X{`CWBw#6aN_eO@WYvpY&xti`8d_|RU$Ts- zEoGQ*6}!UAJQa90`utDvx=I~+T%=>3VC`_!RXe37nJd#!lK7w2@6+{rbjGgm)B^R+ zeT0lSWKW$T+PC(vXLGKUXdO(0J%qi1DJ%mVunbql1L}?b{lPNTbNu%TUbyE6yOSd&a)!0sbEI#X#G3%niGOu(u)s+hMokG z;~i$_iGEjhYG9Jd?&unt+!4es^bwt%#2Q(0+>*$`3C$NBB>21BMZE5pfGf%0Uh|Bk zNI1c%!28%^Y=e)Vl;8}%9jNCr_9)0$tuZ&z?^B%)%wZxc)Kc?MW;Cd0wAdMamI6KT zQ{9n0^stABuRdF7JG;-Aml{h;?LLi-61QuVB=!NSCK)@P39U!x^Aw8Eafghk}7o9@S`9sTV z9D!k>l~{ryrVvYx!98j^9l@2e95wGtkm6izp)GO2%SU6oD0smskGPlg@8+^(A$kUA zjZ%+5r8dMD5t2jX6^nozt2rG$;ep7x7>CbdxqwBfq1Il;DOo;6!}Tp( z+jH~A&K*5U#h&$VWO?DMQy?3;1cEQkk-Umoygu2Ymla|zkY zX;d!>azc^WR$iFRj=qon&+mnTj<(+Ej z=6`pgIsRDArMVcs+}dC72pwf$kVF}f$cKe$QQ|R)f_UIj^AZn6>IYe>+&rM?G9$&Z z1#3w?$j1hSB8U0XM|TVpQ=Lx)`_9etsqdHyI##Z~@2BWoM)9Zmdp!cRo_`Qjo6PW- zfEV;h;-21364VpX&CyK{9Fl>5kT~vZNUN3liQf1Kwjr-I8DM>B$b`5Hg$bSZ%YAY* zHuTdoAQ1o@3miEFE+xB#vdugxF0>NV`C{1u-$QWRDZJKtd6n_$!iB+;) zG(TZ$dv5j6kq^5#<))6ZN^%4+{&BY$V$Y~jQG_zIoQlIdxU5n|yLhoi506bS(A&Lz z2#Ktz0mEvI|3CV(>d&)Ip$D+(F!aEvM-w#Wuhol7r0i%-50HWa5lWI?vjJDOz4Pm1 zHvVcd<_x@vu^`5KI!da_QzbZw^ZRxZ8q1cB6PmzaXFgzHs zomUw(zr=ZLHhGU%NfEqhP{L$EE{oYnHa`wVn&qpQMznEm)NQ|z!(PInHdrh^DxQp# zRnlTggbEq-jW6hrU7Y-w`B32gr&8jyV}PW(Sr|i0D?g!?da^xBq-J#ouG0)sIFH|+ zk(~6cPk0^a7w z4BeXS0S2(@o1BSdwx;1KV1u({&9FGh(ymiI&_@G#Y@9uVYOms~oeIl9 z5%K5mq0&p~f~s6yn0an&pb(_13)A5>terL6$MvlVPh>s_%)z<{d$5=(kG&N-J}7XJ zaZpk}Wj_(L={9fy=-4c*JtNzj=5tN2@;}3bD|Mp3BibOS=xFuHsJO;h8qdn9ZYSN@{aC@ zQNb~;IrU4p0nQ)bht#DakCQ8{L%YqBgarL@1Ml7WY@hhK_I^K2KHEFZn{%-QAf+vd z?vrBJPUP3=U2i~@Xi3m1PUP|ZbfiEFd+@qX@>w0h7c@s7SY$?mWND_yt}6uP1Ik5h zr;~xWLlVim!g^C}t7M2@&>mmqED64!(s%=iv9Y+XeVYUehXZef>D6Pt7qU;J-vwG1 z22*{jr1JvKR()GUj#aM>kQ7PoUS_4B7f+4I@y4eIyDTgMo7I<;M7U(19lZk3>1n|b zozDZ||3n?>-Y~u|DJ8&Q>YqB24twugc_>$v=Al5#m=|9`I{K~vGdo9oBg1^SO8v=c z0RO`TyjZ(L^LDjILTft3?9XTHf45er`~1I?uh#3Yie@^Lms;a#E%u~f_HMQ5DRDZg z(<}Vjq}*&%F7{3wgw6V4Y&pjjT#hwZ87hgD9*2-yjzFcWq%RIWNDI%iug^n%m}6I^ zhrUP)U|blO-F1C#g*tGS4)@8uA1S+0{Q!8z+_Yn}lV++@$={nOR`ZA0Tlw?6$n#?l zSw}Yu$DRLHO#~aXPNe(I;oO2yYoFM&+@m1At2yj^QAmW)$+XQ_YGU8n5xdvw(9-)- zg!^AIq|L0gBi684(6E-=ZN~J|5xrhkN6%kme7dyJI^KgCk?|V-zn5K*i&jzI#6CY| zKMNIxII+{Yq*tprVT4+~L>2kOpN>0PLEHt-45^~b^-#G!V6KPB^`7pg^p%-k)JVA1 zJdkR@EfR6GBO9nLP;28)06_JRacI})Ije70%etS6LdKdPFI@iHB|25+*&22lOVYJj z9A~#!tzQw>xh3EQdkf^RJrvwXUjeuAxz_m6_9PtxcN@LM@)=}4+C3sQGQoo~=EvNP zvQjx&v%~`v<2Dzzl^(zpCkl8m;>T82ahkw+)xV(W(g}iDCERsCFmD#9Jlmw}>Ga{2 z^T1Z=tK@PVT~R@`Sw6Mt`SZk<((PFG6GQCAo{ST{gu2Ba9Bn_ZlZhUGpQ2}sM^JE* z`!P$|=8-h24({78C!h$6e*>YG5EbjgBo6N+fcJ>1Xp*x6EoQpxt~1VO znn5Wzc_toxJYF7oP5!atsWpR0Q5X6m6j%>= z*&dzh!_Ri>IM}9D>A!lm^#7?%u>(o;HWfwQtM?NJ+OVbN_iTr_c85||%8MV&1lqg={+{>iEPE!Cvzi*}5Y;KZh zm1M})D#^6xWu5M< zT7ta(Y@gnZUz69*&9Y0ftzw)Ea=Mo0sEz;gRadxpiugA67442sRXIAlV!e&bKu!T1 z4`x`!vl0Z~7-sX4*?1|gJjbzo0AhT+%-5YX^ExFv4`~0htA}c23sLu>_ng_?$>alpX$Po5n^l*;@%vaPR-sXIdbkaWAD$6|J3mnYW$8}iur zPVaqCgjR@=2xBE?exOcD81v(75}&acEF z@Y}?uXHM0Cg4|sy=?RBJ^{P!@>H$H*Jtdw*MJ5jr2#z@kD7LyMWwrlcqGsRC$icj&}B-fP|=elHq z;ksgk4&lhQ`@(dY*=9>xlQV-8_e2SC8CMM*6-4p&Dcnoq{4?hTmW}{lj|~(aKMqdS z6&{}jb_H9?QRJ|&FfQfsDE{Txnb~g7#CEr5a@0L&O7>9q2(VJP;!ELB!JMO}tC8R9 z=Wu&^yFKN73FOu89yB=`o|_49rxSll-sMokJ%|E@R3B8_7a85`>`@hJ0x#k9p8GDC zqcv-6z+01HJG1kTy9-Z-=t_I2S$Y+{P7Xpg7wH;C>)8WH(_@f>jrl%FEjxV`AecYa@($mBA^rP@ntm`Y)v+~CDlh?YRCCDJ44M$a~ z-|-UsHCXx?0d+gauJB^gLswf!3>NEakIN>RQfE#7&{o}HVZq~j`#oqh`kTOYvg4Bb zjr`j(*{=z|5Bc1^Dw5%f2qkL52&Cym{`*3H(O-?!dTA(7)+LL7IqnS;``0%M`%mhM z{seL`r0G82v?}%DYl4r{MFxVu+*_&$ogY-@Se;-_Q<|gIxu0v;i&MC?=)vHG_H}9q zz;_WF6S@9Cs~r2<)SGAUE{isZq_xjox_xzDYe(?CgTXB?1iu)%H2&f(cj+GYhUqDx zFD`S}OWumm7dN}>MZpv7oE7GQbFTftjUB8Z3zUr}6>Ir1l zB8zVs(K!Yq)RduJeRqdTxcbU{>va?&F=d7vOV;-MgIGEtmfyz&Pt60@^?$-7%*3tY{ zZRzstH2s`&%B!jwE>V@W$?hLQoxKA?n||(Je4T8^i&EUrPIA^A{ndPjqi;)1o&P0i z>PrfQoqs74L7rA((%>&%0S$*k@=AuE{xtnr#4F)mFgF!5x(NYa1KXk z_2{v_j_5fcB<9b3OBF@!;jPZGW7!RcEQHVGQ(c?i)(xE3vjN0S3#cv=3XP4810x4U zTzXfZd3DcHV5*bT`nPxFz4LQh1Jid-5 zm%0F-TZcB1#az~#WlxWhD#|IHcW;<0cGhNPXF2WB*6zd@&XFfm{jFd&`D^01(W-@W$}jfE(`3~FdSbYHhkl*}rbd!@smCWrNDEY;eXvenvw znVc-l8*e0C$2yv_H-BeMui)6rYO*$G zw8@S-^JTrt(jdV00jpDBSx>mYF67($8 z*>7oI0M^@B+CO%&wL7%iT~a00)qgwmtOK3iy4}D;kO-}rGBk$ik;Y@aR}XA-6&K{c z6Zp)%VM_Mc!4 z<)k@>m;LB%2B;l=OmKXeYZ@+wjI`GAPX z5FC*S8hwOr1c(NYxYD(JU}S;_$as-1cqMeBSHJMc3r$8wCV0&YWct*|kQXB9qDH29 zk*!~3$%`!WLdRta-8f3W$dMO0=7m@$@{L^mVzj)__#rYutT1^oPQS>L7kQ?J*l~*J z2Ts(ZQR~AW>lIjShAVqvw7M<%Y-DslHh5}a*$~IK+qT}mb-2TSxN0YQXZiC}!6lC# z-QkF}C%DBP^oCeKyoO|@r^Fyf!vDG(1ym3{_h~HYA3u-#a30$O4LxzR0=vRqxc{&^ zoNe`$l!oXa0!b<41yM>98!t`L7{7cu;o1O38MUFw(q(U09blT?fU|2_1^X(U91pkD zyJ-?c;I5Z!alizNFZp}jRsr|#gPw`$$~k&$b|LxsxaP zo$gz-19WfqW@n!J*=FKJ4Hbk1u@U%Xyd|k5o-*;~TJj@{H-p<#?Mt3Y5gHZe$vrh0 z;qUZ z^$8l{J@RKa)Q|B_J6I#!Pta<%M$yHPkwa8;*O)>d;P*6H|# z{Zqu>`6riRHIdT7N`xMfGJEma8PPJftc_SDOMYM%wb_B!Q#wZMAzq1v2hgk2`M;8m z2in!o9U!2<0kEre6#S8D4@@h29mTh6b)UwR@g=cittoJyucwu@X)vJbD<@ey?1AhIy0@x|2igT*wgK(~5~EHm z9?(ec@*xYohVCbcTSEQJJRBQ@Rs514S=$?n`^W07Pc-T~Ku(vwsqf)t^s%V$@qw~q z<~$4>(9M5s%Ju#>tA6JTVwN1|C-8X0j%g0wsw3JimjhslkAy!<`!tU4Z*7l_v06jB z+{KlIC$)+?)bS6`WGapT*j7s2E;<^-`@x>sVNG*__6Ik5CKlwM2z&-WK?23YS)@Bu zUFi^qd{5jR5kF;FZzR?h*#@*bX9@o#7!F?OvevLAgqrHBu{;L_k;l_OC2u_`00!4u zB1I%2ork?|&I0y_Q>@4qOcuv2jX9QGBA5Z`JQ7VPV?>(0L8D0t`fSF+K-f>2kPp`% zJ2P&_C|)!L<{e?7yZ)YY{#Q(bUp ztjn5PW6#Sxt%UT33iah>G8$BP%i?kGZu;^gu^yJOV zDHc)XBi_ed`db=af>FjCQ}lG5TQaapogE(?pQ!8E)!0Xg8BM@n<|%n<@huwf9XZ|; zF7vb;PaQikeMxS(sIAJ{1qZZ)uwAUJJ<&UMV#bnR3xD$uV9+jWBft_D4hyGevH^Hw zbG7%A*Lt7$SMfDc&u_M_3CC8rV(01*pKU&M7jfjmWo=j){AFrM% zi5lnO2{(kyVktw2{p(xoWxjZ>hr2*>e@;p46`2~(*zu%|djLwt_84}^n)$kYy~n=F zi?@9JJ@NuEN6~uHEriDt5vmEZB5>JIyN|I`3{U;ir;aj)P^&W(amEhWWlfc8(V_zU zj`ry3C=yFDqvjO7y}RL89HnDEW9qC+!*jM_+*Vbo{(xVSEQQ-DYqI-WWqTq;>p40A zTzA7|l(zzHR$!Zy48%*8wUPV5Dtp;3+h&zL(WCe|x_LaQwpn9vq*C69n3gwNqwT=c zm|)qJnPNPZY0Yf2XTEODTp!xv3e00m%@qBc0+J{Y^6ycGC- z-!6JuIH{uNea7^kkbh;{i1&2=516KAq!eYu#IwtuS5p^X;;@cc^Q9nQV;41v-l^yb zM3;b2xQI$Gx1v8UdK%$Uc+Oj`6A3+l)99a&^7B~&sc|N(S9uQ%!|veu;7uoSXkoc$ z@!BqHjubV^oW{FWQ6~_zP2DREmOZV0{;LA!*DiWF8l;eXx~M5q^s>~56g?q7*8Iop z6|d{A9STo25IxbQK75gx3bf&%VPHHpQmi4`X8F^^4zW}H=?~JO$HXyNgL4F7y?pay zVvI06*z-V>m{|ScWuejt>GeFQhx^+S_j}C!N^=j-gKlcExe1rO&MtVA={LvW1<;@g zV0SwFYQrlIf4iLcSwLmX?SK3;9(*K!MneMh2(Xm8F@7GQzYDd@Q11;CL)IzkMj0RW zRd;Ta-%)DE%AqI-5?RXbJ8bYb>3+V&BKtCfq9VnbT0b>fRgd$pr@cwFOLSZ zmygEjfg@QxDZOJR5yiQtQ@te-MPQI|G}v=Q#tf-NKm|O>r)Jqz9($$Nnt8-p(ZLB{ zbc6$5huje^)TE?X{tno-`D^nts^$Fp3VH255{Br&C?$oC6i1@lOSAZ_%^|i z^4)oSSA~DmD0_3xk?_2mk?%?$RH6@=!U-el_QLOY;1x`N^53OD51!H==!rUM8{OG; z;kDAfT7sg2=&N%1*m7pF_GVOR#Qr3HSQe*?^8=WoPU%+kw{+WH6_j3d<{z*5PI%U_ z;Ib|u2NxYvH@|B@s|||meY^Z-OGn9`rmiv1V^0zvmk*0k{?UtvIWXhD(!7b*fXL1M zu(rcNgC;TP=OaPP!9rgUonY%k%v(|SyVn(@^KSr#FYdbv23n==NWowL+ws$Hx9^g8 z7wytxk&1K^`SsayfM)J$L6GoD8H`2q<2_a^$5@PoI*1?1v!=rvkJrP+536>IwKLF*Gr!%t^7%iW0H>Qa%1%FOk3Z`QPN;r+%6_R8K|(sX78z&YJg;1==q6r0r<-y;eVWDH6lQ zPG&L(%!o+}e3&Ro+}1A{H_XH+nBko0|KUcP7{#U=BdN(v!aTdKEjjNto5xu%`aX|3Nn)fR0&~MI?o0S!N!NFN@nB(aW-J*#B)= zvcA47kFwHcS+q1zFNx+8g?C~KW->}lWO2(FA9Y0Xye@7HYsW1??vI@SlMR}cP|pMC0g+(qw4dIy6qqj`L&o*D8$ z^zE~g(frQbf4v|7W18e~E&)emx>frjCi#Ew%vGm!W~Awi*K}q8cfen7Q-qD%;*ZL< znx8RL_IVRC+5Wxa+|YJ6;XUci^5$6y7%J^$+9zYWJ9EDw>uDgQw~=>Umr!YbBcb5ZP-9JFVpSmi^k+Tm7tfmJ@vDlfFkXIbU5t@5j_qo9ww z3D_;{?y0e?&bI~4R4=mEPR6Xvuh(5LWNx+CGD!_twn z6CLSmIzn9KxUeg5#G0c_H;C%DbXKAZ1<5W*1S0~f`tQr$=}_1Hhv;U6JDb^NT`44j zc#%kW?@|eZX1TNs-71ko81dc9Z|YG;FXi^zH_sb?Ve^c+I3Z7id|W<*;iQkf{1NC4 zcY_v))cVY$$MmCT86IX?JQ8EXN1qd0!+GXoc5P|=@ml@3H1T+pCSQ2x%8$4k!n%c= z#O;G}TP|4#dZ|n1qb)1X(%0w9^%ayFs*?lugQWcY4LztT^&fK)tcBdsCf!{(j8pr} z!`R0#7fYS${5RjkfNPt1sJ$Z0^H+-`gVPi7=VO?kWc$A{53AH#bD_JfovV{YY7#|$ z8E-)3(LM0NBaEgSK0hBXikNfU4P)7ev`qAz+7s-p=V_p&+hQKm0WAFiJ zc-7r-0nZbXEzzrMy=!`u4BKDo-n9>ACbRoS{;*E90G>lrE6wO2$qx{HX{+X8BKlwMc}H%-$mV(H1I0tDZ-a#BH23 zcAvBo=g2gRSi0V53l9hn^SaqfGE?B0`epo9MMd{UB=2W5?mX(Rg_1D1vt@r0cMkBU zKQ6@L1!rj7X-~yiW?Fy3l=ZQv8Hx0JE2l%R4m9sUdQX!-Av%Pn<9ILe1OCJMh*9Y% zP(D-*F4f2}nTRo$IFH&HO*i~m;XIm3LZRfk5QFT1D}P10`_}KsZMmosZaG6PXJ!iK zz65;@we(jONOBj zCg|N8lLHyhJ&**>zR`Tapcs2n9CN#^X10>X-qDR*p^DWw$evUXy@fzap%r+nG~B^g zth;1s!S(L=b}A?^sBxrTbN4L^DP&%SOUJFAm52DdHQ(jVB4DT951 zyWt`#MrVlZrYIxq+%sZt%e!gQgmk!7`?IA-UuLZ|1F~3e2MuBXM;xl7)9I(_wQBfR zfu;{`qafjIGxOXU0AYtj&6D5xy-W{qA(okWAtG;ZS6Ooi12XJJpxvI&OEXZ{6j1>}KQy&=1S zK9i@iCAz`CyDR2f@pUOJO(5ST`I`!*Y9B_@~AS@ZBd}rv3o`gS!5I%)NcT zkTZ5gDcgRrM>V|^uQzR@uIN*(@p}FJf7A6g#Os+FIcn86YOIUb80dda*Qh_GhF8s? zh8eLMdK8epmkF0>>S5VbBU~w^&S(*j1nlIRP04Ar~Wjz}ooLm53cjH6+J9Oil`sfLaJ=xt#a{C=4 zJa^AUt)un$qV7+2_{%-X4ks4%TGM8AVo|R$_usOplXvVkaUfriwW)-&9ucpfSk$5B zo(WjuQAZ-XyQGjaUMR7G$9n65NTD1Ri5EI(9#$t7ZFhGeZ*(AIh##x97g}4>?w6G^ zp#j|+24XC}<%Pyw!Pczc7sK2e-f&Ocn+NIH{#jR7L2-WD;sdrO>C!ZEv&?C#3E%iI z$CtV{T%Q-(G>%471JgCxIKa@8XKH#feKjFOt-CVhqswNPdA90=s_Z5Z<7B1P@mOj% zJrbA|{rtZi8=qKvL+`nC8~ z%y|7%H}=674KRG}G-x0J3?G>LI0DE~&&JE`j+aZo!waXB^Qzk@7vID)K4J=P6BKA@ znZC(g)bE?4T^esU0r9_xw`)%PucNW6fX-7#duhCWVzfUn_Xgs>*k%TKM!ZmBkg45; za@4=#g+59%Gm#kK+vZ+c@~ZU|iVrVvgyAXB1pFZ3g;x+BP0qkNISC7vT!E*ibCW#q zsheKZOs)7F*ShrktR-iMonM)^a}sY!=ISvLP^Uxv$uTq`X4UP#kWT3;HQE#=LzRRu zvKF}>7Hw6P$}rEv2&j0m2pQGGB15WDUEB1xd%h5PlW1dm@Vix&bw?iI1Hw!t^AjDj zC0#F)h^5)0>*-pWj)|1obus!L5!inJE)+Z^Q_%N#jiUF1U1vHHGKD!?gDcM>R!}%B z?gf4cM_re&L-r!YeN@!cQt3x})PC!j;#+{{~~b;KaUVz#Q;J!sW7p78TJKj<-6 z9p*Q(O7Yi0HEY!|ec!>~;MSMO=Ide<6hF>`N;Ui3epo|_`!!nislMhueohNGNJA=hi`gu?AF8m93_No9 zoC*#ie;0rCA_85BY*>Pr4kC+>CE5J2;3DmwmneC`6@wki`Y^9^ws;)Gy2Ii5;TGL| zj2IX_|D!$B^>|5=4bLYnrU+Mvmm(zFAX4N>rp(gxZpFMVA4%x|mIx3_IUn^XVnCt5 zgNtML=H^3`7kD%^?B!XJ@mb8TxcOdU*JehFGvjw>VP1kY!$sk8r|2CnUc0|b&;+9A zpN#AcDmmP2y5GhV0vGb+)%X*!xx)VPV%dg*-< zbYmG)_PSN-Ezy?XBU)NIQ*p|D9thOB+q)9oVm_olk{@LcL+`dCiieNG`fj|p+N-v` zpvNl)J}T#YxR6@Hi)FI!L>gbhgDSPx6bTVKfmDUbcx!LJl!S9JMhffDMb7+)B#d-7 z*z7ti<2q1nW?5&OsA6_$W~KW1qmxAG>a~WVGqJ9ccq=1&V@!E%^Isl+{BfW9w4=ab z-KVw5cJKURr@MYBcoj8&28IUP7)m((r{T;-^xc{HktIX0vQz7i7RY7^MZ}gRBkGp& zd||}ymM&+wDy8lVYI)qDTv&H8@F!9e)0URM*Im3r+Y~ne{%-fg?PHn|51(DvX^Qug z;@ex=3GK5}-M<-O@;-KP%LmSIW?sv?&Xg9h5vfE4>#88g^eEGZaQYRY7H#({J;r31 z38}e?k{k#Esd(^|541jP9s0d~PjDx6gSyruha}P!@{3;JC)DxzdU7JM`dd!~5 zFVB~R$@mwL!1ukt)CekP;8c3D=8RA)af;M}b&TXBVcW#Unm+o}HSu-;8__R>p(ClB zjl00-H94WkF_D)C1jXawv0QXG7nus-l4JRwTamy)n#uwMvwdo)c@v#P8` z+HxW_JUK;!a)CRfZC+dVp3KKs{^;d^-bw-aAG;@Z$Q5tL#ZiSkyi37>|76I>d+f$WT@s^;F>PsF76%CGGZqYC)8eTnkEl%;s&rhR=JlS zf(Fy)8e-4{O}nuXakk;=PCXr*iPJn{N#Ha0GLh<$8%YN74zP2f324-hQ-o+7f#WzR zm$>rtSaOyf_cnxFLx9-mt%wxJHYa*Z|EgiQ58W?+w$OS16LO`KW?pa`9!6ge3m7}( z{~mFbjaBIRz?e1yjlH6-&KQD!;(s$7{xuRw@UId{@W-*8r+B2t&mU4*glk=Lvh2Tg zzXb5ZZvtOWaHG~lFMzc-7@G2-<%ssyHJf8h*B3n-d5~wO=kKVwkh!|hUhJ{NeZJ7X z(aBNfwHLec&$2!Vd@h#cpXBcfycO$boy2RXiwTLzLH3PNnE_wEmI0q;I+89`@$&-j zhqBjCA&@&T>~&f5+sG9M-Mw?fr`Gln9R~8W&x;sPwVZIas8pX?x-pI`!kPD2Eq2j? z{DVvAo4fv9rr)|0i|$aX2bWxh0$jol5DVDFai)ZuKuf4k$yHE;N!Ot*5Nl=aBX&bh z9#6$8wBT||0;U3>Bj>bR`}TI?tzNvn?t}pKKQ&NK*lX>vW*$acsWW@jk%dCnxq}}P z1c#jsTmWS|noMUgB`s1d?Wt*4krt_%eD18#RpgbfvgaJBP-)uPf&g8I!$4HK$)rEvSv7z(nsW@vAdM_tRW~?$LuHD#OHvkdgRj#%>pIn zpZId&p81VPmNdzkzr7~I+G1Z;w=(@?*Gg1CPtq8c=J`7UA6h#`Y-z#Ranq}zPtHl< z&lO|HE*PG3B$9UZ4at!Dv(S!HMV&mKr57(d03IlrKzPOE7VaMlgMP(0`ig> zYK$Bans6!BhjZvSW|Ty5ORr;)D_I=(om*{CU?Okv>ri~%`C&1JE+buw)2Dv>te)W5 zJ~F$tpl5w0L7T|0jF(&_xW@TJf7#3S;TbL=hXMNu(24F1SD746SE1MBq>*4|=jXp> zz2Tnl8pVbX$WYDHRv(D4Yg}TaI2Tjc{7;vBwmv0x?Ax6SFS4~8Lt?%&1=u|}_cPu;?#7FmuL8s*;VYf_N8R;;Bdx&U#yOwb`6ksAW*6A@1F7!D$7C{R z9_X(82YIk1|25rjYsC>0N*>avmBY~zpv=DtkHCkxuv1n$GlDCW!)=MBPyRff%Z2^p z%be!~(kJG>Ws%hVNMM`w8XIT?>(H`#=BN1iy+9#WI^x=E&rx{r%{=h`F?K%iQB}v{ z-%VDsft4F2Y80wa)7DhqE0MIa1~GyB<4+)fNwfu}KFg0%+hVdSSP2GhLUMDtKwDAU zYU``CkG^MHR3s?>l0dTosU!v^AWGC!@4Bb~tOx3H!th09}_QCRqz-mvV*;WM>|+XTT}&hr1I^IHHPh*w53DO|R-E#GEsYxP%y4l@&sVb1llr^q^UcUq(?3U=d( z+i3)Cxi-`z>#ew#4W;V%AR1x!S)l#+qH3fnZOb^Vv3zLlE5V7}`Ps*jmMZ>}TJ6uk zVskio1^PMIW=({jelBXRdWkQVZ;DxZ+?voZ8S)Np56d$y>LzFG(`s7yzCioY%L}x{ zdtK&D;3?Qcx{lN}^mt@}_Iek0@(*hzcytFfSyCOWwu(2yrmA+RQ)_&MRT;eNla`d= z*R&Vk#>c9s^6TdG25(sM93aUI0ruRi5%`qK2 z6=9xWGcNLs=}11|kS6THaMOl4+}|AdN=DnjAq|!F2pscg+evsLK#CCX5NqkjlOsR< zV*1-&J5qe`{`P@Gyc<7HyoZ=xF7%2kjZf*)?2XvtS_yxw?@5c1{{;>b@y9b>`L1ZoA3X+v!JfqoY_rF~67!XJhhzVNF zeVl9Yz8&i)B!spyiQ05G)*Q8hljSO;1cX*`F_+t}jg><=Ak_X3{0Gg`K!ZnUER7I@ z`X6}lN#05~uBnUpIxq;|N){c3(&1@2o(vJ*oZ~%}RxOeKeN!yoS_Uy%24WnRUe?nB zF|=M@@vfj>R_%EaRCYqI>}@Yg)d^BHYYHdDRBJ*bV5ga>4KGOXG5fT}nM1`@r<3Ab zwm9L;B8U7Mu`HTP;M>ll<`0wo9WSWa%RiA#c!+>+1*<^#!^hMm0qG}!an2KZNDW-i z-_d0%O1FJE0H|?^JIQ-7 zt{GVC1=oSK9_A6vfKO)72?-yY#oC*hO($yg02u&cijcx78v7zrh&)fLzQ{&tSC9=_ z!*8HE02qjCugFogLj{=T6knjJsib8vUSpV^dWP8s_AicM z|KfGBQI&MCNnOlM9|n8cI9bsd`7-TyI2%SFE4)pbJlPycUcoUIlB~_3M_H{(tHS#B zhzf@FNv~-+;WCarvdK)7O{Q{zIk(;$X_BRCoXBXFBL23@By&W#oO1khI6!Rzzal@> zUVO{TrWAP08%`F^6L`!McFC8y^&S-g0Yrq4O2uK}d*mbVm@j+`+)}_7mN)_IKQD*> z$`keFUgyhhrA-zLhJPcqZVhh%i7E_8*FTivpM@f^&!0e)i$@THhDXb~c$ndnf#TCF z_zDSh_o+u(?Jk;zQ7R_Pz(#8|zvGF~F=wGHCgU~xURr7`@Vdjh082)45GX#gPY$}| z`K5;tkF;TOp+dD_-yrq#enSIKa%RW3MMG-M!?!B(nnmQf{NvKYmw1cpmEUW$E56c97a^??hyRx{ zP`&pW6IM9QYc)c-Y`2leoZ1WM+jxn{An2amO)p47Bi8q%HUw|WBkt84m(TyfIWC`E zV9a}W0VlEq^Kv8v%ctJYnq5N2_G`G5A$yy}HZjNYyEAs*KZcG?--?)^v0|@C8WNJh zw~|6RB+5IsK(Bh2N8Z3?<`8yAt;Bwuu6WBctrf zL2Z*lrk3Ak5(8_m!cqqZyR3RFh^h7A;n1Mb7QS3Q+Ev65g>OaBGLIL|gJ@YwCBTRE z?Q^jch9RPlcx$fQE&R5$+bTIPmkL+SWia~b2eq~5WK<>W;Lk_NfY3kq9v$3CoRX9%HiCn&ZnZ z?bd2Cgk9(N>P_BIzQ_O|Foh6S#Ktji{%ix2 zcVfR&hXC@n8iF3e&=q{u-6zMTBorg4Xr_7e{2nCP?Bed=Ps1BQfzcN^#wcpU{so5e6=vPW4ZxqK%h_lB?KT{M0DlWB%xUL1zfC?DmMk9XzJy5vck_&O#jer1dlpl zb|l&5d1*AY3^mk>(@!8%Y5GWZeo4E^U5aS1*Pf@q;G#1TV1#V)dl(!e9RHcI1?Qq$ z0OxwsIp&LFs#YVuwu39#pQ{vjnIRK!6Fu8-W2iACn%@<GGi?s7hLpwepr`?f?|jql!h|L(vV)&C9@c~ zjWx$W z&=jf#Iqq}A(rQGT=bwjW=pM?;oD7-;!E}$nE#&Xu77{9pO-10yr>4R-OU^-a&P4q4 z8o`6iN9DzX<|DEWoB(rpI3R;FxeL&1-}~+ju5c%aQX^6YwAwIRVfd#2si2j8eejI^ z6Y9NGDO`kD{9VD$aE;UePYDF&7-}SkF1mFoYfX0pcBGpaAZw{JyA;`0j4YK_uR%zwbr|=WnSflM4!B^bn=X za87)l7dXTcy_QQUnXmghtOwAT9U}!2(rjM;Od_|ge2UV|?f|Ix{Ec2>w?q z$Gi%i>mLSV%-P>cB$Wq7cpMJzP?zTEKIk(JW%S+uee^K?c5S7Ylu*X3RQHLnM{p*y zQh#dsp7FO=pc|>o2!BPm?Q0n?yIZxNh0vD#Y`3;jt`pVZ`7K8TtW0&ue9A?Xzr5lI z1o@+k@oeTw8Kmidm0^SY91jPkl~I04k7A}33kYnR8{}5%FI1C}x4MBBGH|Y`l%Z06jGvb03I4hg z-R5vc=WnmPDL$fj4;6Pw>%lwxFE3dvt)A^rBT1Z>VjNRBRBH*tqAF#!&hFI z0ujcdtdjkiuP7zIOiOjuDVK9QQl6GdVR;nTz|Y8UVsq!rp!yq^N76n;--Ml-;)Oni zCbs}T#J2Jo8BQ5-5QL?kX89X8>-`s1Tt+rW|5=2%jMMJJMMg`;KL5VTSn!B1|F?`q zDOCtM+5CQjd!K&Bqr&lPllS?XE4zsICHJ>Vp;th?70-mqnTUcyuO)WViO&=3QRtQI zkYzSO^I@Yxtl@!Tida$ek>2jX3urRa6sJ>ECxzM_HNi>|9L8cTXUN4<)tS`vqz@hXjggisxCCP`4b9DCI(p8`b2 zsDQcFXeCuJ(^z#W(VMiImGlFT0?Z+i9&t5+5=yK4f<{4llfQ6Q=x&j-&}C zE}f%VD6_v32U`U{9f~pB0a*fo;xOPeRbtQJpbpFzApQpc4TkuKkH;aF-dw>Etxmsg z92W!(nP25pu*seIdbWddZLRP?j-p(8#w3<${lw$1NYRSVXvO=?E6_812+Ah-I|5f^ z-eR8|9HAEQ$9BFff8~&O30-pB{V5cMfE~9fVT97l>WWJW!k-m8_1*4W5avTK$j?g-=)~D}X;WHgJWZQIEIlz1N3|(Ox%eZ5FD0hOu?qpwR%^m9w%K_VrxoxdhkuJ!UIfynLt^r@_|AitV)0b`( zrN9kj;)EOUb98;tb*(vL-Nxm~9w3`0_)ry_@J?YDaE#DRAV-fh+8}PBPPP*t!_I-V|4x%ht9u{`CJ6^ zsVe@L>;(QH?BsvtCjDZoV08&wV};!y>&q(f_!qOd+O^^~GXdN0hj5h%7~GqQI&fc# z{LrS8im7!{5gw;0o^(brsU*HLJfOu1|PMcg}T14%NNR-g)W58`ONR{<)e@p)B$g#HenF zNHbmpnmKdI6rI`YE8-J1mNJ;V7+zjFfj{t$lkhN0?GXcjyfXlZke7XCy&5sQP>~A* zG`K|C$zwa2E=aTP@c3te*TY(IvpEdu=R?6ZjwoNIz`@mmOI4)KX#VG&5!cPy%rxAET2mUB4{1?sp`xs z_}G8mXbrw2K6_P1iErUNzYy8^8Rr2r>S#yy{7SZDeNR@*Xpj689xrtDPy7!Z=ak=k z5AVc5zLhFVGr?aKjkuH*E`A^I|Gs6KwnpraW+f%m z(QTY@jCq!$n?%0sB~=iD(t&jj9(Q9dnT*EIdXQD=jjc*3QAiB+8B}Im<>(yAY|WY@ zX^fzjwfWaQ@wNF3`WiOZdc1k|I598rfFsP^*~q%gy^(k0IvC(r@h9`_-@cekywC~u z&G$*%(6RRH#XfG*#^Z+Gaw1*lNImJi z7#&L}fyFp8y7OY8u&x)xIj`@n=JyjV&!v{9nkeQ3kQ%$dm_FgFdg%NN{cN()x#W<3 zez<0-gTU#&!^TS;XZ6#`OKz=x=OMZzHj%MgKYwvxgyor_H(e*Lz^&@GgfHVPImwt6 zCpi2DWHGh}-+=K?e1p66wj{m({PLSbO@`yUyGd`tqx36l)l9*{(Tfp=e#Jh(t>(Un zTpo~AW8TPWyXpAlF8e$C97oC+!odgLg{-QJRcMorzzoimfdpKUP_OWxGan&$&U5=* zTXSeMb8r3hA#MEY;$N>ZeTc{K4bhu&ZfU}r5_|`$SXIwAW7TT@T5Hzv*ZzOMBY@nR zhvn;BzREqA_=U6Bd>kiCuh-Z;%_#2CYE}rUTde!MnNhLQVOogZsObhz^|O4bme*az z+2(hKSiY+pF2RK;;43tC`;TFTz*0;jHp+6NrTOh44Zh1UNC&_~Vyd3p?b` z5x`mahI~^l(`Uc?DF?Fn`0(EyWtNUMv6|hII{LgT^CO({tg7Qq^hR?YIv#I%$(*v; zvry{VzrXo?gs4$W%Qei7_}U?B7dULgLLL>ip%&5ZMdKEJ@Jv5JXt|YljXm+(Ux$+s z$tBWxVSd&97UFe237}{(FQ|(|Zjj!*n)HV4*xhR_hFB@w?zFNtNyZB@Fq$@;~|%)qV5yg%3QX?TSO(L>EGh3LH@&FDq={=9Q%GXKF=cQ zo**7&bL`DO9WIc|J}iE0oB@asc0WfAGg|?d`TArIGXgP(nFeIF0pI7{t$FDhAy`I7 zgQMoy6I9C(v{v&t?I5CQi`=ZR^b5~xoaZG3S@=}>d!=7gs#QK>lTA9WM@MV5V|a#x z0+OwE-SqVN+9gv`PH7Lhk*V10#MC*dnQ>_=Z)42jQesUG6(7QHnhB#ZHG4zpcn8X&3ZHigapxwNFl*b_)ThyL;GudivHp@cJ#Nn z&LI4ZI^mr>pJV@7jmWd;hl6SOC*=+ezaAb&p+!@iclRjzzSDUZKEav8A#i7XtvFu8 z$c^=jftQO91GiRt(WF?x&GCy>;=LVtbvQ!WM&lZC5tDToXRa4`B1h-kBg5529Er(c z5ncNP&&AgKkovvReoOt{Nf!)kr|@Z#z{(cr#2(oq#b}s#kWR&#-wM?SA2)(e8o><~ zUryM?(%0!S`_;ovU)NFzmYM&sk^dM8=kgyeSv17%I^?_@B7IEuWKZ@IS&8r0CmNyV zXreXKxv(-?(|<2LylKca7Oo-{9KHpiUfo%_Miefn*S|xxSePz-IfX6H8z2ge)5rB{ z!)Sgl5pzM!Zz*PZx{TTYgM&ZjKMbo(vhMO?Mx5c{!pZ?j(KGr*spCT!n23Jaw4^YH zE`phYrG8ousru4^pv1vc?FZ6r@#E+tol$i$t46Ti2(C7Q>#Qot`FRtsC{k|k>~hLT zylkoSBd1Pn8>^;zhs>@^t6c`Lq5SGC`p10Kh{n&#ujcCC!zK31`(&Yc>uVpRsMGfK zv2It>1YM1a{hTdO^n$zm9t_49-b7?RZ2z%S=EpcT#~v30rILCwLvr5`=c4?hGDF{b z&4E*L;Z*OC&Isum_;M(}Y5%kRK()uKplSjtBth?9S?A|lxg zKlCWJ(NCxWe9N4lwI2!+cL;_ds(P(P!rg^W^AO4Tpz5Q`>Eoc&$A-389}4S%UrKO& z`d)bH_C9nXzfZW)nK_KBB@2&I->&@O^{((EH0U@MsM`^VgKtNCf+uDE$ug_7Nz6L; zFe7L>$TL{!dCu)W5xBy7K%y(xJ_ZV4FWHMdTJ3+!cXd0(Mm&?Cas&hRPthX62I0C+;S*zt0; z;k;IJ3H9~X<7M`#zvnPuPvm`RZ6&S6mj&&4S@dCzHt^qn5tD0){c5dRPT@0RGN-vB zPj-=4)8)zt@^FDgz6ZIQ?GBNoo&SVEW1}JytUDlDMz!8@u*-^F zR^5Ew7x-T|vRB?Q(nThf?IE=yjMGA6Qy_Xh)Nh;*Pvx7nV;MwMrbwjR)?E&XBni?N z>LA80`2i#%-h#k|B|^X$i3YA!tuA+%5Z;6{5)viRLy7&fPjX!0$E7ru(i8Tnk8{Kn z^Vyhs@N4$i2D#9J`8rie0QODT%V8{o{olu%rKvO|{zV1-EK;kWmvgsq7KgpV;%7vF z>V!(KzGu9mE~9jh<7;$($%@l`AXr-y;;;V0J#KB~0lpcbj*qO=vzWVAoc3SC`;}j1 zq7k0E`-$sm`4Ze+N)+kAL2HhEC^470PYb6~2H%={gfM5EgV!Ss%K5(=npoe2_JX<1 z(W|;$ftyW%5)YJat0)>RZs)dgzTMzq6g>^;H;?bG7^BtA1XGyQ*EjjA+5^d4xW%*a zQ1FmUOct*ogMxn8ZXzGU`PNIVaRRGS{ys#te+u)XnuD3Rnw&_*d zU4d_rkfMl`O;ZreGxw7Jqak%D_r@BswDBhi#|4s?j6_yh-{LQ}K@4WwHsdsi!IN($ zFSF;h2P&lrg;+h4POwu5NKc@zN@$e)ggZ9p0o@9e0Vt&vB8=n^1x@ zq`En^G-SC2cjDJfS0NctzI0XO=3;r9gS(}?q+MZGs>9$f!}}F`V#n)^i~>=RoP-yE z;tq;C1^jitk$Wzh-=v0)uTih2D@Q~OH$c||bOM@eUq^ulsN``wj~md=ff0jnX$}Q%>4ESUkX&+a6`)YaK)8NzC;eT_09fLne0h!{~=Uzuh;A)Z$tiZZ{)v$ zOXh%sADZf1=9iXjTAsi+)$%wKrk_KJ?x>=t{O*QS)EzwyS>Ev{X?`b84slw_b(89> zndV;!uz~dY^N%n2CMrS(KB=E$6@zEo?FK*c_ZyRB=%{a?#XP#lZK|2!9S_SgQ?6HC zf#tlGD|pVx1tA06ptK$1;zY#_#!D&JzvKs3E*bZEUhq0cZ!X$(0Uld~10B@P*|D3e zCIF{bH8G_rf!UC@(Vl^3F9S!Ks%xUbJv=TEFRVHC3vg4jbPv0=9`c5F$S=9h#ldDz zIm{i0A^Q;?8fRob#~HW+Sh9Crds#` z{=}cumdKO&ab^a>K`y11O15$K# zlwcC(1LruMtOuVo`c2e(tgtRcQ^#it!NR)n|2f`}ehI9*m4+eMCO-~z$<|aM*nKqI z6#OGg24BI-ud;7MY-c#6ah=Z=1b>tm!sL8;HV z;^}4_E4)kmFYbm{X;1B|{KmzuCInFBa8_Qv=;G*QWB>9GB%HwIMr(Pw=xm~w9pCd0 zS9w|VvR*z1$MTV0obyo$K6;}6Lp{`%+|CL<706Xl9L7Pj-*DXJ7CttD00qin&Ir-L z9dl5O&A}N6AHG!)$v{CskieDV&*k_hsS5V%FN>bm6M0Fw>5N33C;<;htL?OkTVYDH z6X`dSO#C6IES@ae;uvt?W1D9Zt~Qs9GVdB)ZZG*jy5lBFtc^L**W&sPr#$gGwr&Mn z`;X|o&{ba0X>8&troS`=+`=e4z1+5+Rp%BI8-#%nJyRan77%GTi*lC9tf-K2?>CX7C*z&V z0x$|wthyXF2$GChbraN=bynRuhQ(pjs_R!@9$H^0SQDr`w*TAJ$iqlW_^_-i{+`i zXuq^VI&TaF(=Qi9qN5~kW^e}uqcwH%TB>YU-`rZAY|S}j0j1f4>S$aOK)D(0 zGQZXNuCc^Ru#=fS*-cZ-LKw(?!yQVxiu(FP^O>HPxCSW0-Xq~^w?~6b_K$|k=<(5! zsG&9g!~5_SHk(iqq~kJItMQYm`1?)W$vENFZRDx3uUtZo<_%Fa?bNIlAw86o%IohJ zdL%DbV%^jHctQGpQU0hpDW9rStm<6GOECKVHdSk_)Iy#Mk?u_}u+RE?KiSW#n&iAz~XGHGJ+Ny228vVDX6URxeaJbv>n+LO6XUr@AaH?x{z_`XE-C{(o(Gx#mwVxvc^UBG9Y z0&A|~2j}^70O`;lL9BnlI73d3Rx|%`qfV~5sdHi7VwwsisR1>G4LPUC%a| z0|E6{BE2bEmbA#njI{!QS?)EL_^cUjC{KIpq^3`z6V6G8IzPf!-diYU-tRw2F^)99&s~!qV-A<8uQ2Bw)ixYSbAHc|k4oZ01$zj!2WWb8f8;+yN$?|A z^IP~=uVd@lWG`bSviHR1{YpS(!p!_9G2^F*Y@?Pa3xuul$7Jjisju5woQU0VALa+v zMZ>5Rxr7zXe5GO8MEBTZ4S5q2#&&u88}6ByIQA&dJY$b}-}8pFEurKV9N6{fgo;;d zUjd-Nuw1=0C%gD)@VUqcI33u<2lb-lnnz0*cjWC*(iMX1M+N`L(L2-lg!7(EDp%3*`+ENc%^qWP@^v-B~>`LO*kw0B{gnFwalM%fm&iUPl+ z1ma-V`-WN+sYF}L?}=_|r-iLelo3z(jrg_NTI~JqF=u728~Z82oq=c&uh*x`?cR4~ zO{I?M+6c4D2dIHr7tk}C^j)$Hcz207ut2=?GQEW(yezVHg_jm)vd5gqwrqS z*_;alSfvXW!ddQyb#MC{qZZasjpEl-E75#Z=3Z;8`z;^jpcDb2h=%di>TRvLsTw$3 z1;*yOc2+a7Jl@w^Q?i3wE5C==p;)}SaUv|;Y*e-Bp#+W{o$qna1)_S-eMtNynq|Y~ zl0#Kb{lhoOWZ{iLg7?y+MoZ`WEHC5n#&xt?kb_vsJ@qzsRkz;frhSz1rJE}@QZXc# z;e|8)b|`WY8y|eJ1&0)#~)rBE_HASnvu-ODnX9#p3?Y=n&acMTD(~Q>`;<(g)jS8J$R$W69k97= zCuM?TQc2CDybG_VLMX`>t6t|+kMU?-{6Bzu@Ib#u3FEB!kk_nq28p>oHbTBlHRdq9 zN;SMiRCeSOR;`jxUIx?w`J{HFv~=2@l9uagSgW?%*C!iYo!$PzoM19)88dghkvl=q zNqz;?Q{ROY^nQ(vQFacXs+$hUz$wvkreqhTYPF-KeMe^7DhPQ&XhWg|XyHE*E|-ND zJ|Xxh-eZkI|O8bW2`H1A74T_V}VS1F^+^^Qc53Z7wx`PXiP~i&W>soy|wKW zGp?VGXe*!oSSA`MT;X&fR>hMP4La0T^8nO#`bFV)DhTmwllp;Z9*XL4(J2F>y^ROrCY!2~YkoFX_p$jE)bXEut9WB5x99%Tt*6^Sjs zTWieQn!wt;HuZ^iq&ec3xm&EPM;fjU_kb=VxS5to`#IC7>NZNZqBCJ-R|vj^biH_# zk)G4Q(Th7~ZOtEfjh~47j<)4yR5#j&L&Qeu;Snp+nCdfLgCQAZsnPs)%E)eBmJ%)Q z)^~gTyUo(An!b@9BfrS}Bz!yDFn3B`XGvLw*C|F2{*WKM%2lXFlvhh~98<7ME%W_C z@k)~7E@w|%n36z?dXyu`QogA9+Bh1>wVE@uhJ%c;1W9ZkVy*ma8*M0&EhLs-)%-yo z3*}u5nJ|BEf#~q_a25_Y4p7fgz#>{*@zGFzHw(Rbg~kYJ|VZlX=R;|dH{ zkC6sl;qS#BZx#OQ3jDizBN9b;n!JJH@;4jGQ#Vv6#|xPzXZY7U?;Tzp{*wHf>C3TZ zy{Df^T5^k$FeO^!EcsU9n7)H1mNhvS*+yEk13o z5*>r~=QR@LA|vEJU=GDN!L6vn`c8#5t^QZEgEADGmE;o-j5SJouPw++ESN7Y6GR$B z2B8G%5&JZLZEPCy-0dd$n_RLj_GMg^_-m!eP=8TuBp6pVtWmoNaz{(&+vbd%?5g8S zCUFr1yN=`CVwPoP>|1sMt)5Yq6KQb1;o4k$#~5k53Nu*V)&xud`4bThO#wYzJ^vwCp0_IZY%Q> zZ&!PYt7)@&>lCA;6ti;Q62WNY0!qRJZ{2!pQ#9K7k^WwyoPMT~6I{eh;84gI(_(oL znQ26<*{h`gPyt)6aH&MCMuMm~tqWa<5uv9!O!Cyd1{aHMKd1Cw&Dta#=iAn(TB)Z% zc!w)h6?x`OEai74dJ|$VC6ND)n+?(j1_9NMBrRTG9PWHK`B}jOAye=Mrr~~Ab5-xM z=OX3oN5VAbQpvo6n|DGHu=HS0^M^3@UgJh>%S|jIZNqD@c77Jg-$_2Aef4q)ibh2E z3NpcRVQ)Qtia&+ZL^7N~$v{8J?{RMv6cgWqztL3!i1V5+sNYatDw&K`Hbkp?m!hbq z7K>^sHrIa@*kW_7=Hz3+qMAB6k`9`azp0XP2Id^v`m$o-<#OzJJzYs!7zl|6zGboCys}eyHS*6?-MhL?UQ8x4eX;;A;+1)mY@of!vIYUv6SNJzX-3i%7|kT3-1|bB0CT-`u7DLYMu|sF zVly!uN^O6OX36y~p#;xgC@d5udTY#6MNs8?dcU`Fto+JRGuj{!j5FtWjXv3?v)Q7x z4Si`wc9Aie9_Pp&9l1!#kMI0wr)Xox^eH)^7kdW&#ghbrY9Xd(d&n4Wr7IYM!}TgV zp#qgKk!Ylc;-1d;AiH5N%Cs8luQJW_`15UT^<7{l{AVdgW7rysV%z8t z1o44&Ov3+;cb03|D|LWU?M0CHaYKCzRSS!d|D@p=fU}K%P9C4w+-C6m|J===Wk3#1 zoB#>`=X(DDJc&yf4et{`%YAZq{Bx{@YeZYx6(cMTNL>&Xha(?{qZmqLggsP@>-ObS z_-&cd)?g@3|H>rzd{IvA-kmO%t(JcRW}j(3CImqGrQlaH_locy{BmNw%rqCIXTD5K zBRsxe>p0`zSJiK98c$IPU}+X*MGoVh{lVbQV*N?H#1w8KRC!I~I?8h&;dZmaqn{tm zu^>TIWm7%cQ@s_XAz7TFM2@oubE;ZM^JNL#EPJ{f3JtWE>Og2DOhMpe2lpyn3++dq z#aCKCjVP#24pTj>6)X2`QFgD~L(^u0@QFnF)4S2aJ4+>1AOg%7(9WOWQIO#SX)a;KF0D?uxwk z=?RVR*EbO65cBv2_f^70lzGin0hwR+?I&fYJYgJ~W1oTeky4e`N9SoYF|;ZW(;%5M z(#-o~`ba{yI0|90in(QfGAONQyO(^0SE6Izq^_O$Sd-3yYs9@`$ssC=<8yKtEi007 z&`0|~A<#>3gxnr>DPvxbwo=rS=7`Ssjds1;ZTVK@_H}i^GLI|;DoK#6 zstZmyIVGl8tE%OBN11>y@55A)rPN@yP{im9ty;!w+``zMq+8k3x5-at(|lA0YSyWS zF_Loy00w@LFg7bV9I)UpVxFw<#eUTM2OwK(Rd2=Z8|4>6X*qBQ;D(DMH@!f_4#f0-_O~j-gC($;}BkN zXZ(Hm)>b?cjz}NnsZ))Y^fR#dIkaWYmCuEC1-X%_WXzn=M`2a=GZV`Bud7Jg%sc z45gOrhMb9eO6)!kv$2Dl+9wHXM3X@~JdNeIjWc94e3kT5n2PcJC{7m4iYb%Cl$3BB z-_OLvHEjrL`$bUWMkmPBTl(>-BI5+Hbd8eKLW3C$O+_IH20*;Nnhqj=;#ewfat4v8 zOMBFoj2xDz)k!QeCKB`@jcpKVOs$FV$2{Nmo`9vxH$~kTM;{Z)XO@h5A#>-9cDFP! zGnHNV-(*arp+<9{#GgWN)$ z4lp5y|CE@|$j0NpFNY|72h800xTmaWy_!enlr&7%j*+P>W<4*QkB%$HTq{*FU#Y*% zecmjb@BHM4_yN?u9{jplC-05I96ZL1nR$tY^NqrL)L!J6*Ws2%;d~BmA4ZpC&516V zZ$G)lIatjcHDK48_^C8*5DSPYJalH@3@?@|qDwG)I43-hcQ(J{?d*?HI*YisHJ z29MS-;R-oXuWh2Z5j-eT=`ZQ49+l9RCT+_Bv;5wM)kB3>4)rCNg^M|bpaVzU?KQJj z68)PwkD7P+tjUV~%*E1erm#S&;5p2ju-_O4ABLP z*+}V?oyCP-`Hp_$cAOwtVT*B^>6)oGzpI}n?SQ7wqru2F_EDM=_0yfKtS%H_s~iQG zbwL3(;n4=o30GSu_>nDVBanfo_{cFHHwtoM?01$L|AoMHsiQ_O7FIQSf@WSA zzG}P3P#@0l$Dtl!?7=mW`^>virx^$2O3m45K&fg`q%+_FMLGi>tVq8-HsJ1Q7j)_O z%7AwnCs41#V~AhQ1jo3GPmIJOUf{;i6aE1O#i}E+93Gioq^(dAYYam2F-RG>W?arG zMwrg7HdU(TK}yLTEEQ$mR1OE)mbJ3qkR4l$S1j>DpCofAZermZ#apeS4@usZ-=?1) zuC4l$tf^)}*%4d}B?4@5m$oHYk*5!Vp+>gm^HF!u=-4zR`((2LUzhsqbZtk01u&+N7;*I#@H~g^(aRI zcZbtYgEGx@b|=>SM(iVEW~mbt2%=_=H}9I@e@$9Wp#?tqu1=f+ZF5k z+UsRlL~H6cPG+=RTb^eY7D4Ue$RRdZ!o3-D*G?xwlI0tROk(*);5?UOPzXmo-`EUg zd*D|02<;NjIBQgb|CI6aaI$`MP72`OTfb5WGqY)zU;t)Un@OkKyQqC1 zQb?o{%X5XyWz-NPC04# zc#VkBFH%Z)^5zDCm&IkSZrCG(mQ~~%Vw~*j1l`vMH@V+5M_D36jX9pi;Pn^hIXFCOP@$%#8ZpJr9@B{9EE+ck>-Pf$D}nZGl5BWhKG3)*Yz94DAwhrq$9yHyzeYDr~7v!Nu7 z2E!S&%|;nKN|k%_qzb~+PISl7V5{&anbilXwuLpy>HT9gU3|lFGSyOY@DuA6Q-4_U z7YiA)MJ&b`8QibVUj2Xv&o{|i!ekdk zv=6U<7bne{@50sMZ7p%2Q=H`W=6}@g-3s0w(q=Y?zeTf1V>)@9#9W+WmGsW$#=#kN z6~Y((3$Ml96Qr>#7BFH2`<74F+i5bOSOBKmm4Rp zU#mD}`TT2V<~8_+*86TOu%<=*y}>s_NyxRX@H~cKboI51Jr+^HcvP*=nMLll&!USE zIWvpGb##QCf-T3{nATn|0}*ObHrc(oV#r>SCHKS7?)Kusch#MaT{ll1{4!pUdIska zS;B9MiRg&XMbUsuQ>V6ajiCRtdx2s^;U2mh=!=^zKQ~@B=52>nklXFW(KJm6GJL!L zBrTNgag+nktK$k=uCOw5-uCdLaqM=-v5V1d?yo!J`X*)R~R|$#tb1+cBVi{=IMnYyPCBYgw;P=?+JEzcyQUZ!L6@{TtTB?||Fgsxc z$%lBWn*>q$+m$YR9p4deIg@mD>)q$IKlf);b!UF!4{i-!%2sXk=7=@0)t|pT7>O*P zzPWnS9_p}#!AjshZiM{T|vZVJZ!y z;1HTSY4`Q#xZJHqUv?#?pl9X9`EVJtWzNi_fJo%~tmV-$2NX@s*S4fy0{Z;Y|MGhq z9=<|}->I6c_AUD`tRsM^TDNXp@4 zEhLZpQ7^wiFv&4w?-GZ-CIWbv#aqd~7bhQ~jo;J2&JP8z|K&6latU{)ZR5NV3QOX0 zbtLJs7DqGpa#sWz>Nc9Io0E-GooDH>n^V(qd8ULy32CaW5ywYGRNWln^SdN2&@|)l zWPje;`OEsmEu*{heEs7$$+RTqcV!oPmUTNaCC!ENs9Y~84ePiLBioM3DS;=LbIu`w zPt9cTAmsmdOtKWbQxzlv^FSfI|JYH(ukv0EHhc*q6y-Ea0JbOk3bBUA4g-U%;VjH+ z!r!FsAoeY{U1BS<1=vKAF6{|V!L)_UrS~TXzXB}uEd={4RqZu>IWE;L(AO?v`G$Wc z)T@+l{oJu(V||)Q4S!Q;o%za<1AdoLx*hC6yh?S5@HdI=YrisHZpKYmwy#NuT^N`+ z>0>{br1mWM4xvOUFk)^NBWARi6ep+vwj(dTSL1R!C zG}az|l$9Aj`^qQhUs0vx%#B4Dh@Ic@Kf-EuK>uiTpbAT$c~xhm@0hmb6wG6bXA`I0 zC13G}Dk{Y3R7?|A>a%(aJ|09TAIjBxQ4l+aay^<{G5y+6%171mJd2%oR~odHaX`bv z%YDSyt!>F#=kJpx?5f!3J^>{V;+W{8R_f1bG4iyyP*oH2=1&A#<@e*9@1Ob%{BmEP z_~>n>Av?7wQCG?}bfdUuS2rSd;?|8kmV;^$Dy5W)FPSANTH}q{)2C7hdZeF70Y7?9 z>Uo+sN>W7Kd_;~zC#_M9#LU&Uj8uon8)$K-^7-BLG|g#SI^Fw3jl<=r#wiJ?TJz4bf+gf?|c_oY3A>?B|KzKoa6 z`g(b?u7|(II(chslJBPP8KY<+Vx8KbQC4Y<*Jw}A>y@qrCxVR=+=fX&J*6URnyOks z9mTksJh)|tZLdo)qm(G@LTKFLy1y#Ua!LTCUK~S6rpTi z^E)Yt^NxpW078*nTwkQzFa?pO6K=c ze5*rBuP9Q&5i>?dG7Ah;zl|~%NC_K+q9!&W=Xm~(G=ae)Mo@TPejzo9jS?Jc`kO%f zd5UThnh=W8YF6`AZe-M)mM^X6<+@&XoScf5k}t_zca&Ggx-R*iL zON^z9#inwRxqWL1PsE9{Pn-%pKt*;dVZQTnsnW^ycVek<8Bl>27U zy#vI#N%~R7Y~#?sUb$yf2m1j(wi+9HQ+tjxnd^NT@aqBZwkehw^$I%KIX+yGz>s zf+a#&Yx*A^R>sWTqUR7DCSFPK}UM&y})Nsh|pRT3iH z4zZ1ZP~?ES-~ewuu6XNl zcV+m$6+b*1#%ia1kY$(Kw z^lEi0I00ip8T}H8b17r@-Gq}Y@sL+8k){RoDAV-Rq*xRyl(TEk~+_Hjl+R7UK67RN&k8TV$v3$W^eiEkfNj|t;+V#Ly z5Scfl*SNo5t8Wm+lM}j!mq8H}qaLxLZ0(REcS4S}HaY|m+J)lh~YAo9onQy1zp|5eaOWVmSjTu}2JZ`igWQ(k2j}tDpp|)8GYk&u0+X1tpb3tC!z~ z9`Gdr0#uW%^ZqhG9 zlggvmM3g%exEXv#W{SL>R>3IgiHn;{y+q2r%$4GD8;8ji zMbeQ&gn)Vfx8qq{c}77|s6gnNpmVpnmL^*TS*-=Px*|hE1>@zZS&$`k)T)R}9zg$( z$p>JT+0Uy*M*PS-F?>4^$H}5bh0&EkRxiE6$<6&}t|%ovrt^xE|KLeT%KXH1xCEN0 zb<;!>6^jVhLR7WY3PlWEj<_ZEAFI<`k*BoUETP=ZswWm?C@^?Ip5|Q)CXgvGhg@M< z%Q+rVfH44xMcTwyiNp9mOaJK#?cuV9fb6VLZa=d^x$He;=k?T6Sxn>I&#{X>)%{N{ zbPxBC?uWs*_$niSrd8Z<$rqn)YoDr^D`NsU;UanIMIl#;)XVX(kGlX^A)hG7mP0k= zM6D^aKTyz1%J@(5m#+>$KPt{&Qp5GM6Ju@t7g(FnrY642dLv(a z5(^F16W+_A`=5n`c>vm9_=x?%Z+`IU_n2zL4agZKW2W?&mT8s(B^U+M#XD~Uhx2l~%V{MnQ3ag+ZpCrg z)$rUHWP`qh5Iv~-S^^K^-$Ve{<(`ao<9x=;&F2$@qqR!Rh6908(q7NvuF`uYB}O+F z(9IF%cRU%L&1Vxyak}ch1X>;SjOjaR-geSMNZ1mOz38fOVAX4!<0k3)mICqm(#(fE z83&r93I6ky9{=vZGc~X51RfW`_mn<&YSExow0o<>E47}_f~QGwXEmGNweIlmFFb@LYjwV*Qjc2<-?5H zG^t1fsq#tm+}afRQs}upiNsmfj`{p5FR`z@&!Mq?;~}=s$Dw+2z0@>1^tT=&Qc2PC zQeP{wr1tes2sB3RT>gggH?I9FOCta2uLHi3zuBz4U0&vI3gvITU%lB509flneS zh4R}TP>=U>^U7rf>j@?EtHpyUT&123V%MlKORKHojYjSb#;of?xnrd{ZA-1BE0#n~ z57jhjMe8NmK`1v%`mj{)WUWYj7+egRH6fInle_9=S131+AyHsDr57a=TdF@OUHS$h zs@6|%7DVlB(z;p_s<7}E;vUzQ^SE9;8DBe&?+*-*D$Lt6or={v#5Knyk7Xw8@$tt3 zt$HjIYmbRPzBT?>NWdQIJl=T|K!*3DUK*4Q@28($P+E#CsKM%+SiFT5$3@UKs|ErS z;DeEb_AziT#DsO*vL?`#;f9qNxrEv9LSLw+A!BH_Tp};8?`7TN9hqmYm!jtL09sG zB~pa-^rOLKDB_Lr?)5vQWg_4i>WiUBphQ3Jg;O9>4>f0d(A~)`z#Sh`&=_z3=`v~E zXMBtinfUS#3^!~01vvFSBFQI0`Hzi#S=P+sqnU4`>Pg}qu#QHmXHSdP-K-^|6M?RT zT#e$*pIc3=f-B?|hIq9K)Uvb`lYsoy>dbF)7MokOx?iq~TF)<)fkvN~A=zL3;o#AZ z650u-I??z{71YowevGSi#w^kvA^nr6-(+mE|lwnHTz&4%R_Kx`DVe!W@_xA7Ok7W?5w7_bwjX##8c4T*-&FYIjFN9|YoLAvnc{F&*#rK=V z3{1>*oXva<^Sp!hoq~J0>8Edf7^MIE@~QX&FJF{k|L*_ALS_f%TF-B10ECoJSh$8V z3rD?5=(EdCy%n`;_wZuTH49y@^^3e2OjERU!XDrERy2~%7A0=R-JzTms<{kwbDmZ* znb+edbi&^7eWcTK&T@Jk@h&d1`6RpZdz`fDYoDTZZRc*Ib{$`6|Kpo!-!mam)0+^R zG5vnOznzB7nu$*e`PYgs9X~dx9};M-`j+Eo#H+LB1L=Q3JZJn`?4IwLKC!c<^ZPUHky-$Y5nl6NsF z{6zG5!9{ev>cf({i9}a9qQ62cfGgKa>)J}GW%(wqXkIEHSSoiM94H#}*>`Q3;@V36 zTTL}$(tkc7<2MfXb@)%~U9O7E>K%f0msWc>ALfk3i(IqklsmoJ-%YyNWvcc{?7wZD z;tEfs4A^|&dvRL%mbF7LMmmXvg_2Inp_Op&0Ihs=;eRPw*;47y%4ys8cV5P7sh8nK zq10ovJ0{+)R`UqY24>?w2U=cB%OL8p)jWv@)FCKNr%@}Yw4PYVSOt7Rl)ZA1TFOkx zcMuzXCB4+%LjmiF4ZL>7ILBV?p9Ga*-I*NYhZ}imsv&Mt`z(OXL3(AE>O46Wi#a6fpUwPO=M7kOuu z+f9mV`Y!PH%`z7CUX7)MU|2U)sF|qVA@>>-r;+ORSF&R4N^Uo($ATn#xbrwp|H1^~ zbGH&`?SH>7O+v*ka@&Fb$aPgeGz=z{c22M>bYUMDr&aM*E)z_66p74;Rd*Q~N;$-uw|mS7`px^!@xvEM<;1Ue4`xr%8OTA%Wmb61 z*|>Ib#!Zt{v3!meSu>B&M}#?>eNI)AjZG;GHcNu80kiGs;&I0U#gKm z{K`X>SMfdN%1)A^@r>N)>3sUGq&>82WEbL8k|u^ZCtLAHNKbKIN5VheTfj^}CW7Z5 z2uNBZpCoJdD8Nz#urtPij*ldoH`%JwQ?j$JGFnFluJTkQ_Z@N{a39fIQb^kr4Zdzo z>Xml;D!=}+<4e;XB0dB|_MoR&=1=}wfjCN~{wjZLzwgbp<#)%bs1V3V}4QD?ynFz;CWDcL$1&7`LgS1$a<%{kP zUn;wXg4|RfSUZ*iLiy}6`{Dm^c01>ge1()#!E$2<2(wnu5MAuCU;3`I4T&<^T(8ht zFUkq$^uX5kyJXq!$WsA`61chM%dKzcRNryn(r07AV!*5{1`!$jY&5cQ?Ik0m$TQRA&em5|EaPL{>m0gVf%bB zyNcu_x-qH>M!xKz=1+o}XBIh|PquwXim~}TK<1Vv`;LE8yN-k3AK!GD>jHLLJYRG^ zRrI;6@YCpT-g za+}}!$#v$WI6X~@)6;2^vnH-qwDjfcpI5Z>grX%iOJ-4e;(cRB+>u48H_XWr8|Gb0 z3I{WsX{3OC(0Ou&GfLxIpBd#KG&Owx0tID9E_dF%0Rl-3^CRBL{(ZOoFf3Z3@K2yH z{C5GpR%nY94EA_MGCqqCr_pFen=u7>s+$sDKw;m%>jH&o^^K~a92Wm2ZGHXlzosp> zdf#)M00wO#oMCC%9XIn5z1&1i&iIs|5qy5134MEsF+ zRs1|9>z4D>1&JiTw_&QAD6JP)@7%;YMCkwEl+y60W`0!v0|Wc3GVtfO%6>OHbr&7n zngMTmou?8fe{zb^+V`5)_?-m*oBA=>T#K~Pc*@-?49=;xyu`foHsaU5dF5-`%0#65 zn!V1Oz&ERR{tx9{!5dmv$rpF^&W-Y$XsHGFX1-GM0h&Lfd3N;vh4#qnZg#b zZID92uQ3d*aZ-YN)&FPhZQ!FSu803!vLp*E+@Mjzi<-8pf}jOKB?dJiuONhlK!O&K zTBO_jY>TpsP$2|2iMd>s+E(q0)vDE2+uBE~M)3s`LbE6qL9BpKUWDSTi#9050M>oJ zXYSrj@a1R!|IfpR?B2b1?#!7pXU?2Cb6%SH8M#NqX>H;7Hf?Y`U>=#Sp8gZ8OmnD< zkO5b2kp2sQVg^NDdXrAUpn{Bv8u4A5gcikr#M{<=(qSSi+j3%!n*9{)Ec_@TJ-tcn zdlzP__vUsFnbABEq)AA{aD8=hQBYkprzh=dEM{n7A!Ct)x9nniGCx-`zcj}m_=9I-6}VVh8Y!FI*t{M+I{R*6nk3pXD$_G zU-X%cltE0dR)cJ&Xzr|L-i@D?;&3Pqq=dS6m?psbm!uKIX~`*Pi_`Io83Vy32cwT@ zJo!>biXIK3Mxxay1CU%8RPTJNCo1>zZckKdF0WB(GkTfYpGT$U_>F=}&Gf$nm74Es zROW$7!69)&Gfsi<25BCfx+xo@cWXSRxW7hURMJqm}aAIVd z{K|#={xshvzk%w*YMX-@W{EB>&8R6C*wcBms7an}l^7h;PUsO9A+&)Zhy5tH?axRRhwntSnnl(p0(^@l(uBlRfrYd=X%}yFdy-;~m zFc!o`Q|mlq&%B#ggMXK9JhNZ+%tFKU>$Y&$wYGn+F4yyC@?n&0t@Q%uE!2VlTstOs z=G&rwxxxO;>hRn@_b20W1PQ}(_|+&u_^B!EI+`A*Vz;$)=*KZG2(9dZ5|rgYefvA9 z#UQRNkEZ2XWx{~Wwy*8froGyTWb5cQQ|p09inF87MmzakwDi$H&2*KmDb9ylJhe!8 zQ*^n!zD8J4;98p^Z5bsY5cZhd{~bl@b>b^2Qm+=8BK3l?d`nGL@)_AStDCN~xsMIQ zcLj#eljTb(vaC_xx0w}dWbk%yrlK<(B0Gau?I|1oD^DmfU9CV4fqrJqaOmgy6xoEU z9aJ;wd0@pJ^_Ta4<)|;a!5Q_C9`&2--;DbD1N$Ksn>-z=T-T_n(nwL||It4~mpF|F zH90Q*wmr@T>g6iCH%qTcKBK40IetA|5(Ut*H6h2ES_i%A15z7oT?pi8vU_==9W3hKG#aW%ulC zdM2qnqzAfhq+@$Yw1rMgdZfL z0N`@~2ov@p%0=v8kH&$l^dx-VghLD1B}tHteTVEuQZI-BBtmr39PE(7&wh$fDhcX3OQmT;V21_Yi_=zEG zZ%P_VxN8%3ZEySNg_Jxm+0z?W{7Zk!8_ddp+8J=>Y(9*VIUlY1Ep!tnB~v*)J^A=Ag-Eq)W63IRrnZ7WlHRM_*{FTzK2_%InSse0b?c>`W8jx%`$c5TE}D`Nu+#vLIj~=tk=N$LTCUx;^XuPHyM#4b6DM{ir*1QA#VGfq4N(N%l(tbzepi zYeUFLJ?+O+>#Rf{PK!^A>{~&GPhB~-Di2eTY^eEr!+)Xt6;_j8oABbR%b_E)h?h7q?xLZsZfN$?B!i zf~D*=qO;T3K?i*@bYZ0ZsH8^Q!+Z6&F${f^W7HW#H5EsTkLI5=+rxXUCOwAh1gFH$ z7^0tA)U!qpa$IGd-}8vvS|i1+CMo`u8@tNP zJ8Z+%z-ZRxVsCch-+H;W&EejS9QJXV-Os9WjWE;}`zy*YMI^fqIWcUR<}z)iL;nZl~`EB73pKxO-&?<$jy4)q140}OhT5>VjhJEVagEa=^Vd%U>0eUl*d?4a8i#;^#7ueo7yB{57%dh3%=Hbg02%skk6BG_ z<1Zwv(XUJc0AF%(t`OFfCxx(bbSxZkdLxr7wVZzN8zoT>W$l|H0H%yf2nmT1Gx61t1+`PmD$aLgHhfEtJ%1N|tq$cp! z(k-Rb$_)uNxsMz{Pp0dXP=Nl_S-?JLt+U^{Vo@ zRKa$J(re!z{8@c9`7~A@zEiXhJ^5L)$c%M)L9rrErP8=>sx*YLvU=*dajuRmceG9x znU3G(xuTW+8Z~7r#*^iuJtu-sZa}@1s{u=yb5$*~R>?FdSS8cIX!t-T0h4MVNyGK| zxw`MDWFf=pflnzAts8HaACAr?4v3mdJLd5!b!dy&XyV14YNq;>W+0}C%dCl` zte@N|LuATQU{`-tclG0`{x{P8db6w$zs!QUlcQyMp)-Uv+$8r;mq3PdE8@a?v^}VI zcsnj^$zIWN_m$i$G$Qk*+|I4X$&^>Napg&nu9GibO;*sxRx>kno>}cl6}?J&;%VeP z2=CUjY^=0d)gI>DE12oKUpE>=3u$FWJuA&j^DIKaS6OqtRnu@DQ@_Jt4YbQ~8J4Ma z6`XcqfVWEk_Eo7_RL7+(;dMmD;E<(b;1zH{X7EC*e3?}-iczdl51vy1wzDOC!ra_w zSvKP1#jnZAk1ilIR=n47TA!OUyj^O^vMLJA0cjq8CUl2F%cEAmHdY{!Nl22DvTS<@ zasq1GnYvHW$~@KF!RV|J>cN(1PhL+(8B{HQa|QQ(h;ib1@Lz45m>BpuD@L18pLlPu zOPxHMkIWFs10S45=HedfZ=qm+v$Og(_{Z^EjbFurm}xC3Oq=!|Np2Uw7k#K@5OI{0 zsG7Cc*lgjoQkjq5#@4!V7>;U6IbNF#{)@Wo0{yl!A8q5*+QGpe91zB_y~<%67r`G! zC$R)CG|8J?VBUr@u}YP%lvOr7hU?m)>RPN4>X-SiaV_;>)mo??J40j2TCE`lMK2(n zImT8Tl8raVQQ8*?k+woUHl!SfP4*d zKY7~jqG66^$eeDT%{B1r3Y8fiDt5y|C8~@Y%;uUIUx?W}joE&G(*$k}A&b#0EpL_h z14vs~8fUYXvA8X>IMoIh9wv!>ltg|YXQouqrWf?is!4JlTYt4Hbh@DHde-3!d2bd6 zqB9Z~#G0OCG#Cq)wRn^O0~1Zv0J$c<2e>of_EPdVy+GJ{^g;(M?OZn z;*)HJeXh~_C5Wv?z5f*G5TQm$&8Mz9U6UHr7XT2xuD74eP=5OfNA7tzUKVh&?l(L0 zKMwgLv7^XL6E)fNOvHO|^K(ZI7n+A0W>z-Ntjvil^|D5#4p3xYQJH5J<(Nf8SWEc`xz*Vdjv})R zHS?2;khpTxlvPoDEwW(`tC9Zf ze_VD2Rb&X=3WH8aLVENa1eRo-OFUzbmUCVe5Y;csqu;&JU6v=xyfSY=nJ+X%y!u6& z)62g^BPk=cv?u-$w??p-k~ldddQCc=vgnIR8-Jo#{;NjWR-H`wWvKdGW5Nlsb{9j5 zm15sU=4CDHdH%x>)`Q<0dXBUm$Z)rZ0#Q#F;o&#{g3l1OuGka3O)LtmN-v3&H%(*4 zZrAPydO4pfMg=I^kbni&>uD~a?$Gt=5ZL&5e97wg(*rDw@85JLTh2tIYM8|0Xwzps zsSJ>dHd=k6({l0yo{+=^Z_7(A^d%R1)ip0nbR|A;(C4hDhl6t1N9g`jY!xcA-2<(w z#MFH%!87iP#B$gjO(AddFO0_R^gKG}31L9F$sDMM7y=Jii+xrB2K%*M^|Jvs->4uP z&%?5!j3X6xseT5SjB?E#-jjcYc9WoR4C~< zf?93qbv^%`AO7%vtmO}kIm>ua*QwlsILv(mRD6$8Y4?`j%{|hM!9| z@979h`Jbk{hpd{#=^eW)diZ32-9xhj)WD7fxJ>#QIhh&GeNHzu<$*DnVNCR_JffRw z3*E#t;n3Fnh~1G@`U^|mT1`3y9o~^KD@SBrm8$mE9P|2I^ZKEJh;rTaazBVDA8D3@ zg1bmWA;>8o3nJrUYfA*QfSO{z96!l!2%Bc?%ogOp zn5GVeF`4DE)gy*0J~HJwm?Q&7c}^60c4{vCDpEJp6$)5xGuP@TmOVVG$u$Q>Rt$B8 zuQXjIf_olxuftP-KM47>+Ts}*u!)UkS+?{hOiJH8^9USEfQdg56{vIAUc;yf zq)wz@L&P#tB?MdQf36w9Dg5;g8m7v!*do;7?SivOFS6n5c9?KMwY+XJqve#W)@cIS-8(yzJqvM=Avw? z*xpGNGy8mYZ4&LRILEv#*Sw7hxLfm{H(^4;iAHK3w8boD0`4=5$Hv8=1#=)h+5X@V ze(Kx7S1#cxaoQ*)Xo=4{BPZ`u*XZ{ML=q*Kf|l;)9JCRK8*r7Xxe?S&wNW=oLMzQY z?5-IL6OPW=Ee!Yf$3ckbhzN^fUKNQ!u*@f1vm_>NN10>@7B`OXAma)D%hmWrt%H?j zz?b-2PY}D|+icB&>0;gH{Q~&hbH_y`LY9mzr^q$x>G^;NEnb};3!jJRsgpz>CUCMk z@vJkt2efEqw@yOanb{;W&I}C)`)-CgmaRv6H!n{&I|AyBt{nFEczEKsd43mKqvz@Q zTH&K(#8$y`spg>@!>!M0M89bF!hv5x0gqVj#g6o3hBey4!f*ZX58F;;yC8 zrJms*v${on- zg&usrG#b4)i5wM;(_mUo)BdaBiqEKPyJoZ(|6XMnr9C2_OSEFJ||xMJ~&ODq9# z%Qme{(zg}sz$0SCk(HlPAa7A^)FYdJM2XpUU8Gn;CJ_IisHYQqML^Fl^@WUN7#w?R z)ZLiT!8oFxy;82o6Q4tc04m0wr3Z(XDk-YS$yTju?V=gDrC&lJ_5A!ZyVXC=`hT!9 za(E#;+L_QL{vZa$a^#e>&d!T-D&_GDfMQZgfJ0EFZrOjPo_8HqmXVuFz8ajz*3Dz= z4MeE-vdm3w3E${#{uOAS7Z^WiC7S#KV_xfr#==&V*9$lD@xwD@iTT<#gwdgc_}R9= z2(>RTwztYMejB6A@3;BgE|Sr4ehW*-5>~wQ=C43D<>zdF1wmZdm&m z-?R7(%j0+N(6PeXP)P$F8iD0((mccQeHVj^C*5q%^F}A9ig|U$P(SsG$#DghOlFJ& z6F9PzAY5!YvCf`F3$wXBPx{Wi`RqF@0=2UJEDWd*Yy^~>C)xGou{&8T1R_?vEJJ*0 zxx`mEVWi;Eu>TP&k-C%;h0p7-uS9CNSE&?t_JB?v@Wp)O9{*vpM|56O!M z`1s8Equ!5pMGlVxoNj(FDq1w#Xu0;g4ZD{1v#yALyp{>yZDN0VqrVAvErZ%x6v}UAJFv0P}~P?d-3@=u)?~sOG9Eb9O8u< z_1bO?g@yp~K@D0fP>4mUTR=FjUL|xJ^5JG(yH(|X#_Jw1zx>FGW) zSoQ3wogWjY>`H0gyxD8s>@i1+BURIz2a{k+Ozm^kFMrur>`5BlWAef@#O=VRIS^_v zIm$t`hql;bxfp=`E2gnyx?{cOlMdXO46Ki1shvFLIChHJMQ6kn!wa(uT_v~@9!reo zx}3=IzM)bgw}ftp93L3&8~+K7Mvi+z<;;(vk@cKBh;LD~6yM-krSW2zGa+xybSqsp z!OOx`+c&uA_}>_T>aWX9;fpUMwpy-&-qVi$%@zJXiNA^xgunhTuKz%mnvEojp8TYz9bb=xa?` zEx-?iZ|z$_?``>O(b64(+Kd_%{8MT==pK?}bc?n8HM@&x(E6u9>jQ>$ z7X`Frcy+aUUUN$NIgQ|%^m8y@^~<+wdX^(j|RzuCrJbzfU~QtWdUjWhSyh&>JA)a+cjK?-Z^jy_h# zndYpK(mxNX{TJh4|tD8PI>_pT50{rxRAf>{yEh3kuiJY zN5-}NbM^JeBW2cpN&X$BJ6o0EAgD|MMi z7}0RPo}Y&E;S<1lM4b(siI;n9u7zNHe~$cta)HnvXi%L7 z9-slyxC|Bbw|H=!VHORn^{IGe2kS$OUe?u;DW;U; z&77202MfkJU)uI#kX=WW%C;|HKON~l18;TAEzMgu`%svHDmjeEm^-IE9j{^s+i`%X zRj@i^?b+M z$?j76x$p*c$z|QA63*Kizi58t`7K}e9Q>lciq7%I+_`IkXem3^DpiFMI58zqkVnzL zP3cr`O#i3Myl-)znSHS+Ycc%s^f3GhcP6(rm(7b#@v6U5N>mM6QH9Q0WK*aARjaO@ z*RU%zK*NP9412H{RJ}v1*XWOowc?Dq5;1t|A(0sBcp*)ru-jkR*Z`V#+&lL z(5xtl1}aSXKiRAZL<2KS`9I67m>mtwH!JubGz0Ux2Ra3UjUS0|u{pYQp6EyBt4BAy z&B$<27g_p=E9}evIE;!gl`wPKQ3-Eb)MZ`gkzjq~Q#_1zUA{XdJjUQy(I-N}q-@;C zUW`(@wB54zzXU0XwiH*$Cx-DIlS=@FIlCzgrz`_vucVj276$0MYi^q zomFZ9k$(h(7%zM)>bnEVjaIoOi*n;XC>3ctI%&m`=-4}Iv(>U=c6)84Q_&M#giiL* zZi(DM_RImvGP0N{t9-s_S5C4G7;LtS_M>~b362&Uqll-jpE~0KbrU;e|zY=`Q_QS-hlEJ$=Vn7 zO(dLTep~1U45gTQ*Wt)4-=`-hGQq$7Z;eVc&ex((=lx4a-d*I)$N4$@aem#raE4hn zFIgGH7h%5goTvL+qej?o>CSoxWG=Z|Lt7Kaf+vbMxq_#CosU0eB59UnZE_`Yf=z?D zai4sw2lU{d}A(9CC}M4Hu!_wqyE#a(xLU^z8UUEbk19b z;i>w~@YfkAw3f_PueDm2V_kldqn7SHIEI1^{#n!@$46Ktcx9*ZqQ6k?+?t&_1Lc?# z5x=;fD{9+Qn1diF-qQ{tkUfl+IR4XW5T<-;z^Va^I(u_G;~V^9b;*Hc-^h#F62pbF zco+v?k9m$c*GqNMklNHg%T@oP|2tfx&X@dR7#RpqYX3(X|M4qj)R*TL0`6-4q$;59 zK1po02LCY10Xb*&4Svy7n7Qa-||B-|EUgp+-`bSYe7l951I->On zLTRX)b`DZp;FfOE-i>3VJwbd95J@@Lm*ZWUQdK^UchQ%D_a89Vz`MYtzW1Sx_v^SP zM8F|-gI^5jP}4N{Tb+w1oQnsX3$X^%W$L*gq=4{>5`T!lh5Ri^80`5LCd0Xc=J}(s zh6(xS2e%B^EF(Ev`cbVeV#5NfU~jxoOfJ*$cWN*OF($^egH^tls2wQmP#F+JjTYbX z_*p!}n1B^TtU+Wi(#Oj2TP1$XHQ9=o??4d(6_&S?KI$vxLj6RZAM01Q9nrnz&JS%3 z#e5Y^-@47dwNTAW-Fnf#np#{&Lld9TU;FF%Vo_cEAKAi(Lg4<_+;J_fcoiJp?ioOUy&5Le*+T z<{=TPbGyKZ7)(n9)P)#xB}XYwCerLc8_i2nXqHM2QU1|?_oW9j{I>yLCO8fOJ1H1f zh@xRKu;Wm{6NyT(aA_vP6iW1uboq=(5zm?@`)}*;7{~@3zZsf9JSL}BCFqy>oBNaD zykvN&D*I+GEijO20>I44s2J-<0ld)M$?kM4@bwtQXa1!}F-5K={>jiG8dd!{N`L0* zPbL=@8B+CadcR6_x&yM=Hs6KSRjCV)fQ=Q{;a-5*)MVGvJafM~208^pONvFqJ=1GW za!9XNqW>uaKwR^OLt74k1sXV~z?XLEz$vT^)?2OMt>9;|`qC*`Bs!xHca z+6Q|H$Zj9(3LcHVpEBrMi*TIS7c|AVZ;O1q&N`BKy<3)&D`&kxzc|cUCQyhaR~8~r zSVgl6&@whW$v}v_L*)GmFq$iid4>q7dv;^p$Dy$3zZY{pCT7y8UGv+_BLuv-eJSsu zW(GxHl}F4P@d$({RR#3qDKd7bOzBIfJk%HZQ6H1BI^1qQCfQ1xGg_D*c{l#QNvO-Leo6+ z@GLu7UjqK)hZug&sb+JNSTLa>a>&4D-ff@C)t^3rohc5}`Fp}~snM=(=V2Q_Ic12e z4-m&3J=vF7uIy;Va%IdUOgcATU|X$p(@2^=RvwmZsY4=mWYox7ffDZai6Hd#js|~> zpUL{QyZJ)cJSoFcKC7S{8rsQqbgHHxY~1YS4N|FAzj_-Qnwm`}JPfs}b&MV8N2qM4 z(9nat2jys^uT`sc1Mq~b)cF@rvZXB$lS7OXj)I`AVNj(|mC-0pl4iT;yFz~#s| z>UGQxSLjS*UGatTaQn6**A*rHETd6I+Vc4czmg4Qy@KM;YcxpgCOx)!P?nCtyE*grW{* zxCu>jUe8uDr$JFZvHu*QJtKVPP=C~O5^~9A;Jwg*J@)^wE3!CN5^QvWNAK_*#Pc-A z`U~!m(GpCBzQ%ORQ?6u*%$ht%+0S&-k%J^ojf5kRo)--DhjPt55S+&*IAb8estDgZ z)*pV4L&rW<>ienoR_oBVklTu*-Q*Uv>49ZCkBM8Y>T@P=JlC%b5$O>6O*Afl9^`1M zUaDt*8GcrmmC$bkIkO0EIf*`M@FOTwO8moWCk5L-5p7f)B4y2IVY&J-7-Hm0sJhoW zsCrI0RNdw8rs_03i}f5vYO;OesM?`x!RH)_`6F?Igb@fEu$mfxrl6^r&qX(b=;fsD z^J9u5$3Oa+)g*q1D?4WKiL*~H>oQU--7!%J7KJGkKv2ZjL7JbHw!Oi5G~iP!~7&)Ad#GN2Bfrwc@1l0LD^ zLg}E^Q@LfwLer25AkuEEQ3^?$^~-;*m9nc<%e(e`JFZr{P<$U(kL=q_NV5mj_xWk- zR$GwZL?tPRv^CcR8#>A0W{4Mnjje!+9+1dV-bi~cd*F zD2v}N(Np3$M+EAzJxuEbo>RLqf$f;!Qlg}!dp zbXnJbVovKaul*#_))k3$@q|UQZu~0VF7qWa`H;)%oTz7uSvel-P_wcS?+&*!8BxU<^0TIkNgYKPo;zRW0h@&1Bx#)0;{eGda$s9BGTPZ5O zAUU8nWuT63KUwXG73WIQK%sO#<{~2>tB%FoI6}-?iISd{{ep4TA!^| z>hhh1qRWhQW#57Zz}GS1T(`AGN^o#j;_alf6RsdvrEbUEiOa!dYmjVqipNZNkhMly z1e<xoV!dClvUnjRt8stAqDpDX?~A0!?zmEIsMq3F}vD@Rb%&6>9NX2VK!*Z9ZSCwb&$=2bc$%AjSm42 z!$m=RxQvEHTvx?c0+!J-H80xq0FP`P3z>?%%9fN`(>u^;)H$Ir zq3?R}5*JUb1v&Jn@nf2j3AM9EP5s#f>15+k!Q@wyZRhttL$ z{sU^njw@X8cetecX3Z$``mvCdro^#OQ?KyFKvVymP3&KfEScpFV+8As{^F;CrYYXq zyehS0i#=Me0={|uNRY?0tWjGJT%k!MMCH-4$wIQCgOCwc|NMKQD|*c=xVox+L1>Ol z){XU4iB@BVaJ2FOBJ=27krgB5)+D$rv7@;{lFsAn91c@z)QZ2$GT>=0JGVxiZeJTM zmFIGN1eIX8k1Zdrn~U>s9?O{)0PN(#+3NYX{PMKUdDwGu@ewnxim*e?duMS_>I87YNAu{Tz%#r+g@i?3pO zLK_XQ3cl8rl?T-M_gx`~pyN>=w)Vr~;-AWX%iLL85FFG8D!OYg0?jU~EF?;ZU!D{z z{|EQ#MJ8_XOA|a3w?=*IPEGR-;vFPiVrAQFvp2d`JWoCX@=+)sqBq80& z1^r8D3ThlDsv~Yy3A087nJ`w?ty}#U)6l;Lg(?X&nZg#^2;T zL8!dKTYE+@L-03a&wn)w-~ZnK214(67;_0>s_H1rQTXS(4&~?-L@@bPC@vQi*LR~> zE>kETFTOM0=K)RHiv{%#4+Dvk#EXWZa zzkqP{k-BWx+P}appVt9UO17HS*)K@HjM5#^x*1H{8g<%!ExN)yMEzMz*h#ByM&hc- zZL=pDt6!(=0^?tz%Z&(@WLimZS9@&=sM4QLIOVz4w4f7<-XmR$=@slv+FyGbKg~6= zT$wsVoZ0jzUEm2m+bCeJd73M6cGWI;=KZ4kj5W3L`OQxe-kUaX1puzv-qT4@!F)VJ zd)F~R8M*x9hCaeETB>mCqa$w^%@47dHnc9e+`{;`NYrjwXnfs?Z?k|o&_DZt5L>7} zqpbdzQ{ak!Bvw1S;veuu;@Yd>evz)e#vMge)m(gfbf`Q3^;^V!{*HUO1C#0(AhGg; z+C#(Fks-??u%%t}X6@39gaxF&4hKIx!e^)w`yS*a>@S{yVt}Fl^J*6Db~I=z^vosD z)g}aJ06SgiwbB<^)_jx8xVsf*pU8@p$wo<2vQ2Aq$3tsXsvnDuO;Aw7A`h_>;_wh_ zZZ2{H1P60wtQUM;Q`*0X-eE4tv#A6_S|N@G&gBJwkDk7y2gxuMOCcHr+ZoYHWFzvN z-10A~o#KnM;k`VnMtz5$1WZVo3H1{>M+BZ+ZATNW^Xqp1jFyk>QHsVe;2UPu`L#Js zH;KfWggP{xe2zkXz_g4t358s!`=0xGDw(N^2$cwaFaW$BYVIf0Tsec;Y1{6gqFl3) z$7a)OeA?kqre$y90Hxeq_a?XSvnIaK)3yb*9rsBGP>D6| z(`;JQoH74+=tjoPXbCWUEIn8_L5-3~4r)9d&6YJGMUcHTL5>r@n{f`Q$)OO!S@VRR z)OHa!9cmk+9U(Nem3g%Gy+0M8d4F$5irVt(>%OU}&9C0F@7328=o_QdU!5BcJwBa! z>#J9h3+MlDEIbn_P76{(*6>&n+a89vaZiswK>}Qy1Ot)QW77%j9;ofBu6%D_GQNdr zrnTvU6EPvv)?d{g4qK)i;rZh{Kjp0~d8;>-e#u*B$y>5$1^*+;@H|m=9|oRapJSS0xn6-@A`avyztM9BY6k0Xcv*SA(otLY+d8Sh1+X`K)W-1ZZ zHp}{SKI@Z}!A8Hg^)0b*ZRgCc*P^~8ZXSIs-iL>&&3`)~iHw#vWTVY_c4;T!YXQhb z?kKz+-ozgh>$PcErv=PyDrmRNitFBCmL80}#cnWkCYqsSc(-_PJlAT=laC0E%z0B% z887mVz)$8j-;mpKA|39?b{FQnUrSd*CO&stWad6jO|r?mc#tr}Q?e=X!&F6bcxF|3 ztwp|qs%*1!NO2DK(95%RfJc~$Rg`T_%o)z!-IKr7Xey$#8QzU^20HWoL zFW=${Rp19S{39~+4I&fxj#bV2uqhCvWcMxIPJY)% z_Ugx7!)G2Iw7ip+6W{0UR04u2hpp#iI+H{7Ok`^k%;#5STU9xOJ|srPW@Ggm5L^Vs58f)T z7R-4~5=%Fp!@Wdr&c(5++-QD?T&)lGeXcK0T65iFHf7p6_a6K2eS(BT=If3|NQeAE z4_zt;97z4yq(dIg4zmvdK3F&MH!jM^C}$Jv5mkCQdJz23@MA|GKAzx^S!`7E+bA;C zH@t1-@i+^aal2cFb^*R=H)JQT<0^}izq)B;bU--x-sjJcltxn3;(*6iRZx`yZe(XD|cw83#zQc%oc zn$geEuL|hskMYmyubs!@lDW3J!m68WZu{CvCQ;-hIFhMx7frs>RVoK(!LkqD28 zw;VIP^Z}bQ---9LQToJ^G&8NWx2-2QkRbGc+qmN{LD5?ro80P>B^d)>I~)OrIbMuU zFAskIGIlZVS^B&ryS6BJnBM`lc7T0ef2wr^oar|TmO7Y9o^A67W zg{`vX7xRF8Ond&s&l=Tijzh4LZGvG&q(FmTX0l~JPb@Y!n>+e!u~&`IsNwB{UNyJ3 zCC?pwV)V)3CkLG;~y;zG-oPAwJdJvN;ml{j?N^+ajK)ZrbEp66yyV|&|6iP!7%KC>IxpGo`-=0D7Q4VH z=OsU-^8fa{q-nE8Cwy@ByP3ic!!i53%_bz>2 zqU}~=F7FGRPrV`5WC7G@zLcpb}=DqMY-4*PGo$(i{ zEb?~0ujNBucO;|IPSI#1N?_WC{w&gwqZXIpOEE`@beBOKZMA^kmQm0zG-;i*DDI8h zLgFUq%UI}fZ|2Mtt44|DG39W<6cyeZouX7PP#2wYSe-cJps;wmpb!$%=S{k%#NSUP z*R;I`=S8E?PdTyy=cA0u51-kG-exMBvMoOG)@s>dl)P<~56zgGwjK+T%loB7Q#dGc0Ipw^{+!SDJNxvp>#^CufwAbD%HIxw#{hkQdDTUSiL z+6uWsAG$^9Ee)6P24|PUn5T7bNhchOgH`22aqaXp_mY}w-P6^tsV4C#;xv_bI6flq z0PzNpwgYP5s<(k&Ya{x~p*APj9=&~&cd=RfHm_pBV_+xqBLN*-2=)FZJ(}7T-WgBE z&$jQ^R?H5DO2xweD$D>i;|yg+R(M?DYq@t}`d{O>qjl-z%RDyEWpU=}1JA1^)Y&ps-aeW!-oIRUp6Gv)s$MvXh zb6vk8#}y8uL%H6IWw}_o5TI(7@htk#wpQ-~Zuo8LsqMv4|FCMcS}3PD$Ji*3#L}Qz zE#(&01yk81VMN=HFa!CyW_ze_;@`G)Y`Dv8mqb9}MP-*=nJGrY&v}I{M3hL2GY_&;A9FpUO=K(fT+Ld8 z!Zx>DvgMW@WP6guhSS0pU3*w%;6vtaHwUde=_+K`5qVmw!T?zV^j8f^h0F4WdPmxN zo8FAdSteSP8q_BQ$E@+VUtN3bYAobm#rWGyO}IgC$h5Zu0OY!YvUsb%#OyVy-E33$ zfKu5NUC)_D`1=v8^XP}sAW|E*JL>P`1y}qce%8O@ZSEI;59*2a(z}(iS&`PhX0Q0W z+#=l8YP;6>+5DSDR!MwY41I~l*2r%6Je@`<@on`)u`Diuh*yNuh; ztm{Ev0f#k}_$#1>;tu4TU0jSebNL+Q7+FI?BhA4wTd;#ho+14Lk8xQj@mFDi>{D^5 zMss%9@+q__b)g_yI;*!hxfUBOuxi$f0Sa+zB-2mr432G)lUyk)LjC#_)k!Yu(lAWo`@qHF`xr$tB^{Myb7j)g-`5B&Y93kpayv$BxG9T2(#^z)HH;qHLLG z*UyUg`uzAD9x97R&vda9v)xD7J3p6%7Kd*%TCT%8(ww;igIl}+#0&Dk3bNZ5w-c1| zIMd^4a7!S8A3sI^C4}YOe4BeX*TW{n;(Ar757d>u6D!@#FQ&upW2Nt$H12A9K@PZ67t1!EG)*fcivh93@*HniK-) zh=uC#PHW1JfLbz2Y+SH{KNq0#N)HU*6S{5HoCEj(c@j;ipYrr@_&imF?>)>*`P;c zRq27e9oC%P@gvMCnod|>Fdy>ZW~cDm+%Mv{{ncYLX+w0~wJxGQCHMumg+ht%XZEt0 z>}3K54D|!;ajkwYWiT*>DE1=$b&DsCy%fe^(s=jI3wx>MyHiX)mX(b-iKG%M_lm|m zR_>D_>nJCNO0OOsSSZJ9(1vpCkV*6%^f0T+vzt-mYxI6sx9h}y!67U4PvlieTZ$^7 zN2sqZ1Vc0g*E3J*Im!w9#VLlWVDgx$lpbwnt2CvH?qq9eHd{MNp@&6T{C9Howriv( zUZssMsh^X9=*+{==}jDV{_jmZ{+iVGnI@iGpK5~o#hoVR4uGSMqM@kN&7~vFrNgv= zSJ5bAU{PVLDB#*A?q2iJTg|9eT?ld#&k6~}7^w9`<~prU5f4RMEO*c&@ORg5Eu9xD znkUFdTgQ5<&LMSgjZ$qInEJY@t|csUSG$&+RbMy8wd5SBF1ffw#q0u!1Ifi>)$^$z zyOWEDsmD`4(qcC4>HWZr?)`xNJ*)dS@?`*R52{=iU?L^%BJ#|X&d6F}b*|7rJcG~T z!W|pl?(Sgu*?Wo~9`$Sa)ZS>H8ro+cmnC&}!fNy^ z902GS>euOzLaWNXA>S2Rn`<yH3NDc=;5#oN`46zuo zo6fQp&Ue&iB&*Uw(eZ%YRPrs9NR5ByC1(V7z3-6cnvb|0)rla${X81ADQwVE!F>e- zh^5f~OcDw^bTUN-z%7`Fh7V$2Jj$jj2?8Rjs<~7rD^&PkyqZgnR|4ukZCbjOYmrXs z*2_4vkTR}VPFn#YFo<|S!3bApF7oL4z;8Z8=^Hk{2T zHT64i9;b#BoJY7E--lBsz9k`y(HNnvW95AaNwkzJ^N?23zZ;$E3CdE0zx7$JSQdUA zuDFCKae!?)oJQ)Pp1@8?1H0kYG_dCf`)go-LR~U#F)Qi;?5-210K1c>Qow2+kzz7u zbT`QUc#iMet{aEpGD*$s*_xK%yjSh~W7A@L)p z$9E;tJ-$EycuA7BAPgjf%hDihS)A_k@L(@JDepUO_xX7IFdajR37{ZtPTlMw$27j6 zmzdhif@1+NadWEVT)SkqyfeoxXZK(I2CiWqlI6X7#BS@75d$VyT(e`l$umCRcvpaB}tW9%CbtpAfs2{G=Og_6yy>wLY&qkpiyQ7XY{CV*!p>@T73j zD()$7up}IHG~5p%&2?K~dK`Ssavf@L*}CEq&MGYm=nI=)YX58IevP_`Vk}S7wDL;r(N>tDViCg1d~8OuTXyaO=Q%M0D#+Zig+TR5_;r;P7i<&E2dzwfGwi zKjF5y8M~^rnvIf4oErcNKTUDd205#8sCJJ^Q>_k2?=ZjD;a4_O85&B{tix2|$818- z$#R^zI_Dr}qTl>DMGsm$ze(s}&cVcYoz@oGt#M$zJl7f0*Ae7;4r%lmJ#miIej0o= z4aCnErGe-hY?~|`czz0qBkFl3cH#+{5ac-1L{pJ^)?@yZK4;G#hnUZEifHb={2=PR zTaKlG*BU@g%*#{6%#wce-@4P?6!sBe4P`5C)6t~>VUnyP+dL4xCdC^E@=7d2h#A?Y z;q_v6*XAc$5a=Mg84jUk716 zfkN+@kiUhbSPF@W(8JPI$Z4CS$aUyfBz~daKe2h2<>y@urZB?6C}-r3*tmZ&9kU+f z8I5wN-qG{|pKfdJETqs4{h8O@;aG0pEOG+FhMGohQ;#ho#I7Q#* z=86!(iZ8+*9>&B`?*d9Bk{VNrVK^Ib9mS0&1->ise)oVl^Gjsio+^0IO(ZkX%Xa8v zV=;s>wNQ{kc%IWEV0%V{h2%DNLm>h;&YcHx28;dj)%`)KmX~+DoIXuz58eqkR*Rm| z^rY1{-}O2P3Kc1M#)NACDsS#~}` zbl!GQrnZRAmvzV32@d9Xz@FH}3uR8tpm^;?!68#*PGx_TT8z{JX1z_$hX{^gFZB~X zgq$35{UHo>LD;13gpd?*=5O`w+S1|Z@sayT-GcsS?vjHMP;w$kT|i6iT%j2 zg;CO3U*~m)GmjBpF+8XvBIKAN_QZ?nac#G*nSt3@ssT4d(!+}MNUGNDiB=nd*Z-v( zfmN_22Z6R*6G*(Dn^h`k7o%VC5rF0_H)7AvD$2%lO^Dm+FiGsI(zD>o@26+M8NrEq z7WD13XTcFQ?`Ae``Mk>U@R2}3<-sfCkE21d5$W#GVrrlGnG`V}kvV_r0+9W$vs@`s zx|{i;NomE%Mw3asyu zdfuTYeV!=%zB_y)p-Y~{80lb&ca0(l8VuGMV$r7_gc+kvS`aHGyqIjY2=t;k*Ew1& zv{m06GnIZ|JWFy!RWe6gTH-LX!>XJOyT|OfMxAroP*)MXrI@R_Rqhj#Tt1SG=LF&-68CA1hO)xjxi zw^U%m7a?AD+OA5@cV(?(07?%>+Qzc>U5%o4$_^yz@^RMGvGyV4%!AWW$$j$k6YLl< z(lr`Nn6W|}rCY42Got0gkS)ic6E5A&dw6}657SCviHq&F7S1xKya`NN(6pw!NknbL zrSQIFc#9a7psdOn-P&9}ths#5^KuOFoO~qmsf1I3Souhq%&W@BU`cwGobDKG$6H>} zg^UR(qqimoJO}x&_(u7t3jKcm`cNNh%5L;~_w{kruRtZH>mS=(e)XyKkJa^$v+JkZ zUseD3p7rmTu6)!FwX&j|Z-o^J-98NwB>hF0_U-qaNalYU{t(H4073yZ;m?|x*i<|V zdC)l{PHk$t1-DrV5!_@00Ds){SJ{Ci?$x93jGukJ`#Js_ItR7Ha!wg8wp;lS8L_8u z>u{#;V(1TN59F9BpeN<`PH!CYg!V%4rpaxcAWfq z&Z^zrm(}k{U!W8bLX#U(Lg*X@E6oo-4emXBZ7~ zpzY`hIj{4%!e_Fad5y;Vd0^Kl0!iXe_BCwXm3Y9urc18GU7$GpV+XmNyHX3nDaf6j z?)<3lrjh&2;6)m_|A{-ut@^FW<~4f zGcXsBVU1;|aT53W*|mPW{A?)Tr~MYJ%@vp2?VsI4{0&`hiWHBi!gfgUllY62vtNUs zx%7hcoG4?WcWd>i=y1)n`ZijL`u6fk90t*TJ>_lvE3&~2RD+!O$G1~*qS5dj?(~oq zzn4bLSqsvLIXAdUBjzB0X>CAC5!%pZD?$m}{=G(95sC_6U8>Y^l~W7t^pYONX!J6t z(NJNxfkAM7y20Pwm~L=naE@+pkzEzWhw*pyMvdkF z*8K~a!sa^BI(9TI;nVh{ZxVsoj=Fd10Sfga&(^Qi0{D`1sZQlj@6ATSX{lcgC_gfH zPW+(_TNe!T0r{GlR`t04SA_;dkRff(>y_uMpXT}A9C$7n*YgXv}wMy zLV&0#DzyPA-4|Uah^Sv@?^`7AR^<2g@`aROn>p+gGl#?lSaseJ)3r+Omedk!HId)2b&qJ|fSq}(yI}p72c?jGN1iMoZyeSaGGc^~JeU<#P^av)RHb~jr zi3f#Vr|e6%NYIgFi}Y5_d=Za{v-E>EPkAt&2Z=~GjXLrY@@tRj+ZIqiOQAkA#6hse z{)#7T>}vtF{R@!3IEQ{Pzw4V@Ctpd z6w1M)FVS;K*|T#0|C;W;Sr?z>42a~R9q zCxkosEZd2CAMIOZH`Om0>oOX*@q_xsf=sNc#2Av$OZ;W?musy%%9~bG7oYt0<;RRh zF+sv62JKa#pSd-%e+9l;6%~XGBkmf3?qN^^5N0CBv%)hh@0k8NR(N5?nBF>8_{Q+n zyi5FzFMIb5mW0T0UpTkc7yL;;R693l%M{J|uH_+Sj6-arm27q4Z#A8BYlM9(Pn~7o z!el`rosWDxEvdCjymzbV6M7QOSrHw(MPlxoM~Kti+ZsS#FmxL_O8+$4AdZEY;CcL! zlLR&rJ)uNBKl;5cJL>tzTu9XOhj<|I%|<}R5*Xf(IY%1^A%qYXq>anF-XL-ko^JRMGXgkXy76-Z$B7BnAZwZ@asrP^8N=oo z{t;1MPNXeQMj*c(&&r*~9nI7L+dqAJ6?caPP`VX~?b}XP=?*s#R`xSHb&BFlY!`^k zL~J5GP78RCNcBdeSlZO~33}raBj`hI0wMTryf@XsA*l}Lq&g_Q3n8I=LGR{>Ach?i zy_+Y!TLjb%Z_qW2U?3>EmZ7_rohZ_2e{|Q*wYxSXIy5KJo-G8D-$vIq8FxI+6S`&) zK$5ouDyXg3v@73GznlW%Pjp0ckpZ{~%Gw8P4N=~ToX8FjB}fLC4E0`Ec^seH?HgAf zmzelClxWp4Bag?=Wk|qYNnBDRZ*`p$uHvmsdFxKz;<|DGKl<0}Dt7gVtUn^fJ9=xD zq-()iX`rsfZ8TQVMt#9(L}xCbnR4?l(!vq7>f7V6VyIoH9{i1-SfbIb#Xm0Dq8Z4p z3vgpy<7a}H_sgfC`ujjlPWn-~td`&A`itBMiM{%zvHyR*C~ZJ0{7>)0Om_#?=dmI$ zsAMIYtTo}}+7{2Pfo0gml#RFby0yE{66RGl+bo+!fY{GOJ+}EX`jnWv^(AD(wWFwS zWt-?8k}VZ{sta$D=)>x_-zZ^6CTht~u(h$8@_5$RYKA*QCDxi8eni*h@;UmA(Yxx$ z4{|N(YhCVs%Z}<(Odf~)9bq+1-G9Hm=7u|CP4bRw6)EQ=Qd5@IB$lJl2er9$ZJsZv z?HOL7wj8^*K#$two$lIfK=aOS%29-2UJ`4KJqJicS++;wWFy%6aPV_iSbdSgyTa$E%oKOx$6Y^cKMum+VpM zNqyIj)BGjb*4Eve9@uXALG*bNU$+wouo3KGh2P*;+>5Sk<`YJNCTXR>s~OKq*#U90 zgy1rh{bN;e<|J2hiT?uPE)b4WGD{K5u8=aguzB&GRSyjF3;Pe zPy2VsYqA8Z32&S&fmLN?6uUbtNed<2PT?o`0qM$*)TlM%CrKHxxBX0+2LGM9CiByP z+CeF7LoXQXrh`WFZ2y4zkKBBXp@&+NWgejtDIZXW3nqadqhUWAcltSH%}|%t3UVO8 z(JT=Ke@rnHz!heLzd>4P@YnMN3MG23TuM~ipUF2-+x#`=$8>q*bhb+mc_+aMdxa{{ zZP@0^jjeQ8x?(hn3nN}bQaPMd)bw}`N&Ts>S~skEKKUE-sboWTyiUq5^ADh~&^-)n zD1Uxzy$Wu`G;2e)*&!ftPncV-`fHy_uKdo(+gNV4$?7`tdERmv6V~^g>^F>tXFT+T zyK&k2IB+6m7|NnQdR%iY1z0wCsLOLnLCl)wp`{MD% z2i<{dT3~vVq}Akayi7Wl8-EO-!Qf;)N)^}`_npC1J;7}GO@=eRiG}t!pV~@~w|=(1 zVTON9cw+Z(-*V-uU+bA=o+~~DKk!TU z6cl+E6^M9V+B+4Ka|xT^!aNBi=AUI`Pxc3mffbTRnc$4WgtKz8azy>^@=30E(@E$7 zWda2QYV0{B>^DA79x#z{|2>JU8K+5v@fdHk*t|-}1<$3SH5UA#S^~jVVDI?pL`^(3 z9BW`muP%d_93-mAe=S;Dm>_wu{Iq#2rwcafF?mgA=8{4G(nob5(%e{ zAF$=*cbXp>6Se?rHepmIbQ&cevb)GJCL9L`5>+&}qrMXgaactBX_-&-jtEE~sk@ID zmREnKf7LEoUd-+0DV^)dUPAua_zRp}BD3wFJ?Z32EX;R~`D}lGsr#Fvc%$(_3dTz` zDRtxgRG3bk%EYVr+OOmgCX1K>Gd2;jKS0O$Y~kpOBkE{`&T|LwR4x7%cHG$yn| zjM@3yjR~8Kl8vn7jKp?X?&IS{^mgcW*^m-f{F@@_o-(;UhuZl_51&JA{0UuEH9!BAq4lVQkNUpqntgi@tHkA+dmkA#a>|J=do=}!@Q9P@zX`wv|5V} zD(laokP4>QdH?&VXix-G>@^E}=qtj6gGWY?fQlWz zmEws@txKEj*G7ENYa45LE#s8eq`37fX;@S=-GP|MrnenX3f(aY)odBB~UhqZr zE*EhAh^YrfQsBrd9Q$2*XZNdL2-4N^>cUfAl~=4^elbXltE_V3|L|+csNr?IVsgGL zoB4(Xw&ZK?KkVSoa_ZVM6eQjVTl#bv4X;ymbd5-=gl@D>w*@-6Y27dKskKJrRqGzT z3TxvXGd6ttq92%z5}?$)+b^`zBx|yDk3eZQ4&#nHhPU4uS)t9l$I0*Q=G*3`$TnAg zY|yqv73SUAuGltu)-Pn}>P9r`>R!^X#8}qNs9X|YiYTFuoB>%6qH^;-4NFw= z4%@&+?_0t(_HgpRHn>)|bPQtE^`+uzd?X!f)OHc~Nl*urdSY#+CZAGDLXM|{B22wj zLK|$z=AK2!eA+5~&786^R=VY4o;;WLe_1;h_^7ID;m^Pb1B_14QKCeNHC9q+3rdxk zs0m3XAS46=2|j|4s*Pw{Br_1jK*A&;hvPwQeV}dC+xNR#EkeCT0?Hsz1f>W{H7eCT zPTB^wk|1Ti|Jr*dnJDzT_xpYPbaEd1?C08Rt-YR7mQ2jfLSESqO4T?Ep~jAucAiWD zRNPMO6ZA>uqei{^Vt;oU>P{RIA^wssmlSlKVz-KYpshnDXh|cM88vmn#;UgiC9bAF zmGK%6-5-OZlIDQZ?$d{~*!?^@LHvVCy9ilL=u$fm+cRXB=9D_d)iA`K=-wOpQu2h_ zRfD4B$i3!_N=%*p6Xg(2b=vml1P8f)eLZ=QOP;6y@9oJMR=2n6|E0awf$fRC!FCC& zm=-KV$KSE$?#bIrP?q|Db@M^HssN8NyJ|A)7A@^!0uvZfWr^`{21ogFWrcTzeImLx z$s6Ls$c#~`rtKW%a*#}wc3Q{8eyCLBtx_y0Z;c}%1iG-Fp&(Ih@GY|Zk}A6_Yj*W4 z^*Y1~xNKVPCrt!-0v}zi=eKD&63UY?=EH+|{VJSreU7~}8<5J4M&88# zD$|~xl^3->Jab!puA~bZY#p{2dTBQqJR`B!I%e}ct>B{92V*nH1})CCre~2Q+$rs< zR5Jh~JKV+a0VyE>Uus%5N+08W%9ZTdGEz@SPrDu6(`xm;xv)!jjbj5e9&ktP@IJyQ zna$nxFml8m>%$bz%jk2yGV*WH2OzYxr)Ai_W@UfnN>^?$GcuopC>~c88FoQ))YGhc zlb|=tb#L&qUSt~Wi~4q>xvx=IC3_=Z2c|id?uiNV43r+RmU$z=$?iyX0azyG=VatX zi90-ri7J~$A}HBIh$p=2R8!4oEYSMoL1IKxOLQK8M0D|Dj#%2Aw=YyAoi11t^{n}P zk2l_vTvzu`y3r(UQ+p^o>+S^ZP3DQIXk_nD5ZF z&>^Sb2e7Ls`n+~Y-q9%k>mDMvbQ7ZpePeJ$hyNOXF)3^@>m&Mvfq-z>HUmik z!u#f)cp&B?EpJ$Azl*PQnmgyZOxmkd%S?GID$(FO=^AOoVBCfXJBoqXIpza{xK+W%=0{)t;=70%>7zkkH4&^2CMD9umXMh8Vqi| z_DIsGTgUQVt3Qckccn5yQQAm7X^-b~=*RsQfFA z@tCgr+bp>dBWNERw^ZduLst?x%PEL-yf?_&l&m0ki{tq&@sz+cfQM&H)H6ov#Rb&z zoW;FJ+eI`K+3X=B#hb|drOL)GB--P#0&*s;>v(67L++5$u89fTlOOfu%lDS&a&Ev` zr2s(Qk?`LlcjB*2%Jh+mJG^QHeddN<0#C%^%H1LcMUsJiAE8R4a2C{X2kGFo<0_^s zpeO*!n%k*13U@lUlTYJ60l&ESSE}D=hP69(6}VM(z5qT%$yG=vRkC+JA!V-IZH{N1 z9%&aU|JQ8KIZ@9!@YBfSyqRy+RlOZ#uZ_!kESFC`_QxMGh8~;Tupe*u; zfHKlCPfc1O0?I2iW}BqGXz7JPp(u`v5;1bDI@LTwDMw1Ylgy21_y^h;rs^*`svB^d z`sb)U%~F3V{NI-L{`ylf0)KCwMYbF@P5jW@f2IiozXOzU*vloXJThfj7`oLG&L;qj z2{@LMrx1AC!`uvOB4kkeK4uJ+)Uc*}Znkp+f|?-*B(YuBCDwAWYO1@isrT6O91ig! zR($Ce|4pKyc&Uio-Y+=;?<$|y+SSyXxckjGz*wfQ!;g{*^C2uph?6HFIEH>lwqE3g z$(n)7aOp%Fh4t4s9=)KJCr91Ck|L6g(DAL4OtK zNHm2gdP+OBrpLn(KVbQC)IDPedr3k=%RfT7{&u>{%#VoYI}y)Ei#)y!BpSH$Hob_~ zt8&@|ZX?SoHCCUY3Q`XW^@9R6&O88@I~CdLH^VM<*~_w`m>%4-RPuMXne7Zv=-iD0bAA0OI;uP5HvRdA?$5RAPv(=zvKhMhsp{9M2L<}UWc5As zK=&t0ovr&rICa67C+?2`k?vCMXS+mys)-&CeRX`Zok?3YHOE_jt4~cdW&6^0o@?&Y zkaypBgbUKfZGuOw{du2)@hW`o{e_qP>X*M9?vD(IhtaSHu6t2>O4O1{^+cA6lp~y(dvnLzA_y3jXEjoslNVo$2Mp;Lq#^7OrCyN&}36UZJ4 z5cEaGc8@@7X%s*WeSTDm#}oLI-8mjz6T5RVe+2#h;qG+w`?H7!lz!a%ka+;_W%d*L zo=DgA)_ZAr5Kz`t`0VB;8n@RKUT!a&xYE34}$5Z3mr+TA7ZPqW!wp@v$Ti9Mf>Ir|#Od#8-D3M4E)j8TfoM1Z~ zvnP#tJwfIU+v|A7kV%H{z>|a&5`#B)vwwx3uW&%`MX_GI9Svvun*wpmCX?90y>)PK zEC~YaiW!k*lLkHQCb8yLf6I@hKt%x5W(Oyez+>VoS6Vb!J=UrokE4rKk+mh5eVJ1+ z#|dUu>Xad`xIRwU)j2k`b>!}TPM8+*#QR&{;UaGrN>!G3w+$U-%NeOXnjiQ4Sh-q0{?%+5Od0#|$}7dLFn z6VyNPjberkPvc{DW~;!CJ0eGHYPyvWI^S4`1G6bT|BUIEj7NLW$HuZ8tN zE+NS0G8TH4DJ>FajXp_&w?Jg$VJ@?z(UP3WTn4DGfRwB2fNYKcTPJQrvqq*fyWrJ} z=(m0CtDcD;4f`~7?G!9`@^**cjqRan(O62?a-kn!8M|y>@XH zz-VHIn(lT(7f0DNGQ;hO^bV(UfhD8bXO6IX;?wLYUd$RmBo2);^74dBDeNV0VMhJv);BbC zwcIRFJeZ`=IzL5hE7elbcp3k=YpHBM@Z%Jv63qE%oc?8uo5QQUtRM+MgWb*PDGa+? zKaqrtq%iDmmIEGL76$_oI2zulQmwq(bQ-fGQYyUyMR)J^w;TY(n1t~}wJO1quE?XK zFU=+x$*bxQzY(zKIrHw5_N_Oaz^kI3Ah$G_{bVuNx}IvqV9P`E67eZh=6SodjYwJf zoECQbTgAja_LL|Wm|{@qu-R&y=?e!+aEhE9DpjU=gwR@JoS6C&oM9iX+ibr3XsI4U zs|4%^21zi;P$NB_MSq|opY6KLg`v`tpGR2HPb1NjBpG9dI%GbQYrxbeQ3tQl&TCjY z=wt`%Q=L0vp8lOmRboO|AXW0W5NMykwU`!8S}?ipgPOmgugbed$O-aGf9nXQP@-e) z9W4fqUTX^m2>zBJz!N#fCVopU?#9Z)-@3NIvaJ(5c7~kAH<2u-V?o zrlYyr{3~wZMtFj|_$ymb&bh#TxKZPmNnB6h|H#AN!F$x)q6O`U9O0j#XS%wJh#i!ZV{JMV7# z-75C<@zLzY39Lz=l8OQuQ=lUNK;IwO9D9nvh#iQb5O*h0AW@&{__U!){k~8_ zi(>ZLqOlQ1H#sz?sR@7Yj-UCtG+436Wqxp6r`_?az~oAG@_Zct*xI~-l|+{p9=X87 zn@N>w@L9E6>_>WpVbxzZ)yv8fEVmpBirA>; z5bu9>o+l;}EvvROH)?&_@#!E?p-Hrg3`%m%A-Cp0le^P8wELJrR=pqqop1FDf3YB| zxm}PhN@{GyR|Q-<9+gC#^Bor}Qz^Cr(Z}l$V0g=$?f9 zmFj%Hp;J5%^x1pxahcLTh`77VF-VD8_T;YR=-=FHl{fwnB*l<(t6Ta>}I2Ul#Tc1M*u9KQsM zgjCG8U3Tpbt@^3N%IaG4aZ}@KB4G&cP}eNh>$SjB_seUxgB|nJYagFhdzRGRxT8ir zqH9k@eb{9;CTl0Y^RcIO*ZOP!cUaeMWIm_CV9J!}82d>p^c4S!{kY`!tj$cZuYx>r z3?O1-2Bghy%v#`6%S~-0fRDQNbZjH%8d4!NDu=&Lx)j3aSNM$8rVne)EK#V8=VB5` z0SVVhFodCX&n)P5)u3BZ|7wDX2>SAa8KH5U0*G$5Yw(9I1P3`aYS^km;aDWG=MBO= zrUb;Bh+KJ|dwVil^Orz4X*<4TTDtx3Hx64@uG7lCi18Ej4nP(gnW#z7|0sB^tsaKOrJ1Y{a_{YRy=uJ@ubTn&BUS{goq0+ zts8b5L3V}_zNe(_1*TZNSMPN_e+Qc^b~lJkJQ}7K+QlV#{xdh#pYKf1;ZQ1?ud1>6 zRpb4U)q*&{=@8R zkNo27`dh{FhYsAc0?qL^lD&C(nT$3kzj$ouMtizfebs|Y84l9^)}OGuF|8-B2l=%# zs?^+R6U8i3=kqy}Qn3~a5J;_riBbC&F&iRIjeU!!$%g86-I=UZahAVzE-y|DT<-__ z%v#wm)%GlaJ8xEIcrXGF`0Nf}WYa!UGUXGc-8)-d1#HKM%vOh%3yf#w1v5iuIu)6b zjr+)ds-I=#1%072co5%EH}B4!Nr*lV$qYp8gdl!{^dfz~rf=0defAw0oGibDAky;X zI7PyLA^NLPSAKX2z!e@AiH^-X9R52fKai7uS4Q~sJkZCB_V2{rmpUeNO?8T4Ed)JPR?#-8A5?sn_V0qLsW;-U3cM`92@F{G>hv?ocJ z$;V2%YHMycB5@4TD3wZFEwSJF(pF!w(9mW{SZ&WG*l1@c>=g8%IZCxZB(lX@HLKE! zs`~!|WAvhS7V=CQRll{w1I4pyI6km;e2q4E(^%`HyiI;>)e%2U&J;e=1evi9An<>X zf!iZzt1}vr!uR}NiD9A`VtDnRVUYgy%cMjwMGptWcZV=U-MfSUh+YZ$0I7s=&CuAt zD8M>gHP*T+2cqE=1y~43N6EMK&>)pm2U>eD~+rfq3A=JMaA|>H9xr&)y`!@Se3TwGD#}tIqye=$N+j zc9x}w7PhBVlH=5wf}GMzC$|0~&((B=D|8n5ZCl>3=leqC;7un8CH=wK`LbCrW5u@& zr6zsIl4JhzGTdmEmyMO!qai45Kn?1;1j$ze#3jEWow#_C9VkH(RCZK;vgAh$9LkQ? zsHIm3$4<^WvLsuCT`e1HmE}mS{uVLHr5BO{=WA3hiEfGu?dc`frpP9@^)gwLgc2+* zu?R*HL>gzpv^l|&O7$Q-3He^Fq0X`rwJ%qW?L-zGED2+HOqd#0b6$8D!>m#3v+`X| zb)_>sfO!Mhw|*FIb~%D-hH`P6;F{t*v{9p;pb<%X%hb5-U?JiU zf+JU{Gj-dQq7CzBXj|5@O#jH4V{uY`^Mgx_TQ#SL6XMljMSZK=$Ny>mA+@kD4|Y+& zo|Oqo^@*rVj*CoZuh!22sw|x${~-8 zv^nFZWRs-+){Sz?6#P04F^VR+@_<}cy~7uw=nE{!t^1)=u=h49*dY~sXFZ|~bSS>V zZwrB7_d1gb-FrFlk@3;TX)Lo+d8bU2!zB6$?S7Ow*nQd^9x2WL*~luO5IK2MvO|~K zQ+w>nqjCVvqYv;^BI@w@%VZ9Omy#EI{WE#zFX5$s=3XA>NY#|hcCO6MpE9=oWE#z8 zS9}2+6(5njxtSXzB4ohJ&JX5e4Ia!!>4$x*y>pg4E{eKsmM0zjp#m}rr+H<6pLM^Zlo6~Xk)6?e2{&@N7uHv%~x z>m%upOeE^0Jnxx%>o3knIJtN9Lf@hbov9htk=$(}m7k3b9vChX?Y7>umU_h>jjxOI zdcy1Dpy2rFavL9xXw$H?#n3tuZyLthOSX+Z2~m2$7=!PV`5@9h zbpWTni7(|>d;Je~{Bbd_o?FcinK@AINu=Oe7*L=7Gjj&(Rkw{LPQVg5zH3{#RR8Z0 zDDO{3Kz!;y+%DWi3(xBk{8X#^wZ9wMj-#Dx|Lk%apNJ0iy$x9+4)!fol3IBx#rPu; zLw`30F0J@@G#YvxNss^u2KEk`}D0%FQa_0Mk%2UVctx~YABosjt8?bfn| z)-p*V?zA;gU!}TDC(ZRZt3~!GN4sq=km(j7qw8z%J0SuN5QbuuOWH81%`t`?6h*a1yS+6uWz5r;OBHB+F~ z{AndYT)-dmbu6Ubl z5Swyb0#fF`z9}>F)wKQrK6m+BTczhan>(a7l}%;NYU!Jr%j_qI@Ol7I#fAeE#QNeI zdxH!XSy8KSiOKnRR*L9c$5uy2>=bKL#|Nj`fd>makGcFm+P0`Ms^3wb4`iCv7nx%? zMdDCk$q;L}ZMbyReyo#sgcSOev&H74RchfcwS+J4Q`ChzJEyflN>r-%Z`Lpq`!>+j zotWwIx7Ks@dCQ5|wHj1=p4A&a7Us^3pL~!h;#f)~Z&_ehcm|Xi#p6^2;5{Ac6sxx* zcAD*T%qTkQFXBA0R##+gkPqy($;=eY>{tV)VK~J8bBLLDsp#}AO@-GdT<-W*5e~Qh zhELVSVr&kkz60)U&dPR zr4}ie9a%544aB~~uk|tj%wKrEz5JSlCE5TTiPz)%cocQf;e>OqhPF%^7oWo?c|p?T zi5nxIy8RCz-tpNh^$rhaM7pjel4$V^k<_h})fL4!K|->vQ<5>fDoB3rO`PGt=&lqb zP^s?70P0cr%)ALfjddEzHjD(tFteC&XBq0kfAl6u3A|;c?x{0BlYHnmYuv!j7sJAp zdUID~LtOH{Nmcz;`UI8h+qp97Y5$lX;<+_?^X|MUJj57>$^O;joUl>Gi3!na85Ifr zZesm^%Hd?$P4PW?_4?N@yFb_hh9%81xlg$<9tVM7Q;Gr4{M%b!S(ah#Za&0BF2}9? zUXeh!U$y4nZg0>A{xfk~50B@ACBxUx;GO?R9gBuEEvs{dtIbk>{dO7EzDP1O3x{)! z_^=qmPN3T3lplZ+e)=;_N332FFw~H9$7Ck#*M#M;N*%vg~%(vNnUiNL5d0fUbjwU3KqCWe+VqnAj4m6Y}yL-o_d)L`wxw zTrsi6PfiZ=%={Wq8v=x2v@7?G8Sap$c9R$>iaP`c)+w7R)rC*M@5Oj8X8efnT{>ng z_xgOL;kS?ffI~EEWMNWfZ7|>{2YRzqbXPt7Nv}wTT12$W`jV;M-D3qq_G5akr%Q-{ zR#C>fmo*q^!|%VYfyo{^PE#_(ZlhNVci_KoleN9$(=m>CGBgqAqGX@^^xDCNf}O{> zJ9hWxRWvNmv+2vf|77~|D`{2FXa1Td=5zGA7JeH=#v<_f$bxj-29FDIz0kA|Fmnqy zn_f`oFLa%u`Khrr$naWzo{u3y1I@VNzht`2I>APJ1QK8v;h?*JVnAU(GBIxzun@}e z)d`hVU;GNduwTtwHq503R0>u>#w z3|F&t&)+JjbY2n}B_Ztn|2DHCA$`oO;4k5n?n*2URjO4ZW!}9`=@V6z)@HTT++s$y zpK#_sF7LtHddan5yGpN9{_C_Lr`Y}w+oi#?;Ig_~D5btbG(cTw-SG#C*DH>Hq- zD%!z3!!nF4eL?E+P!;_lzpkX6-gxH~Hg@oHcf~K|q*m=|-Xb)d?L~;_@Betf_Nq4X zxp%zYT#37x&yP7XpcHe;U%=+&-yz+eQ+ohhmTYoxsztl}`&D%hQ(PAG-S6kSBp;M$ z0S>6S^EE|kYJ6EgctMq<9&FYR)~Sn951!QzeyzTcdhjd#;0ZM{_23OG3+78R;a%!z zts(Ul+{>!7zc9;4BD^b})0p6718Kyx+VD|t+Flm4NqG<}BWV^uVglKw=`lNb&r2yW zQkUop{45{yFKs^;rl=8`Lk+mi!qbTwc%i@v)-Gr|MVzEn4|04)xTMeA*j7wnI0^e} z*+eUmupP_zqFVj#5*@h>ae0n)p*6(=+)sk8T8Cy=sq-ctNwCo;5a9A6^~qmg$ASUg z6Bic#hg-7NU&NO9_2MC}yu_ch8 zdauQQg^EpN>|$s~9077YqTngR#=q_`Y>|3#%_uZrqNDO#S<(n)XlQKgRBnt`I)?=w z%m3K_)n&^p-mkwY$@!{$bc%e$a_Nse+(deAmihI!C|Zs5e8b*J1Sy7ca& zhxB zjm%>vbNVB>8ov~F6M9fhjc-vr(GBw41sd0b(O@xRnymi zmv9vETmOyLT?<*(U1e~{uXxbki)8gn`>XGUy%!Svo&QjM*TbpmZ%I{uRkC_K(cOkcFeV3OKtPB4j&@Gp~m_GtvqDLoK%{c7_+ zT+u=gERM?wcOeL^R&R_4kCZFir=Hpk5<%fB`OP_ZU@t8XP%~uOm%|v{xQII#|Eu{+ z&KwmiJld{9${oX8rfq zEndt5{pEpCa$Ye|L{R>d9%7jr-*?^lbD?faYBT`Fzt`O8lLHza$)&!N76R*$p6@Ll zFa1w;)88U~n9WhW!v^-VCN_sx3r<(l9?YkY?CpKYjx{`^$=LZ)&$G#1t&v_`k?hq< zT8iDw*GWh)r0KKtX>vb(nqc{IY>j*Mta(6&V(zd|FeCxO)(Nrz6^-ZK;mD-pPkoPP zC}5V3fN3wtaj(3Od$v|~wVHZW>ewQVQY%F?VXu@b;QjqAH&KahWxlk6KI$5&Xg{Jr zpZW@wf!2`LPX(K2>##R=R*qxKEZWcgm|vO*Kuysi-~Tk{T}ojGa4|CiNcwpKfPq|8 zfY8tKQcdTXY*OKFv8~E+nR6Y(vezZ+8xO*yz9Lg!fcoB(iVmsgf3J_v4RiH!N}won ze9nGrhN~|7y}MlMujDL@7H2f=xXXonA4V6Q#xHgPqTpz8Ts()}OX%Nfb<=nTc}O)b z*L@DCIkX^s&=iL`6;_=R5?KNA!zamOB)kELlH`UmmNC*p=6`}I4P(&imWhGzLGN;| z>!)`fmIjI?5o04ggZ-`N%1TbkiRzOPYQ+@3{W2qz*(sFw`WVRefLoiZdK2*nXe)xB zPD@V`Q?a_*L55SWb*S!5!Bji$7ffXmDxEHsP=>+h#KhE1mT}-WN9CI}Y2Q3bU;4h0 zt^4_JHp(|QrG4|m^lxP6FtK}bg+V%2WiYqo>jd@%x?YjO0^OZlQiAWe@9hJ-os;=y!d09MUqF1C)%X+4b1y;>XBX$zBX64`L7h!{15Aip$L57ETD2G3hWs<;F{2|T$kT;PH`}lQ-&$3rb z$#o(#i1flj_HtqAZ4}XBJ-+;J9uYN-HXht8;EVT(#OpFLS0kuHAzP_Be=7pIgEjgl z!oVH8rLW=PmbM3I!<`g~5)j_i@vg@%$n3)c<(*)F@`Gv_g^}1yk2ES*sMLHWRjQMy z&5UVC=psYfPQOO>f-wgZY=*2FL)~ko`>#iOU<*Y?7k|}EVUqni$J9SA9Ti-85LEDM zQ!LVp?9{_|>ja1BqoBM<`)BwK4%b>l1VoXwx5pE%hck_+VT-Q1%w6bm)z7t8i&z-_ z@1S=R=2|Tp{BDBm;g=bSaa0S*DdU>>2}0IP5!;4O{k+IFDZ5TdzyM~6j6d;{3W9}7 z&r;{H?noCw^7<*>)cy{_JTR&uo)jQlt8t+gTNC?lmfUGzP`l`CBmoQvwq%p(sFvm( z%Wknlwv^ohjND>eR*neXMC9gg z6|xOZ)+fvXKuK!dDs?6OgSt#YYWzysL5vbXSk$liNPwAA=| zA$v3Bm^lgiT0E^#%8BIIlSAwP(QH~`;_DUjj+@R0?s`>YgKnXkhIr#qzo99iKcb;B zK&P(Urv+QBVy2?YSjjRsGWg`gJ?>?-h_=Zhv_2@0rLG&2<#J@WMim1qK?>M)<;j7_ zB!~wZ>%)Mt^>d5v|D_A)nh@T{gda$X)UiCa2x#|Z>V$+%(z5AY+%Se;{F2VgnVm)} zCnjJQ-rw6RXtasQkG7s($b(tZh#9RXC%L+MAiz#G@^p&HU=gj4G~NH;7xWT~DQ&g< zR|ne!UaJ=<7jp~}?vu57*AHV6ayy8$qJ?ggkiRYkcXRef{(3hsqlIo6MgsfPS?A02 zypDn_<}kA6Xb)IZqT7wOAdqYib_Rk<4}Y+yU%ZiqvoY0ht7qRu70L}{&X<(Ks;~c} z@0k~4(HFjmchbz%vq?D%2G{v35O^KSQdQMmZf9byXccepo z=eZOrLm!2xq(zEiva(*N7Gy1(+otEWCc)o&1~-xC1*P!Dr*D$fZxA;QW{EoUYqd&T zM(!M~f56_Pz*;GlCD|R%&keXqDCMLUq;!{aukht$F0miitaNx^HS&3(Yn_<>{uiGx z!FTZhgQ$zHG@B46T9xHMY6o{=6NPu1Q`%XnTIDMUA7?!rmhibY6*gkVw1@Z;ywy9f zLaHQR1NYcJp@FKDwBmKI>h0&|B`vF7sjJ+pX7!vVguqb4p>vEH$sF|xQ=Eh0AJVvp z&2u`BBi~F()cW)lT2*#ZpZ)?;?QU)oFuA{l-+=;9 z+SBjb_4|8{_nz>lcY0i*`Ftv}J-nk8zAl&Z<2PKB?CTs|mt83L@f>#0c2igNIl zdl3uD{hH)`L-PI!?u`};YrjvJg7lAn&dVez44*15K*>rtKWND@=e3GosX1iW8OMm=hJ*H9iQk())-uHw_ zWz7?N<9quMNNT_Oth9VWjyS2Sr%V+$L^u=T3b0>2VIEuq*>-AGmCAmX^M63~22@4;o62HlIzI74G_VW#>XU)>eL2PA`sDv`+C=h>>el`izftku*m}loOmG(89CkD=DRbsE6_T-FGpS5)h0ly{ca1kB|MFIZL;r~he zU&8-$qD42c!Y&g*hw>6%L;aX1&N2)M=Oq^3lvsSdx(Gfov3Q;uy+#WwoQkQ5#d8vi zE7e*0#Z)yY^g2?V^nQqCj|@U6h?)loLMBE}D>EG$}mVE-K6~ zDhU&SzB0dPPI!b}bbWr&O&aZiOpc_(YosfupT0uh^b&|15N!*bUHk92WD5O}U&yn@ zfKw|tq4NpI(qOwh(;jA(?{aE8SC#wPr}tRJN5!$CbdP(B*sx&D`>+&5e}D-aN;wE# zulg~Mv|Yl39oZf2(|t}OHXSwUuU?45e)Yxw;)5lgXqjFr*6ET}rM?31lG8|3y?!59 z4qbZv5SmC7icb>^=P1qd8fq8lrzmoK7s_P9ZXFV05`U&|^0+YjRmU@!keUMY7J34{ zOG7Y1dfLLpcCa!(ILF^Qk*8Rv<_AmstzXvH6Y_(T{H?kATFe>!t>^1&aTq`p#WmSZ z-eu;T>Uoj{Vg~vY%?j$M(s0&!Q}9U~E8h$!qJ@*yftC8I;vP88%=WS#yZ9(f{B-Oa zk6OJ|SXgGLi=RuLJv^(5eeGpF3B+F}`YE3pE!C8hV7I5;ZI>Oz$F1h5B&j^h8iaVL z^+j30xfyV$IQoYMcM~Hq`KDRk2-7;n!=G$>ZonGkU+X3mz><^u=6rC15Kz6U?Qzxz z&L1gBfX_r_*SddCQQ_&cY1Z0wN!o2ivHPPI4o zHuv3$5&qW26a)xno%(j7N{uc8yVK!vFFPZ44X*?kH2}I;^MeM(*wsD)HB8x>yWg67(7k&qzW3Ym zwk_IgZR_}8kb4_0s>zsFNAjZe8_U*b(uUP@_-&^Gj~X3RXm01i8!A=eeuJ4Yf^rjo zNaxQxFpGRG;e+s_?xAej7c$XoT<{%Tj;ysqWE%!ODdd!#O89dKbczl!k*~%k%0%0P zz`pjGV2kgj_DpL2((r}eD^~(`?3Ge4NZT&N*3RF4DUU<~9uci25R90Jj+S?U!R@<; zWaQsHBoH1&Dj+jI)ta9)8`$G=vWAGKM(wV=rECqc1hH!O*~Fw-4t8>~w#v)>>bmc1 z>N-zsW6KHKVb|^p%`D4b>RBhNLM8^#O@4zf{6{kK(GYCucL}1Rlk%NLh@NUSA9pK3 zxW^2_m9%`ny4)b#TbKX_{xj;%>sfRcc`fGd@vrsmj`Vt$obpG5gK!@HDGl+yR`B4S zbXu{fT%+q9tzzyD#>?$k^lg$i5YW)QwQ%AqhsjG>zH4?>O%;l%O7%DK`>H)aXqlKq zvNY?G{tMwb{j-FJ;l_V-0{Rj-^(>b(N4wJG?zqLyWh}9oQhoow)OwEX-wk>_TN&49 z=f2%!heIV8iHD7RAf1ns%|@)xC+4(FL2@yC+zIeRds=GlDNeB?H*2H0zOkcOD;}*cmHv}`zIFCoHy{aLQh`zqOTJ~%N~ZMNeWWVNI^hnrYj}#$hB4krEsJj?s?Lg&+2evWz4CXT|6WP) zXrI#Y?qDbDnq;7+&CVpZHfmL6%%i>RD3;kwvusO=>IF6@DYhZh64z^PcVvsWQG|EK z9jW;liu&()ir-L`eTE58m8`h~tl|_5f+>VHeXxegXC94~naW=ZohbpV+`4{c>IX)p z0VRGKrClog5<(gnzH3_FXt>(nqU{bYHeEOUeORjepZ7QRy3AbqQM>QDZ$7j7_nS>1 zq^o=u;SWKP{uLt1U|I{|ceka2A^KO`%eVf2zr<1ik76X+QdT{1y-%f=MgQw3p%CEdOvH$a{UsD5&-8 z{uL4}!!FIT;4-udVY7h5F8>M#;VSUFLeeo|yXZ>R z&fhAgIZhdF1DTO%Mn1SN8vZSz6=Stv8VN!fz++!oFXz7IKJ5PvK~CXW{tnDEHFkrJ z-j)6LnhdtF%is2OLrY{VJ^mGbT#ESJFqu7MZP;~~$Qf5kb}gC~j} z*nC+<4Q3}A+fSc7!PsgaWNbCbvAyDNt)$xHjE&xae*G&X4WZqbAx5Nkar?C`rBodx`5QgZ?c`2JX0>P641vgaE<`T$8)o91&LqdxU=u$~sgS{<&Hm`JL+OL0g&^#FaHFMSQ_b=XAx;z$jW*piVCxNgzwFt|J;_6p)unUuiR^rh&M zUWr3!Q)3rPA=HJXU^d$%6%z^rZ+XVr>!fceWSIi2>R!Bz%Y20?un%kK|Z=F*9VC*|Id;FRtDEI&jMK@zU=_S30 z{ZuZ@Kf@nXS}()evFjjDjhrU@&z?$9pJ%6K+ydKrm%lB-0C3mF-dX8*rnoF2BAoCw zO_r_AdJX;0x^BUtlj+5EZm?K`*L!huwax7L9#Qy}*N}7*~G}@+QM5R9Cj?&Ey@-^+N*yhqenPIgFsiTTjO>E1K z#9H}6Ijgxb@h6dM@{jgSyi;kuxkGAFnH50b>VsTH+vHdNF|k8Qx%Kx!1klx99MQH; z{X$?oJkR)dM75WPF1|5*y>0q@9FLNE!h4+8riJnSdPVUm-EarW=`EO|A%cm$jm1pU z^3%k+bct6zeUV-)^1qsk_&t^C@#N)${gav;kBBy#wPg1=%`YM)#&H}(a`D$|F&Y9b z4yHrZ>ihJ_2skU%!dCq@-Z8)}LhvG1kTV%UWJ`eI)W*I}Mdp3VzMK@D zbaPd0UzlUGF^Oh5%PknI9=K2s7sN0%$HI*P8)6ucsi#;|hg(xK343f!9c^pTsih|! z@VstSdG;33S|6Yaadg%f?ej9sMN>ltJ~Hi7&$d?!WF$G6_iGZng@oy{z|c_SvxV85 zlD!BmZiH`5xx{3ZAe~M|bftZ5&z_YoU$(WGOH;#CP8tXNt@8O*bEmyhgDlK$q-&n_uC2?+#?EF{isumR!oF8JKz;+luKH};7?Z()xXq>5?vziOr4;o zz;IRbFYSi`+I(Dk=rkV0(Dt8V;&$yf3H*ei9D6od`F;YdcoTbdSV3&d531g;CaXJO zH_M=-`d6BZ-y7*YDcmF@e^%;c*oET8<4p~7{;||BAt4fSb%e<17)wFyt3n}?_^Tg2 znD*2dKMP66g^%q2W%-={W%;rH%kty@m*pq_56VY60=2P^@!XUd06w`_;k$$=)W-hY z+DA$I=11cv>@y0HUP-is)JXudd9kKJGH4N1p@;wjT0ZDj^RQaCFOjHIgwe=5=5N`+ zTH4hC|Fg?PkT)K+?|6&!q#H#x7&^z=?0>cp${h8t5Sp}j4#$4n@HAz{QUSX|X!8SK zHrsIXEmlJsO{O~hv%Gd72fBhT*4X~tZimlB&njH(`#-bfBoM9e{N z-UMq)Xn6cz=+KApsK?quCM>VNRlIED;uk&^!u=!)5^$ggJTCT)T6JHonr=k@<5Ruk z4LqM>kuU(9>{(UeB_b?51NIabF%`z#{rpSPMU1d+gY_KvTaUuM#7?KVy0){nyXt-* zKf=q^{aUWxJhaWFK5?Z&0%&|@!U^@S!+4^-qF~RkD)~=N4%iG+0S0CnoAC^;#LLM? z0Q^;R1MQV^s*qve?2n7ipUn_1P7cA(5N7Hj%+y1WgtFs7{I^~#+F9pj@LKJr&*xtt zyt6*5AkFmIrw6i+xh8&K&HdP!tE?+M(LocW6H~l6gb`0+`!}G0FL;@^j&Ww*KHq5h z$F%t`xG`}oW)@#%O`rz<>4@=~itfgGK(2BZ8>^ zR1Dt@!mzdzmIaS=%xdc9r@Hi&WS2%T58zCea=MuZmU0Rr#^h37t-F?@gaH@F<Iy&1g3rQdEJT30>KpY20yI~WEi1YRxpF4#`*KTp`aD+vh&4q zM$Q`qjP3S!pyBkd-pDOcXz|9>k`&GX;qGc-L44f_KVgk|tz)lsQA_wwCPnfWiBDkd zBjV3Uv{07HDR1$v$V2$s!PnNIK`iNnTbTW3GkRAVs8dbl$Q(`~HD&#@`Kjz2Gi)(OE zhVehN5GH!?6w9ylnVdmAR4t%U8@rq^6aC-Hm6_j4czkzJ2Eo(wukwmS%N#F|RPMA# zzXbgRi5taPr&5=UqX&C@ zmmX7mXMdlP@V1?ewID+syFkx0k0HPAgWOT$1mbwsNc27oKfG%5EUZv4`8WsIBYbcU zy+RwJWBawf5!P8|hgGR^T}R5d*`9S2?Nqc#OX{3iM+N+L=e-_&UnlQQtHIitw>@-9 zWb;vk{$HY@ypO^kS|7!Ks+^Y7fqt#dQ0Lw_>O|SQhJ1Qv5)PQ3YB|bIwA?`RIZfEJ zV;mre0mdx;MLqr1>Zj)7I0z=WUYsZOa**5mI0qno{%X{R8BQS4pjRf4I6$C_lhAO5 z&PLks(H?ClgFQi>X{>J%u@PF}QdKNTl{(wJ>xUTHx3)&z*|pn@!asR`yTFD3tCD1Y z^ni7LG{W=txefAO@OgO3aNJ$9q?n|6So=#vePCnlPi)Q$jbrUHMf@q)^RiCZb1?-d zJ7|@4T4l9+bZj_%0Bi#Th?<6;n@+rS-~u4es*2qRmWWF8-?cB zxgX*Emul45Obk#7?$a#nkvZzCz>MK?m_Pehx+8Mh=yItsbSwUs{>|ElKMZ~*JIQh! zsoJ&2mzL%w4|qeIAo-(4xf+TIU}VoqCd+ZtR~J3ZG(F6c9#&*KW!Uk3@(aAUSN3-& zJph1Rlx|DR_`zdeG-4^O2Sp7{`J8ZF8RHoEB$M$M`*u6Levl8l-#nh;btQU z?VGv^pHt?e+$jIr>qa3RYmYIUmNyzgp!hUT;Nwr^zt6zFdcZ`cY=XuhdyVuAUvhJM zaD?LZZ)nbfMv$i`1*FL2GSB;$MaB<5CvMGSaaC{M*B6%Xap z=$<_)K9Z2Lqgie&TjFQnMqnMm-(a>1=2P+=_*&8=V3T@@+)4n{6E9WZ6NB;6=D+FA z5w3=B51j3Z8{5l9v=4RW`z8lRH3aRl0NlT9EZi(d4wkp0P#he8u8U4I*EruvL7)#^{tXXcunBec2dmk6Pecj zfk98ss#1^MVUWvwFZy+GQA+wJ<@;irygjgfg0X^dQwI*1i>0i%1pXtfuUNB8)9j)) z7LXt(q9XBCtNRuwO_8g~d9mQ@YQjHq#FFx=%fV97WCO|hJ=oLSB{qh{uiKt#rfnV% zoO1S75q`TUoj6=zSUDIla|md0s#QJN`IDH-5}CdAE5k(y8x78p*|wK|Z2Q5T!-&=I zZ#jheAkv#njAAaVTL=j1vxXpAs3e^On(m-)Rk5c%IMm^Y7x`GehV!nN(6rR=BD0hg z%&{X{a!MqT;%qB8){b;h$O=xfBO+QQQlK3XhQJDD+Yw>q1Wyvfrd@0z9V}T0jIYVU zAfXBq=}w+?Gw%inJLVaILaR`xJH4SO#`W1_?ma zBU90Y?pN>pc$mzt+EzMTJFTsevBUaI6c4t^_G+1ZmiAj?K@~lzvyRVgS7q4K0}}ne zBCw>Sedg%+9f=X)?KT+)ih)_Gz;)#^W|}kv(c&b}9TM}a-H-G@f|nND!)t!%ulf@;&%mq5>xA!*!V!t_&T1jS|9*qy92s|<3_LG9%P3o6yd zBRK$>$G%rqS#8?BE1}I5eFTzm9uz>F&GF@8r@8=&wI_^ENU@j2wuaP=<(+yZ%Md(q z*QmrBw=RPpb+lA_YIKuQ%bAH?B4HQjRf2?W3gLnkth6SxV&b1s0#n8u{*^y8s$N{& zOZu3CrUpNb(PL4nhymmiriEB0_sP+)ln9GYvD@`%DtwWRdNdUUPN|P=Gk@zlav1L) zhBiO1IV*^k#Y>KEt z8Mb81hQEr7!;khZdN+Prb8iC;g!Vg62{DWuJ7@7lk>1|WOYtJ-DeW|WEOUwf`J#+M zxBo|n7yUkR?DWvN&ApETJ)xg8_kLgg{vdw(^X`l%mP Bgck?H$(@0mrBv$t}qBK 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

    Klkeu-= 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ℑH*0_c0D$b#Ay%`H36Pdv9sZCv`PpPu|Gh$bE!G3Q}HU&X#H!HlxFy9 zMTB!`cbSs7VsE1~7k)XzqiS4J%PP>fEGkO}39?;2q(#A_y zt4?Hs(eEAm{amU4fc;%27(I*cn2Tx+qj@kVpuQB?sbo3Fb^W~qRK42nT8c%5o(<^Q zkfwch)6Ccz{SUsY)n=`=29XAv6JTh?40_aYZO@aozrIpUU5fmV$iV2Ntzpy+-F*$FDhkzQf&k(ryD|2b41kRIN)PG=? z{YXR|4iU%0C^aI5uGO=a^T#bHjdaeOF}7eve$6Se6-6}=DemBd!w%yyW2}T28WSq+ zD6`(-j(~O|@tw0vw6tIEdk>z7Abo@`5)FzrL-5 zzwLdG+)-a~Y8NZ66rn5Z__v#BjQ!O}2kR~Rsh}+7L`9bJ-fW!ejud*hUOO76dJ|@u zk-|)(XCQByW=zd7re-T6fWpxWB8B5HneVrvOYkc;efK&75@{FOen(4*&uL%In`p+q zu>YJV-Z_=@5JMKho<70DIzAq^TRIYyT6W9wF<>J)W_@F(aP`srH#W!3d1EDVRNzu$ z`Bc)EZ!2Krr zShVJEnG?sDOUL?f!4=tLV&M_DU>OjwOwa0s=I?Wn-xQ58r;n9PF)0MP`?*{ZC}73; zBrJ~D6CGFNqC}DQM3KMRMMw`;Gd487k>E1*XHz6}oy+&7e{3ok76BG!svVKZC=y`E z2A$Ii9Ecs$Ou4{ECJvD`V`HiOCFjxi^_HU&T%uFjKEV!V>+1SJ<;oYP!3hW-Y0C63g`b@l3= zW4n?tdV%w8R}CaGdSC7iL5zb+UhZ2qCh%Es8R8vVj-Gt!-yYjOz~A;RC`e4J{?p;N z9o7Gkf5x&U2DrktJ#?&VzU^MS-zKbyf0O&e3p=B&skHOQa~qdn)C6uXZO2LDm9v-? zrWqBIKWfJp=A15^{_cS!i<2~$%GF#&%lSDJSHRY10^UP_EmcVwBfby)YjM991ou}QhjCMP+ZadObN?@5d&{lg zZ;)|j#O}7vKSQOWxt!Tq;hquS<=gwr1IJ=ctPg2yd{O>K$Ww7Xv8Ax(RklG~iER@i zo>}()D34v8lgpA#l>Yy${;%;+t#m)yf^IT91_YrD-A(T5C6AEx%lIEJ-&G&YK&Z`pRaB z>TVUTSLhJ?JUMy(+VD~VoeISSaG?9yIK;K^6l3tL5>ZUfw~1FUQ$jf7wk8vY3c1Y5 zNE{??edi|jSfBj~kp!k7E!XOA;*eZ7j>S!#nx%K$p#5S4x--!uOc^_LO1@TqrBGcd z>K|6OBx?)Pp^lK*8Q$4e914 zff<@70WPs`bFqzZWtD6Xdbb-vhDWO(Nm0EU!;RZ`u;w#5ISw}S0|rs!`mO2_QBv8H z>_&IOHMi>{>5==WOKbSE3{myl*TrDE016&!c%r$LG{?A=l1{k1-H_+HrCAc*L2Hm) z9eM8{2q4uZK6N-gmbuH4La7zH9RpKFXZsK2h|2)~W$~Z*zlaL~=?5m~T*$x;$tXkD zqfNZJq9@6Z5_j}VdH^|{D#E#@i&RYAz3Qu32Q?^T-V)IYiD+3Byhp~g!SLiDjaPyn zam!RvKuEC1`7MSYbm;n)tN6ILsD`))!H+0>DMgg`J-(*EGtr&!+lf9NR%QvdV9EJy zk@2N_K7Y%narVgUE+ikH-TbrBfNDPa8~L**`V;=3>$O!WqcP2rgv!|xmpO|-AG55V zY!F{sZ{C{)+G*ImJsQp?Rvz-5J}-;3zp0%=+^Y=;mB1SsG-vojOI_lxHU@txV&^e4 z-0-vp38VKKY(pZZeCHs7j8i`PAmdByHxw>z}N|wn~>`i#Yxdx|I5l zXpNKWZ>qX2%=q6|4-64COiNTW1Pso91>*`lubSEiE&IP{bpnG`Q?Y5Hd~R3>s;Xwb z{y#ROHT;mON;!nCX}@3y{{Iah^I$uI4xoQyp@01rUF=Aun9S%?Ou|o=TX$pK4LR1< zR0%60g4qm&o?e?9>9S6zVOd47beC=U?aDl?5@hk$+p;#Fo>+YUSxV!kH7aJ4eGDOe zt{Fm_bo^{`J3`A5=n9?dqc@7AbwSdIMMbaHufR1Kf-o(8RE!*kP%+8hp?5;=gjvAI z0;98|tqEd=LQn!!@M`Ja{#TRiS3lpUUMbz4l5~jDnX?Rj4)F+Ol&rfA*9S;(bRr+w z9eRtG&5>PMS!SK%_?lo7(bJ{YWPIPHd;XF)LeUrKg8kDa4xSPh%7qMXa!#r|HEu+f z2VhcdaUO3HW!!yb+}|kU7Red`Gg%I4xsWOz=*}vr0RIH9aMSl8E#@;C4wl+|Oi~M8LxZ4if0dq~MiY@Oy9glrlyp2?(O6Qf|QU zEA&8HGtoY3Cc5EQ&?$sntP^C(@qvPR-axM_8(+(Cxw8GO@`#+H?v@kXXr6|14`nr2 z_cM&Eh{CaCh`!M!1x84ov=J0vdjFezF$WVp$LchB% z)9&){K3dE_Ntgpaq%}!3Q}I!8CMJi+)EkV7PP4eP%o=)c0bKG?wqCyCO5MjAz1r|s z{3YfraZ4D0RfETS{n_JBT08`maRJGK8>cu4sbx&@7|SzOI~DwKew*p#a+evuJ=6Mr zCHOy+gx4?;DX6MCo&NEw2FG3}V=AF_LPhKK&QliuQ*X{Lw_2x77K7T4Y59pFPKHeD z@|W$iC}O5@p}2%ov}F?0NTW zD_G1lO5LR4Igi*mEorHwEn8req^x$v&M}KJT2dv~==2O@I>r$A^H6$KT5LT7;r73C zk~+)!u(RQv<);%2iV)Sixn9Kc@3YR5){8p|ji!QBChJYapyQw}#f12gpakialw*Y_L&h1iZNYe>Olp>n=X|I@Ez(lz?bM72oW{@%+dA1+_$wMI}g@%`b% zcbu`Tqh-<{sa@S9cn_eBT_@u@b5j7vNN+jxnD6D*GncA9jOK!3ci{b4kg=5~JCWv{ z)=P9WKn$5g?*xB=b$*ALXM9<=-%ab(J}FsS?{WLf>poTE?5bp(H`5RWzIwr)x{UEE zdyKfUq+>9$kY9qVfeui2;ZW-u`3gJ^!RD-XCg@8uMlQ(d&Y&?ie(dAp#v}IqS7*pw zRTQM!nh|>UNKJ3%8JGSR{cvHh7Tw0=jsmQW>o@UQF7{0vYAM>!-{hyvzi)u74dxea z>-ityCLAduqaIgI^H!qRd5j_tXzhuVs3Ru$BQKWd&F%&IinJ6>7p}y(kX`aHp{8Yv za#3Bv{)CrTThx<4uD267rHm)7WmVMThC+tXsh;?)8P=sM-p7fd!#ec5f>`V~5+-n# zCz6sb)0vh`zAR2fv8S}P%h(P`iyF=aL1PbSYl~8Z0XdIfEvbWJb>?X*%ho`6NqZIU z;H5+SE^%@)FGo?iB)#Fys~c z+1M4465m0;6+4)yVeb#UJ>RU5Kx4;vUFf|;|7WasU&|Tt#FcmSI((hl-81+>r1QHa zrZwKya<96Y$KW_tP;xo2g4+^nh}v>;2W$2F)k$O`=Xtnt;Sg)k1PUU)$D5KUTSXc6 zx*4?_%*FldmeId%#3KiqtesiBae=->mQMsC4A;2OoVyXnoOd%=#3E$*8;p4@qEWmF z+kh2mdaWnr&e@^4+apDpz&NhXMk1vZrAJ8XyLq!cuSii=;Uo=DpDk!p4`7Su!hvW&oy=9a|$F;Niqt#jyS}hmIwS2Q*cWxbVZ5>kSi{rsXw#k$@R`q%q?p()E-EJ!i}_UE?^ub-a=eT zjVT#sszBi`27+*z4gJwy)v(QLU3EPjD%XODmN1LyA({Ju#e*BK8ER~gohyOf=CWruJh>S-t zpxK-xqCalnK5Y$3ACEsj*yHifkW|)}dyLAA*ax)p@Gqf(Ngt(}r$q>&=lv3x?y;Gqj5 zQ=qJoBAb#Hc>Na=7+q1)nx%vm>au1JQ&dy{@)@yq1|9|0VS&`X*nV7<0Z&VW6fFGD zCaCAm=Ba1^L5(i83F;GnR^X2PQen9`w(|h`mq_~fLLsM*nU0vAoVop%`HTOko6iePk3pv8@NJ-+IfPsS5~{65o6YI%p;>Xx_nK=(u%-OQjRuiO**$QmsCR@M zE05o%f^xm1_%4rKs@zl!Elf$eoV$eccu@Kh0y6!8;aV5VAPKPjE>J*9b%GrLh?Ewtv8LVn!yh)sgRhI9xWhlkv}Xl@uOB4yySo+5VZ$vvZExG` z2-f~m`DNX0J^4q4{h`O?6NgSsQ;M8DbBOsHDt+9#lArdR?HNV$DVA_X-^6&>HEO}k zl-QV1NN|f7*z3;+C~9$ikI5^oLGs{5e*_v4hq^(aWfT$c+A@pUNyKhUZ^vapyDObS zxGi`N;?n|nrdzn*iKVApZ4FnBRZacqA6fg^@jynr#){V*uK6@ z1a2b6fXHwq!_=pOSVzcQpw)}M)V$U*NtKGQB2PZNE_HleTK!}EGE2ypv(v2HmAg6I z?IK6T&mZP3SZ>U5ddvn@v_Va(UNYOo3y;PoeCuetSvSrOv*;^xdWX@Zn$wrHr;1Gq z{K_GeDw7WxHAjyHRQ*v_Uqq;h)t6T6)nEABH&*|H{~oaVe|n~W^~?UZtN--x?bUx- zt^PqPuz}S-Xw3`Tt6#~_=%qj>vEuJDhS-xv$ya68&2~*2?9o?*3@)=c%!*0&dV%q! z-VCfCmvs?9V-mF2_g3KZ*ojh?L*smEtIS};8?z}=NFZBjc@xblw&z?}U8A#ZqYyE5 z>@U$l~N}h!pQ)P-uVK>_1!NPu`wLajX4%r~FY%?b~jIwa_#CG`5LlV1DDOwDE%i zr)X;pe``bu{N#)=>G@*nE8t&Zh*B;ky0dg=;1Ki3-C8AV}1aa--6g5uUY zKg9vg&MjBEGnQr+@4_?P=<@A0$g1)t*rPB^kQ z8f0_YtA!MYZ^ra~Mtu}d+WWF&g+Ta&|X4JN7 zYf=beG4(4_CK_EeXUv*y-9HXQll9={2wu?}Dsf6eYpvmrvhrt0 zv13>H)I58Y=XzpcdzIf(yp^3R>zkC}e^}+;-hQlcJX9mG-r~R122=)6jrts+6hb++ zK(g}Up_g(t@IpMxK;TQUCm{}`XB~%}u=HcKHEz92`0lRMz}ZN45mu-3tkqvnZN3Q=Tj2&fD!{yGqpg&_uOef5@X9)=X#+LCUuCr!O+0bWOPPgH{YF20@-lX@W}9 z%dQpsWa7AM_eknzMX2u6)3C|*yTc&7N&(43Vj2k#CI$nxBL|BNLnbM&%5L zNpgPm6Yz}o!FSsqIQYEPLpor4NPs}R=Dq6J)7FeM!n3Uxe!E$`N^b7lj7aS7_9t$c z2eG&x&3SUw6mVPVDbbpsGoxQpA|U97>z!3)Jz!TDsC4_U$JLq0t9%EWXL8Os6E149 zYn)=CNJya=s5^6hV#h+8W6ifKpxYbI{p12X-1u|as~n-?K64_!m7l3h%X)yx#GXYF zAbgZW`V*K~_aJkGr-7flKxnEgtz@PWgYnUV9%y<(-v44DatLy5&TtjXaMvslo$kHV zCgLqAbrLHWj`T?5N80BF7V1AO#hygSWgN2R{=FNH<;x<`vsO#K{C} zoC*0vutEy(c_?&ZrvXS*Qlf5D|BNrQcAU>fn&E<0-mOp@k#!wRWYQVp|Fn}TYL20o zA}q)dFI>o1e8`={5udscB#PbpAoANRKg&2MvegraQ9OOT%@ZK0!qwI~nyUa8Yp)$j zysCxi#G?nkuMTCxdVFY2B=&CK(XJkn^qKhhZRXMpMO|N`u(D|$Dn~rA0Sk>TvDnVj zdrw-Ni98rnpnAD{AZ>HLYi!2n^OL-H zlC_J|xLISlr1z%O{ERF}HBrH)I&ptOgYhuWedC@%d$fd(L%Lq*G;7=9my{#HavROo z6KrDUP1>fg_43zFZV!zm2st~r?HXKx!O~A5$+Ik%Tnll62@x^WIq%+TxPniC+1C(ft+SVDnM)ZqXj#>VcKLPEp_1^r>%TTehv>_I!9~Rz$087la6a|T;mi|tz9|$#+PXgU-Bi` zQ>HywyxpkSsW+tt@T$d zK9xJY)Fv$JkDQ%_#*T?bTJ8)YLRk@!(Z!8-Ic*VZ&BOkw$7Q>EPiii!vf7&aMuup` zQ6Zi~w2YGPZJUeI`xh*AlqcV^*Pj?LMK@70`r|Ylk>~ z6&Wl`1WDnH|0(D0A#uNqoTJn&ta_u|+QINx8=%A4FhUzgcI$6CozRmPN9_|rkzggwxP?U9IDNH~5 z@wNFc_&RDv%utP^%l{BGr4)7S&y!zBDJ&6JHQ&}dx1uOg4Ah&;XPQ+R$(E#`nSaRF zQG0S2AeCeg2xU2n4s?onybNp0!5lU!(OM}!JxQDkliP%_{ys;CAAHIP9~83sXjW3GQp+SIP_Up!KthWM>=QqEJKmAy!>= z`_)0$k|aR|Ks?@Rn}PUtqjT3#29qAqqamA z-d(4tg8#B4p?X9`jA)X3JUjB%%yNsHht!LGhEgb!I*4D$C;4x9kqA+DLwTwA=9%pe$F74Nocc{qlT77|_$R)uaL9oZluE%4j{t_OHiUVTm zUdoAPv2)06XJ}KoA3&e&APbYWW9GEao{&&ip=pHk64E^Fb$gnSW}5)=`&iQaXBlIc zd6_d}_{`f#FoZd5X&c;@?ASsXQmIGpnZM#{Bhae%jJ2JSLN(jOkALOk(pt|7?cQD< z%B^J;ir7)J;UByR6>aA_rmg&#XUQp%iMOhvVi&_q_NVaGdw#4b+bF$ffmZ(sg}Lrc z|Ai!adNQ69$`Vmo@c~<_gYncJ6+3GU`!?cG0KUp)T;+~E9dR;PSQ_JMNp}=`Fye%( za>V}WD{l2)ze)>+HwC*o7hR<{Z1PlUaRm+}G_ghR{1*{ENW!^K->^>a?ABHadl>%I zWi22dPN{TAie>k+(X-W16D2$N5t5utYLtJs zOUfAJ!*}&BQ8X}p4wbd&-Tzvw4H(%Ie6hBjjf^D{{tOX@Wi|05y^{<^hBNwmSa`jw zR%^I}Vj>UH>Tgv|9Wcg5SMjm$6iDvBamY)K-GCBFpX<4ZPD(cjH}@A-GC1y9t>Gyi zjN-q&kqLAvt#j{JJfabKMU?zR9Xwl%M9}otjgrqp6Q4!V|1+cnuu@`=0Bt$}*OSmJ zr!mrq%p@a_R(~>w*s2p7E8Y!u!%u9bm*<`48LLtchap4b=c1qho5!E8J=o;l!8@&f zEx*xIEpm^)R;#~^^76wweog=dS&>uUl&yE(YWq!a1|D_<{fp&fD|CtSwlihXP4bJG zYzdB=6PTkdNx4itdjzBkVZ}Q8$5RT=9N-OQBY7>i)20cUO%)qCyF$IAw{-N61 zG{kHR3Y?t#rCanc+kmv{X6Yt9+)M6tlpqaqM}W&9JfkqOZc^Bl?&QuV5j%w;gC22u zVnA1aJ`(^W_Q*~M`pyqrA6)93>z_knc@h?~$o=)&sW&`P?_WRxBtdF|)cWqzWrbiN!D8Sxc-8f=LE-mWNHzA5$=V}eJB--^b3XM8M$E3Myt zC1;fAFI%F2RfTt%LqOG8wl>>-1(_Je#E7Lp}{*x z$UF>Q%m{f#Oq^6uy5;r*(d(tHaEft)zM+@3Tqmc#S+Vo%Ax4BV+3!_{KW0m1*242; zq9#ROmu?)K_Duy=72A@l$tbpJM-@&CyDdCuKgtn4e(LKjqm{F;%2(`>c{D%nGh7I zaGQ77_cFx^rUb`f%`B&TaEbFWt>Jv0LRY0AE!HEwNDSHB#>-dG$fERMK^ZJL-;I!H z`9exDW8a1%4U>68?`XY*kCP|4s$T|iF>m+i@gxHjA^!UtYoHnS-Axds+-?Z_QEvOf z2`SxD@}9JpmV_hn*c_2o|28k2&5SQM!tjKauazQQmzrvrTEk4*L?7?ICqW^Vk=ID8 z`cwutMa&TKaI3OT*%gl;R%3Mn692H^>uLsC{oO(kR2Xa{O#prXfTtukRNBL`q3SjY zpw*soK|Ih9)1@P!>^)dL3@o#SX*mxTI6_K`weXzkQQRc(PkhVPA|13Yd8r#~^4K%P zCpqkYJd&nZ2x64XbH{!WT#`CoYj^;BB8u$7l!ZUCP9gQHx|Dt`T}@3jY<`*4d9!+r z2W36Lal!SF=y46D_A?t~;mCT-JR0P+4QZp9DG_3~-M%L2N+ZW%)lSPIq^z_aJtcvn zOFxNTElqb-uPD~LauXn~Zx%%FI-gxamHxF)z!N(i1z5W@(ADZYK;!5IKuPba37nEB zr!|PaMOVn=j(#Z5T|doUpX zW+m;~vuergpOst$?Bd8g1n1=}ct=_fN$XYCA6tQ(f@|u7>SiM3(HNe)-8s<}{fE$% zu8O`12CnHFuwrY~l!*6ckNgND7nlfw^;L;}1cA}JZt8mx7}?iGBjd2a;*7N@{1OI@ z2lx#0#M~Wr_J!zrp$(5IU=)Fan1Gd?_!T5*mc3+OwN%p4=uAUyFsxrbSU%l z(2Dz2kbuiu=g4#(h~0aWP`Nt`VY%p|6#e9E_A?3T>d$6nF_A+-1)Iw_E$)- z5Er%|0uHcF~y*frw*U0jrRStIOf-r8-k{YcCuQ15*|V0oHlE@HPfyYl_G zak_w~TFv_lL(MxnkNt7{`J&5u-zp}B#|tZ}8{VP8GV+Iry-BVUPzYMaQFi2$xES6K zK|UgbaR}AD{8xxB?oRST-I+7>aC0_(Lnx2!I;;dyfhaoWa5H?$FzzXk`1&dQW&HEi zwSkY?8^iVPYgfz>2d~gITnC3}ca^e>U!@#Y4UbKgs~Rc=?bXlHYcyf*hQQTbrqzoS zk(aUx`P#}T#nr0Jr`H>#gDPt^2SfA+LaMswuDDL`o)ZXwFSNAZU30RubfUHf{+Xo1 z*?RBw7(z3VFu~<qZ{5p~W8d>Xxnl4S1j_&wU%RCc~c?hpIv%A;>cp>Y{~ zrtpaZhPeOw*W{vAZiO3cHll^k8Q)VD)d%ICb;^nI^~uCnxn~VNn`z7w)Anw0ltD>n zdD~gPjcx%%rSNNqX7gVTa1^zm?C~4;oxy+edCro{?mRF{;2a!>L|$>Le3+)y zE30JQlZMk7x?{T@PgirgOKnraNa+%1BkvuCD2t|=(ALb!aO%z5^`7*_=hmU{jJN%3 zkaq7;`*UV!d@$r%M&Fszl4RuEtZpx>s1@uPqt%P8QsW%5on>Vd)q8>5%Y= z5{RYfP1{lDX}YL_q=|*gtk+l|*|Bj6u!blm_K1A2UfM|;7s$;A+G+IY`!isq*RM?M zfN(5DZ$5#{&vbZ0xplH;BW9)b_7$d-vEyitG zYq&YFQ>vo($rP}a7pyMRiZ?MDuPviXY96?~iKI}?`ivoy9ntX&U(uUIJV3mo*YelK z{pdEDW7t;+*~Xo8j4{b&48d;t>AD1Dj3q7-nJ#h5GL9{?J~}}dO)Mrd8sfa+TFe{I>GSTE>ED8J0RFlvo(BSRW5dFu7V|CQv3oDW$EqSRpc_NC2mU zkaJK<&I50&;fO|=oWn_f#Aai!d2PS9#mK-9#ewI$CKC=Sn5fCTY(HcF@D@uMdq~Bn zA0qi-?GKgK{q{rbE+Qj$Uk?W;qbswna5D+eGX)5Z1&yM=N8oQSq6i>)8pDV^xgCfV z8s20{SmYhXA|-=3OR#);icrJ^HOD7(5Q_;ae}&z%jy@RWDPdx*3fO8qjszQ}-%881 znJ4H$^au1ORtr!`W;!4u^etc&6jTPLmeBo{0>RkWvkc_Cfdd&~-3?Ui z8BBVUfe(P3j9yM-HLEi^1*M~R01VN;j8SJb(3#5%83|(;Z3Q)9lDQ1=5gS@LQf$z4~G{|kc zn$=vGQGJ`bZJ+%&`?lR>z4=r(UICfxpTFW=Ym)SLhSwRMW^8&jykWzJBcFsnA8fkr zzv-Pn(OmA1kY}3d-6SSkDT~MrxGCX|mQCzk!JjS*VFJ67<^nH8uc60*v+LKdkOWU^ z-h^8e^1e`h<_y&vk|F8urY6-{3*L#L{M*Byrl#iK=PySka~ly>bDP55DfVzK$H6Yp z;cGE^&D!?RlsHZtTJdIQPwwuCbzKrnp~eTbQE;jLk9(2^nWv!Gs=k|_vEc))E(fFu zESWVDnO8^r)}z+YS~W4f#CpO2v4|bw8^dn&kyZ=oQAJ zXF}E=^6E(FC3Mc;=$6D+M#p(66FN9`0%_(V7Y69Qt${WwVyIwN9EiDT01LW+72y!1 zLOgxZS@8?4v3Fvfp-eOE$zZWAiW#Ov?v2HJ!(XI`AQTZ*Nh8!F8N(Fz6i5Ud_ zIgb|pxy%NRith7;bf|LE`kMU1a<}Un@V7qd+>SKUbh6f5_})?Nge+1O6>D zlZI_ceSpWzqwU;|aA(R*ooj!(XAN4Q377vOhs(tyG95+75%R=AZfBR#?0k!uEm$UvKO7pr z!bxCtw|Sy@v2h{#w=3PQPFe`h$C4`z%+gDAQ~z2$)3e4w)2suw!H(OnR*0-IFVphgK}S`* zBSc&sB|I``WEwBashm2)>)Wi=&xbGZb(-oGS%Ucm?Ma=HY14vD18G4x3a3c5D?ChmXv_Ycv-||TEpXlV#<@lEXqbiWK7S7_}{aO?bM?DG`Lb9a+|5}0|@q$ zIlvB@s(Qjjqsmm$#H#qaw(!iDe8`jVlF%Af(-QUu%7Fzty2*#UxFeDM$W$IIes0&C z8*vC)$aM$<)KYIlPDBr>vN*H6|)AYl3rd0wRf`~^0f<(aAFUeYhu|C~lx-}*Ju zSc5Dp^8VDRnFCLb1SKE1dUr{2WoF;MZnyTWn-ZNHk!VC_aEYnpmgeMcZ$fZ7nb0-1 z1b1>bzA#E~NDz90qu7Ct%#e(uGX8QQf8sC8_qcKwvOO{+5`FUmeYrSP-Yq>Sw6qoo z6Qz1Kl~CnAHAFR|+XzZ<3El?_+XUH zY9UpM7yNAuHGSU|tB-08%i+qRYQ2=@tH+bz~%wzD_lHRV!Q&bir+?G;iJq zg83`o76D}Rb>S$zoA4=$rZc*PgU;j+z4kK1{i}}>sr+Fmi+ROfuX(cJ`Y)wS550T? z#f^j2PckZ-MHx}s$D*WHi`=fv3ci?B2%PgMEQ&Hq_$}<+F=~cm)0+*j-{=oW$*Ghv zLFkdDZxJY@L8^?N^X9qC86IPEZj*wIad3SU?&?hc7#LwlXTlNe-C{)Aj2 zzGhHw`R&7k^lwg-EmylaGDEIc#N%;WwH(3L9}^`ib{Q!~*KF(RAAdloL3hDCm)0Qj zHFlwDu4qNiT#7Awn?c+#iN$uns1z$mvl6Fd%UJHg^w76UYY;4DM>jmgUmFCEDpt!j z7at^YX>rfy8srYq=nxTo;!}4JdBqDSJ7QaWU4dKdaScz5tG3k`EP9?Dt4~(fC%2&` zD^c|Rk23eUs1bQH%lfRw#!w-g zc3)51Z)8L%GM1;GKiLtTz-P`AgS^|No>c_C%4jKcIu;mHQwR%*WuZD%3)A>9k{FSM z?6A+Ds!E&v9iYDZN}LiLfn~}t+$)X>L;Xc!om*wcvRn$GOY+1xsVbLOVkRuJM}@-* zjKF&dOVx#iVyT+LC!#i}FR!WFSd81)33i3pK0EBf@5-!ki8sFty)NuDPL^Y<{a~wA zeuv<%hyoX$RQ;&J-wmsiEcSv&y5rHAeCxwc;u-g|^V-^pt_6B$Z_O!%#E(GR*}+Zo zWwa5pUt)JcpSYFZANd{Ou*`RS6Y7 zMWPOrxX=W}Pg>plwIf<8^Gg0N$**O7%lzX03l>b33HlQ`rr%NQppD7)q&M(J{IS$K zWe5C(%m#m&GJ8Uaxy)@fE))P{hAIw(YOUF2YBGeiX#HiLBxD?H7J8BTfpKKCK4}4_ z0Cq)K^x0P9BV%Q)6;!a8V)xlDIBkhmW?K)@3MLE$YY|T)dz#bKG?V<$!?KZ&UBWa> z+s<9Uz2|#e>nB5%v46f*Z47&E2jHvfHcCZxA)zEj)OMr>&~Xp3NMyAfw(c+Cm1Vo8 zY7I|Ni|n1~F~&cF?D7Y22ZAx^k?-dVK;U`vy_9Wz=e8~*ZrqvuJu@9JmMzbl4NY^mK9y@D|aN2ebWL~#WtPMw3>+2_`jwd-vWz6bZ-vw31ZttFx7AxP17uYvRm(rDgQM*T53w^}B zV#F<*<5Iaett0xf7UJn(IMg?c^UrC(wJI5PMJ3g=bq=Ns!(Cm2iLjGrLJM)8Z zH08`4aQK_UpSzr!>ps!=-%XpH{4X5Mgn7FC`k^vmh1u4{i7A(m zjXKt9BFzrhea!gh!<6P>BfE}g$0={7hi6$s`-+;b*Jur2+$qo?U*yg&8pze-_CHo` zb^ND|86_F9dy{)d{@U{~v3z#zJa?V-uepW3S#Ss>PL z3yg1VvD6cqi2u9zg5joRO6KjcBKx=wvk#9o2((ZWVf=R7*@bRvEQ=078W8O_IX{w# zia{vu$Ar%Ti6Q>%H*T63QRVQA3t?9p(xBQ*w!?1$tk?tvEIE)lCPE_9X558|aW`|r zX-sV?l0Ycl1x69aiKKrG)wq*B-eNuTIFf+z#B@ zxHS{d!D|}c#);(o`p^XDO6fd*k3D+ z79dh)9ePX(dx+j^eYQaXMwt5gi>ZQ}P>0$<#@>ZwS+#y**EE{-cpCZ!=8wVl0wZ;S zQIo>_T+z>YWoAZi2Ed`adV$J1XV4Km@^Scc4eR@g0|4jjL>t%!x*OA4&=V-&lmMI( z0gfFb75T{wTy#hoX3Ri;JS$NNKSnZyaOf8wfL^Cf6|crX`$Bw!yqtQ-p2e~;k6kGK z79V2%jU(Npx|X8^6gJ-VRkUI0g?;L#a9c+1rrd~F6T0eD?JDuru#P|zs3|&o7=+2I zjsnl5?eNXCx*(F80v^g#n9BA7oA|HcGsi4$a|B+ z#~308UYD~`H>gcIsOExXoCw(`&}?u{@__>pPnYGUJzJj8y zVv9A)?xuc^U>F?cT&sW(B()p-r%Eh@L%coGwMWPK(U=NWS3Z?z$pLjCVO+B+)o7H zT_K;j{FH7|7OTc!Zb;?k+*We7zV|D&IgG#o<%+q9{SK)N?D7+G(6AeVD=w&Q_h-sN zU8DxTMYTYM=&$Kf4ZRK1r=D<63NFKmp^L?~(VHB4{JVxOxd8iy{#kYZ(D$b}o3;9l zbfAXbDns9*pjL(V5u5qc{-MtmFH#vghH|_7=~dQNyCJi7!xUVNwY7z5I5Mxi6s%>m z;$yTUH=Nt#zma@Ox355KV&2)n^JM~(x^%gl| z|L`3lNnh*~)Ke$H6BHld=*0mVcbYkg9u*6@Xpvl&6482^Uv$Ra`;H4=<#>G3mv$o- zdPx3}z}3o`IM!zU`tQRX*2PaI{haLmbG$qnhv7?8{0ztDbh>Y|FKGjW(o@B&cgl-S z;wt!IJ2?);^>?fIWG=XHQpz8k(f4Hyxyf9fVPdj9%N2OuEc1jvNi}ctAQbf-3Oq48 zew#aft2=gc9|IvF5o`ux=YRHHAG51nhvfP=@oAfZu-!99EKvMIYY6_~N^sX6fu`=< z;=I1#!pl>{h_~SqKFT#azQ`ND-D{0jW*?}hV&jC1T2L@4Ee89Q7 z1g~aqLeHqC$x^A%o5?QU>njyIkgTn}+BQtPzgemN22!*ny&8iHMbZTZfpB0;q$HDp z+VP#zwBaS`k&>g?#COVj$EeIEmA#7ZGT!gyaT$U3_mAFnE-A{ie*Kg|w zQC=%lnF6d0$#FFuzO)OmAhE*Qjj!(WM z-M9Vr5m7Nc^p#+&`d3+3e5x;K^rVrOmZtC{e1MmU!&n+Cv-~u+YQ|8bgX~f% zKh#+8_)m)N@uRhF$!VEd&w5r~~2Kj|ha@Bx71T zBP}m3Qo5J;6`JRM!D;MTAfmezGu3px5*&A;{~YWQ2u2n>VsUbV{M`g*)`arqSAwwel~w%zzJ@qL7NFnU&6 zw_%;YW1);kTe}0g<=eh!w;&{BscQkjX=v=UkoPs#XVz>YMHL=a$960aP1!=A2bb~s ze<(_+Hc-SNhxWH#=EYl1{7Sg!rUZSd#Qj6<5YEVZXHqPkM{`yNLN>iEJ8TVtKbSqM z%&J$%HWuI=s|r(csOxETqK^}Avn1%%UmN}ceDM+!x@D;g?Um7qp%Hs1R7r}xqS(u3dhDabs2MLF z9Wr&JEW;@C5(t#g5=5COb14=jiBH)!|KBeo@a@y?{yrx<8S8rPSdp&BCu*Sua%fG0 z@VA8)WtfxD>cji_rz@}XDwpp%uU7hjR=Ul+ltBLfB>qgp4l2kM#IyVyPK;5Z>2c#o zsLbV?O3Ce7X{VXOCGwvfE)C6;q+DIRHx6N_ZC!D`ITDY^@52*FbPi-&om9Qt<%87C z+^o&)HiwhzPgNDiD3f@a#vx&2Fu-yUC)#&4U36)sJ4_8N#6Nw92%4ZZ+)q)GH|!?X z87_5BJV{}Ajxe+{NheX=$~^q*o>~6Ri}U{F-&w$m12;a>I*;_lENh&v^IKBkz;iD*W!J z=@;ld*T3@PWYIg;-H|M+t(*n&_80%HD!#}SRqQ}jhOc6$cK1d(8t@@3Z9THXxfur8 zIZIuT*z~w2xV;4KSIy~@}p0q6=liyYA*QuOi+$jaTy$8?gH(qUK( z=Tu7L%H76sGEz!rQW8YC0EW_1NXP9R}fmRP`g(o4tAoE*a^?yF?zRfv8nG`XX5#T z?h47;@(e*x|1;Ql%u+}@bB8uFYz|RK+v&fjZb^oi5w2*!lDLrIgu}TRm9{F+8Ow2` zNLXqhz~Y6SGu*yiE1s9&GNrA^s>S@DU&GCY%azQKX)7!Q1mW@3Xjbg~ta_N6xqOr+%lzLuIAxlaC* zH^xXMGi9_bT&&xo#Zs!GHTPX(@3GL3dl|mzur^}mfReOihl0j>kYbcJsT;Oni4r#e z3JD(&a(!)s;(|E}6tOwLN?Ly3_%hs+8k*h*XJMBAKP}&wZ27i_4f>g^?$Pa4Nc9!>xxrvs)zGIoEDaQU^$2%?fU?h z=1sFq{2itUm2zzsi&u4mfXeUMrw6Efo!eJn>jm_IM1!a<^X1Fdq;Ye73 zpgq96R222*?)dJs)vukdl|EV+YhzgN9B=H*L#;}a82EFaI& z{b?dA@LO@fgGxX%`kF zMkk@US*U)CJA{W*F%p*M%e}!Bk(|(j_3kvR^C=cwisj_O5N;3Ua3_8uopppiCeh~( zOG2iPH1i|IA%yMvr&{_}BR>MuvOhM=yb{$o<|_V(EB22dL7cP)n?uD}XI({BS{GO= z_z-9}#tJi6=5D;o10hk|S&qlvnTz9B+K+v|}QUIlF{1Zv$Sl++L&7|GMA~pVl)i7E@9&rM2q|VGI zrYiEstc!!SSq?&daNJE+DMID5RqO+6+9mEP1}o6z@0nBbjU#w&8@qQzCA3i$Mt;V- z;h0PRL`&~ByqmCv-Oq>!KaGe>#Y<=@@+4vf44H4U(2DpqWjYL34%WAd^|JP$d!#4M zDuxid$DFgtWnd%`dyc*}{4pePskSDNg+ZxTG@($ZT3T0uk*Pc2fUqBT2 zvB-@(tn*~NZ=o$!xOgk(T>klj_+|Nk#ec1FMK>@Kd>JR$d8-?IaV9BLCR^<^hHiAm z+P{fZyJ>!*!`gfao2#$&c;Gj&=aJX$jXf*-ro+tdPVAL#@{>QAh`Cl$ z!_0~pyJg$#*V5lLvLbAoeX$9lDb;2beoOw#gvw31g~~TV7^rVF?}&lq*BTw+wn3(M zpWsH5;oZk35ex?&8KSYa$u%gkITk~cL%bRkDpRVt5jL?NspiaE^hh=5bZ2afc?FbU zuGg3YC8#6T^DD*``@oIDl_~^I!NRJOENezJR`TtZ)rpR;iZm%KZT@z%{P^-SHIMB1_Ez2cRB&j@gQ|JEbQ%tSX?CGC_oAL-Jz~geZ zWZf*zGH&vM&2kK*!h@wEHoK+z#OL`6-dS>c?@+66>G_L)?QH_lV$=^~tts;jGtmSX z{I+JqMX0%t@zRp!zJj}6)QpLH9~^leOpw1J?w%L@$d%vPoV<{|$G2P6sGTvI?8@|j z3M%_QA5$c{QQ9K1(HYOqe>R?*dk>WtE{;!24LQUNvC4yL3`2ERVeH+P8J`?RF>rwM zwJy;$l?)Fmq|$ReyT}K;*Du|l-x@ASPQ-Gxu+LS2u4I9r(j4%&sWCi=z6KrB_O~;J zmm#0mL$D@eb(7;erIy`DHKo7FYYgvQ+PPD$>s`)zy&eX z#dD11d7P)=mHM!Zg;aGjjxR3zS`30Bj^tiBE30M}QV1bQYVW^}M|V zSFUv=WTPoLq>~DQPLJP;1L9V4ig&JdF|;bmDB0|YzSj?hh=q}b49+Bs8JcA>dy4L}iO3AH6BG~UzMhXQW8r%OJpY~A#$YGYX%EAMfK4|^`Z9g?@p;d{Bv`#_(8ZSDEV^coakTJ$<0r+&rGmD7nZq4{+*T)knz1H5n?FZx6C~&KFsNonfkdD-h^ggleu>V zS3ggvCvw0ZXlo4kRve2keuCboZnf5jC?|SsIfmimKt0{ZFYFPVJ1mzJd>W4kYPr}b zoM(I*kK85Cj!Q|#Dmlh6+oSuMFx7ww9-GHIv;A|@7BO*{&QBVG&u{GK{ETy2dxfmo zu)I!)X0Ot-PSyftLQkd4l+ko6x6DV9x``t90lWZ5*v zs-7!i;v$N&>h6&f=NXcn6ZQpV=8ldedmA`F9vy3bzmMhKBO8x))4j*sLcL#f*Yg9PKFFkj$qJkC25Krf0!+ZcD> zSYD0SSok&CBaI6WKBZN%O9r(xXn%-5Gy?sOZ|Yfi^=+~%)vJ3i@Gi+Fv(4O+xLBq@ z?QZ)SI+OepYy%kia*9ae*(%?K?~?tU@4|0unn;cZNas|0KN}YSxW@Y5ftkf*_wdz- z^5i40jFC39AK5S_Ojw_GP@SVo-x_0XXhhJ|-%AqKOt`zKsnLFPgM5a+gloi#rJK|< zop72YlwB)_e9Rb0$fr^NdntT_*~VA}I*m1)N`XmUyBi?!pbA5zIOg_GG{?x@8iq!+ z8svgarll5q(;hIKr^gkzB3wdY;3`mk$&j}1DYRs(J<4&yQOJ>k=7_`Lawm?I*U0fHz{_Qk=*{`TE~0xqBhCIu5YChb7=ToH+!ObM}mRLbVg#oXCYk#hdsn9h@dpMzX^DS&+V4kC`yFu#^H5mg8ky{j zS9%jS32ryr6F0zKiq)^e!+_P&auNhE0p+FVi`b{|pG(}DPIxS-63#w7;qRP;^V11C zbiz^TmF1)|HFFwC$ISV6#n*{7YQh{aYj(I5${goj@9~I_FX{wRT$WB|y@b{l(_{Do zeO{P0`pn)?ghDB9ak-Ko_GU=$N5mcz&N9YW6~o!4g{MbPE?>S#EgG-X&7Fmq&DdZZ z#Zp&ifBFSl-RbINg$*(p-U!v67JPrTeBClh*2ldPR_>3oz6{7RxDH!5&}RjEar^0D zl|=r&;+$9QPQC_!WUH8>QrHs!U~B)5*18*I;m%6qu(3QB4|!Ub6GSO@?7=cIyNyF{ zV^s|9;bp5en2g-t20=BBdaJPl0_8{Z4;rYU_Z{j=M`@#J}|&k$Q;%WqGGHdn-e2kt!ToLz3 z`BT@wj2>$2%k5kO5g4nbsY`%}Sw0KtcN4QVKJJ^c)R$%BH_dVPnB(U9tG%K7xw0YV z1S=0@1Dsw4M7t}NjEg?t{_2uzqupbdjK<&@Jyx-#Pqh2~Wq!c4mk$S9qM1e*YYuWt zhLubXl7Lk^7yspEoLpWbF8s#uvqS}uyo;BuPqs$8ziO;{j1#a%@Xw>i?ppX#^7j_4 zfok+dhOn=-O7)z5)PK}u@1sWKkSI?E8RTr~lCf$O(sojGqfdo#qi<69^~6bNf%joK7!MvikBK!7cOFH} zZmV22*hOOhd%GD@d*(EztNh)jjQJ*>$SD|sh#GI5oxwdibP^#~Cms?Rq7ts&fZ zOpdNMis{S~cT03JDDY?g=AiwA%f3rzmDDFJ&7~&T7-Ky+G5r9Z&zic%s(P6OH(9)g zT=B8z@lnDlbK^uWllk(7nv%^Pf z)Hm?cnJz9nwqG~+X-NYJLVBRE)*ztxKis}<2rL(!#XYHLtR)TgIpzilLqKLep?lL zd}hJjm(E?KcKA0w;CO=K9yry`AB`vILHo^baHo*?H%%}QjT!5fd7F^n^*5&&L53W+ znhIFK-)=nO=X1S0_8$|Usx_O1&_lYh&T4@qyj_gQuZ69|cJ-%DmP~Fkp|O?5VyO*; zhvt#wT{;)6R!cfs&=Z_1+xVdU4}QZMO_}? zz#7|+xKVt6%li%+QEO(MBjb=a9)9P_$I`)?;W4$B!#`F0AOD<-c~gV9!op+t`Z-z& z{0yy^Lg=M3Q7uF5?|nc$$LN1wTGKCauSm!AATME%d*(iw8RQSfI)i-i+>jdNsf!&m zPGSfg0#W6Bfa;|g>MlGKVj9X|b2ueBA%{UvxTqvO8574f(R-80dAmv`lA1C0aDbD4 z1$s+Bae51sg4U9^u`-vwP6bA54%G&QV-s#+RX7`jeD$!gLZ!hxSj^)BxLszq2ZKEG zIC;Lr<4L!V{p55{qE!SC;*?YciQniS#r*Ilo|YfjB+c8}+=+kXN5V`!eiK%{kUWkU-@`le@LMXKQ3wKV{U|Hh8^?k<$}cO_^-=J`a(&)P9wDu9DxU` z^n*wFxVzk*rgJzAk&4TG@~2q-j4JN3-pxeAfI&%5#gkNQaPa zob5H&mOR5-+=)piY8uN5EAUS2V2_YuMQVjCh8~Rb-R$lYfuXpS*wN4UMf2sQO|Np1 z!Q(%6NtaO1g)1?&|CF!P{uUqdkIqWFv4YxH<9EYo%|c()S5Y1o^;vA4c9p(q-^ow- zg#$%?yvfqB!Cj)(3jh;Y)#a`xv$_~TR?gZ1vpa3>q)a~c>5tufwA7dE=Yy4a5nNnf zB0E(mA`Atx7t_#fsy zw?Qx?E|)u~TZoENQ-dXGoP)|o0&-|g8ng2q` z2?}HK$JeUS=WzGly=pf0rN{K!8duUVGuN725?P!pwn8~6E+{c~7*(AOml#zWc+*hf z;xE&qTwq2>>1S1clww&^Y09BFBWp{9t$4Exd3kzo@8(%{Z;klMQ@bh`X-@4b`*K`45PNm@_86VdXzR1wQrNH9d>xxk+fUQD?$i4)kyo*yzyl`7Fh>Nd?SXvz7h<^7^SHN5cWVmng#Yg3|FPQi|7o;@|J(s^5YUV*WAelnmB)Z59G-rIbH&Gcr?3xhf^}srmzl3o*XZ`6RdCHs-<{hJ zaF6$S`yMJJT7l_)zFN}zTjsrMywoIDW~T&k`>C^k)5?T|0C^B#FkSh*OI$j?MAK4X z+y3iys!HW+O$V}(fVBc8>mABfn(w6Pf0xkzZgR0w5l?B@_0G{}AAu%D0Q%3)F6C_Wzh@(B z#_!O1XqsG^A^nS`n)K5TKso|5+2(BxCo%&t!WjUrhn-6QAK3?9bLjsgE~$^>*1!b+ z)+L?2Lm=n`Ls4339{e#46t93!VSgEbdvwK#{rrafexCLk@A#IsC*eObG`$iMji7uF z2a5#Rh8JFRxu6)SL+D9qFFTAI=49*}M(hHTS=A%WakH%I5^K_EP?D@kCHC`!c+BT! zEMxLHq(qXHL>A@dg#BoK1(7JRLe;S*dfaHqNdenD;SHG_9M?=L5uIl6=<#Y6PD@HI z%UQI{np7jT)QyiGbD7(tdu8o_Wk=Mmg?q)!8pq+6#~zoEqUw0*yLp(Xj2~le#CE9_Ez_u}IyD|Q4)sz%tQ3~Far3%=kBba@5;Rwyt z--no`spMM{YRQPbPqD4lqoGAkVkh5&cGtB!odlXH-TZ1!4iFkYJcas-{?1k0oGJF5 z3c4S3I|c2bQZhcyd)E|u%vs-aWBT;_hNs})u`ofFPklE} zKL!6T4Ssj9s|zqXd}XUajOvTuM)ZTGc)<^cb$n;@XsdvWw+;fHXC$%^aFHuCHJGP` zLSKb|_q)W*(->0oW6)Y$z}&wR=DQs*r@<3mmD)@IugrF_y}eIO4}z^)=ccke?}MRR zX@wveh>axBHLN{8BW2bV#H(B>g*#wWH3NFrS$?yq7Qwu8D*^j|!n~WBo58%h_!>2^ zY0SIqA17Gq~m^TS6)Q{4OY*NzAum(xZ?EXkeSP^ z!&9p%?8N3ym$q;rt(kF?g&?T0Jyp_U(!+vJ?$ z3QJq{8||<5wj^>~)Z{Y3$LEnalhY{Opb_U7$Jo2T9)!>v8O#gydX!V7S3LeUJ_k}MQJ` zD0&p5-z3I}bo<1U2&Z(sp4vh~q$GTt_9ZW{@LzAAH^A&5D}nJ2nC+ti`@@$gx2WCL zG;ir4+}k#y(w2G>3q>@C3vh^)NoQa4Ma0=gOQKV#cwb`OspNS1fXOuu0YJnKUw+tF zHt4x4wz5O`Zqpnix#5s8i~nC~I&AnR`KTPvM|NS~eTR4N@a`RB#+$s}aoD)M!? zZ;Ow<0QC=a=JYPmD`V5))-Gdpb26`Vb47j+=u_2ga#8W3cttAK94auqCAK{PPp)Q! zL9!1qT-lIy7%Ly)lXvVGJ|4MCT!48Uzdsc_7VdM^(gVp0VOIa!^Ss>BQ)DER-WE`& z+^>kNvOMMhh?l%Ugi2nVKOA+qU$OG=E(D!q2&nY&iK*C@uzN^b(#u$QoI=`JX65xY z3scozqBaa}K(*nWKUBG97cjnEMl_7PGq*#9YVRDQu1^zmhK7BF-kQdDRI_bQ6YYvB zAzG&pjX%SiObD8xSbKBN;2~S`H$<0q<;|NaC&tZb|GTvJUCWSd+MAMhXY;0Hg|x6R zJ~m~nYl|Knd}J3e8awuJvDFy6fw;v5C3d_&r0wBSes$X@91O#@@!)@=%@Y63pR|5b z`bP#l`wEu*4eVyor6|VwyJVkrSl|yAc+G=yoxsiQ&aPqIBA(f$#^F5`R>HcqP~-XJ z-CBT$O}*F6Sf13-I)v`x7hr{Xw-)v)gPqNPQ_8^oyJ5}WX&#;DehJ_PHr`x^&0y!n z@r>}fjDh9qCP<+op6fQXfatV=jimZJ(|psS^V zlZyGC3`C-%@IWw=C}X{@hQC~y6Z))H z7wfYT67Qn1EirK|!#xz|elso@Vj8LslZ8eu)PX(>U)7Cx#j~u5s|+k~3N@gdSTQt+ zqUkQt&S|ODQjU4dJWBkQZ}OFl*A+(AshW(~HB^g$Q23Anr+5>0_viPG9WgsYm&c24 zif$Z9P*)>%zHIE>H$|IUA#ilwHC{g#}aJ~d0oU0EomGl?vI8l$2SOqn47S*jJ&@ATU2 zHdbU9CT|O;vf^l$iKbOs5Xwqp3a!t7(9NN-U*vH6<+13OvybLlaHXH1Bg7t@2X3X&#5ula_&V!9`nO_}NOPsNicSmPoLO(3 zf?o%+ShTz9GteVk>7DraKm1qM_y+1qDTIWqW*8_ zk#gXU0E>yyP1E2GwHDQwd(oz~=fIBq`<-A%ZtKO4{L>KKZf3a;k77az5iHo zKs3osZ$QfV)>HdP6AM=&Q%mx6YjFcnCqlwQ_TYQ z{0|?XY0hb)8T0VUb=-U^M~Wbt)=)krQWOONSb#f3tXne2eEe;VmGD=3X2#v}bepBp zo3Y{i!V;zH#W3MoWX)PhfcWT#gt$>CN;uy8jQ>&9St@h9%w@UL6|R#p$PJwrT_+`t zFk&N-W3pWnufXWiqTD6tWmhp>j=oaje@j*3&=DKp80rJRY!Vh#LZ&b$uErndz}fv|_+_l4n>`K&o zBPJ176_uu@UKCc)Xr)0-hM+xlvg-9wRjeAOtE20rrFrv)C_?HAGsF}sRQT0g!4F)~ zNn!-x-j2V)6?*uQFdi?#u7bL_**wx0JWy^4N zutmHFr@nt9W2T?J)A|Wc*AYrTqT0anu7bqLEg7s~@duuJf+HLIS0x$MF=FoL{w|jQ z3cjjU$3gqm%44bIW9E)lB~)Ot-pQHx7n+o94N>x_PG5NDa-CHg{m_%Y(=6rM!yVen zg}j6Bz1S$~?03@NZT$M#1c(%W zL>8mdZCPfP(RYGXgCk(99Lo1r_X;V4i*jR$ZCfEB!8`C`2mX&c3G-&kHMXK{=3YU% zI~GkD#>&?vHK8Kh*63~K$>@juq9^-W;r*d~(f7O5#Y_wYX36n}+ zcCxA#xAaDE2rbAlVWw3EYESxl_Yn11tZ8P|7Ps_qy1n3cmiM7iwFl<+@w*#CzZA=g z_aW2WDE&-6PNm6JnP#(LFKUt2PPY^Dsk4`SLFg1+YUk+iRg`S3yqQPP(4ih#GyzlN zto{-=cmae10kq5VZj1K#=5h3dbC`ej?ghmHwNdu8|0Gdyg$lL%%+WtG3xV4Ms)ppv zN1FTL6v{6$tNw;QPlXGH2qa2bRPyCfwKHl({E#70w0wIA_b7_iS>R z2{zGE+h6n&mL#M8t5Rx}&?np#S<-?%Vo$h3fA5px`yVAap>#RRjegYcwej@Q`1wgA z+Qk>ujIOx5CAp7g>N)e3LOo{!`($i4kSb_bt7pnkvoT8G+>+Q&k$SXFxS*^{Exw#q zxpk{fB0CcwikQ{|sC{aLq?#RMP=79afiBt*J?Uc^$gkuc-O?6K1S7VV5=bzL>nyS7 zq%`Uaw?~$A3C{6P)Pv5*qCOZ9#3?TNUUzh}OAnUmZAl0;zWwS{k<2A(1^Dt4s`uRx z&fH@>C~73RB|Wv(rSf@mNsXhLEU*y=O#@KC<6aD!+`c9Hzn{RhD0a2FUhI}dA99fj= zPb^JUyuT&<>&EgFdH3&)Y+7IXX5_@BfU>EwklN8L{VC`*xwmeN-6^H*%@yVH1VgXfUv{dDP0l9o&o3Vf`|)8*MW zqCGyvhlg`ui@M3E$)e>Qt31}D(>=g15G`1ifBL?&^;(%&omP(IFX%m&i5p>#OoxlX z?-BGK^*+%?2J7JwBpSB8Ih7Zm;aYKwM!SrW37~mt*51>{*9qa zvF%oNM>lq3cCF}+Hh1GueL$x%RTFia&Bvur%m{<^oUTfD*8iFm7wV^0W}ck6SGmBS z+II+qKZy{hQ7;FcW4C>6Vo;9VI8Oq)Br55oeMK+}+9S<>O1~69a#Ly=^{_PDsPCY3 zJbOik4J5)3SGGANjlGExe%V+!9axj0_9~dc0{+$w?cD!N?JG}|q&)|4vShFgv`Pi9dy-X$`RJth3>>Sc9 zQ@W_b+(m(m!Fw_WG_m%8!zPc&m8ssMDNvXG?yctD9Usv;v)gH0GbfQ(E!pY5%DvNU z&hH6b-~2va0^wT@8*BGQw-(1zFXJ1Cy{pr;Lt-I5U2N|Yty}eUF&IUoX4|2fq=jiV zbfIWfx%ron2*>2^Ouj+f7^}L-#275Rl?uHkd)fvlDzByRrgY&ewl+~q@+lNSwArJH zujv#MFWW>FW#%6SoGHJXewtM~-RM@NaeSOBKDiu;IYC+O`*I`m=q^`J1t>1&@f{yX zM|U}tYcs0$UNwu3dUtY@tkbCXQKod3HpzVg+O##gxtI&yy2EX*4pg{R)mSVlh7Yxh z&4|Y>{#Q{ilfxJXk@|)7@1v8M+cdghOky^uD ziJK**nrqg|5}4auIaK~CMvppyoy5pq{~Izenz4GxNWFDlxq4^RN8~w0%V1FS=IG|~ z#4ZYz?}=@EA-BWa;(0Gc{DRNyB7W)=ad}n|=ffJR2-#Lj`F|vlG(EbtJkdbk*}1E( z-YXq|%js=hfof9BMLA}dwV==n7MWf7?XL)*8TFN)#dr5I|B9f-e`7)@qOtQz#zuQTgfLI{ymME(2xM zt~VcW%M}}D($i9ILQM0B)M3EM<;ACEbd{*RVa=@Fx^r>qt|l}XW|8GG&?u|6*k*N( zy_ZC3@3(jOo^dYQalWIklz+eID`iugejr}ZZkBbLOFG^0+ochDPFQPH7h6Ju(O1>o z(Ux9))q=iCCrffD*=0Vg=%N~LJ}w>Adh1bLrKMi@pO!=bk7eOu{hyTAy!TOFZ+u57 zuN&yJ{j~`wFFiisi?yy0!pcAVcR?7QHU zpCGHT`h|bgE5*X!=+zwSDUKPvh`%%sZ`rlo(!8|h=w7kCiMo`-hAQrpGg2gfXsuMt z$myGlZK<<_pd}YbjuqP@6aY06V({Qen@EeM^{V@Up5)%F`5^w;_d#!Sd)g_fzGN=H z@d7QMD|INJ|2q5TN<|deR}ZV+XAC{>QP%Cout{CUz?E*2anSg9p_KD@0e@Rpo)DWK zlcIHH4!@O9JL#X{GalZ8vc%O?PRV6}ar3d3%>=AU?MmDliWoW@u_s6<2X2kvRpFZq zz)%+fgWv9hA8GNlI_2H@3~oBOoqMClzc#N@ZpYofa5Psq-ezgw0=hnQEz!SU{u&h- zHC=$!zI?xYt?l&hSvV-#vM;)EpDxS3%PEIuJmcX)kQ-G-?Q-+Nnl#g@>F@w{D_CPR zD?z79o7wwG#m0jN`I(U8GK*$DlNS;=n!?C?uJE-|wt{#L2I+7peBM z&g*e?0PD)*xc4Hn?POEQUibRZbf78H+yO=6-YbkBY>M>Ifo9Kpp61H2BcV&E4X-ng zYa^Y|T_}L=MXC$o^QEoRuvmKS*}k>@gN8-Olq4ah2ts{;JNg!D2m<3;P_ z5%H8fssY%K*i}!npGg0-!QsXwMctnTfdChcxVE1AtwH13JmYySQ87v<2;loZl|~1fHbOFD_kWt_#s0vztYV8HfmuX-qU0Ks|wa zvFBJcRU!@@v7S=T1NGL@RaVvY*ykd~%9+$+O@Hi*(;sa{~IM4LNX~;P|!xX&Y-=Hl6UFJB^haMW&bSa4cXhqkaw# z%!61w{k63D7xJ1ucpu^9*SYVx!zsPCAyu_v_}EOL{zFTiwWc>%6Jg8H4WlM{thkVi zodktMd)&s#I;S+?hbMZYikKc_WjRmrLALUV)MC!_LC6NtH0Iku`?ybb6(?OJH{x#o#*SFCR~ZfegFc9l zzF~&_GpA%}Z;d&&hQebK;l-Q>qJ&6|pnb=vOj#3$#x^gz3Os+tv0lZW^hTwtQ)}j! z?umRWweY19a&e6F zDEwns^A>CAPt7j>(a^AH>!)J)kOX3>hW~5@er$$+8nln) zY03m%z+LP`VM6hK-JgE?TV2&#`Zx9D*V(Pzs8kH0_GJ4V1*!L{+#!_Z2aQ;!^JpvQg7Y{!(7Xz7fo&1^V zZFL`l2x2nBS(PXAK-iM!L@KU2gn61nqXIz$uArc>FYz#G`JPy*KP{iX&bQ!Z9M=}O zt+K~QU5`n>;Am(#7@yVvYrfm`K5ktP2%TAQG?mA1zFGy3n*ymy*ro?4Gc?+o0#3fi zKgGA8)cU?ErBs)4<^Q6T=>=MFTGI>Zk<3fCHPXLr{>5@;e3K}dTfnuoW*3??=3sKp zu!CS%0vb<4TpM6~&YBx_d4T?N)y@ZdtF{)xT?!!hr{ zBHrgm_2&$xtih-sqeO3kmCJK(lgOvnEL)Kx{H5F^;Pk|eWr^zF>t{~imnwWzx2pFJnDLCmxG=|M*ZtN7t-bdAi=4Nb)hxiYkGGwK-1iO zm1cSy&8ltg#E(dc;T;>JKoeDgWf0IS4{J%x)@nWM3r+Mt;9C&D1DBvtqb{6(zJGK_ zIN!Pj&kmw2+{4Eg`%1v=rr-Sf*T04jaO8Vogx~+uv<2G`G7~`*%&d}~#VXRkK?K{!ERb{wGt}Ny~0lDL& z9~O6raX@EKI-CA0Bp)j)6}jq8JQNbjvQpb=a!_Op+bZFooLxU0;UhH`>J}nE?KG+n z-7H-5vf>(vU1iii#dJ_gnzXW^$OM6U|D+*jk9dGBeZBdET(ix!RSx;;e?lTT%UjwR zFL*V&!2{Mc5fUO2b>Wm#fX!EW|@{P|$u{*KI9yCp$|wtJ}-;7+@%C3EW#-D6_4?1HOErbm2Tv zDl%D29^;%WU9$3rZEHT68?V#m4?5S6R1jig$8rA-qxzj}LI}kEvh)DJ#`m;zZSSaqDS<^mf}67UJhSz0Ffb8Nu(mmGe^CL{~*i zyrzqD`r>XD4sA~Sj4=Td@ZXr0Y6cpy6+FQ(%_{wW)PgeYVtl&fHqIuLljkzu-`9Z! zt*^K(!WnFwe^q*BnFHiv#8=!22^cQ1?&|-C zFY17j+Zk5>)92S^dVaNbr2KCi)yJ~gsv8}#JiR~arpFmKxRu8>TS;&=tF}mQ!6k|^ zQPBc6KIsp@S(>lZELwxpnxdcA$^}T{e$hcJ<%G2gLjb+Zp*)AasB|Huj#jyj(sbq2HOkx-4C;Hk7@oiV>j#62RIRt}H> z-yRw&X)X~^+{GMgykz;U+hLmHDHp%_YK?wL4jF2W%UzjKfvzz7i$YxZ;CztRYkfr5 zfi$yib?A+^KvWLB#V+p{^+EPNV~wR(Ko@NrbguYuU!6fbF%b&19{ID%|E+9 zhaWk0zOmgt%X|y=WagV}bhIkh^R4jI`Bq0tO7ER-kBZL7%(qHC-{#AF%Oar6H&JRb z-}qGXEl=j#HJSNV;?TZ`PpmWB)JVND>U{I0ECcZAFQp>$C`@eKhk5O!nsq4qw?x^` z_MvGwC)VYoTI8->dY49>Mu_J(0w0Hl}K zMt(>3TT!R-mYv^NGkAjT%ZYx?$=*3W=!`l3OJPHX|BPAvISNBroMTpN$kz1C7Tl=J z%>M1s?3s&xFF)QhhIlNnnDN%^p-tqgdwMCpktg?}G+=+kT>1pcpvk$+o+cJpts*hD%+f$TX?N*4H_5;(H-xrmhHow#M zZ8BI(Gq8Eu#;uIm^(8@;>c+78l5$zH1Jy8BEY{AxxEgs+GPuHja%rKJvDy6$jL$TT zv={JI0Z)KnV%f&30p**_qjHKQD_5|g3-1B7?+vSdLEjqN@mH| zwI!qZNF4C6MBvDN3VtPD!rD5XhYVJYB-xO^B{W24;P3F#q)|xjBgq zPbQNzflSgc$z;SfQ7QlvQYX(fm>E`BiH_vOLy;fCyxguTF zs?lH$Kxr|-R~x@PBraQh@v2zcJ3>2+z+uLn6DLM!l^&t(LyqR}#n_G?wyXs54`PJ& z;?b!GmN62V$0xh=*kByTQ$vl7G9?;;R-@|hX#>=ne>8L{?gXs)1DU~jbug{vZdmdL z=qL4srbENhv(WH!Lc3Q46?ZCHO$Vh#ccHM+MehaLI=AkkbKuR!x&YK?2V2O(RfM zGD0x}l@$XNF8shWP5ZO#gYX%Dme%G}uRlwAD0}@`7|IiRuARutwJVxG!mUNxkTslX zCS*9V#qcgP4x7uDkQ*gt^MD$zM1h54o*Y2%3H(mLa*|e-j+j`y^B~TQ&9Ncw5zU(6vI7AMx=nf9HDml|zaGk@g() z@lFoqn)^nMe+^0uHy)J3av?^f=YGVp@sOL}`ozwt7j+r!NuSz*5!!odx661)wuDgF zN4dzsy`@dYFS{wzW47)1i0jb8;@_MqnOgFvZ!8wLtCeJq{F5|H9j0DlP z@KreeLG_qbtD4R!GP(A=wkx_#WFR8b@geFuO=PasB9q}EHGdI> zMPz_vX{RGHD3!>-lcY(c=UT0wIU-h>3dl490qM=rt_M}EjtJ#EHM*^wXOHVa3oYUDy)w5lBQU(HUL>*kVGioAHy(MCbN0ly z_(NY>5|?4EQeRfHs>djEDLQD$?iSH8Sr49&WK%UoI#E^RSRRjcQN-LFNKm?&Q|xC3E1NE`8Sj{# z=2Pub3#cGwHyLxSen8=nGH1v8#+owEoczbalG|D>$>j3c`=w2hRRMYC;ewZ?W!5`fxtsph)3_zgBir4^T=j)ECD_O*QBo;6E+z}WtH`a6;V z@ZhU{yi|%ex4Ygp-!`gF&M|+yR0@la9yo5S%$PTH5w7O=>Q0`^owu@ozg*d=RV~Jv z8PI%jKNSiy*(dt`ak4bCl%&4f7|@xxnm^QZ%F<;%YH2@u==0=z!4e&&F&mv zU2OK4d+GB4D=s}2Q&xw$`gQ5hptyc91ER7+ZX^iACbE|^_qY`*4Ygo zDKi8CNCbTD=;dm_qU(fk@Z2B@uwqiWv1a@LV#)UdT4g-L9er;(5gk@b6o$CFzZrXh zFRd}T+6|p^%yrN4&5XayUoj?%VbqGt+qgU5cxhFw8Zqwt#Gg^m%FWns`C_T^j5WDt zOnPCw^nx1wIaj?X$<_lKnuKPK(4 zo|4k?M|a|F9U^j4r~4^zd{j)I%ZmKl7naI>wz^`_Na95vKy8K{8@2&I zlCGfroN~Jm+uwP{Yc(TN{z)aFKIO^Xr5GC0&U{+lDZ6lJ3?g3+H%CO40s#MIt5nRW zMNjw-V{I*XGIX9<_5@by?{h@D5)*5M8;mFcNU6}VDm|=al7Cm3l7A9Ws{W+EJQ#%- z5|Z;|yy%G)J$^P#vgaWT$?SbbbR{pX{`xZhjA^Nk=q67Cm)MB7;?WPM)v1S(rEjry zXhLjpf295gB3ii~r4IO}cVf00E8eSl=Gbm?;t5$XpMOe`TyrB^?2nAF+^Tb4PMe{M zmI8~V8R6YrDDfYi|LtfimkxaV;OHn{7nBO`BQ@*vO+fUA_X7+l2c`q?n$5h|4FxyN z_8(pNIdv{V!$A5O*bi{RN$!;NYad81RV@N7v~+j!39g3uF~wqTS6(4bmuI9);>=c* zT0f3lPAQ3dYUS+kW_KF(zhb*>a#3Laur3)6f7{YaQ{i?_(`VG#5>q|8N%iAoqKY51 zTEE0eWRQMIpqQ)W%|f4foDOFbUQ-9KqTazsx9r_;Z9VmK3@yh5pj=>!riGOf$XDWB z`pjDkva)3e9lBQynIt9fFXKhxTfNB{6vavLt!^14zlc7bbAC!7Z?8GiEluDsm9uaX zXBC@nO%pc=&)S6O#zGE3{l|@ZxgOja*w-ZjrnftFn&B9-DKsgM7ICz*2gWib7*e-2 z>4e1Q?#tO@K;?=r>vGtNsPsX_JTL&B-LS-VN(k5#(U&TTB5v-9S9+p>eci<0?hZF5 zZj_Pa_F<=WF~cbxeO5>}d!JKtKl4Hk^0QcXS}MF-RiT-;zEULN*%@A4eokB|3BZzi zpa6GsA(u}FV+*{M*v>1i)O{*8e(8REeui!L_cGgKLiy?Ym4ko`kxZ#vllgw@iG*CE z<>nlZ%jI!DGuUm8KS9%E8sfY0OF1FkoIDtRpqs&r1KHC{W@ieY!bx?`+D68PFN}x=?Ja&ze|}CfQh@rdbvR(!FgWu3lF6RN!m6H_m5H z&YmwB#s&aLDpyO#aS2grCEBIP5edSw{gk6fqFY8Ezn6i)rAe#h;Di%+gsdE~-R=ft z2wxcHQAPF?$~4RhcZQx&UGd-+LRYF~n8y;urQ4izBC%K|jw*dIrH8*x$yvpki@i`a zO`|$wWk#@WM7U%ZJ61#l#X_Ws1sWxwm#bXDRWnZ{21socKI`@Zr{O+xaRD_b%$F<< z9V1T{xy;x9?74`3$h%SpQSE5Hocj3$G64-eeQ?&Pmk4fjb6y~Q%t z>0-l`cwZ*psef1WQtVG`1rvfmhF|FH&O`@4@oJ@0@#@0(BwxHvdOa;TWon)M#i*ik zVvrQw*P4Wrn8+D5_xtLpPsxeP7&lpbTu9ST9qP*3jl!qe2h|YzlI`XpIokmxW%1gec(845Naa?B=Kmo^{4X1*jJ?R~_ z@QxQOkC&~6jdNW1QElTh?)_@q+rXJRcRQ{yXFclXzb8J)D~G#O?dKefBe42MB`HXz zO`nPlPD(HfWeG6TV@>%Kzm+N7vK*gsf~f1}?I+CJyUp7_jW&NudZ2(_S0&-ig$y+1 zmNrMJ;;n%r((%xh(T$&?$?p;nLA+5baUkv3r5juMssA`Tn)h&XIDdxy2lZ3~Kr=+i zBMhWDLi`fOGfX!AV#%H7@G^MrS-cEZ9cBmcEPw7Ell;K`#|`Q}QxdUb|7$_!J`;O; zIl%?%Zp{^Jlk4AI1Z<;qQ`oZAl5BlaG zS79|)9G4{X+ma(lpR3ZtU}Pzd9RFnDmCYY`F=!bty_Ijm*1wJ&~S$^9~C7&L`oIBR!ui zw38q7&ZX@6R46;T0&!>!c+HDA0B@J$<4)xH zK0BCx;5F|=ID^NW4+jic(@TyxK?8S@((G3zu?2VIBOi?#AGy_#|!o28TNOb_saxL z`HbAbv*-4wbB}P|SF_y<8UWIsAfknjtBOeKJ+V6J1&5A@yR3O zY|d)ircSeeR}5{?21YDNcQ7T68){9!&GN0dSHh~G65HcN&qp_wnK)<+_IFwfhnt5k z*HWkYA2a*E( zMX$2^rPQ4-FA-!}@c9-ElAAl7tyL=&hn2HBz%j2g?*55*DEDLkMF>>_XJFu}R(Bs* z%6E#N7w%brG}gAo1D!#2oyNXlh%6y_DOP9ipAGJHM>h>utPY~;eV*iB zgiUGKmwZyQy>7lRXelps95=7;0E_Lix1=Mj-M)FJrYyRrr899}} z@-6uj*J;Hq!l&^sHFP5(mcg0Xo=d-@+;$9f8;>cNO6(U~`*Sf`iVN)3*ssq0>n$2O zMIciEJ=vB4CW-Vo$RzF7i&A;%n~m{Vd^T(`SIckX)nDGmN51jH4H|89#0F!{G2(|s zTYWfT#Dly%+Mz)@hqPIBTna6S5qkO=8RNG2Q-TcFlE)ftnzc^KW9{$73ViqPaT+5r zI0n@|K++pA@Wy|l8eX+GvQDbZiT@!7N&{F?zd2lvh(9=kOJW_rWgJ_fUo99Zl0Jkx zP?cv9YRp`+0&OOPJ@{P`5s+NQPmQ-H2g>J#UnP`fc|l@2+8b~XwZ$qgNN#GS7)A&X z^opYBO^n=3st?^{eZ_087Ft+&{;>tG@FitTYNi>%ltN&&W6#kEl>%>ED_6{lV`VwJ z-N7uV^WoAusUUHL`aqn&XfaV4zQFhObPKi-(&2ghC9^AyekS^`YVHv%dvi;U0D<<4 zw{Oac$A~(Xy8E)Z6L^vwn@&1c@Dg>ZWxc72=6*|370vxe=Ivd*Z?B&FAa8^A8|S5A z)aD=Q0ntRc=4A_f_RBIQscR)vQC=o#7)9{N{|y-7#^OeaqEmV zi?EOv@{oZaxyTAJ=Z=^Pau45}7p0WC)S!mue_-~P%4bZoho9h?*^(Oc+{S;Xn!hYH zYlJ_da;h2@d`a3K?mtR_42Bz$lep#@@I)8k*AkmWi!Fs%XDSfD>Wd@+h8#coU~%G$yw{{PPbLH$)LiG5zfbx28@YMO{U@1#H#$gy zc;KqueNh8_>XDyN<=Pzgnj9?ooS|Oi&NE{FpmQpSmWn!?(^@VCGOW@;v_w=5eeQzE zEdd*&qTJ)K|^O{#NC&`zWC^vyx@fSWHEWp8L*6TmKTgN7Up+C}Q7 zhBtX7-gOx61N*YrEU=$CT$XalVZEmtwF!*T(;L+kT_=sqU2tnlpq)m&C3Ra0q)|2M zb=4@KX?aLi@6C zWlp@d)84_S8OtGssO*b`Ljsi3o^&eSeRYD$=^<$XP7$-T^*z#(QWEjI=;P^H6?y}-aYywqJ zc8fwQ5Z<0p5+qb{-G`~vtsE{dd{0j`Q?c9cU5Olu&9pnQg6^sYsK$xY7uXGp@*<0WWu5RF_~R7*Rde{C z@Na0#Dg0YRsX=>|x{2XUE<-^W^?w(>6RG3nB~pimu4Lx_uPON2{tN{b&B%Wqo#~w$ zQmHUE6HU(zX*hG^6qan5r&+Rmz9#brlA*tB}Lq3YFusjE_W$BuGkv(G||OI)73iC*p~ z#u}wuC0{J9UWFpEcC?h@)T{RJwU)v}j^CM4uRU5)*4YODz&M40r%|Ffkt(&ip!CQ% zQK^bpTBQ!mQmEo?m{zDP5R^{Ezr#tdmJUYjE!k6`bH^7a-_0g|;u;wZC8)C0t)46y zbt^xexp@wC+n3`1xwxew`Cco=w zk8JV2%pFTDD;~!pzUt-E#ru$bDFA{9GxMJ2512-=krDu(A)*w^|No@E_ib`IsML2$ z(0={zx^uni`^aai?^*Y1Sy}MiZ1rsl2WHeac+8^tMSZL5_#s_smipGCo)(d}>Gx+- z-;$6s2xs=H`OJ>2?+KJS8)#>}koY;jPgU(>vQ!9iLo(tqhJycmrSppg=^1MNdwU!; z|8BOLf8Ld-5~U=1O2muSQ`b_bv4$uVO4OlG9oghrl(>&qpRG^#pT?Ye@@DJP0=4uq z)e63MRk&q}eZ@vSf~_q7QZI@;OWhE(`+TZ~G4XQ>mK8(z9<9m*WRE@OnQ~9B7-rbJ zKam8dEVRWgh$6j_tXWk20+)l&y_EU#pU+Ule}ZPL1wrs%DyTGC{i+c>P5tJ7N3&Ej zpR&qnq5d<}uTZznzD8OrnptfN)Zz~o`=+R0DLJ!X%-x`f1m`GZa3gl9C|)^Fi?1sq zA(5SXHEjOoGc@di)CDr-+36P9XxJf=F|C?=HEes^85;IxC*wi;gO9Q_Z0{mHF_r4G zHmLvm{pncrt?(Mu!EB&(ZLaK3mDt6@P_3byZRwvy*LvBqiXdl833AL}76uN$yJ%Zs zef!#Mj|Ux`bz{v)z4z1G)f#qmoAta4j{-j6MJY71VHK4) zLvOF9+2OxJ^z4PH-1aqh>1oFGC`(ni;JZgEP~!tft(JBhv3vQO7>{hp(m{_Y4XF4? zkt6x0?iDv=)lPa?dt`B84oJYF*A^GC$b5}&*lEVTqqiDL4INGN&;SBo8L{13c4@7X zz4QGAE4R~jzIxC2&(xRn+&V>l$rD^n*)9GTjX9h8k`!vUD2&dU=5|_@t-chm|Fa!q z?s_d7oE>8kMFs7TKhdIL7$ut9^~h>conw(vf3euAM6{`nWN#I$SuDHW4S(5E3!eCV zuQS>N*-;{FhP^5&18pk7l(i2TAfs_Scfq|!D)U{TpaAzPecZbfOOuG5*nCIOD z^m=DT(5M}{spYT8W|mmC8uy_8( zI%jy&d*{i2Q$zFFduKHWdhfjVTUt^+F(+I3ep55>Irh#+*Q!eOmia9ElehKzwDOhy zrw>ifl0?XO|?Mkpt4ED>7XnyPV1ly*);p-ADz;{(D!6c%d4o~1*`gG7c5`w@4u>A z8BuB)>D(pySnv`uYPDA%FK#|VAAfjM>*Is=s(t9=^F<#&r4;$DxxMSGmu?@8(ZHcoD{cD%UjdDw(KC^2aPl5uSSmdLf;f6RF3 zYMw+MxDZRYTw9Ti+Gd_87kz;pJebBM-%2Ps8 z__&MhvBnn=^Fj`gJdwp*PJXP(x(FkwiUS6e;e(#k0-wG8Ni@{KX{Aj;`L*IPL-FQb zX?nkuIs?%wC9F@t7I18QJ}afgMLD6%BKP}p!h<9}fN#Yjn3$t{y`CQEn0$6Ef3rkW~H(iD5j{ zOry^eq6bEb|3ERAAieye&tf9W@FR#Fr0u0m4Y~1JyS2idLs{|aVw_r*dKmmw82IC} zn_4T2c%H&hNcm}TETrSr01Q#71B;rK1r%W3TG&uoWL6e827C>bzQ#a7Ltwr9t-PQy zz^e6i{is+f8i{KazlDpZA&B%@4#reV*6%kLUIEC7XL^=FX2ZXU?2CbAC{l zF!S+0cEOWqDWZ+RmVS=1{E3;9JCOCv0$Ys+k@c9wRb3@9V7PG%4Y$>!J^83Tv)$}3 z@VVY2A>9X6%_FK1rX~}&9zb#07ug!JzG6-8;8JZne3Dickk~V-I?;$tRws{VtIn^h zJNf5ibqnH8_xkjo_NveNbl$1WuDH5T2VW|{P92ObDFt;(I#SLmlTsBUQ=uC@;vYYW{(b}zy@gAk7mxc(EGB$Dqh zNwGPZ&l6XQu$_%^x`GpH`tEy1!!zm`s7{u$ESHA_O<#{J&my=g3cTqg=OskBA6)u| ztlXJLqq3w}728F2EYt zPUWH*oMkk;#be#_eXejN;q6}!orljb6~_EpQ56}8Bar?kQZFSgyJVwAFBL&xtoQ5i5+Q2|-$c{fD zxHa0UNy0Mr0wV({19{=X*mj=Xr&*Vlkv2sFJbx+n3Q1@b(Ol8Kx)0sv-q=4#asK!c z_p8l%xm4vrJVYVW1H~w!Cz0hjLbJ{2OEA9NuDlv~W zKMb5+m~OV?2@)%Zb_9?faRqq?mM>Nox_Ari5?E)Et_9jdxsm1j+>3_y_ic12oIiZaH=3A z$a7b|=kD;!;{!9>!v8Y&$NQiHgPal7PmLQ`;I+rvnHqwX5BpG|NH=^(C*kWAyBPv( z;zVuXbb1Rj_rsry#L`V8bB^A6x(Ag1bxy{Kv~hQhH%|xlg#UKyUX>M9@chR)8N{=8 z1PnEZ0F8!f>cIC>Zy0a9lK;%j!#)%kx4TtT?5>#B=BZnIM71_niDN5?L-bbQZGutn z0&2(2wIqLEd~{0O{v5jiN~UOZL+*s36Y%-j`d58tF9e1zaD zf<-gm2$XxnXqFrW$|1jm!>0c5#`u+&74M7FVr2PIY<*snvcUeJ03Cg}gGtE0HXd)G zGmnP<855VI1bik6wrI9E!%-fPUBb^-sNticIl&VZyq6sU)24#|5CMB4dRY1vg%H?> zKO+S8w(7bnsy%lTY1vlR+SP_`sxc5bYv~lm|*d3Hs zrl9ekT^4p?QI^86*4QaUz8GIDO-N+8eUXg{^M4yLyRB7#uuFiz&!|mjkC+Y1Ka0@c zo&PuSvWI>~ylexHY99J7Fs%4d8tB`m;2Su}7>t$c$WozVdlOVmPldp9KZ1kL>IIJZ zd$qkw-@e&LwqOW_G3SO?bRg`X+;^B|W395$ z=y-z{cnw8I4T&Kw&Zvhxh~Ck!*BW@em0qYt0&P9!EVu)0`{3C8;27i15VfX)JGq-oOO_m1 z)uu`wk7@Rwl4G2$ltdW&qt`k73IE?c=P7tSC%xa^%`SQrs&NQwEngbq`0t3`B%p8MTl1`6~=S@_Kuul#t zeoz>A$`;hb2RhQYTj`;RD!mF_p7%OVms4{!uHKqm@5N283IuI5eTlDZPd)Q$dGY4# zb?=yHdJ_~+x61JbcT#zSQ_iP;#uyMABbfRxydopbJiQ4>RO*`XjCyLX@)!(HMe(U@lovtUn;j6G_ zfaffiZaFb{NQu0zp%))AU$lU9M|K*KVNlBnT6IkiiE-n!%^HZ+#$xn0CYdVYv+;tj zFlZhg`2&yf^f5d0>d5Bn2sCgE=URE2U?`2p_YrDJMM1*rmAD?Z&~Q zsWlT-=+R*cF4macgjRfBVZw<4D#>U(m!S-3EMVvw1x&(S747y2PN1nJP*28nR~?JJ z1{OTUv|Dux~(4pxH3TcHsJ*NEND8s%{3RDa?Po3aGOlBi7X61BUmGfuhDH;e; zg;h2@383tH6;yAxxHJ_Ut{cZ- z11({}FrzV>3@K8Zi)f-Oi|$z2o2?m}JtN*WvzwFnJ)_xEkRQxmcBroQJeP=tX3$ro zL3m)@tz?7hrYH7C_Op+h`{M3WxC&VgmPYR%^&uy=fK*IJXP-n9Phf|}qA=LlbJgEP zcehAXTjb4xrAFg}6#m$A+N(QaG+xfTLM7cU0C)g7U+gckpDKM$bAOfSwkY~Vm8bvE zMZpGFolKD(*;VNaSRCc#Jp%R0S;GcI`ecoReH|MI9+bl9imS^iEcY zMlYq!DPXtmRrwnC8^1#VB}s)cfExv~n%_@5ao8#vi`&ln*lM9eYC*;RL_y*SzU$T` zCYDPhJ=fwKc9ZV47@GtjQxmMrQ>AI6LALF*QcpnX02`}!$UL_56Ms{8IN8`bkWtfb zj{BUrip5ej}YOD!vL;=bln>B?Xt$B2mQAbZ?jWxml#dt7rBWjQ9nUs)PT z>^3*IQXD{hjMgrjI;UX-Uma;Lv1%kDjkdg4RAY~OP*?K7W64T}n?d~X8;ydD=G;-L zl4o@#RW4X*XG^N&XfrrkN{Z%rG&rV!KXtXZbVOC;8Z91?h07MeHgkno7`)w)NGKf4 zayf?%pDUX2l}XUXo@Al|MmRI}J01w%c0pRD2TxxOPw<-b>da0h3|Hsgsm={LA*SfuO-;>)n$tt{W*0vd zEy(19gvsG?ya)*FL!WqYm}W(aoUS{EZ##D862f@Q>4TQnEDJgZ}#LN;Ghg# zb&IkAB1n79U>tW!nBn2kV$le9nKfgLwf}}9R7|e~rP$LeQ}VXawj2%d*_tH{g|i`P z=|z=CchSZf>5po>D1IZUoT-!l^{Zs^tI^_Dr4KrJ zUou%SZXcjkZWTWn*)l0P={Y{W7+75Fm^)v@35;tPC(rh@ z>oK2j^gAI1+nWE8(foHY$4tW!#Y{(D-$_gJ@!THSoGJEAlbrzmwm5~_z8{H*N(q>@ zdd&|<4#L8~kMEgu*fKog=ZBr}A^3O^)}+~GnOasF>Bv|(G;y`lFF7Fmeb4nqqC}Iy z-N*>^YrIR|;V3PlOdm`@*jOiO_3^&zL<0)#`@rGQa6WH+M1hG91Bb)^LYEc81N_CD zGom%JDJ^p36L+f_^jdfk3k@iDexV9y;!J3ZHWKV<@mDootp5%j+wO864J%JYDSlJp z<%p2d*Da)M2bmkD2qQNq+bSzSx{HahE&GCqeEE+xYL~uZ+G9zIY|1ek$MIkXOU*{v z(GV_chSXBKinXj2&wZ_*Ow`sFbasd}z@C~g2Xkw^!fTbyGY6P+=W*^P%qnWkv#A2V z*3b$|!UmWdW|0so2>gJc3l=`Ved|@|fN}T?ULl2a+<^5uZos%^G{BI!UGK9z>!L-? zy1V0j$XGU610_(is*VBsI?WxC_xhm>3)6PLunE&VxYJMMKKL@Mo4%h&q?tq#6^p;c z=JS*2#>Yjc)7==Qn8%Ic2W8Na4FUt$%tMwcV5|+D_5_YEAEGOWkLpkcm~$`7b_;ZKgDzaY3s1>4N{F9X;5X z@-M-d^h6Ne6GzJ%WRK6sy@H;7+oX0=ah^#WQX6p8(@Hu)*6<`=IS+AbEl$l#=0(NG z+J*BVHJ%bLf|ByYB2NO9l0DAzugMbfAzKpn;P)2Lj_JEAK3q3%Ej#T=gtM?)c0O5^ zV#3feQaIR{L%jlh)l+NS>E?fd3(2{-3NFA>2OH;76u_;L+18XvR^=@Bu2K;|W>~(v zKPU9Z_B87QR#cWY

    6*G@_Jx{5ramFebE4b^N~+yA|QTwZRb*SR}`>%So{9TllT| zkk6||ft${-$GKPRUp19yZHa=t-+?ojyEzYVB=uL#rcAlBK9}8TbFc8Q)A_uc zvz|bmSXaPFflb55_)!9$D1MIayK^%=j+^>Ge*UlJKrUpb7hO-$BcZh2r{Bm@adoyx z);Sc4Hb&EH)Ed;yL1=(=4SsRXjqQ`=dkyPea+W*hY3nAB`;@yq&|<89nLK^4F>P7G zR^FQP8(t6j0viO_Mxz97s;hOoLg!;ir`K>}8fjaD=eVDB$1~PoOskUN$3#%Sh0VO_ zYZTzp%FevbtnfC$+7XY;&i*%Dm&2*D>&!96?}!hI1|?jQ>m@Hg>*dG0rRi~THI4q; z0}8li@Rq#9bmG!kuPaR58mvOSN&3b4vsQwVf{u~L+rBB0IE@n$N83a89EX#qI)hBJ)FFPl(}>!mxnB!4A@hw_3g}8Q2`jQ% zf{&P*?_NP4)OY4-d?wKCx((847sj4QkJOnhA4(%iTJaLhv%=%`A|Vv^SjgI2 zM|5Zfrfd*jqQ^E2HySRLQSY&oOoS+emO={*bzbN6zhga>fFnPL@WvjZJINJ48kWxr&bG=XSrwmN z@#C74T@QZ7TF?Etp7|0_>|*K%BsY&mLBydIQ4pzg3Y02@_8nrYOZTc*Xc&uM9j(bP-c9H zHRG@+zrwpb!z#PQ^xRDmj)LZn_|C{l4#=XiCK-hor&pnMEprvWMgJv!&P~ZNALttM zmmlsLb7oaNG_AsU;H{)st6*qpI$mV2) zaz#^G4qdlcW42o}wtGf=XpY&DY+=R@PhsG-@Vi_>-rEv;nNI1!II|f-?3S+gDiJ2> z37z(koYiHHs&lJ;stEQgZzjq4;pAEUhdO^&=O0lsLa$>~Z#h0%kev(_F zYp&@(c7G^+{FLy==7%FTvjWHN$0N7G4DsDo8vjW1=a{EQ-AATv$8EH?+=Bg}m#_Th2>AHU{KV`EW3-Oo+- zrF^0&XD{Lb2u`v#&)RL4T&aY{^HyH6Bvi zo7{zRw>GD(BycMHCZyL`d!uq`i3s+_WVc#5BDh;d>{*yKV)OKA&gYk1qErSn!_C+6 z*3Wj;_=W18E@u6?v~X-a**zU{-VytC zv~buC+-6~hS=hIFtP{Rh(~_v!>@0<1;>rLBWAv`!3!^LHU;@qIk!Gt^>yHLGyKvk} zgw6#Os`#MN`G&4S&Jp1}nZ*_s{E0qoD?7%FLt6}-DWKrb7Cv&U}$J4 z+kIWlKv#G!-N>gK7prc(pudcdkUP2?JR=7*clJTWNCyXL5WY%|E_nEGnPU+qbA87- zkC=*@jy(X6WwzIEkuE80^|@@tzEqE``gSLbRqHQgB?^;N{pG5ANhx=(dR?tVq}G8m@&pn}^I+Bn^ZQ^V~;9g-4>O;LFrlRZcEZe1v7|&&i4dHOFn7z)r;v03I_w z*w`sP0HKl%2bm3v2&%-Kf8)3C_>&=L{!!xb=Q4Hv$L&x0zwjvX$gAh3;+J!4Cf;J^pbWik-nKff zhg!^F*1An^&*PC(e=yr@HHt{f;r^+1wjE>{oJ-rXe6O`ujTYt!cP@xEYR8xx{W1d^ zMZXOm%d9OhH;z>Wip-4#^02W;{eA*;&5d`eUzrng;{)nfRP-W8@XYPk{%RHwt2;-& z(Cus-qbeI`4DY+ib(smWUFKXT?!26bVb?hXnyX4l zL~(!S|E2@w|^4!HDx{&l&rFBYi^F-sFDsyA^oeQ z73-JMq7lmaSiqjcjlYEW6VHD}Ka)>s>*r)SSyrLs0k_dlb6WF^6>>Hq%^ z#$#<1RQikoOIBVYu~rbvk=r&|7#roy;*@dLISkIT6w01Gca>msZ_LyvnuI6EubG+l zixR28czStO^ZR|Q(kyF14of(REZXg#@xo;Pe1ZtFy7|)|;Rk;}=VI&%$l z)ek}XhPAF$hVaZm`MvK5zX;*aL+IyzJ#AN%* zt*_ahu`hf_)luqkwjA;(po)aOK@d5=8{%&2piB$L2)vr?A<>aDgX0F~Mj{)3e z5Y9)_wVfmaG<=W$NW=w664zp`R%3+JtyaVAP#wz?Cm_dB1^ZX3%(9E%4;L-c=2TzM{Ju91^B3QqYEsu1Iocj+TOa|_CU>b=7Ufon6P=>mTlhCm zH1y{iD~fW<)o+3N9j$(Ij29;K;g+8GFFxZ1^uUo_73KPQOegw0L1D=EqU=?an?+iG zm6pA35M3e(?s)1TD|C<7u1%QB?jeN3b2;d45`wO@xY3h0)~*b>Pa;jNui@VU{#EgB z9{*o4e_Gj%8eI9jW86j zK!@fd{&V`MmVT~UD!PAxS#A61`*<3IsjF&g5Bb_=%r0PiP zRfl{p-{$CVa;Aj$>TkF`2n|bp!R z@{I~Qebu+mom8F9ezpWh$r5a*3Q@?7@N~&IYApoXP(yT4Tux*j96I90)+{7c9&U@W z@LXgT<`84SEF5kYjxq~Jn}uV{!m%d7-U|!N!XmS<)GVB27M7cZGt9zSX5nnJaGqI+ zT%^h@yv;0JU>1hV!Wy%1S-dWJ-zA_V~8c%jf^yfC$oeTQ#;V3)B<VsA4gFfm5X~G<=E{0WeUG4PadSkgabP@VmwohFXPesc4 zxpl(j`rHQs$IYTg7-%$p%)sVp!_eI{Q(%mzi8)2SDQ*UGF&G+PN}UzCqxB^;k3&3KE_ z2+O%Kb`myyzBx60J`)@J4*7g9kWigehuU5AOu9aw^Ug{M5{`9hY81i<35ZD$kS(k= zck#*yDXK@hx^Po z-LY@bU+MUKbC3!)$Ut~5>=Rp}GGtWR{)9xHr}j}J>>BRvlwyBb*90b|HnG%x(^20h zOfZ6l$z3Kz4Y{o(Azr}hE1Vvw&Gm;bN75jaYfUh-$xUb#LXpwj(M1B#E3; zX6JfvFttPFdCit`XWo5BmFUTnJKeb@T|L{gi4(X#F($X%+1!FIfvz~eAy+D1bfwgG zl(t#+S@`Hfor8^0yxwv^AWV+L^x|KZ_`lO%a@BFC>f&@~A$$fQa6EO(axZc%^(BZN z9cTJ-bu-*2BxdA#;yIQlca7{XP44QVs;dW| zbUAPSF^w5OJF%p3(~8*yn38Fd8*{JJ_<)|ScH9_`RDN!a206Re-7&yLJd7)y_g5;g z*m$}@K{K6*mj8!M9{zVPC@pWH4n6Tkas&lH2WS&G?vwD+~ zuo!F0E+aSzcgxwR#>D#(oy3C2nToHvZ|M>UKwm06n26oLOnmB`tdG!lRB(juEqCa*pISG8O5#+`0dpOXUJEP~r|FTU_&|Dt{Hffzq0jlQ_+BkZ_?0EP6c`wIh2UbH^BH4aJ+n(l#Q2i- zJwXeV9+6T6M(FKvDoO0*VR8nsToYrk>p;b72biT3*>IR|IZ|GqqUxgnBo!@|4tzonvnG5Lo$wK3b;+tx9$hmzmRR0nOs<44dF|M92B7ir_lq{r&85s;$J zywn>w4UbsziF;q51WN&nks|nN*v4PE)L8Nn_YCaqpJ?=buSo>ADf1W%-4GWB0*8&@ zsY*;$oHuF}XfT2?m+#~LH|3nJ_(=W&pRw{$D#hO_wmId_-=%@#qtW7{JRmGaFc-#c z{ysMc7uBy=7>XeE=LHTK!Q&NDf2h0u@IG#yd(>a!Tl5%pbA`9;3q?W**`SeRnl;|| zeP;_2tVv7GwDTZVms2h61KZdSXjH1HaIQ*LvsG2Iz#9{H)&f>Nzf7-Eb^;9ya3Cqp zS6mdBGTm8qjhd|Z;bi$pTjpo`R~I%;wEh1}|LU_Tp7O6QULDNSJw2?qEz^?_wS9~2 zF}8r$&5X(=E(-@&q32sDLeBUR;h?=@Uo_)KUP~JYr<>>7*AU9|_hRkjrF~UYI-W zQo&?)Zi7J3BBw3=1Uaom>a34gDuy&IUY7KiT%#kbJ{Eq(x=%D

    Pu>_-K0lv2R{lN!Xl$V6iDLxraS2>Ju6np`)APH!R6<9_-I!DBzzBG;w8cBW^$@I%?}c3-x@3!X^#x#05AExY~>}eFEmMbATh~NC7$I0?a6|=&eJOh zq<6dc{@6C(xTSTzv3Hw9CfsIcde`{8=B~QV#Ii&2KIY~U^&I{=Qj4ELle*HboN4 zv9|cgeB-Sm_?sd)GheP#IJO8SI#2wE#sKHMeSS@K_4*Nd#MRLpUto@x-9)f>|44{5 z;i5paBazNQAm6gj+Y3(b{=lwvH~$?U5Z(%jjUaXoPH7Ry3?cGIwzf|Rzi;l(pF@zO z-vS$gG>AH?KzB5km;ubzhT#0Xm}`%tI6}{Rd(9k2DJJgAJC?CKe3{bBpOMe5=@FVf-AXDOO`JfPPcmsNkV%|}>e4tSx zEb2sl22GKlLNBoxB=`f)H|aASjz3SF283%8{NczTrU_@#||B5*VT#!;BT{<3;p91%}|S3Zqou zm4H9kL}KXei)=zf)rLTlZp`$K*xlUeQQ;z{IfHM|9el=YC0Io9(IlDgWxUjd-}P;y zWX|wFmxUa(8_}brl78>2EFVG{H_YQ*?9Q2vnSS%$eI%O?%2kC zH+Yz8HXh**Yb-X%WjwZd@OlCZxQ4Y7?2Tme-d+5P!rX~rudR3GaIh=t%%9*1^?gNN zMsAQoma4&xmp!R4vKzMwnQ4ps7*7SZ4%xoQJMwvHL0oD|S1eoFC$b^GXeqA}!Lju< zOizu5A0h>^#{7f`u;bTB_2m-pWr-%Ojq;W1!Bo-BzUdE=?6Xv|>G_k@s0LV&WsP}8 zx0Cj~^v!6v8ED9AmVg>Wzmrx^8RJh?mg9ie`N@;28uw}QdDXX1jbvt)`lb?ku(IE5!irqafnAzoH#)Rj?mW&WVQ&xs za3uBqPD7}}Tmgihlh3wsR=NijK^eKNy|7Gmj`ZlSf{wVQGaEgW0Xh#{te{htFMlpC(Uc5Ni57vEc7Sm zN4IV0OERrGtWC&dekPgMm)eaVQFnEJ=4ap^de6@wBn5A(10VEUQ= zyfmj8JD?kzD~(~prKs6N)N7>@G+$8%)fm+9OXgbW@lW|X@nU!JYYRR5)M2Gwp%M$T-3$GZX&8qT``x1nigU_R<5}!;pBQnR z=;4%$XPdi|#HIOXY}4vvlzaXfQzqjIoF)0oeH-bC%V=D{C$Uxm>jr6sfZn!3hzjR8 zIk}lgx-Pp{$b&gEN#qWx{4H`>VlS_&oa#LD zL{GY+F6IAkR;^L0Kwxsn`Hc0d_nO3l%)|n}bCYT{wQ41{tfu!m0D+>aXRO*;n#Ne+ z%(_}dSij=@Z9&h48&rffxp33}0S@uAz3P!v?s4d zs(r)U0@5c`Yq4i}GzO&T*^Tod z(|qqB!rWi!{OQItS9C%t#rPw7m1sD%qKCR(beqgOmBKj+U2Ut~u63g5WKMWhNk}HN zMJIeB!b$siQHx4EFZxgwPQ%aDxf&TU4EWEQ5Ur-4QJJnK=&7sya#C;ouJ0*u(8_#T z;m;JlL*!S=o5qv7Ym`8&hhcax;f&@tRlJzx-b!atvOZwRxq@?v5_xDvyOdN1_*rhv zhN4H;XAWZLV*OeCIMpT3&@nv~tG_S!s$k4KeKg!>X=QIZq~YI-S#BKzKb2;A>!Y z!7I|{2nFsxOR;C&BJPp03m;VthwhP5NQ}BFt9DJNJ{9^?LiZRA*D%DS zNKSaAZ>m?-jCo8X;nST3j}?iWW+kp(L@FegU~nH3PRY@CrsLjS301ulWjjVdC>iG% z#of!D5vRf%W9Ly;!5Dl*UhRYjp?g_2!?}3sUlP%vkSP9y=DkX2ieSwwW+@uH?a1X5 zQAKNFoGN|Qojg@Z)~Y(5Tw7KUq<)pqS%^}X)LZDsOwk1yM6aH4*9EQ#K|~@a`-enV z@PDxP@lY9F8FN$8(OKVEK9lu-XbBUsR_;TrTb-~;CszWz8 z=3)@m#yScnm3oxNr}!?b_O@OL+q$byuE$8*7;`d;@I6ornurtvK?h2&aQZ5i2l^-W zoGnCv-Je*(Rcoem`W?U)ena$9u;;CGKH%LNkUubVd)@&%yw6^KG}7#MX8A#+QqRXN z?r>k6DTJ^j4xtn-u(%NQ(_0~T95AioEfg{*Z^@thMz}Tp#me|m6vqc$dETxeJGpe7 z=$U`zId7=PZAe-+@u7^A5Ao90Vo!dK3s)O8+OF-wz zo2H|^R^j}KR>@G;9mR-{udLF0t+-qg)lH||$w?-u)$o;tTEI0Xxfqf#)bvc`Pd#so z*r*G=*y*rQr>RT1b-#IdCtDSKI`>6=-%Q}FVLz4(D!JVGcKVyRq86c?b_NzXoxowx z%(f998Y{)jW<+~IU>AAL)4&QkM5sP3Nk7u=f^AC%ML!Rgg5=Y_O46LJl= zf8n>xtt0j^9Yj&*H)U+7W%UGa8Vf=w-Y4E3VE-bzgst~xV>(p z+@aws@KvKxyb55Of#}2z-ewj*X9s7P#jUm?Q)cnY5)a7}HVCSmU+6O${wb(1d7WME zHwPJb@*ISAv|2FMa#T#-5W~AUkO0U5sIf(1M@W+s8J4JhC&JGOrSa8m6zT`*R+qha zk=c?6Z<=1|v>I-q)46zMS>9@P3R6?=d=tbrJ1d-vE@rJtELC4jNW5;&Qq4gT1U1O~ zp-|m38+}T-YtF0oq8Y-P5ozbCi|F>T#G+fAZ!myfS$C@}^H8Nz zLRNHw+C{cT)VxTyZiOLF;vbWT+Rf4#rmzfdr!rZohr9CuK7kA1VyjM&9v=)se%zzL z&l#okz?WF$b%Yf{J{xKC8-qOJwCm;b+?vNrGQJvLdbH=Ey7w>CgOK)qF+feurFF

    OM@Dfbfs0S9_6n;BzQKpF|NCBZ-QHc_-fc`6;p4IRq_>I_XF-2Pc$Ip~?K0 zIo(-qep@9nHTfp4KJFeP9`U1AO@0Dc&Z4B=p7%-k_wlwebD`=^F#e4B&#y|l2kSNl zVd?~&JPj+l`&T&Ybo*zokK)hkLMt_Tz8vWM>*)F6yPd>P3zAXupKWn~MAUpDv?L?u zd(nff|an`5a2Gb4=XBdQWRIt9c>n(#0q>>3OC2Ld7T{B%=l+WMMJ1GlK{R}7cZl6KN){5x^HxZ2cTAe5-V}CVF#xzmj@!1KJUPXi#B$e1p-;-e`aT!XusI zfTFO?aqHOa!z6@Usz%L>f`PyJnJ|2eukhje!N)+SG5@)T` z%;qP5VY}XGeawGe;RK;irFTr-m;22#IX-CWRd(|h50L_6r9l?^a`SILCi_7lL1c%B zlvOmCvl6{%XsmREx%EAmSm{VJ`V5~Hje+<)!w#&SogXV5YcAwjth8W;dGFmE?a!XS z_UDznUi)(q67d9QC0`IQ|MN99P`!zbNPc^w$k$Ztr;Arf~{#=MIvIFcZsDx`)E6HQzl}o4@XYtQyjm@MZ?@UWuw79D*hKmhKwJ*=gH?2 z`qtPzBQV8s{LjkQjUTJzzh}IWymjM8@^e+=__5yDqyn?gLJ{37AISGaE_RK#CJ}an zDBi8MJ(p9-dCptc^ZlsVdLC99Ph+mJM=op=Xa^sXk2K#^jc|~yJwMj%fmYK3bo6aJ zq9a<(CIM!tKSq3oGNo z5z`8;_~?gU^{J1xQG~Sip&V={F7ZU})1IFk8bnsjj2+RiW%DI(Ypg8j3>Wu>~G96F~53XpCj zDd07A<4`~=H#P+Xpa5c=2?Z!`(mCJhqJRS+elUpt=nW9RHwE#VA>K#oV%e`}P*0pw z3JBq>ZiHanFKFoan4PO!w0<${K(ymiT+yOi)8fxS1xqub0`ax#0r~eR!1^Xd z3>W#C3d0h~FaNkgFcq06+L{uXKg%$cW1+bL3lzUz?$ghSRV=Dp z$rLT%#`8Ln>&ff1%@?0p`0@stwug_ zx@%{y(5DESvx&UPCUPuHZKH?GJD3EnHMT?Q=?IHmp!VB5t~+VR*8u+wX9531VO zy8pnx&?|wrru&=HL=)H~2WFlo{!2svoYTAg6M9hzsHRJ#tg(YRN=jRI)6lgy`-dIV zQLQcxNFq)WaH^aar+n_v+ezcO%pSvFo7x997LW9-S2PsU_ISft`V}$^4@dsj+ z`GLC1f$DXx@V7H_-exmdXWmo`%`D48%ZIl}jxMPM;7iIGq!&%zzgpbBW|W)WSJIUX zF^bRO_-+|qa%wT+GJEEU^AA3jwx7fk-~-WHZ_+l77mn=X;KUb_BLfx;^A~Ta=J&tK z51|drZyrG6?5zaVIsVv`Ad5?2hI!%lkW^)TDIQ|@LVB^v7pWHyjZGP04%jCf?vdu6 zpYdg}E33}Qk4+hC*7FQ-SD0IFLqwf3f9(^M5ZKx$l&nhL1A2q7`bC}H!+P1vRZ&3P zrklnqPTG{N1l9)-Sc`qJB?zpzMla!D27y(wYWd3X=LniF1sE~gsOu1ADML|lzsP); zZrh?y+g8|uYuQ|HzVuQfu|?cNoj1(?>~_DEhUDzS=d?cF&k+z&1s3UnkgKRsX6HU@ zvCLoaufl@~*rIg><`_mRVtnYpmx$^?^TCHuHykzlbL$4#$aBVQXAw=ICAqZeN%R3& zL3;%N#(iRhVjFIs&*%x$alF=s8iKmJud@3{807vqba~a;==An@OE-R>BL7fn>YUN4 zbT26!e!=NDylB0W99}+3a`@kJ(<6sB zAHTKBq}yIZbGLNamG&U8#D4&Y-$n6h<$)7>zV}sgya%rS=t*3CHlLh^tC#UgxcYQ{ z|GQjW1e_GEZsQYr!+{n4Kpg(O4*i5yyce@beG`aH)Au*^;+w?OvS~BSzRa3vL(u4F z{@@AbRK7hCJRE9!_|z!LWb@jtxROIRPW?np>NLyP9ug0>!@u}qSO5>EPzRsk2H9y2 z=Vi2(GZO+(M!)oHKd4pJ*xz&J-Q~H)4v%bu_hlw`HsMjmH#o=$kI^G-_+TtT*0jkC z`v;Cp6T4ma1a%&;yjh6T)g00C#53WUuQ+Aclv4YDfttK;b$(@^C-=3^?|SF=N$2-_&Tpmt zTePTYbpcfga++4>J6EyNMeKd9zDPC+0SQUFy1EzF=NM@!V1eubn~Fq)O%P`G%JF`V zwPK|?WffD+y2k~#0exQ3n31E;$P^`Mt2lD`jY$$D5tkccPc@AXQiU6kw#g1pODOPV zS?*zuLA1|32DOytn0G-hi6y=SsRYmdNZ=kYW(15I$V-qzFQg*9=+5XSHlueU-D+pk z(-rO;IZZqQfiWWUhm0pih#zGpSo2FZQ^rFAYBmu6)tH=nn=(Doj=oE`u`LXYe4nZU zu{rq!uW&cO4*>~TVy}69e?o6cMzx?~t$HdnjEX$kk)^FFlqg4;* ziGCtlmlazvx2d;4FIsDslPqQ`=QGW_fLo>*=4jPt%BL%cWgI~JGh?n^bc#b}(ubWPtM!w_NnriL4D-AXgjLG;DKhc8)$N zQ=f!DaHN(2rUMAm=QL6jz>zgtn?pE&U*OSaX>6GInsIBZ#DAry`c~vfWWFhGeZ9-3 zRhZAk?M^G2hQ(-WD*0MumeRROp=SQ+$LStPo;4|uTNmy0M>2R*X1@G1(hIaYI{=)K zZ7{agKQxMl5)9NR8bLr(6!yRweJ2H@^*QI~2~8le|uI2hTag`&eL2V&$6xoEN+(z4lpOqqG9yRwz4G+<|EJ zqD(VwTyso_;z%t(6wpmAE7y0LO@CK|1&LbqkN860F9QWh=?DhkJGu#MS4=avV;H4`oMVsUwBSh>@SJr5s_7PIM%>n{ z&prb)o3L2RX-ZeTr>R5o@l^ozwtAcSqzm(j0Y;m@%AC#7i)Jd;Iuq9V+-|Ifm^ia@ ztf!^6#K^_B>O06muV(Ae4MS}VFfM17ju#B1+X!BfBYbYEX-_eipkg!f;b>*%<~{w1 zy-cMFCxI)+`epuAe+w`{d_?a>Xp<$-ro=KPdzo4DOGZ0LbtG%?zOIhgzCo~!6q+xa zT5i7ip=!Gu*8PzuiQWqd5DplB8zQlbn@X(MD;{fSnD4%Cw_lrsw_*kS<*Ya8=N~$q znI^iQ)3rN8NH9&9?W~k`-I3K?CZEm=5_mG8e`t3pZ!C28Cjmc#|Ai|Drp%$)t|8`a)D9Of>l0+hGUC6F?0A0feh@7aYXdQP>qeW)dfwYr{!OC zr5Jhpd54{iJb)R8ex1&pdL6?mdHO-(wU#kY+CHUx1K5+~jB_Z22z>UbQ!={zAXO?` zg-DC62!*euggj^viHiiQxY@MXz9hFFf;}|^v8*ue9jpRpsn{4Nn^OF1d&W9tMqy^@ zg$>FUfxKTdvkS}pRrk`OZA8{$&pAduhLGe)ck`;ODb@>aIB{%Nq3CK=Ov(*} zKh+CgR<^yn2&-G{A5J{aiokFJS565IFL~LRlR13WhK#LfW-~TvHDBwE&F1FFrSbEl z%NscNmsCPs2acl)pNsSoi{Z%c(TwyVvMs{-Kid=IN%s4i6Z@g$p!rQ?LkSr!s%kMq zdISU+g$Kb353mx%+J#V*WoG9mVtg|RgSBS`uFKsLA|L(~Ru3s?&sSkZ>JeqR(6Ere zP_Z@orhK5J{xvVlj44oOW~iQ)OXabWgJo0AQI`v9{8lbAgQ|$eDB9LYz&O`F?!-(T zYiY>#tOB1W{(a0122J0kVkHkdR(b8RuVNw|UdaGQFqf~x>x=k>xne3a3_`PQhAtNx zZ1k}QylyWnD2v-ch3l<1Y0#-at2s=!<*S4Io&toUXchhDH*b8?uCV$Nh9!1NlAO?r zOTQt)jbd1p+!GOaLB_s%g92rS`6DDbeO5yv zvLO+9IT5K%M4HW~K#Oes?j77zDCUT&yQ28l>$+QwDvKJuY2Y5)`o5#P&1g4Upud2= zyrbHxr=>mHWVA4qfC+6%xMJuxJWtW?E@di8a=K#wuojy>VFp)VcRw8Jt;ifceM82k z@DRu3w>PzRr^*bWN-B-K;EW;Oj{v%yueLKY#lp0UKxZ`=kzH0O6-QMf)Aa!9-_wo@ z>0K_Qn~k4002~+0wLO6uh76cD;QuWUPDFN@*B)?zEX1(>{~dJaGob{!CDKec=)SDj z19AKWv?U6(4K`>mQFDKnf^BmWwzWyv7CNx~v(%k5F&JI=vNPjfOhV9_#^Q1+=d?=X z@k+7U1>y+Ok=Gn$W>USWRnM0mFJCXGyKu~Iob}1x(EXrf!DI{{s>% z5!MBezQ%yM1F69V(p?Hj-&R0+PIzZfpWbYgVJKH?l(DFF@y@*Fhz&l6btb{rMVgBo z@F~mU6!0~;;A2#=33FrEyrD7~86!Sub;(`T61{gGWpuh@hvV^NN=EEFp| zh`jm#~1sBo8cf?*9RY_O)#$w7tBDZ65)IwGSo)cg*HdIqJC z4@Ss!1*4W1m&;AL40en44SB!C`jdUvA}rw)b&<7}CZqL)2{k8+&^dwIVVkWj2x59< z7mQV~yx}B%T_q#o`P#i)2mxRhWr;X6A^6V z>K{WeM;*2Nut-P0rHqJ);W@12XQMgo_l-$Ll0*etP>48g3}?CZdgF^jHr&&&AHXmwXU$ zo3iE33#GMQA_2BI%6PHGpWb4n@d7wXokrnnXUK(4ymeQ77GBQN=mwd~o-hZ{uaVe? zIs4baYR*n4Xnkyryo_P#jkU*;H<+_)6q(?$@66ikplf}kEmxg1Yh}6~;v0#FyoX;) zd_0q1#!W;s^NCL(&3k!FoCfi}I+b*+wLAt>MA)NmM}Coxt&a5>&$yd9NSFcFUDVY@ zUpZ`Qrus!=(~;Y+OSpxbQL3@XxXTFHJqU_wJ z(y6?bSiV;)?9f+0Em}d{1biP?P2(F}^3r=nleV(dF3ouN#(ykH4z|?&JQD9U=p+j?VF9%wg_1P zH4w5J$YmVGsx2y7TIo}s7AvjRVx^b_Od=ozK?s;)RID>D+JHO~UP^x7b7wXi5c>50 z`}}`?Br`j6=f0eK?z!ilR|G%f>aB@Bd=eHN<5!LmA(R7Vh}Cc!Nrm<=pvgk$>Kom( zQ`r^pFSen1Jn3exbThwQl2Z{F3U49H|EiU45^z6MKj#~22TqKo2Q&8hb{Ida$7!$X zA__&Z(M9i{l#O2y4ma(2J^n)&RPi>9@Ur4S7&q)T5;zeqCd2JLR^MdTC~XnL&ILi|872lXj=OB6 z=Rf0C`1D@ZsO6USCI}s$GmN}o`3Fg&)+}A$Zd6GU59#_3xn@H&rQdVpOYt4gZ7aXB z?gQQLEtxDa=_+E`)DR<-zIwk{TGdSWE|V+&|ahJ6DpDpeaMv#8B1gxfst3rfx}Afj! zSN?1uN6#?Iyi-H0HT-uvl8n7{1CU|&n8#Lw3GX^VV4X$-DkX-a-Xazdy1%!SzLwbRfOwC6Uo)kO%W-FpI%9r5(@ z-fB|?@BZ}U9i2XSd0zqld4)+k(PX zY0ev}9*{|cHy9D&k4b4RYicZ~JoZxp2*|q1wY`NU*7N&}#S&qa#LZPV^FiocS3qhG zu>6l&!6&ic3{mkFtf`8F8OK2tcUg59RbQdFpu&Y*^|AstC4i4=&cGF4VHB@Sg)fCO~3m~*3o`I1?PjDyK5bZ8ce!g?003SfXMPM zBE3#N>*!JFNvLT~2HgUD9pJmHqhm&uD9HqP9aI?a(+TbgO2blWKj%_9(0wV*I&CSn zJDX%F)#^Y1T?l)YBZ`jyr&rg3?u+DrPHH29iPM+X0e5NX01Nu7)0dVb(XqF(N64bo zxJ(z!?yIZa5nl@F5pdFcsng(*hW5TgU7%pGZ`v@K?FL>oBvR z*}vN#5}rW#km}!iOcy32>lh`}Vqj5lYS5Bwcx& zBp3tsxC8kuC4^rsuF-#&^S5EKJn^Z;59vqC zdDKQt4U1%K=(hc8ksk3P8L<(CL5Yvss;T717e}w!y)=$JSLpY(`mc=N4ZP(+!J0Va z-vQ$CE3V_v^#sm%3aTc%v#AY`*^Ln zK@h-vRuBMkRsEI_3T<#}ZV)Vj-d77wxsntZ^AY9-jVvhD+>}U4e``K0P?gYZH^Dox zt5lEW+K@BEtBo(Oa%&WIoKZcIx9VAG!F*VzQ@*@MNIPGCpKC*9B~QI&Q?NRilnA%C zQR!R)mX!_�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

    f_}w-Z2&*` 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�)aocL*>|I2xl- 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

    DUh;fNM{&u^l7h`eu_tW-w`Ld4`_l+iq z!K&Ec-oYvpY^cIY}oGA%H;Fbx4wsn5$cR4SH$ z?v4tyuOYFhT$J0t`3v~Szg;gFKE25N#bUL(1IurBX~8Gxxlxc&WV-kD5-o`!E;Olq zl06htRMiEOBKKvQZ3&>N)om20=TDJ(qZ-_mP@%&d^XIhQ@0mCs3^nY)5y=jxWVu7XB2l;_+Yp)qqk(H(DjVqn`t z6pO_A+Z1@Lcjxret|6Gc;3KfDRcb`d0@A~nn}_KHdogwb9p|fb?DoRQTY_^7 zCYdk0r9<}kXhA<21Iwp?I1{Gi$C#tGq;-_;?MUXS7|cubxu} zNtq>;n5Ys8{W4Zb3D^%>p6E29@-88q_M0`dEQ-;#$vuk;k!}QeuZ5wsDiF&-XUB zmf590Lg~g@nR}?AXCdpN)KH*v5JF9abCnt1on_SUI^?Z;cj@n;6NUeZz2+_k1OHV8 z-mC{DQb5@?q;=t;@E?%6)0q_aFKuKc4D6PxJ=;%8c` ze3HVLE;Z@vAnvax#PEy9x`)m2{WV3i;M)tX9*eCX5YaI)@(fsUf!0m5-e2L2%A~5ub0F-_mz@d+q9WehEJzvOh z6aw-K(FXANHort|W;jQDg?p_d+!s0*CDvdHIA<2S)Xl=lF%!xVUm~M;nkzJOb+y%6 z`}h)BVYcz~kKc)vxJo6OYY&t)j=GA>bgXl-J6jlWXR>5a>OKkKk_%ROhHZN+?7VG#>9GRo|~Oxl&CpDJH|o8r(Fntyo0CSTABvYYmZ z)!np#QemumvFg=b{R4az>BULr?`W%0oFvU1OIV47-9rnUuxW(ZMO#aFEi}LQ!fxF! z_=?-zqx7OU%!MHm?_fBzEQ#q!)Ia15)cCk+uP$ex1ss1$H$2Q4=t!eF10_AAiy-WT zWLu#}pTnlxX-qqXg%P=G5x5Ys3-e}7`RNV#6Nb)eXo?>Cw?S)ldx%YRMfn}WvAT8V zz9_Mg*Ac0ZDL{SFK39AgsyHZ9l6MfU&4{?>ox!yU*==;u#?Vb1D-N1JJW187+a&XZ z6l|byf+!WGQ2U7ab3m}focNlIR+4_b94M;M`ZC}nDWW!s=0ME0oxiKsHijH!Eg1(szvO&}va0($?NCt7a6}O%+{ouGA`zO2gn6o$D=(z6w15(vGY;hb7PeEa*wb8=7DlTSc%}` zhwYRCr#X~&iK4uP6}GJbx2#K4i1}%rkmq;VO$a|& zWd0>r9dE5(#2W*p8mA;oW2mA&b`YLT$p6oW;No2bg*dStG0U$zKOuim2>FBEguKFD zhs3S27%96JO*)&9@2ek-5%RN5p(by9Kqf5_&Elca}iz)=>V-C{|U6bTRH1J`B@FEA=S!Sy(k0=QmB zi#LeT2nSq+QDTGZ7M$uu!Bu=^COK1xSt6z|F^sp4bHMP+3Wi_&Kf>?@2%cl_`d9xg z49i{Ne}LhW^}ui%>3YJj4Y78Zu3$KUB%r>lCI}4w?w6_w0>dAVvtjrXnYnYpuwvS= zY1=UT!$ZLEMwxa6!>@k({}qN8mY*MnS1mdVh9}s`&k4g{kHy(Ae2M-2B{1A68`KeV zc^DXO=Urep{n|5Nxcu$)Pdt(lMZc15q$i7$rvp>52ED!E_e z7K|C*aBp^G{b=FM^Lv@M4d~Ub-^1Dp|3rcBZW2XNuvTgCCGe{SD|m~+u#jXu@UX1E zv+(eZAl4G|j$fP)hHsAHVc~$3edWu!AKA6ho%kAB?z9^nlsL!@zX#Zs-{*kh`=9wFC6zSPCTvsv?dC7Q8Y`u zec#OXKik{rJ`6YZTt~@!Q?Li~p~9CCAt=tv<-UEl9Cy479};*LaV057ZUoP9{1(Zg zpX2I{iE*~tI02JbduI5IWhv)6>Ik4u^)9?o;$nxL>y5lrF^W+vwmaOr^f^h+rH+x8 z1e2yQKNVO-t}hu|AV%JB7%vMib$T!y0_wwm3RK}{+b7WSoL-O=6`HZzBZMVa@?H*5 zC+A~$1hKs(saGvY!EP}@kE)<{-sZ?#-MPkZ;q)HI@XM7)c+BI{IeMW~lQd&NPP*3<7i0bgW(TR0_?fJk<#yKWp zVLw~Mh~Y0Zd)bp4ZtqzD`IR`rGGOC#;ndp#QH|rg(x7wA&%KwGn2#K`Aq5sgK~k~# zH}FtY7$kn$XsuJeT{sph%w2L)z)He7+ADxFi~cIW;l6?iEr4C7T7vX~&sZJ>D45t6 za*;JEs;0)-!X0^2WEVJB-HHZ!cyIUkDEyhC=C>PtHs&3cJrYKy{Dh_+Mm~nqD^*bT zFu5cH7#yU-C7Cy}7w`}cMJ>$|T*g0Y6 z@)GkqAK0*Sy~vX|vwKe9dB>?w&0mlE<`5g{tzM|O9Cm{KuP{t~&IeD4hirI)=NTpN z4k~iXzWZRn^%VP{X!PX7%MASW<*rEhF=aYiJS zw{=pH4m(IyI5Kf>B+xE5?JC1}$Y9;WQX(KnO4z$rN|0A>F2$M`rDRJf(n~2te$5XD zL`zYblBJZ-+1^1?bEk~Hrs}EFuF;pR;faU1k&QWtg%8i-4mIiSr~c)lB0-2|eF(&Y z`K(d6pBu^2g&&oRzqwrBa7IBrkqAh_<(*(YS94BN(nQxSX{4#uz7VDdY*-OBg|MpDKVRZ6E=eUNhf=##EKTYyu*1Rf+ ztcEk_#^19>@AW=)%QoZ|YP8C)10u1HEItq!9oT$Hb7Nlnkcvw#GbX@R*{3B<$j}C1 z_74kRd1ffDxzK$5_o7GQ`4Yg;9;_0WQgc;ajVw)rdM`59@nMX0G5R7ba+pNM7~F_C zB2Q=X0(P4(Z0w4tti@(2Ssj^H8c0s$wP?&ZyD{|8ocA>SQ}}*`qDV8HTgKAiGTYnM zI7>~wsC*8C6AxUfnnJUsAInW;@G!S@)4GO)(P0XTa|!b|KX^N$*A|=CjJ(uky-Y|f zT0YF>PV_2?7UPNR7he3=MK`jd$c$Gl52eQAGuCrOyE1cyu(&_Aq!Ij`=9%Byd?29{ zf~ZFHlk=K&6tf^`@^)j&M42@=xzP$OC^ZU8@!5uYAZkjXNehgb3-D>F1rgqLg%&T? zmmM?~FUDuQ7Q6`H70-HAH2ft@PB zdIF72^3=DSik4u)(a}S4TNkR@AW>7x4fUe3|3hV$(G67zv)Z}G+TtZdH9*V>=%GZF zphjg6VrGaJm3^vef0BxABGA|*PkoCBWU1`)Rd!+BhpOa|r%$ai)QieKLS;`?v8^h* zJoPQZquH-g*?lTOo65e%sFD|zT^YF!jZm>BfyO3z>RW{OrD|`NdyUX2m7qhSraoj; z$&1SViRycXitSX{<*9GUjAs9{%ATzf2tQt*`ZJ?SUR3tKsq8r_Rx$23$y48w8_oVB zm3@**kfgFdYE;RK%3iLr%T;EmDuqB}lRWh;h0*My^sk3*Q3-~t?2j3nU{$0h+RI!_kD)kat5RLsSu}0PH z#P*hl9)dWtd-EG&M1`-FV8gFm!n~$l4+ccJEm)&I_63$<79l9+eT|Y<@x4xc z%eo6}k%dOkLn=rXRY0vYf|T``mt<`Pw#Z^4Xue7%3n!pf6G0^s=;FH~qLK)(1{4Gnv|c6oSzwC*Dc_H(Bm$5D1*HU4sw9sF zwg@1)%I-H_5`YURD0G$0H~f!5k$vCrKN;8}z~w3{G5k*lwg@P>%5F0J>jPT^a9m|K z82)DiTLes8WusAe4QvshaG`AKe=)E{K)?kr*S{&SMJC);rs)lVEi%K9TnM>fUzMfq z3N06LvBxUaR-z=Sb3BbX$?$h>XmpkTgyTEseDqolh=51jQ3_G=$eZE52-+bJdEEFm zhGE!@l>`;GXiY3fi#g-%8-%X*;ynaek-s?~c?WSsh4hiI+tuRwo-k-sr-kH{< z*H*kgn!j2z;Y#^+6H;q=+yra<-L=EbU#*oA=yGeT(&Pq`^6IlX7xv>Neb4dZ`d(Yb z+Vd!s?#;$1v_+Yq*pBPHb4AdtC z8WYCM@oKA;Nzq7x|32++Q`_e0Ub%wrQ7s7OawFbT`zENMOx>=bBssD0&CvZ3vH}cil2d#H0 z0IwI8xL6HDdik%Yp87%6qy!6r%ZTxkpe?0nY$)8M{8cj~CDYNjRvHS4mMqIFnyn5g z$7{^qtq)L~ZP1kU>8VKMGi^@oXG|=|KaLk3pZVTnUg$LM{@=8L=9unE`*&mwb`(zx z`%IhFd((GzAU!j(>57(qwV~u2Xq6UNMF%hg(ytk<-Tc~D77dxbdYGK{I-WN{f9xuVJ1refDvF7jdcz#Mz*c*HtHpv?Rcmiq1p z0b)7?Bgxj=ax;xD1G#ZF{Eu2Y)$e0go%(&!dRhHGZ9T7k*IUo1-)F7gs^1OPuhj30 z*2C&|lU2$|d?M%mEXFBX( zrh{pV%|&x<*RU&g_QR-HGt;r~2WKLwmjyRn(E^sT-x~p`tJdObjg5&wbG(=YtXWj=0uwOS`R>~we8 z>B29|O~zEOeO5Jcri|__$5mspr?7bbDD&Fa-ip|2oi_g>iTvkjPSR6}L`rkU!km!y zNMh4i;j~A-BL25a-`PTYE^yi-S?qNC?Q~dfP;3v*u%%-A*WCWaaX<-S?nSvUr;7WC za>Q_BnoqCmx3lb#t0txlotCOSRHwgD8yP0Dl8qIOjA%Kpxm^P2^ApVJ-p+_6J8x`o zd9lyG!T~4w8Qjt@VRfwdU;E(yuO%Ew8_&(I(pFYcq;R3nApo>+Sv+GErjmV$tbrmBX^tt)8ZxqH4aFUF|08xmR;-*W$!cqWR|>UAfg zt$x!^9R5Y2dAZ%>@P=3;rc!U$peksCN;tP&LdRA1`z>K8ZWC#u=BS`6IrB5vM&U^q-&J3WrWbr!R6Lgie&M*=2%-Pdfq+ed3o}&-iN22 zc5&k@#f!G7s-oE3dq1N&#ph)&9k8mW%!aXgdBcUu?ZC`rt< zb_OexgoWl_C3E7jiq!1?&ep`Tkhwq)Fv*RDSXks@ynV1M3319cWXtr%$X<9)ec2oH zy>a~ID8CS)_bA6G*Ei`)hH?c`Tgk#J8zIg5crkKa?H95Q$;(@OnMQ)~9gi^J(wc^x6kM~Pokws@ZAC3}sc_A%u}^Aj|NAjTDa=B9 zvWGyk@2>tLr{6-I z!e`9&jZj%qRF>|lgw;69mk4LkJ80%V6^Bu3VchfRs(JC6*CJMqY=%%x_wV8+qL2?+ zq^!^4rwY%HJ+3qcPLbGaCh^=PNEg|U-na0fXsq;|>7u?~DkYdD_d5_TUlIS`&G&}0 z4hKvAb&}mq^#?mu`1cA&Nd3kP!3ya$$MU?rpoKyif0vcNX%r8R%DD~x0q&+iP2WIU zCshS%`v%_c#GR3ZdBY#YFpd2}d3qD(UM6|ORq>?6bKl1n8uxS0xJFfd+I=6kAu${KHR@I!EmifF#MK+o$4bTeSSkAziQXEk zzQo+}`JPBoiK@5A>`>W~!q3{pho7d`c7MC;Lo7uqvVvtNB6ejTkL>Q`mseI8Us=GZ z?5|E`e~8U5{VU|^TW-L1A{Dp`V=ifRWqGwH67G8YPtQE_4A-^#do7=aGFEW(%JMwF ztpD-1-0y{wpAXa}>L;1@Ly{|NXW5162P8#;_IQ0LPAN5%IN8Xp@;DHqZW6;sqy6upFK6895ymP2RR;yssLyUqd%G-G3Ob<*;vT#o z$4mWm%O|1K`?3;$MFZb-pAIGeN*Z{agYt)xFRQLhOFuBCzxJE@P~vT&>}vf@-1MEM zbw`OR;qaTbQwpt<$1g_0jSWRU{&87v`|lzUe*__{ z*e*L*d^7quAH5T4K>5wMk1I`7mHpo_7VuUU;(Ez$lM?3gSV9ujb|u_(M0KK07wbYT zW+*WyE4!LuX?AynlB;D{8aQUU){zVN9cX+6i_$2~?#@iA)=`>IDMzRoi)n)(R)uyttY>0%Z*%DQ4L>e!T?R zA-*bVRoecc1LvAac^EkR_|N3`ir5|bF%9FKZ zcaiw^R5VD>M93*gEqzPMTax7HrBLR8BJ=MH)z*Mrcy%FyMQ=s6h}gi44l!yl&Eu~m zE+t0MNYq}n_1pTh_uY}TUt4(*lOz5eFOXj>W%uLPSSzhTUb*&AFII{^6$@a!La8|j z1Q|Y^%?E8?^E_Vk0Uwu1wGwi^I zno*XRG~II>t4vVR|E<|SmYw{ZW~c-L9Q=&Mo<2sgXY}-uqsNVaLx}9e=zB6o-#@C~ zacqE~f-wo*M0%BI6b?5Q_(tE8J$ibkv3P_rbL8k-b4TBw(+@61eZQlAAL&wz!cj&} z#^`agMo*vFuMQ;^nRkwk=q7&gf;;>o|E)IoIrRtHGoz#@*IK`9lIb`Ar%#O~KrbI49@r3iaxbq<}nd*S~W z6NVc_KB7j?z!mW5sZIS_P#o4O-<7-*M&cbW>!uMy^J?zxjXCphg8rT{ly0mYvuvLh z6o$4j4K0jhV@4Zt=;?LfDkS8m?n~d*Z?9HaCS^=ZF(#&FO+AdAxFOg;my4}2Qx6Z# zGpT#paATqmb_P9_yiIz&ol(iy=4~G{aRmIkp%X`HEB`K#GjWtrl7V6NH2kBBcD0dW z+>|l8V3u*)sL^v~_S=Og36ilvAV_iZ^oZXqG#^6sghh(UIt`;ad0uT0hBPv=CXRA0 z2qv9!{IUxir058E;Gai|o|}<1mqb729UF*RFerf+*;ltvXqEqz@t>P9hD4Pks8yJ* zOC-%S>@sPUas!}uv5REkKHYyjYpWn1e;*rzMb-+6D{*kq|2}RTDx5otEo_LfC_`_} zdRMEQLSa;Z{_>9$9>M;X{i3{vj$t$H9Gcg*a9I{y+q||RomwEBW>~lJ7z1N>MjH%E zZDmN9YkB*|09JViNv{P~ORDEoswVi%L-Q~+c!h+?1M97M&CHD!cu;~whk_%8EO33s z;piGatk$@7niRkU&|;aSV@v5r&x2yMD15Z^e)LgFACbrE-dG0DD*dW^m#ehxC;{I9 z`obf)0O&>>VoV0SVO3IQ>CF3KHmQ_f<>sh#ofM)xs;?V2z!h&nF3!Gtl|-$&lq!BB zk2=P;^jUdR8Rrvg6r5_zKSj7J&~OSNqQtCs{b4}L64g&SXd|*%CrxS4;qcore4_S~ zxD{O?GYa+!ZI-2&)#=abvBP{sAo3BbWTtVDAy2i%IqUyEnNziQKvo$u1-G!!v+8l0 zHXv|6O2LB}+A*^a`#VG^=;J{t0B?Kvmp1%KYvCu1_lz0uz4t1pgyg7lEIfCv2)tYr zgs(iyEq!<*QHXLEn!oy=e*+bWa7tqAf?Wz;aEd^zxDxJF)t&e`5lZEZd5fEk!8wje zeH-7xq2>SpZs^bHKp{tEw|}(x4y7P8cdy6X%Uj@N2bW4qMzJ*wHtx;PJ8=p9Eqw`a z{_`IyI4?5SsF%d>%jcQv$8I=#Hv3Ub*qAU1h2^R3_Eb6>F0_(NWk*=ab~*clP5;bD z6b2kSe~!og@yd^0n2aV_Lr#jjF-M7b3YvFNyZUkVmn^pV-qO)}jy}-8ov1rp2(BnH zPk!^?LL_9J^mo8~T8bm}%r>j~W7D_e8RE$bsB55%MwNAM47MHl~!MQ z0D#ffP9Pp33IDy^UuEIisX)rf4K{qOsM&b+fPN(@>3B`%(`9+PLhm`puyRa zL$jsV1ke3mu+(zTRo4e1<8VRESH(xCAcnL`x#C6O?1ofa>D0>m)YjUQ3YQ$VM?G}Y z=@zu+_i_7@*RG!kC2oSAc1O6(aqk(g&uGhfZ`oYg*amTM6+&ZL=9n8Z^<}0pEqmyV z*$W4-5y&c-+7TXv1yDH!Amk`UW<@D-YKP4&Aj>lo#F)jY3!|f-^v}VPpvXQ zU|N0PWN&TFFUeXPP6*VWZV3zNhCQR z#UEJ(p&8yregNJvOf^F44A2}8M0n6mu>M|JV<6I73kfZt?C=B?#nmS(9~lmxtQ1z4 zTHE=_qYGq(qWe5GvC1uGcD2d_0zr=GwHJT5X}ee;p(1z13ChdS0-p&mabexkmDQr< z?;OjG&WcU+{RVA(ZDoyka|-^0BxCK=Vj~78=X}6I88T1d8=ShX9b7C58iQKjp6VbjzpIE%4^q zBqZvDQ>A1?i~EAG0RK%l;(`5IUSAT)lQE$3Rz4= zr>Gr9LZ|y{!g#K5 z6M?k5?Ha>}&H(nfy|F7(f$MluT0_Wn)?RF{m^~yrlTzAjrq=a=bg;w?g1O-djt62; z@;ESRwGtFP-@w|IMLLWf_ZoJYzS6IW0>HZ1dr&)>b75m&bU2p^Or^6q8zmkn&9}=^ z^_D>GDX_tGbNtuU#>E`ywOOrx6P?z%>|Q6oub>HX1{-wP`|2BBd&Yhk7?-Dq{KF*9p?hu#M~Zjoug2{b4_ret{;{=>O}540O@E`CeowCn zQBt4KY*X)5gow&7V0+7iTx%$mRsYxZZ({>ZPeB0=DyH9YG07@IBo{)Qb}MUpz_s60 zIX&Umqie#hPe(4*?J5uKiHt=;tUT~`L|Z9hYWf?2vCTh59~na(d>Yr(z<-8MIK&t@ ze8Fi~MOVi$1M*403}c?1wg2Xl)1@MAKQ0m5fUMA>zJU)rv&OC`tF|(gq)+YU)fm{s z6L}-OF7UQX3yBdiV_*lBq0_1|i=EnH^D5gYvTbSXDwXJzN>r#4{gOl_X1;Alx>xVJ zDRZ4X#`OLfPi^&YiGS)LUUSyTb4>3|D!78+SZ@X!14pPvyC~8xW=UsZi$^S$LND87 zhphvR?1f0c*+DjkRJE&8Zow^ah873gyUN{@%sE&Ezy?^fRA&yw4#;?iFX_}n$W zueqvLj5H)tVqZ$MQ!$h-<1#g&2g>5(5tw|#yYTL^>Psn{I_Nd;1+yO~JTm<_FfzsKpSqomsTl%q0k<*bC zS)Ib@a}D9hzu>HC7ZO42{7-#Ou{hD{=mB?vBSUlh1`c&*eWnFp;!F3NF;Lzn#hnL~ zzeSt_%2ALN?RtH7`&F|MA2-xc8)Fp&Un3B#A5D83Z;7pv|A zv^($~kgZnEU^QZ6)rfVbwX%)vm#Zg0f9Zwk$FlMc+nsIFLVuCg4eV4fzTw5YSw(+k z7;qp^A{~D0uhLXr++E_L35n0IHpwF3% z0jL`(`DowP(mD7l^8fbtWPX-0_ zHu(R5NWCkniu-*f^VDI9+@^GV-Ei?r>%p7F_Xw~DC<>C&j==U*YpRrBFQA)fM0Ac3 zxs@-~(^$on)g3P;w&J1O=}Erygt|ZaiyF_8!qP4Fdb)P2tfwRz^StDAMpFwmo>7mD zHq=^l5UzvYqxQK(0TN{tNRTMD5BgdeAFk8&pidk&^7A@Bj=8CzuSR{W2>LceU!IJ< zJj6@&xWQGqzDw3805%+L*~F&!MnO_=(@ZSed>;XvQb?{q=apr1A(P5{BjV^2ZDWBu ze^Q|9$}+L&j!Ew0@5xo^O-cIBw7M}xUM+B^NJ!ThvwS1q*F&fjCiR-+DJhz6K4&O0 zq5OK6p6b(r9_pyhcZ*J7QliV1FIqLyg!CPgX;TiLBjuCdOy~D*=QrE=UF!Un$*;6i z+uFodcu!m4^pHg(pLa)mFL|`j@m3et{_^ZTE-m;I&`3@exBPhFybhLLpzChjsSk9y zUif;Tt5933JgZOtYv4p0nmi-4)%gq+4N*hHZ>m#qiu0@P5Yi*WC{i`z`}y6}`=2vR z3|}X1QC!ct>2Yc_eR%LTB(VNt_GoQYvwVe!FDwXUuh2F=cEe|DK7%cigj6i^5b^yc zIq7rPF=m_zPo{&2ybL$oFej*SIGxKWUrM)LZVP?p+8lsaspYkB9P{`zc=5ORyy7P6 z&vagw-GmzLp6*FMz z71=I-Lijrer8!0bP?+)BT34sQ6!*--!m;a?ewhukCTwfxB7)fqWpk8+ofDowb z6=-nXbm7us4%E&%QNIzO+&L5@_tu!XQdh-eGdY5sFZ-KV1h3+rbR^mN73U9^uX=Qm= z>inukq&SUWt_o{U4wJE`SBUy(8~1Dyi&WYqfx1jo!8?bg*Ar8iUYAxkq#lI9U@c{@ zTLlDyeMnU(SV9XK1f=hHC7;|O2R5cK>kLFFqgMgH8RX>L*+>f(XqC^9++Cw>T$A%T z3xy)GtAja5cm*q_x=-q@`e(=YGEgb*dKiz{K3~&T3bxj~a5@6u9DV;a;x9)wBAxHja9x`tOMYyaJl+X2)J_`^${%WlP2?}-T0~Z|HNGA^KdA6T%fL5fIx+3_h0yN#RqEr4i~}$rBs_&zV6#YaO0FAau3Xhs7 z>nR!yI3CLxj15b1RwdYjYPzu|5{a<%WHGW5f*;WvW$vZ2f}#cY{(}%iE05*$<{l~u zEh54TOOLRrBBW+MdWk?M0&lpkNO7Z;w+43vlftOajB0kyAaT&*}2_Ytr|Wca`H< z&;8aU1oE|23xMJ9Au`(SWKy?^IX zzB0nPzpLrB-S{}SE)2YXI+UpEb!j`bzwJaiGx4>Dn7Dab8Z`$x`!5_8sOdjX8^PC6 z?bd;%Ml7!8SfKNwMTb>f;ZbcajUi7VP?7|c6wzO81Ox}7okgOoPd?P}%8+T5IRbEU z>6yePIo#+UsPoXZ;kw&;1XQ}g&HO2<*t(6Wp+O^A%_EqW`NL6~^A?-G+n^5oqLsE^ zhzzV<1fF1c*^YtCp8`a&1u=_ON~QLKpe**Ip!k3kQepzQ?^u3suU47Go1?mR4A3bt zzmgWCA8xRZ2%%)RIw2e)UQQVnzr^T8Nxg3J6qZakA5@}jiB_{j*aXldw<3UU7U)of zk8z`?!Q;Nt`nxPzIlGMWWVyAq4++c(f{S9cNJfQuL$TTxq^_C=Je8Q0smKM7DO&Nhe~A7 z_fx*D_t|X}u3BnM6MR_P%-D?(WZO`ki#>J2Cwi zei&L9sd!%yH*oC9zFN(BP`os18=KVjd>q7}PCLx{2rFLAq41JS+H-*Rnkv+>n1^= zci^eNr8Ec|kmO|+J}4p^ zhVziN#m3KB8^>8HfyJ`q|1Kw`(;&7)>(9hA*w_xQJQJeX)aYb~ z?EO=ysf49JrgfgHAfs~h#z1GnQrTr#uEC>FFA;)!PQ|^K#RflQ19K4yc*RQfATfMV z=w}MRA&s!dbCGH`#pg_7D8OY2i=GdAWS`bstrY?@Q@t;L{n%@A8Tm6ivGpU_CRo_> zff0xWSvqs&^HN0Ul;Z7)y7FTDmt+H}{EV!1hFI5)pdsSix`F>d%?fTB}d_ zjv8m-`EE!oXO+nMQtQeR4Ku-U3&5&iSFmLi)6N8&3ih<|@KJ4MEpL1ynxP_QDgk}7 z{jNUL>zzmE{6nLoyh)bj*6rwiDWYT@^Ok;W9wL}Fs#d$js?pFMR6VeB<__1(kFnUc zVto^)>NFD7a)Ht%k&EqiNn1E^kg;Xqpg`Rnp#^t@?!Tkrgm^z$_y&n-ayvOq zb&@wP)Yv`rBcX!+V^!k4QhL4=J!0pl(&hM~`|BMQr&Y53Bx5T%s?BMVa;u`7jx?e6 zzKf!%D4h@Y173Au*x_xL6HCJoj z7YbmFWS_N&b_n&K>?<-4B&oD)Y(i?i_D6ePlO_032dQkVNG}A>xCAq9kc}gLrvNjW z{=eW6fkaj*vEx~#pjB<_4y*lNDsc`+p}pAWWKcOE0gM1cbPfe5Wbh|l@Vd+=s>^jd z`^?jBX_=?ZU~-Fh+Cv|pnQ&>evH|h~H)b}A!`@AQ#_-`t{q!mAu^PtNn{`}!Y&*m&1@)3G|*mIEbI+m zm6vC>wy`$kDR`rq8^f9H|yFS&DwGPW|h~Ds?sJ39lPl7 zVb61;!bfNk{y~EE?9Qrjey{a6-W&S5rs{L(bdTa- zX6Xde3jF5j*wB=n#B;pWx|vtX%XG_kpg978TF_+O@u|?>f!hA;aVgrv^`t0sl_hT$ z*?1D>9Dl#%WA`nb^7aatGhx^aJlJ1>ui)9wKvO8q16qt)iggX8VduI(TdenH^Dtbq zKxeN-C3-_Nkce64sYQLkx6GyY<=0>#AOGO49l}X=x7Sk(bW`MIZbE11O~*gh->Us|nES1?(@1G8{r1aBL!jyS z2Q43mJU1V2b=QuASBoF=&#IFzu1fAR*{@M`S=E$2?wo0x1%c;OMpnElc!%mUtv0F_ zPK))SwBa~uh4f=#7e*KM3YZU_iI1y z{lmID^cGnp!td#o))4L`yob*)baz+HYc!$O8~|CngGJ=70a=WwFW)t)YOb3^ESRfc zhAmaxw56`He3~-S<-dWZ2?+O zvWWB#m0{95tu8^&GP@Z*O3ASPjT>P~^|=W^8DW0}0Gn=}TCC^_C(nM;Y>FIRBv1;= z5wG2w>1}j8zF<5;{J5A0U>(`iQ;N(~Se&6yP z9dVPB*kf{fPM6G)GhIUEzakro<%4Emu)lfyU2Bc7SRk8kOiHie%(CzT*0_G6(7euG z;lPW*QOVQGKfoyP!Ekx-Fa;pTk8X<@01!Ra0Tz(j|N3@k$%OCleqcrJY5xIZwTI3k zM9^Y9dXT(`&@~#@W_`A(w#a;Gs5)%9TeCXudp_-5eNk@sPkL(=JaKgb1c8pQ>Sf^^ z(LZCRa$IF;dTVtrBpHHs_zf1yE^M323nt#YYm08T7RJyOk>i`P3gm2)-Y%Ktt%x- zCjh1_N=$P$a?fwoM$V0NCzLdUr!V#>H|LjSZ5Fq5_YK}uPQ6*1Z;_8nvo?zbpZg}- zx1IJSo_)C{G7tIQ67#2*#*U*aFeF-DFxaD?j%UeOOHCkTkM#*Krv0trYRU`Om6*46 z=evQjjDjRN#uh^Zx5^xVw|$JO)KZ+(t3VxNn--w-Iv^fR3ElDPxrXWAzhjt^(W(cL zDV~(|dy?tLqgZO4WD+bT*5&j>A4n>ilF1ovJt6V7eRi?SQ(`_lB-YI{PTdv6OLPA} z!p;Ofs_J_DGsyrG7QZfOwXLU$<_184|~%>R4tdy@pa{P}#yyu06f?z!il zd(OG%u9G6YPu)Z4F06aog2K`-SUc7jA%HgSuIi_DCo7AnXuB!<99^NamhJ^?b{Cyv zT{L4fTbC?3sP9P0XxDpyBF#S7*ysE2ww+Jby6>IE7zTT>zN#Bayihi( z*lbQvgA|82;MMJRHTv7`2G-r84E>lKU^cMc?HW;)6cra*_sRNX+s#5PJ1Wb&DE=I2 z91PwHo;gY~;=6mDunsO#R${*C%XY;XhU%iWp<(siS|Ga}wO!8(fJs?kvSI@2n%n-6Mv* zne>KM^9DC(#Fxw7@bq>w{yT2u@mMLyW3yW5AbXv*WBR_>m94=~yYTa3Y*-AA84Vkgva@{WIUr(EMea_e7i*Y_0h1m^+xgAO(8=0e3j`tQk&Kds6CS%T2wU2N^!lC(qFy!5H))_F@g6#H7>* z8~YIv`~+LC)?s_~kA_g~M+VmvQwISGZM;*jKKc!9e1~3cx1vw4*Tx@X{L0mhHolR5 z$5Q|3gXeJ-Y4jGyury^KZkf22tUc1m&E#PXL-0_0BLG7f_yYM&`@qniQ-bit)!1oJH;D<%7ku&94`z zHQKaRC)r)nyml?WG3bHxyy0A1+&D{JTg1il2zhBMFVnW~x?!}GDo}PxM&6t(rzPI} zjkYvKS~}@oZ7RXa|iAXkIV`eqSn^auo_%w2y4%nI0G|) zq*2pf7t3*Vm|G)SgX^Zh4tkV}#>6>X$GC;6^@($gqM1l#EBljEFPdpg zoJ~>|P_*P~6w0j$W?VonY>f?md_3%_u-`3CdEahrn*crr#Wih) zdGv}<*z>IDX+Rz>_hB|S<uq(;R-ATPFEZ8&pz`!3^OqWW$vTgsbMDO-_Lu+ z;@jv?*+R2;Wjiz2G*sV-J>$Zif-tjMtz|HECC#{^kQJSmz?*2+RYIIbA4CN`!5lRK z035kw!W%2FYh*-D2-6`L{pqH=QC0Jn)hMvqWj)6a(R|5!lKgDp$0lAq^h@kXW^=6J zhV+|JDpr|1gBT+vT$%hL11*&ozDi+SF#}xtAclcl2=y6xE7)fWg6feiS9$;D3Q^g} zKf0dd;~DqYgcU)K@B%;j-DmX0T^J%(CKpI!nLeXJcowP{uRkSUh*wblCUZa<(H7%A zrq#rd#@RIR)gO^#bX~?lCQ(~=@d!MDNIPsHq6dm3hh|{L0Q;Givg=&^ygX8u+uxlP zsFfOG7yhd=Fz?~xt~@Q2h2Dhn>68zijM3J7IGDlCl*WP)wmB>{^|!T}@%=dw=n}#8 z(3A$fEO~g!(Yo`zo*0fWpJ2MXXRqnr(_r?+UBV~*hV7|d@1FXHPjh&6)`@!&Y0EKZOY}6ro@a7iBV3yR@32RVIUgk}z#F zn-2!jAEbzE7lNi${z~CMzU@-1*Fa=oRsl^T17-}O^0LxZkkIcWbRD7Uv2FqU-s=VZ zGTYA6F2`VLe2g0oU#q-isLO@*Nd}g%AHh<{RHx01q0Lt>q0a|1uC0ZZxn2`|Kt!b{ zChNzo18T(t9&+ERJ=P!%-zZJht5^vt)uY@mbif>}Z<1&^3Iw}4wKYE>sqHhZCfiL4 zF^e?2|3Rr{8HpTdGDehRK|qd{q+r)lt#aBpfyNj$ZCsWuXvzzo{8~S{Ih8nM=sjsk(U#hPk2Q9YT;GO7hX zoL*PfmmjfOA*gyzds|L#)X5`*xfWF%`_eNSjR*2g{V{mSKT(6+9RJMdRlSn3nOCZE1VAyw$3Uc_rzO-Mp~oxU1||ZR?ivzj_xf94Dtw*+w33 zED63IH+1W9*Ii{XDf{pc6B?SyE?M8_lXs50+AciDo+s?NxsUWkRuM?8Z9Q6X_AUsY zwq^>bscrwsQ!kTf<3D>kLXXhC@`0l&lczz@wBQrBGZXl#k<)obc1`h<=|@Z&*mLQz8H_30r>zW>{gRiymJipF`3Z zB=5P!kF0(~T1?wpK4@Hi@U&Y$w&X4AMj3R?zF~X03UI7kx2_`0f%jui+RXm_xiNIU zSjcs-n8fl+d*K9T>J6<3N&MI-$lm==^3!a5`X)J!Y3uIIrTp7i$9(5r76-3BnPe#0 zSaG(PUv1qJ1ITWJHC*7+*DD+twcZBny6@k{9cLT`;R#QAAap;l@gQsH_vPfNlTG>2YTGbbs6v_6G>NTc#gQvthk6#N4 zY=fs_wKXQ-!9GZVJua}#DRoOWv5nzuIXEYAqPSXC;*Nz^8dE$RNj4}#Qf~>-profx zmK(G=ve+A0>@km}x&>}r7_fc=g8*OROBR=zS@G5rgc)d}9b;AXB*&A(;{y%;Z`pb5MdrfJfCbq#5G^V0L?Ya3>u6Nhf< z6XzKdOT(T(lcyq2w28b?np@#+&aF@w9e4=7HgpS%A-H@R6EQ~SwXZNlTIj0LQd_Ap zaUQ;VQr=hgGprM_=kpka)5PrV&^xW#^Y4L|oS*+h7vj`Ih*-KYA4!HMP3Z^Y#eF?8 zaaAr8$2r>b2en5Um@a>`v-h0S+4w-SM@%{~0^B6}Eo$531rOr&vQ0jIea*R>RPT*J zfn~+A_PynUol!EjZ^)9MmsJR&`2uyX2yCb&2?qyx^AJw+7=!?%1Q`6&jjX)cKkCkS zZM|5=37~_oy(J~Ihp%S|GzV2cYFJ(hN`}6~!o$ePm6P|*SR`{fydIbaQq~X%FHK14 zR3q&tm_}3A$e6{YXj!6BEHX1u>&Mdy`n->;1VOm5SAJn$usNQb38O|x2UgTurPM}l zd4;ooXI9@#Ei`V7%T+g7`avb!LNe}{mwpG+Tr&hPQK$Z1j(*2HV@zo{{t+sPuS(p+ z00oMAEEcB|1gZqR+YmCp0 zE+`c?mcCFcqA>j<_W?Q7y~BCyFsn%3fPK7?b&UR}(am3>S(CW;r)CDhw-$Pl#a(D# zd5_Q$4;Ls{*pCy%?4Sr%7tck48ypAGAkJTeAbfbSIprSvh~&8iy4J6ICErgj{k_V1 zK`<^&RtcitoI#yO zb)-Wp@3uSH$gvKyL%0xHgY_H zw5znryI7pYa;eT!C!7j2`6nZ6+LEIbx&`FtMueJ9_40@z(Ex57-RNF9) zfWc-k#e+*Dz-_EZ`6~E{7W|?k?p>YlK*6Qn&fJuUrfABnf?UDCigc&!wQvo(efZVy@IDFz8JzEFh#Fn<)Pkga?D(GoL}SR(l`01eo|q zwtk018N>_ESBiQ=s}r7ZuDi(mB(GIKjQn?iG3dI7KOkB!NY?vW%cO)%|9)c;uZe4w z;{*Y`=>@6=ZNnc0=P_o$nplq#^eQZ5tGs&7{@`+PUpz0w_x-ZlWQl8`AvA`Q#;(itQ#J+Q{l&ZNWyGx&C1K$e9!?7(vHGcwt?Jw4xlK&0 z!4~lvo#hL*o(Z<_1dz{KDN12FxP%QBxCji7nO#@5M)V~fYqpb^-!AC@Cf5@M3`%Hi z!;A1({{=Al?bel28n8~?&%zRpXRMU&pFY+B>k28oz^&iV3#`?U%4!Un_J?zL7Im(> z(EQ+9HEY&>kz%JN;|x4Ju?q_74X;{B1uEoRcyQWrv@7p&=$ zJ&MH&6cXW;gYo)wKCJ<;1t_uCAA(KKO`fftm+3n$cuN=)J6KVWz#|k`KU!!ux5#Su z5F>CoDV8LI5YuiPuA(hdBD&cXzIb0H-r6Uz=z5Cqyrg<;x)erxtR}V))wwQXvd36( z#@!@2ux^iRR8+-!qNk`LT4vsLpG2TFGLYqx#>k{(7pKg#5pDF_#)xogP1X3#XM(5L zJZ6x^^2qGT1ayV%9*AHK+oel}2x;_LH%dJj$>DrYxVQ^BkMwa#dr?tj$^JsKsZu%; zZw(@oR#U+Ji6#zh+S;Sjrz~5GFm*f$h;cSkBs`4?0OYv?*KNe zHqwGNi~bdLjbOHiTZZ6?4VEQp;!^e%7MUectd>pFL92GFL(DRS&-NH&xubAK&+f85 zAkID$|9~D__lb&2wlOWG(*{X4t=8Q{8X);zu>%s;UD+-F10KJL!Xwy_3a{Cend)lB z#|gEtujMGbI4c~H5J7FjrEE3-d7WEdqlJPQD3(zQZp!}3u4sNXR1nN#T`EIT{ROal zh_qUSZ%~&yWWdwkkxG z#1@sS%N#jL5ZZ73K(Yw^ayAn4JZY#&Q6~ME(56g9YrOiRcIzg|%o@*cQTxlJgKU+d zIKkX}pegGfXFh`r*QknsjN{>luY(yUi&|Y_I|;|1wuvs zGa;Bny=n_P6DaT`;fSL0R$>CXVye8>jnXD_qMx+SWr@j=MIDhv?dF{rCkboQ{{ha2}3jgwxj#rR*yvCb`i3)SkTXs@KCsn~CofHaK4X zBs>2T<(KRE`Xkb@}(BX55oz$pyvGh2v>uco0GDU&dBLg`kL0@v17yA~phbJqHBq2?2B>n171Z>uHVcGgi%paVXnZogEh33!fFw3V(Vx&!x zGDBzVN{*R{ zy?Ta!ijfYkc&z87-YBV=n#}6W-!CifA`!#|NmOFRu3NRxeLf}YzJ(UHu~b~vH=?3v zNSU5sdvcWN<6I0fsddPC1Z+|(Pzm&z)1fK*%)8Zwn`~V}<@8vp60DN{Q_ThQY}&Jx zKC1x*p;n_1LQ}bkn#2S^+ptc);*+bVc*4G2RnuCISmne3bD1s6 z&Dd?oAdB8OiY)~YRX(XcaR2liANKUzERcFfw9*RQCSPTv+s8~8j9oZ>S2$x&u=xm9 zBS_%1n&R53!NKNQt>*o>cP0kU#w=-X${gjnJk09>?s8Z<-&xeI_rJ!>-*~mHOTjCv7@VCV~)^N(w3*?vZ z1ejzHZ2I>z*42WxYPE6Ha9Jk=+t_My)I1dmq%nZDLqW$KZx?qtU zJ*2BKEGMJD7f63Ws~jlbM_~7bf7j{C6_M>(?z3y8K&xa$aetD})s|-l90K=hF zvP;4Fnm=+{fQ7zWa@eG2vcuFB6%|@*gyB@(2fq39!4a z*D7^BY_$HqjOom0Hf-?l1>IbnWTUoR-eN@9k{I*7!Lxm|Pz*Ffc7O#GuO3qO%J0!! zy^pY&wIRB#j44{EneXa5+;y)yX@8EUP2wtnN{gxclauyTG_6<*J*?7V>$W&)E2C*+ zw9q1z=BfL$llJ{+TCNr<=3C89R{#QJJ^h91a~S&{X9t{%oy(C#n|wF*Y-=OPEtVg0 z&qX$~Bz}#%{c4`P(cSEsQ1@;ooQIykPS(%LzlyB(=Kq|+RB1|f`AgR+Y&8~j#V$I7 zE4IcWSOV)_IV;G9;gMN}FJqhh(-xJ}Y7;9Gq3HWzdsOmb-lUzL)*7*XD3S@m*ZXOM z@{##o*gEs%Ws1Ro@%phC`G6EB8eCqNr~DqH(3{f9?c*D?nhhU}dDE5lCZhuVtA8ql za^zD=k5G9&G2PidR@utV>z$?iqP(`&9kiK*f2FUQT+a@Go{2q`a7!NEUUiE(r3ZOd zkyXXHL6Iti5x9)*h)~QL937K$0#L`zu0r$SKggJU)(Js2fk(TX2OmMMZ7e;5kqeb- zp>+ghm{(q*Ha2UwWG)aoUb#a)CwsIV=Zm;(V)}t{PhdanQsHxhERxVK(?AJCTTk<=h6vxwJo}2x+yonc zZm~v6U9!stS{bXX&7s5umR`q^=rT#m93hbx$R_|B(UFIrGwUpbp{#S;+UedB!+Iwj%HrEMjj$JTGHT%aqtVNyYlqUq6i` z7z5<2RelBIQ13lb9`l;msin9ol?^_@9KFD1au3zPNw`XX_Th1t`SA$HG+7n{{+ghN z`h0JAVvKNl^HXJ)(+e~8`2`%tZu7gsMbNGp`uzF&{1tlDV^pJW-l+cW;csyHP$>2Y znTOlK3{~T25Hjms+4geg61Wlg6y?ssxO8T5;!h*}XR+cH`Xv)0EtuJV|#!wZ8@Dnd%178w= zN@gN2g3J;8L=O7cV{Tb{p_d{4fpLA40z2fi;ufsd*1aUV1JY7tOo?@hicl(E&l#>C zWn4a@|NNSY)^q$#IoHM5QhM1_jCHS5jqz|je^ENB*{D==6G$6X7RS?6c8L0X&6O&h zoJgJvA_bilwoLO_c#A!oeeppj96rqNNyH$WU_Rm|vn*UDKeSK!TIS=u2DiC(h)j#e z9t5h2E(9FVp~|;;Ax?>Xr^mXnGaw{nuz}qtpE`zGt(^Lm++YRv2w~6PW=Xd_NDQw3 zNG<~~e?I)r&F-PP_KrWBY!)`d_QumA;3_mfbjTbh&ndLVdT7pSCAUi*wvJdFOjV(x zF7%Bo0FEawQN;R21UrQ5s>wT7q}(3sW8#8c@Ekg$u^Ub$)!Ou-o!6*Pu#Qi@F1stX zqMjr@`%G||;NpS9WMR!47Z|}-N#GnJ?@WW@=>7x-dDIy$!~@l&{P045dVh4%ov__J zz%7)MadQK0l_%KfrwlrYqASNXeBvQP0^xXV>$JfX#YtR3VAXZ5^7DZ|+Uj4noxmh4h#ShiI$}0G^%;n7F*;4556za@5Z=)7E0k;}l&V829KjdIE4jrDk zKASJ-;?gcrlZm=VdSUBhD_5o~3dNzbWJ?TR;pVROeivoLz8snoiW&ma3c!FpV%?4+^D>o>`V6lvX|p<{3qz zfo=Azd5~m%{2Hcy4VKVre6m;Y>*q&og5GI$G|JAYNA4;1KJ}oIDUupiRB&~q!pq*n zR-jL-fU`#ZJ8@n(D<*v++wIL#PA-6|mVJ7&ry4Gca@8J@@XHxm$@(3IG-&15HVpaq z#^y_*X?A0FS1Ww6#6{KVY=z)<*8GfND+7F}eJIIX^7tppKrB}>=g*_=+~y{{FGxYWM-#5RkKBSn_MVioZ)~>y zjcD=RvY2Jf;vl~x=cU}PkxwR*0_##R#Wb5*)&s~LvQv7MC{oj zXV3QYCq{pwl|s$gN{XyTup{$Io|FvF?+bkzbF@UyzLNbf_<11s&ww<7-HcoktUQon z>#ns>$_PeyjCOzMw7XNlJ-A788g9H`oV~v}$DS(SqiT?3S}g_u0&C-NT^}??~^xG$U%Nh*tFx5)gs@ zTL(E?6!dXhJNe-H35WcnA{30j!`{?iCYtUe$E33^>)Gz0gslyB5V4-Ep{m1}14(L8 zVX1iOB7t_1PcpG=beI|KN=J|5^s%>N?8BhVj1bXh-OACl|G1Q z#+a%kIZNm?a__?UiUNT-OCZkbdMPI}hIlCVIT0o-a>8 z?i4Hs31WLG+JY3K=5`Rz%Zsw9rD8)~9a1 zlQ!E)+YUqS%AnE7L@)|{zQ;QAe+-BTG6tXy`{O`_?VYfR;;h*lNV38*+?*B0{MoYk z?-8yBR;q3>V4sT{&G|FU_4i&5QuwSbk|ucHMH;UNsMTw3Si()Qr=*GHD}t+MyYTYQ z^5$TBv~DWdrcRw|j(fS z=k74>nJIlTmd#6FHh^aN8$pkkg38Ef}wRLM@Zb=YOCE3atF$95E0C$?C4L^N=A? z`n=l7GYAIAUOhhmJLFyC_q8!^A`@)*I3{*tse(7GGmmRqx3QS@LrS9L_#lJ7n`YCJ zJ|d-!?x7v}@$dqFdRC%X4Ug)A^maJ&hJ3KdXUhjiA|FH)y`3qfcfxDUjS-(_31%5} zQdgqP)nizNkSvT8r_rH60|&=VW2$5DQ7AWhj5AJKU~kby)Wiw$VwH z6jo7p5Ejj4xWAo@unTyI@GmmI)%?|i zGP_>uAN$A*Wh#C>oZre`hPgy!Nf$cNLh}bdRkLEOZKWEBVCX4Pal9@Cs7DDT6uoXW zy^B?4VgvH5B#Q=hzjHo|EPfpWk3#E0{CcSY22`iYC7gVq$8r-jf#nIqq6)doW z)=!vbK*&)LF`z8aB8NAR$Zt5Jc$-`+kv5^%m#*x$jA#QM;is(?(FWR; z)#Na8aSc&MV8qq^kQ}0)`i&Aj!s3+0>GOSTzgIfdwObidUhEsXWVVb!byqlL7TIO= z{1#)7+SZq}nmfwvS?(u=dTH%MpSTEpqLs0q1Qa1tTkQ=tvZ%{^I@V@nnnY|+C-cL0 z|JV6~3{fq}wdVu(`SHQqAaK9iLlt@6ZQhtn*Hvs2Y!;dO;|e_1BP4(X_Qw4iyP8!_ zHBsF(Z97`)7reGW&sI-kOEcBZia8Tc&6<6jPUY;kMoPWAvQTfnriCI z9+HUx(bRQ(7U)Z~YW?zWEY=(!U3Nusl7aLHTs1qE-H#>9_|o?*zEz&#w2i#At%Wfa zjoGkR!BclE8RT3l!AI))3o(^<3a+;cwn%kLcG|RWFgPZrS1gsqvhklX#`#h@e@Zc(j$=$cJ*1M`)q9_%U#`7z&{z0TmnEcy%u7JY(zWSt%dsHM9H~4u`egiijwkXbfpTG~#g(SW zBA+?)J}xYu;ux9InP=Z{c})a$RCBG=&k76HDm8d{Tx2Y^yyp=slWIOc`LK}D5f;9? zqwFV|0hdDAgTj6u?PH^C6qy}Ne$R;(#>=+Na4awyoCL=LgU^|`Afr4R4omnG1yks@G0J(m1R)NfG z;QJ#^2MUIY6?2wPT}Mb%J!_RMk+ahJKAgEuyy^5edgd}8Ut|O2LrG!y%8aS4KSjfZ zwpI*{&_+d0Jyxw`6397Lrgix=EOh%{m#9+|&=xptl5D=@>M^ZV1#T;7w;46~DC-V# z8o>U;4)&Y^&7GBYkH*=xV2xtfrYMD`SGSW!M3cH~iMusLB%4vo6=SkcCl6BJ7dJ?L zujP{bYH;RFn_yHsb`y@;%7u&7IZVt4v6p*HO8Bg|C5Hg6s)Jq%ATv4YYn9LV2*oGI zW_yRJM)ZoWWE4M_?4IN%m}2YE=y!XJwNAdV!LG?`4TGlAD`oq+-~5n&m_?pfGj!SC8gri-LO#m$(n`I1BczE%dH zuT|ab+C{287N+S-3DJ68(zxHUFaGZL3b- z2}>U9XYwtbb7n;9 z58^x+wA(n*qPiK?Rhbf0JP?8tmvtx_^j{{y-RER(&hiq8ms&fvIjemML8Wi%uzqew zI=1JVBqXD5H^z1$ebozw+TVJ?aH~ubWe&RZ%;8o^G^=fi*`a5*m;MD)-Zo!p;(Pq` zDV@&`B+YAHa=wz_SvN`%g;Sfuy^M-qurUjh;&!uRl?<2r$}d=bx^n|oWx}igDkjJj z5F2Fk)zwb!&DOiks_t-+y(B~`(Lzr1djZMfV|`m&>@1=)SA@l$A2Uo2>-oPc&PQ-c zCXQA0ooh?09q=}Nk7NaazuTcaB@YFI!PoGPIAYH4@ zwq>k3!m8^QGaa$dU1r7Ek2%-qjbgJ>eo|<+k|4=~E$In50;Tws3XodE`FTAw6GB&w;<5TSXILRmETUuqlpI z(YqHd<}adEDC+;{x2gz6t9XbH!I?m)d`bKU%Z0K}!Et z&BLNKCw;qStyj${MvdpQHH1pi7RfS0zE< zrL8b!AHD~CXGpKqm6Gt%c0oQdKhRnHMaAYb3e&J|?XjaVKZ23tG}y|o*wGy1_uuSj zrv0GXj;5A$-WGy;`kz*zo5;rbMeQPW0s7B6-hQu*wz!t!#>Hbqs#Vh!zFPrJsadC* zU0wDNclNd-j*l9zF&yr4qmeL2d?oo3)sibxR}=mU|13JRSNV0W(f)={gU6cd_4u8E z@jKzRo)acJ+A)lR78>_2Lw727Y9dd+$yFBKZ0!neCM%1n=k%>~7{Mtnx`a z(1ywFSR`|vy--RNnd`rnOsFK75Ds?8R^_8mkx+9r4OlNVQoD!{_S>)$gX$uuR6Z7Q z(ie}J+Z|&qixy~?0>&V7=qV5_-|4o;91_jiYE87WhV$FQOH`A}n*T|KSiFX&I{qEW z1MTXzg^z=;G$!J*h5HXqnoU}6EswW3)GXtMr>7m;rN5={=IB&f4K6?GAqg zbCj<5R+?|M{vbJIi|g69tfwWeTQbNC$1w8Tf00<(DbPd*YF{DBh02_Kyp(4BkVKon z&ylQ@g3$mk>|?Fy&2!LuYJnB{Cd)|m2l8js{>?vm&4bQ zV3VlYRUF%=$9#UagH3Q`_4G(MH(MyW3@KrAo-M0dd2Z6(B#F&XSLw|`5RM{}K=vi-B*GKE?xmMI_E>+tdrqZul10~&)%tFWX8}N$_ zc!70dhuuNYqNpoV2Ez!f4EsQ230J>Do*P2Fs0x3;ybnxkyzv{@{L zpG&>6JXFTHuC_r;jN;tY)?R3yB^Rs7T1>{UEp9NY?*s;NeZ?6k)Hlr-iV0>ai{*4AQOEQOd-y`uZf;&sj^5y2o? zuA7aqThtXd>E3GOwcXvDC+$8UF*1+X2VyZH%hqd7A;q3t>FO4#%1(G{A4Oj12@jKu zw%7}OR5!uhZw6*LOGIp=8WlJDq0N~ESIOqrilo-MODf_>FDB>Jn?xsxi=0^I*%3Hf z?V_&`nqsptK|UZ#$#&gWX*>&RZkX>p9MYHRTj4+=ZBv|dWR)5Jo zXeX}HiF=$lWs&7a`%+lC2eHglvzW%HcPOo8$T9PN))LMu8qM1_^3hCB6Ra9YcjT7R zFVN`}nb+98vu=|vd=$>Xt|w+;Qmt^e)PeeTygSnE)!=b>3VAN^Gj#tu&qh#R%bYVX z>pdI4y!rumW3cg*R{2NhVs-!8wLn2!vV1{>`kR4I4+lk4@ ze^IG1wN*~)?|M?PB^K|j)nj98btg64lS<7MD%De4?W8`~lX{01x>u$4sWqI`$&!l8 z_rrlxDAz_4vS#oH@2Xnm%d!s)iW&<)ct6}haoPILs>`$U+rGr#p?;#eubP@!lnc*4 zt8Q*EjVLXr^^XMV9H$b$1NXAhTgpEJ@+^4kS;DOKel%fy2sQ+i01m!)OPj)U@Mq#> zqTw82{W2O;!pT#`{7hn$B(t}qP*B;LE=h%IH!PuABMy_K?Z=b}s5M<8?6k2e&HUolOEkA@V8ajsZ4e_q8*y?;&J}GYbl#^~Wq}!b{L1 zm-Q*ZS{bA5aN;Ad*V?#^Il!nPeUs2cZSA{ksDg*UjJO#Rw{F>M5bdp-#Cs!Ixzmyk zz79DhS+q4XNwh?mopG1`X77389Timl>H@mAI&l>9H4vD1({e{KXZg(8ko>H+Pnz6{ z4v``T30`X+^M=ill||>oLC`My8Vfq-kyXkxJM?q95ngpH*wmqSG<9F22u8ZNYQ@HY zw_oN|tC^YBZ&Elb(iyZ34*xHl9~bP3)7IQ9JR}I=W@&At@A6$8KazdL7ZzlOZvGk= z=?4@t^QO(ygjA+!Bi)i~gOe-JlWVjVD(lG=Be@=Sa^2aJYoZpK*pn+(a&2^SrS{~a zuAx1-#2K$|lap&uPcAgkF+I8ZNUlemT&5gX?B27CKOp4vzOUqZ)XBvY!qHqPpKE$@ z^^;tWIk}$c$wj|55|Y%%CG~x+a+Rchq`#*im5X~w!q)u~*Rd!JT{T2deg27eO~l&;N=`OIXwwn}2sHS&Gr`96zt6 zf~K~gSL<&zpmodV5tns0UO<%mi+d98HO|#punP zP_R)&)hkLEu^5?>D~pL3&W~Rgn~T<{wUtLM&!|6%mO%?Y2+p)UgTl9F+70gTSne!$ zF1n`MkyP;1^<{m6r>-j(kFTN@CKsCaG^_@mm$uQ*;( zPuZ?tLrCAlWS+PaJg{79I-hu2(F}9ezqzW z)HDhXXACp=p3UzZV@vXLcFL55+&typG9d=38y6ytm?8v~Tu8qboGp7(%KgjhGzEUrz+<;8m6-g;TX z>7IwR%BN*?1Y*ZO>`C9d;tMNq7Hr`>j#q)saB4@esUDx1<#9pj{|{t!OZ8r}^~=Lt z8qZX0R9xOrj=I)g=u_!4pjheQW5Rg-{)~-D^~49$VpibXXpE9!%Tv;FiV#BdUrrG- zIYl72F~@vrpCVRy^xGt&xKOk|pSDVDJdJW0+m;*@niHohaOsVxv8_9$&69JqP(IUB zI|dD))#r$;IOQ7?Nci=??e-U$&^`rQuh zg#=^aiO8S*UY^)1GwH4pk^V*a-*lj&%2fS_TOV{!QYmu3I zS^({}wvZr5G3^yb`aYh{s{?9lt~r0?8ud}RN#y$7@`cGor9WW0SoVI?rRwlo36!lX zq!-p^aEV=ot($;2+G5kMZOVO^ChH;?>@%_sZ`l;!CIoIVNEptNHge~#srkm23dcNqr0sRug{0DQqNITWK| zEr#}4ADyOSnaU)>z5pzK`b2;Y^@arc-PsOlEdNKwwdI%ayzs~F@_6W>P^Qh-VmV00 zYRQL7aC*QiL)VtKIaC{3!gItCt5L4V3#zLrf&7R$y<86VnfKjlBihaqUXW7Vs<)}N z=Uk6M)=kn;Px9R~YjpgtjRVeGe z*z9{!VUNDVXI=6~re-xhmp8mh3%Dfa!OX|-WCl4_@2q)c$1w60M~Iaz3u6GQA*H@E zE5ThZG7>RMgP?G3Eu3mTn;~%G4z_ZIX4|Ug;Qig}A9YXsidt(TZP*)6v02e&(+VYZ z#tV&-oSHwKiW}N`xd6LO?)ufqy+AE@uQ5oGk&EbCumw*8_9a6REWdPC2t(A=Wc(jk z4^7;fJJBq647JcGB6u{*{1eJRA&l1%ZtDANT$kL8zf2P6W20NZc*~p%OmZJc?k=$q z%G|Y!~q>LNvC;2dwY_YYH+(|?h9#Li%SLUmDj zVCVs-TIfsX0?4uHf2Ur&KVs^gu03> zYYN|k4r)(DJ!LpfKRQa6z+Eb8w6Igq!EdFKj4UENIfBVR*n`pkGXZbr*kFBaXy59u zt@~d__Va#O-#lw4+6v(*{g!BK&})qh)^`~*u(HeS9yhfkm4)`P%l1m z?k=X}Hmqrnb+agfWC!|UHRJ!sUb=}`MoGZ-2hv{PjwCw_m%zFECE!-G+AZ$6mjk0@ z$A;q#B9qSGL_f{GpDkisi8XO9~k*IFYhyEK;vIY|9uFINE z0+{-qIr?eNw5JF)xm*S52eoy-c#GVB<`3Ryz7+lDIeXJ~v9yhDP><}#zf5t@w)7*_ zvOF%nloask9-6X=Y2O!R%B3UqyIBXeD??0k-UN)058L-8>);}Z7@@}aq*@7UoRyI3 zm<)+^E{64UFXnGS_gV<5M zMBGX$Xdyz$Y)`Ksbi><%ZJA0|Xw!nqEt0u2uXZrIhV@qwaMBG&a8zi1R$!wx_wM>) zU)MdRj~P?j!0zBhfT3rI&pl}makxMOdU(+eYSqBNTRyhMFnx&Vbu5{E%-$eMWF;yZ zVsl1q?EMl}oY6-FFlV202=(Gwx+3%|A2hLE`U_*)W&IM;woRQ#e}%YI4X$ip_rQiw zT6Trcz-!A-G3R~y_C!31zb%~%Ks$=fo3^UEBv&)k+i}VsUR%Y)=y*oo@E9Lll__t< zAGEOgYc~>6(X?JB?xO9r9EC&s^p$2=hT$4(%;y##_uX&93%bZ_)7~r}AZT$O1@qfJ z?|rAe>|glheal#Bsw%1{_~m`NA}>8s5BsLpmhk3d%y@S3W`+U4!AKlK|>2yN;EUbHh4+Fp~9cGlbij-X5p0w|& z{*)xtdZ)M|@m(L;?QJeZY%x58-eh*2r�gs-gO-q^irbn$egsc&IHCU%_18r5lBj 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
      yVAr$`~C&+KVCEL!iFf*8yl1)#a^Ccmr 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�{&;|%9p9$m82CU#= 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 z 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�BH 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\cI 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

      f0*89`7A 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 z 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

      G*Km&{w>kT$ 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

      v1R_~%K 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

      2e^B{3t;-p&d7b0muZ+YAkOv!(gQ z@?01WN{U_y=AXr8%*!mewb1VgE_Xf=cnBte?DNwK^{PyLNjAzb!HeUY5ob%qj?zp2 zcAzNY(dxtTJuU!!JXTk`#)_yf>in#+`ho-b3;F^hh5E8u1Lwn!Rrkg9oC^+2Hk63n z7Arpz?Vve7E~wrUFd_kVPNEx${o+Esmo5sJ5&|t^<6@}(d7u)m0%G-d5J%4nTorj( z?HbGexR_>$PH`WEm;9}Tqlw$DLNkOjIA!sc767Y$A`$5B7k#q$!4eG8KOR3TxE^Xh z0q?Pl1txcI;)TGw3@q<0m;KDdoU3|fVWj9kwj zD{x!ju&kM+VLd+JiSc$~a*$b^%$7 z#t=ICp;3D0na;KuV|1%x%2j(%->oRQWTjX#8#;vC8L5^|S}qxp+vK|yg6n`H#Jdtp zOMNE#D>^*`mq)0s#r+daR+y!*qo1`Lc6G9ryaWDApa=A?px7H?Tf(SQHI& z1}ZBGP^`Qioh`Sjgvg@MgXfvZcG->qzd8#c)!{`gkp>NLM=u|$iU|C7W%Ta|M=udp z-j~h1-9gJ)K))B62c0i8c#!Q$_Q7huPbNwh1@U&-BbCHxU2%1&_bXt$X!R}dj{oXa z1M)~b)LYxycXJ=LJY!6`UYAn-_|@nZ~vPD zsxVx+9I8T1TWK4_sFa69KF@4CY|O-?pij}~1{rdRM(!{OoD$Po@3Ef#7tI&?q{3^3 zj$|X`T1Ku!PA0-#;cXFnFx!-nbWFI28;7)sDEai_4A6%9icDha{kq?Z4(pjJp{VXz zgHS=p61be2QsHvYjto&~Cg)qEg6rh`60_?OK`#nFqrc<7Le4-seF>l8d7_uV?ay>T zef88zqyR1#3?};yOjP zN{_K9TbwBLqs_OF`+{R_={{+bAt!Vn3EX z9ttm^gTj1}^~W?7us2P7C}dLe8zaO3XRW~8<25u}yn0)=al{N=iHY$PaGUVo1UaMJ z`}tI3SJ31NoWrP9ae)H+qH}3hQQ#(uG)g8&(AQ}bjGJ>aY3L?em|TaKK9Wvc{{w=Mc=f*2@%Te(|cXj<)FbxPo8e&?!F zYT=(}%*rIJV!^ddBY{S;N19W0AIa++0!N=pI3iEMXl_k^#(`oXRj=}Zycx1|hSCe+ z=Y50xe3h&wUH0E@fGZ`Amr?;k&-4`B>u+VR_2j-Xg2;8A%m=2YqSSAv|Dc@EK?;IUq^68S~e66<1S+;%iU)VzeXt#1omkDj6$^4X`z$<<{zm5rCO_; zL&5rCUxN>nz_qIeWYz4PaJl z6`xp{NMyK}iV`hIKN+6zts*%SI1o=cdTyS;Xaz>xrKh5;$SAnB@sr4tJZg+IFW$=; z`zYV1CVu&*QEmbQp{)?}QgA+3=txo{MaWp+Xvbv*jKzB&4nd9yv zrha^;RSm)Iz`Al^5IjfznhT)5>?J z`|{J56vlCEXEiU;zPYXwB@SDW-R4ig-HeAPaQYuZ>!ocd8E53-xHS3afvY%8-!~Rz z;p^g^6LJJ_|BKlxhn$)6ZAC+Lpn zjM_3;V`Fd#6!yBJO!∨y*Ls1%ySoHMe!Y*76)H#lYHtRwP`DZ3pP7Ir~|w0A+Sw zf_>s%h%&@A&}&@RUok9&5J41i%v{{EK|B@pvUM5lrR*Yio5QQll|ZleOkij9JKCC3 zca@O0xnxN>5>!hcG6!9TixjY;ehjzoZqt59Ed)SGebN8oI7&z*dHs>^CVP;e&sj7c z(lpg+Jd$q|-wWR#u7vOdgv&Pq&{}wUz3G6~@)vq0sM{vw%k`uA;loZk+>n~^cjDal zr^JSb7ut>kv%#%Tb2IeTz$>h~PiB5an;K;`RH6;{`K*>k8ifWwf+zMPIgtUOj{A(; z2qbiCj`1)TAI@Q=#)pE{>Xrq2wN(^XS5nYoTcXeBC$9&&E?`BxRBPe`GVr)H%Ob@z zpJR=MijM)O)FeBE&?cx0iDx zEP`q6XCFzeg84Rd6}y6ypBLHGQi&oYqd}RHrloN z$FiW!H-86nu;xJt8z}<7>>Df`+R25OeJS1liBaV#n3m)JMfC4)qBOKccO~d!K86wH z{)x`%upluitH5)z#!&Dj9QbTF_bM{@HX#+lp?Q?RE|w@uf!EP=uY~ZRzNB!Jj;9BkM>h!6UWuPL$;ViN8`!>m|5Ajky?EOj>nx{dnsdIGp#)Iq|FI z9hfMMqC17=9d71WfuY_Mc5OwR6?UCw+_EHGSj3rcKiFS7A|-H%F;bNIW$YgY*1gzG zT%_1_wdR;V$UFn{$n~CH`ZqG(_ZNK|FrB!C7|XK>Ap|`|)!1cTNGJsfCDHGn#GQ0jd@@D6G*yw;UgxoJp>IEf-W)pzxHY-~cN~>j&R+<-AUPyekZz?aC+{b0m z_SbMMy=Pt;uY}9efI4=(s(d)tl|bt%@&e-@2^h6)f-zflW z_{2#@shB(f8b9Uso5b3yXMiJ~l-@oJn-u@>p zAhapp()etQ8cCXH?O#*}4?CcQfw2G!db0!P8V_c9A8-ad0N^`{)LXDKjEC(+4~|DR zlxSq7A*aV1A9cn^JcwPd5rA%K{2{OZIcH!jZ(=IjtNpesuYYH6|3+XJ+qClT=qsh( zgMkClm-9M^RQf`)CDxZ@dln#ordVEW-<}erW}GKt>%~8#uFm}UhZ|V%!XiwUsHs&z z9p@2H-$nM40&>uVGk#_?KJByu>!vIn6?Qz0X_=PuAFzWn?5%T+bcoY22=J#n6akKc zy^bS6hBk@zkPl{C-VUXqrosuv632;d<%xL_Zu8=a*&&{o;?t*sI};(WA6qZ}Y@)>; z$LKI-;<$O9w*HfEI&MY}=v(u)z#@M6qHJMQa^Db`6ZAC`mxP48jK2in4ZD$VTpFHx zIBpWfRQ}3139X1iUT{y#ugW6_kVzKmVgmIk6{0UJnJP||sQ&WcGQgTneTg%AIgest zNaKj&(H9scTC^ki+|7_V#u!Cyj@-gZRgc}$8vkpQ<0Y`IBO}1<&m$ zA|{gVw`Xwp*j+`ow)u7q%EiGlkSk`}%zvTKqQA^2tf%)^feaj`@atkA!RBO;yd#C` z|9N~!hYKvi?1FB#RX|0Fxp4jdL-AujK7JB^UKl2h!mPwFws_jO!bv!vZ6*=G=kb%6 z^kSRC1s)E>EhkN#BRmJ_*mREv>5iu|<*87!%VrGcu_EFdbJ)on8G44t0HP;ZHxU2j zF>y}To|I~g+RVg7plfR$mdvQV8|w9v5#qAt@)Q*35Q}YTHbldi<{4k@PCtr=H?Nn5 zx^fE^x*Fe#mT7Asf}ODwl*SGJNBY33LqW=}N9(zVGWv@>^9UMrZGVL$)xXhO;gQDz zZ^md$=-r}v{oxVOSJ&~p4exEq&aOjtQ5=x6DbX#p$msxTA?-;ow}JH(u2#>?Ukkq? zW>tSuv2r`VmI!0vw@V3k#us8#>w9m`K9^|toQl2BV$#Tks+Lk z)*6zx*HmTK>o;?%@`;n(GgOfSCB{%ljzDb`fJR9YInHot-^>uXnGBJ|R))yVz(0zt z6rMl2~7U^iA$3${jJ#j_!a~9~bB)U(Hv+Cp(RPLlDIsKi% zfU`4_7CK~)rguit`3!AI;jV*m%+zt>=Yx1FbU-B~2^ZcLo^$ecCb5XjQZ}mlRHhQWs!CrnolWBM=v6+M z-JT+mylh15Wt!ANmHCz+^wu(+Aa@h42@?9i*GvjmpQ28yO6{v(NW#QtCX&Su)?99EJH)7*CfHvosm14 zQZR$k{Eujy5BQ_mN~Q*ANA9Y&`AmRZmILiJd?E6t9Y^7=8TNzv*AG9N0?$R zyg|?g&WJQQKBkPi8e*^t4g>x?72kSnH58T6yfW17PRxq2@Fd|L_33Brx#|Bud+wU} zp8M>Vi9HtpCs``NEppJjxpl|(_B4;Zt!%raM8pGW2|DYUfhSmm1Qchl^H@Ig>D-=@ z92?j%zUBtMn{@`9y;_iU<{h8KRV)6v__zZ@%oL^RYxB){Z3K@hdu_g~qDrubpTgPh zGfRBEu{Vcv$#_B$UXFodS6cGLm+By(=1Cl^GN6$Mh2dcuwKWVmv6E@HhX!R4P+^{r zKeziJt@*Vzh@5bqPIDNt1inBjQ^!0s=vwPU4hzotiqIp3a32|4mT4Y3{D$lwswu)4 zNbHUwP5$lU-)ORImVM@vGkarJJn3rZiS5#W6QGMd`G&+YnQ+-I%%sdt&Serwe~#YA zMPK?h9+)3UQ|TxkWnZ z%Q7!xfgv409E@d55-zqLVkA%1X(4g^jZ4B=w@KLSIozLqp=Z3zaN~v9;~PB_ymB@% zyJNR%Kj<*0PFWW|_V_6T78QQ0x zysnJCZNF~12QUBhPG+UhKkB+hPnEhhJ$)c>j%cZGWW`6Gl4;BEkpHmSnZB8sEM#S8 zrJs@M(@!BLgy(y1uK`w*&p$W6eYNOXYRn4ysiuzyQLj1j_Q0MEq<03!G7$4+2(s7l zh!9{kTGKscYVTxtq9NSA8$D&}8LdTjYC73s(}YWoubIUX5ao7>bdg`Pn9!$AAI^&J z@t~?PvL6)zt3Cd(4-C=mwdz@%q^qp(W-lfm{+)WbD)BT$Cm&D5LVGyzFs;tVYf?>! zZM=Y%SOiSj^z_ZRcQaoH8Z5%8YA|G#c@>JEE#a^w zVhzI+Nn`wBToe4_B>2M>u+R^=!&&{XtYQEAxTG8qD>&ixvdJEyS8o;(nh?qY`at6B z5wB>`#!2uZf+t)c$o0dRa3B&)UnzXpTP@ ze*MsgfUhNznK}Up4n+LfJ?3qoosn&g1)2IX{?E{tWrJS&wL&kIPSBU-BTD1>R+LZR zvC<-a**t?&k3JHeQzAQ!1T{Mh;}mhk-!Yn zL#N01FAtp_uC;7{geWDD)^eED=Tly?qVcQD6OvAR2&ef(uOccvl};Hv;dTISQ35X6 zg3-3Hl?+qZ@rFE*x8GNT0wVTczWJ!aD!UY>61H_A>U!kVqD`;UF z7lJFlhUHUG)TV7bNeVH2Zbvv{s?6B*3$mF~K0KmNLD3a3)ANkLrgZEXO{Tsp?7F}p z%Ix$Xel-nQz`IqOxfO*s4GK1Pf)30Hozxz}0{XW0Lg!LaaF^=acYa7Q_35{a!!8-CD<)-4;PM6GQTe~lTWatjqcgF9pi!CU_k`ER-S&8kLQRYeZ7)z@Ap zr3y7!yGXwMns3_bx7K!-y=4mxWND8-#f9|_Td|$&Hrk`B_+>c4hez^gfbZ&18zYCB z>wUHUkY!6VbvWd5PmeGfHUM;u@)8T%X+AC%H5Ti^zYkrkkz076zNaFWwldZv|ES(@@Ot%^w_Ee&0TTzD;}@q3rPUHi>IR;Xh_ z=jRUZ=?zlz*xg_PBm5zR%v4>)gaN$j%eKvjTQZhNBIT_G*!K#s}VxMj4 zW$Q2HRg#pv73vrPe(X1UFWvryci(HOz~lOvr61Gd(4pb=sV(Wp7=H@2=JkA|G=E*} zi&$*@j2uRxv)7frS+BrYz8T9?-(m8&^$;=KuC-i>x+eCZ$9&>|8q#2W)|tpit|jO% zc$hwYGoIGqvALvVe zU*7Xi;oi#8#^~{w%>r`g0SB&aB;R(|&m?n0z(i-4x~wQXL(-cAjS9PR(Mm!$-1T}f zX`1^aNf1%H9QFDw)@5(;i00%2p*S99MyP|0hEq5mex3CNKIh65a<+E3^>=3kKCSoO z;#~QsL3f_y`Qk?R+*PEt%F!tJ50EDqO;Y82F@rZ<$-xo0Tw9IK5*r_omxl-*)5(ZI zZBaY~z_suYz##tz;t`laVMXJDTKO)Zv7tv?w&of+fDRhBWfDQ1B|N6T#9K=hhrMBi0D)j#p z*E|u}?SUVtG%$(vgMW?*6P3_a0Ht|Ap~O%}mgIW7wQwC9=$!3Yt# zvpEm`D70||YdqBvxX7sK&)Wi4ug_JEDdb9I~@%R11Co0xxa#%F>{b8fh#frfRZpd;_c%E!qyL@kF!keK8*l}0e4eDYv;p_v zimZZ4M<89>P?7Debo{Y@=2%;WU9@E=wTb-6 zd6C^yp=yn;x2jb2aS*%<&j$N;fm$Oo<5pnvzS3Ui#1VC^6WIyh?>AmOC@RmZRT#G_ zTUKa5cuMJZ_!M#l?`c$&A@ey#q8j2uB*T$D zr-+^Fr7b|quQ%r}wl-%4dM3PRC^ml2XBJzxLf!L39M1^6irj&}7Qqx-2os+YVFDG``$h#%QUL;pKEl4MZ@jUX4_kDaZu~*14}K zJvZUp5Zis`@o&pd2ZNOrZ)x;3cxs-H9w0y{0$09XbyBbTYMrEr(|fq%)Zah;+wLNg zlaONWOvQy{#X|IWMTs7aDczr>$Mf0q3du1+SeQS%RA>@LRjoy$x{Gt1 zW|Ur=W30$FZgcmSW(8$LM1(`Co}jgk<^_Srpii|ic9M;4TRbO;h_5d5%?9M_0hSv= zASF5#W#vh?82aXWCXtxke4c0MVYaMHsno7q#;!4n8~90vWsf7AA@z#7(bZk{wEb(o zh?+psxq9@n{}Gi|=6YFRbyS)YyUwf}EYcV)*(tOZp~FV;y&EK71%CO7_^ZnxzfSW4 zo~L?gg?UjW79wVV*%@w(GPAzujh&fsAv&NSC7=WPJaf>M=9?=v^1QIHHz%{YDhm`; z;XY$le&~Z#BI5b)AOt4r@6RzM%`;|MC&{C93C)Mz_^2BPzIY>5vs)#FL)a&IiXDhs zQ+MP0*!f9H>WT)H(l$BfchffC;#dT&5V0>&a$bvHNkxuC$EQ;nS_|<@5Z9HuRR*=h zfr)lGtsOp??Nr4L7npt*yG zKmOA%j%f9vt2ZUE5#15k>0Ll$z=mnfcgs!&-VW?)I7l!2*c7j!{x7^ z6)rXz)Aqk7#7#+Bi-4`^=QV9)XE{@fhcR!)dRn*xlC%{GHA|}}j z%wr2wwmS}DjKr2R#7(P~yL_weAqE2E2w?M(g51W{a6Kv>Ay6pAZAR{HV-1w|4Y6S* z_)vCn^!Pu`KW&T^x#K}fXutffa>q}s#Q7odn$ zKFjIj0ZB%8G?^bFuYWD`F2Q-In#JmbgueS{i-fYo^?|${wYBD7M_N}1O6I>tXbD;2 z*-L7>4VW7)z=5E`4c1I0cFzRP!Aw{+++FdnXAtgt;IhHGxRjE-ZR9L;jlU7 zErFqEEnB69-RN?}cV(Od`9tigfcf%8LoLW_>It2CaBc6V&u!~oJ}R~@w12%43u2+u zyHhrEiwFt9(@$7JUt6t{0`%SOJ`BylQ)FlD5cpLQUm^5>P)}*z}!`l@&-cy`S0ix83%z@D4 zZ6V&*24jYsxWBk`H^?pM#wqEk_^aUZl1@Df`l3G!Hjlvajt1h?LxEAj(*b;-%S}lb z=+EIkZ$%Il2%6B_@Cuy<(Wmb=8!l!U1Hh0|_EmeNEM6iHM_*2iFM??WClOdKE26Ds z%N7rq!>prb@!K=w!8IfkNHc0&d|`sX^C3gM370Pz&N6^R0HvT1eDcvx2TrvVkFP75g`(#nT!TPsN5QU>NRJh7U>N}85;IKNepR(r)3`z1u zE5!_YK4wtM8E5KQHqeX7Goj*!NwQCgb?V*hUmG1xaMMxtz$HbZMcf?tB~_Iu-zS17 zYORl`rbkm5_QYaHu4gMgN~ z4Vnci{$MtQAFn}tF*cKaiM6xOyoS?)HP|bQWG$5=qY8lmcMBTUwC7n;ZHIpYG>E2- zoYUqe5rTyINd9Nh6O8r>Vrx`og*qp!f9Ke731hV_(kmpxs1?MYxJ7O_-Wy{8m5Zs6 ziEF;o8yg~vNTD)cgLppzWF-P}3FJ>An>##6fWqw)Ph2?rqU$)|vHj4Gbo~(cu~UyK zmLr3N(TBdq%22*JZ$DG3{dgm^QBZx28vFyn`xUA$u|C8;On`(NMKWZxiYIYmH1!gi zB42Ciko{Fe4S}OQm@MOrl1YLEY*yL& zDkg+WB>@~dXO&GC=wbOLpUQR-Spc=0+aUz8e6ukl2PG@ZRA2BCaWglj=nHc~lT$EV zG?hV*!jGhoC&*&N`~LblybeP^P8@xZ4~KqUkP+v>17)F2)0HTVDm_xc48uMc<=gPx z4Qj22=m`r6uN)6T6V&)-E|4|wuyoO9uDX9iEOL?DY5J4C;1%g=^)^&1<800Mpf(6E zm$U%%96P+@QcwotL6jMDUpMBo1C#ZcCG~QS;o>EuQ9KR<_m1dwP%!Ed^)M)GG$)^d zJ)z?U_+^Q1)V!S`G6plo*=^AccoqZ$w@NhYfnBehY-g3+!>M!?`HWax$wZWGYDJAk{b_yOEAg}$}wA-Swn&?swz)bW$y{~ zq)L5&{ATe0V7of=iui53t;+WVNkkV|VJvv1lx|V8qzlUsy*WJ>95o%^1feyLLaMD( zaHT58X!?_Y+s(bn>p`y9LGNm4T%FlzU5^xtbd(SPw3Y+RkR=3s8WGnX#j+{2L7uU^ zfdCj`=K9S!zp}^tzjB*7zmk&^9M7+mY+T>t_|;m}--oG%7xm8dV!lIu>?s!uA+uyo zi&y&{skXXzaDBY05S_T{h^8MV#B>kqB3vuWOGQ|1UYxgI$ohLk>LeG7SEzqAt78?Z z5&U9Cff2aRDnfFy!q#kyZIHI<-K2SD%@mCz6VHa|cuCJHE0gCxzgM0R73$mJnW%lM zvZMHKa1??EYvKS@O12K{W{1(&iM`M*5jyw}sxyKrX=DKc7{h6lcZBlo(3fiRyLvkj z$7Mpt^Jpz0x@&K>rlx%JE9}Mh>O)O0#k40xXODbfly4$zq*i@W4$yMbE_hQVFj4Oj z^CIij3h#-)2QsMG92c09b#9v(>}PhUML+;G`dcgmh-CB@t15E3O19az%@NAc900z+ z!^awP{}4JgavgI_HrK62jYxR)`t(OXA6#4K*@I2*+5Bj!Hj@g4#>6q8b>>r6*?1k5 z4#`k4TJpj4Yg6B0zX}5MX2}P`8M;@^y*LiksrTkZx=u@j;Y<__iTLsnWdjEySF_4w zhu{8PwZkLBkW$HOC zS1EC0i)ghh)6C$syp*1jNpv_yIkBqDo)X2W6CxR5 z7uH|YN14dM$i#P0n$kRLEt~kNpGL_eDj$dFv(`*n&H&3YR?3;n7bh0-u!?%T&hYbjre zFdTJ=F?7jAm*^0`o%%kX`Tbm#oaV=lsbS6Cj?`7oM2cZE#&5o)2c2RX9hP;Z#p6`PzxsKh>tnX+Yu2>N8#YGvs?zObCUIM z6^^%EmziOM_H{+-<>eibMSNH+(vbCvyb70;P--BpT6jVkuOVStbZ~HZMxJ7QIcv=( zC4oBnE3?otu3%L$pxPSWINa`p5@gl(cPsC&tBQRZ=;5CElK4B&_ix56TSK_N;yA0Y!Rb%FC{kRVtxJgDb8goIvo- z>$Edr*LD5e5Bew4oamo~?^0NW56D9GzR(P^P_g-TN`uX-RuKPcv$kP3H4y#4XjDtrf%N{3MFdt(D=H38a)!Fx!9rZ?4@A!A zjh-SG!)c3*NUo(ge+)A&&Y0uWQkbd$o_PFch6>wl%g;fT8+FukUeu>o5nLpx=eJg) z;;-5E07nCtupxQ5WBGY90eCjgb^upq%2Gzvrxz#QwbrlFw8+Y{@TAv+`$86aZ48K+ z*rXA_2_&W~LCqJcfpp9MUYxS{6e#K=O+tSxN&U4kBX~ZyVe)bHaGo{l(d~)0#rr4z z{E}`AjvUqTAph^uRa&tNV56!Sn8nBIAQ*3}giXRgdMlPR=ZT}jjC&2`U)JMTCF%wA z2EQ&NEBa`>y=6f#uMelnyq*-%Lsm+{5f5_tS((rTS2P*q!Rmi-#ayyI(V!I>MEd%c zvCxgjC0@^8v9R1=b&cBW&LC9 zdUwPLEHXS|$uU1Hv=z*~ zQ}A&$=2i$XQzDCWfmQm#4S4dp#znuKSla;lwiZ%!YkoM)^TE2BD+8|WNo z+}{!=+hzI_r3xH>v0Y4^mMlGVviNTG$0up+;9!2-v95t&kQ?qjDGH(ipjt{pM!<(7 zIQt7BS9-cKk9%$34alXOD}n}^?{O&XzV7fSmVsoPz;8@<)|;F(|MD&Mn7oFRVw2b6 zul)TYna#vcPWT#Cu+Q8ywpWc(Q(yXWNBn7ZTMF=*zqM|256)ufx{U8{v~zH_mO8Eu zFNV1Uz>-0)koZ{?HopKZIlvscy}qZ| z?Lan>sr*&!Fb&VPHWA9iPILWjXJQ4RXK8G6c26bBa>%=KFASZE!EVg3x9kt>L*o)~Yb`&b)_+;~GgKa3h1N-1Jud|_C-p|YdP9Z7 z!Wo5M`}rj-)Wz&DD^L6w*^8_VkRHM;;N#L|{`rnGF+;OP<~{0CBJYp7^wAvk{Io?R zhj{|gzQg>D$}g>P`{2$Q8Qza@$E-u{HF;nJKnCm`^0M6+!RI_N*ERQlD0`XVs}QT;qzQ;04P; z5AEKKe%zyr`P5o9x}m~*fzs$So!++sj&1@gLXAk(;oXSQL2HfD#P0IX;`R*@#5(hz&V z5zF(L_jwf95@l>huCx>vDhY^cTVA7}5@uVfr~>D@>dfE#PBw@Xlilua*+KrD&SJ)? z|4|h{)$iyoj%BxxE^gToi0GxB_Qy6eD1|9Y9fhfZ>-2+>TA9NIeZhg-wAI_!Eszl_ z-^vcuyV|qz#j_%RI@0OXO8u?23o8l5ELb3yF>1XC?R4V$L?^Tsmz0!A7l5JJk746? z7*7fxrjvg4G5HetR0c5xAs?@Nw+iwpGS-0vM-rz>9Ia}SZbk>6f#_6T;TpulkwI8X!6I$2HcUxc(7=#0gQcx5a zKlze7%EAC{AQ54ol9)u9a?n z8U9IGCJ^V^%RE;i2&VCQ6`#WwPcUcp3GpLe6;Z4(uhyFXwK>hUIN!V>e!W}oTx%=h zJn)&GooTjUqi48{I@}a5JGGMwj0PBUVn`B=#r%TTrGbxfTa3D7V3hhdbR}K@r9kVn zl1`b2(G&?EdFI}HEj0Z4$W#~&}aqITz)ne{q#->qCt@$JCC5DZ_y??Z;JG~&dYt4tP zJ2ETur@*$t4UeB|evivs^DsUw`~BC4dNK=u=F9wPtv9kmXox%BkS#b4NzKHsgFT^@ z>3Y>L)d(b#B6G`|X(AxZ)<-yt8=cAU&1P`2c?^We z9Syrv)jSIXN+_1Y1IbF0ccG-eKL zXgwm3&3pQxo5HSC@4!;g0fafnm6vLi+it#DgS`453^K?wz-$aM5u}=44>!F{6{S+e zpC_2HaP^)#^NDm`Xm%GgXK1Ylgv-fZ^*^X#BL}&Zd~>0^`AFi;*+brxQ)=+d zPUp?iQFnL(XBf3LLQ?X5IDUV zmiu*?a~a{o=Ix)V5e_ze7$5SPi3__~6$V65^v{#6i;+k8ZI!s0CjRRZM32qgCRA|7(e_CkjZE`1{0#w^XA$%;ysqq>7JG6-%RA<5fr^bf&~* zP03R~v!-ML%57^fe{qGiE^5q;UnFKEFeNdPzZ!;*M2XczPMN_@4~}70qITMMGs`x5 zqxJZ2{`KRZnco=l1BnZX?!1+_AlTOc{+N-WtLW6`?C1+@fc*DRwysVN}fd>-OMX;W$@oeG8idggN)P zcE9Lu*~s^8uGjp-wq<`wSU3MUz3Ov6*LHVKi3zLU`mDUN5UJ4(C3nH(w}?N_+V9`SuR(Qu#n)LJ@& zC*g&Gs}ntu9`w<2dQ~-oAHthxLp#xOM)qR7fEoX~02?FyzZY<5NCD@>3poGm7P#XD zq^TC5{XMG%ihYl_;O#Y57tYsOt7Xr}Cq%lD{eQ`O7x1X6bMbqIOvnTVc95Ws<#^YCw@hM_0Lm>E z5VbUJ(CN9$McHv zSvdv*|MaXxm|9x%%|h=!}cb#Vh;S+zU>7|8Dhu;jIFN@Vo9Qq4%8rAMmAD?eHfeyL}vHPPF{Wx0Xd1 zsp*3Fg3U5V#(c^g*%jC!x2`J)a4QfH4V}vraeCmOb$+{?H!y$51`wm~=;9;Va0!@F zkaW=r#439RzYNWH6^Hqo&Vy>Y8<{68_9nAgu{RUjXi%i$E+s>Dcy7vXXnr=w_4q=I zw`lj2g1h-bzPa4`0_kY`72Lrcvwz1+K_XwkR_8|PGXjVs*39gWNrc6zI=h;(*lG%y zLEs)H1|+n_q^R<_{fmnZD?+;4oDyoRlAHYeb7{F{#q-Vf<%+%kW{ZJ>WzBM^T@oxC z0gu^^zBw7zVob7ICBw7COPEddFWtqSYOce$n$ibW!dDJc62R*h^vf+6xO%hAyaD+- z;G>?{?9>kT0om#0nfen#wPONr62Hd%LRaPxt5somIZ^CoIFed?Z4vVuo_qG$X9<9F z9l!lFk1{(JiydduG2f|(`5V>a*l0p%XIGW9&zLbI@?Bo&r;R0lFPn zUY4@mxTi&5+yalAVS)tXOnpkTK861+#ywx@i@%ZwC*;8iPc?Vj^eHFwDPMVfW@@_| z7etbkN-)Kt2)INqpW#gHEIij!W9FH+B$|N75%^sHo{r7_B5^y3$u~XwrLoEmpA~_Y z1x}d38x94{-(6t#SVMrH_%k@^_f+=B!hS8iTzMo2J02zI>Yc>x^K45m!M{+RWQ3m( zAW1~#dHtat!zuKG?s$AI^CDW=HT&Jx2Tvn5UGzq!9ZaGVvmAOG zxuebj2d9~~ixg%t6I+l(u3+bQd8nFh!LHSRPc!zFJ(!8imf~goaR#lU4O;02{`ZEY zajRqz#PCmeg4cM=vctB=d;f|2g2MHm+otH7&0h~xv=pbgFIcGnjN0@>%J$_LpF+Yg z)f~tub@O76>{U=@FMVEUZKF={Rk6T#ZBdhZZQ#c6yW79C-d%bZr2@OB6*$*^s6ITj z*N3kNeYlQoIdxqoIO&jK!&F2B%-6#J%77@rm&`P2U*LBVkYJ#W7GjdLl-cpmo zl@?$7sEgI){}KF|ejYn7m?6#~)So+Vy)J=0A4<{pOfYa1w$?a}1#f0;n5k z6{BBHyNcgZwkU-~O6*E|V9xF4q{UrNtndPQr*}DRZ4bU$NfnIb4C&b6q8`Q6rotnX zC1rbmkChE(7<==<2QJD)p@<%8PK-X+`reJSNv7-!vX= z=4>R5KR-56d!$<5=4&5Tx{DBrB|aV$b2@$_hC)?#eRGKf+$+Z2#%i=q$JQ{i5qXh>q6=SUaKv5 z&7=p?L`+j$CnN8e+G&e+&n?D6$vqR4)85EQ@U-_`GPq*I#V2gRMDN1ypRiRVb1req z0>dlD$m#bgO8@woEikxZPz0@VRTRrrWW`vX3C1`JViRGw27-0|Ut>)L=kGO&X$4jl zBBzxwE@KQ8Q6){al&0rc?UgAn*utDQ2f~2Enjt|Uh)nK+xPqqy%4WyMa9k zYYip%8x5E4;N@hLGYS-Gsy?Y}g4FfO6|D@ERna*G?@C24hAX;MRkYlyXjG`85#fqP z_pWGukBVXown;_v!WDhOiB(HtsFnn3Ij*fhvaUue+#FyKYqE(2T2_dj9ELHuNWn0~8+VHfWl6_bbAbIUcYlA_3nf-=mYP{N%P5=SqLARPqNP*ptG8>axu ze?cgQ&Y`Cznn$Je1hP45*6OcF6;xKVPz_D8nFx@mAQ>|BB7Kz|QXw2;cb4tYI@6;+ zV_4$5J+OJ#qW_qUsg8++FC?}!-}vy!pg~WTIN@V*q|u?q#_=nq<9jt2<)t(@-D)r& zF^6=uc+=gqy?SBlarfJ_GnsaNu&<|(y~<_lxg_>zFDhndFO^T6wNhCl;0OyM1wMBH zmB|id9x(C?9(tKEowlHV!LEmxB6lu__8{0*tBBJawNtGkM)qySL^Vk3>XAh=}0w1Te%VMcNj_14OnVlyU%odx|a<^HQnU%~t#dzRelUocp1J;^P` zXq~N*CsKA=!7#aB&VAsOoxr4mHy&g+^LF$ix1t4ve2k(ny&1|EjU@?s%ScR=2zVcx zcs_Q7-6YK`L4k_#XAzQiDy6dj=tOON8`mJZ6ZOVYhkVC8_OD*wxYYW_b$ml{Q06PN ziV=xpM1BNY_zldlMy1DiblHFKnc`)+g(IJoXjx&!{Tz=mUf zmcyu!Rf|wHXgnH28i*zcS+Kr%1vRA@j>M5!Gii?F{7JLVwp@W&VCX%LSM7m^%>%pr z!Z*{t(Dvtt*o>IJ3^w3tglC6;pkC!WGT4ZHEWN4IM$nPP(YfZ`mkE#IumS_YOBXyS zTbdVSdvimN?ai2fbZu{>em?7IzjDdB6{~<9^t$erXKfW;&i&Pp&x#q4Z@)xys(3=~ ziA<#8H931q&fbx;-^}EL=+wqED%Got?=8-cAqEqp*oJkO!ig)E~sGMz=GfmD8$eHY`D^AK; z2e?t;9Ko5;oQgO(J1l3H%GoD!Hd@Z=~%T&yPQ2IXK%^b zpXKZWIg?N+6?^5(D`%g{nMcmrISVYW7?8w|yW&#$xvSzD`T2Rpjq-C_#jWx)t75VI zOs%+Ier~QPm7nnyPsz`96|c(A)fI2c&lMF_@-w31Bl#I#aX@~)S8-B)23N!|UM#4W z$xmcO8b5QY=RNX1gW5XtSzG^E&)SA?4C6@RxRT>Kj%IaWTgaIIiKy;K<>a%#p`2hvN>8J2@6{ zEaNEVc!1*}j>kCu!0}g(XE|QxsNi^yBTQ4n^B4Xfe;)DvXEtNVDE?yv1=-57mZcbFoeew0@+9%qU=tGelQpUwa*&mv_cgK-kqxjPLo@x@O*@17ycnh~ z94-O_3D}2;#+ocgIf3i%kCh4zOUk=HP>@EAbMWuxXozVxXM-k3v%NJYI|@F-JjxuC zLuIvC{Sdcf_O`|#DJ_a%Fmo65F+aP7N9_pFRuJUW5nMPP+o*rcL{EyTK#s$km!|g< z5ynjpG^+Yo=Tu{bBj0R*pnDJv5wwzxkNFQ(hq)@3*XBvykfrJ@);lS|EV}9ApfO2o zoezDCe%g{&R(~L&f&I(aI|@Bf_EV?X(-DC9LT`}^UE$5Em6sN4v!`;Q4jUo)s25`E za_z*}!l={+d<(G<6iSHk%@u^9=biJu%R7X07jGPzb~8<5^y!i^s|urv`t7EtqYa{X zoq>=pimA;~7UU{2?eqQ}!Cdp)ixgoEe0mm&dg!lVic0-+{MjeN;cNvSA^DAAhe0}* z&3Uf*z!tSg%T^uv4ZC$h)AnVEIJe{wJVCO8C#*rk<}0 zKTilfm(knkI})Q~CpE+vU6x+i$u3X(>yAZ{N=R0+&t_{1mTa)4GkfZKCzR*=7XA>3 z9t)po=5t_`ip@A3!9&9(@+KPrI0|5pQ9P!PI}Hq#eI(Z@Sdz?WmO<^~3q+M1kT9p7 zeHR*zKh>M$*YPe4mbI`M6Dx#D=hni3R*WHqB}hh)TNW?9&F1#2Q2F(TBnkwg%wvR* zbo^=fRvZdF`|V@v_eXEV%I0W`_Ok0w?nrDo1MADS^8b}Ee$jrmV27lo0)~N}{VOpM z)!z8SxfjyxluAsf-BBsq6>gSnmaf=$cn;j)I}n+)hk0vl#Dj%<*^pAhvEfy|L(x=M z8N9*1!`_la^ugAj#}TqI-({?f*IsP5xB1L|+KW~87Sw@F!NAkq*wQVpPY)ADaTdH| zP5Q9%%)M!LTrJg%8LGI(P=EqtS(6AM>jqacLn)>w5th@vhz?BiCFYs9yNM-;A#yh&7 z_Qr$#WNbY9Zt(4kOxk>MH3D9n)BBLLj!o^2P6U?4MSE?8)QKi%^T?ZA5o2SfKrYQ+ z^ie8-*81UlwKB0r!2c+tq+Pn9m5q_>%%+<3NMhW*O~7P81bnozL+r}}=X!hzfq#ft zF|#Sxyz)HhVpE_IT0kir%1Tv^ku$(g^lkr(;5Yf(;5SN{GP}Mb{QUbw-VE4Y34`q` zL^%Ss{gMh{qM5o`D?KU5a_*Y3k}MFXGSQ}}dP|M-mfbf;casZi?u5K4W}jZ$@jQfa57)RvPESSaMSs!&_mbkPTnH3?-GA6#}KaV>#*#uJ*hjy(rQG_PA z?`E_aQ@%>7@}25~ZPKvwvApQV6Mf=qHAHCBajxwXo`V)`#qTyW2e+nd@Yh=4_Dk9_ zi>g@kxup37v_{|3O;pUqV-b&(#h;>GGiPIoMR5P4VN@wm%L4~xY0iS^+fJpyChM6$DxY3_^*`?W~9Aq z<&oZEQJuoUGUdut>Fh-J5&vfldzc7q0DtUsy45qObXgfy)2Gj?^?Oi--+cvS+d4Ce24lFL-)qnx;H@{r$NF9 z@^skN!gIUuU)~t*ThK97nS4XNofmveo>-p}Rrgw{-~FtiI-y2e_1Sn``fT-9jl9<@ zaGPd+#*%Io_S*zSCMW1#>3`}`t#p6@=pDK8u9ebjGMFK#QV3`eD&ubUi@0%3hJ&e7 zrXZ97nNIyCgxp_uL+Hkf{@(y0)rFc2D6IvX9v$@$1r&N?zPV)(EmZ|o_+8^20fV8C zEwxoE{ga@8SH{v9wq~3nA6vNPsdZpL*X%FmTrZOmCDxtwo9^)K@6-P=C--z~Z zs7W7XH_D{(h{te;5~eo~p0eb9nU;#Nu=>$^`X{i&1h&`|G$2^F!#5?wL*ATMWFngebyM34k{z zh=SCjCusKOIBUUAJ~z&pgD$|k%xNZE-x|a~?8es=X~59V9LODn?*t88INh|@VEjvn zg+W=l=9kyC2G^wLmS^3j&%HwwQOb~!7KHi9*ly$2%oekT;>Alx+q(Fl&C++vHXQ9% zHtm3&Jm4*Au9Xand^6Wv)c#q}JEy5OVykzfO<(M&9p{wx%BJnS-y*CW=WMZOr3L=I zC->F;efr*mSf2ZI71Y_(?cOC5kccgL2cwzVG2S^uMwOf&`0r-`338p1fOjc$h`=Gp zebhML^&ujtE}wyvU|?Ub4_f_&!;dj0BKdS0xwFLkg ztIQyG_q}uVmP>?-9AGhGEu?E~@tKjAd5?ODy674t6zWJF5cVg-e zeWy0IGqq#!P-(V1(o^jS9K~QI*W5UaH)q5KK1gn=HJNV3?JYLE;M^S3 zwctF8{j#vL-&}BRj#mqgPZpe;W4ad{Vp+d)q8(&d+amv8mkFemP6lhwwBU@3Wx=sH zIE(A;;@Zxz;9QDvvbEs6BXf#n=R`bTmu1ItM(#cDga%miPU+%(2m171tL9?bt9qGQ zK+>Hm<$~sUo?fsV85S_oXX|BcG`^%p;ld$>3q+Z4=-#im9i~fCByU>qF}Zizkb1pB zu5!&27eGrsGt}1h%TVxAtedq=dDUu`Yo;TM4lP#iLoWcfp@14* zj#s(|8~^6%(7m(I z|5NDZhoHNc34`W@2~*322}AdBM*nQk?Ox~zj}#xN_eA8X~%Vpk*3RcpTC z9mP1MZqiC|g0dM`uE|o%+@(NIX6zv>wQ!Y{9t(DRUB9(h6$@){eG6gLBa~<5>w#5* zekD~3tM;ok?=e9Lc6g`bmJ|%WE)PQ>FcdSCx@GaOGXTOX1EmTC4jT$}6|$M2l~#ry zU$7>N72g7cx0$>Cs}u&x46R9z?_MQ;V6Cbx_UyFa>%z#H7tK;s!=kEjb+UR25jyMY zxu4}cuufNBsUZL`vb@vQQ13g!JLH=)PgwZYZdj}62;?XsY@0~yde3F)N@xvT$uP04 zAjzFq(YoBAVr5KO=>5NfZI_4B@_Rq*FAuk4cPkGqHsZ7regVsS)GZ4|cs-mz&>w=Q z8Vgb66ZWSvWfwt;OBaC8B=;jh*&5lWuxCODQnFtOB4$*SRH;Q_Mjes1^~`73wtF+u z3H_6@Ar!SF6pAM$7>eygFc)KVIe`p`bu#gNst0Wl3N^9AeaYvK^6Xp5Mua^Vem*_+ zT*vB20>^>ckI{N>o>)=<377@9n?jT}FP|E8)x1Z`0B5x0^r24NCOXS%g@U2rIE> zC6D3u=JR2_8s%b~RWSPPP{B0xjH0;~H$|lXVue8olz6e`zrZT&4$LB}3Xwljamt3( zIq}8q5u~BFoQ{0eJ%r@SV##W+zR7zJ=IiE)S7GaJj!6k3>jOPDkd2}eJ5b}-zW~kb zTa9Q!rG7z#PW2?%{bZ;0#Ex6Dc?)%PC&KHlAFpcjLaG1ST6h3z4`N9k)bMaTs-Sw2 zyw`3%mx!md`6>V5%>oC)^ugJaU-jMt4~iyX*ts$jn_Gg}GmUJ7h!?Pb%)<{3JA8*c zYB#+BxEC(n!;y62NzUmJBs4r(e8PJ2W1evN+84o~^4OOmwN{aqFRdbDD1uL|*(62f zyO(id(dmU%LRx#s^}E~K<-7)lE+b?c@9mWe+_V?fYt|jC2YvV{UV0&J2sP;!*l9V; z`+D^iv;GJl=km^rtd?{7r1fN$G>gkAJOQSsK8Ik#sW+PG^1RV(=RN|DbooGp)h9~- z)Oz_r$g{j0D=$l%`dhV(XGU0ETI=iCCFu|1W12QAR-YB4_BVF0qxc3rBTgHX5wB;A z(q|=?&l=6e7@gSJvnG_!%GGC0H-ECSj<6kLW)4E~IcDa$6@3_VoFmJ#X6kci>vL}_ zS39HAT;47Cy=+gZY|&mC@WI?pTOm3J<)Oru%otF|9rN#3(fHa01?Ib#Dl{Q7r7yqW zC3%!~461U{9c3;~ZVd+dw*>o|^Eu;J_vM*)(F9M2-L09*rj0uiBP8%gPe+7%XicPi zu21oGoB1L9eNE(toY(_V0QnLjR%9uX=!h-Bfm#_6ip7%UYoMBEUIPrlR{u0^_S*e~ z*EgA83jbdc{AU}aM}*NI3tICsZihMvD*l5y^UVYNml?pGwC5l2`LpwI&}Iy<$kY%; zrd(^TEpgDdl~ENf1XM=vB4x}=-;kknc&?MHp!>i&d1$sX5Z3eM*7Lx|?k`yISNmUc z;fu6(g%dquxUu4=tGv=^^dg=j$>gly?qfZge}f@L=QM`I zCZOIq!tzs`YAY;Qqm(n=B|_f*^zVF+p!-Yhc42Ux*wxp@d+|S=(WLkB5@xL3TXZmg zYQb|TsoC_VU%^D`kEq?7$-a>>mg#oC)S-61h3^V8IPVuC_$-F$Xg_Ub|`p(`ZrJUeTf9^t*;fnZ~jBgvPvX$n2qqg)hR+{<%f zK84O!!Xu-u(@O8BG9`zlGl*h;gP_L$bMA4OZ?2A(S#cI?bp3%NLGxgYWkwzDZ@i=! z=(gV?qQ{{oPxUa*fu__wi^&N` z%(W0v;U6ny5An+hkUC_DrDqWSKL(M94o)#IK z#e7FhnTgKR<&;{)^4*N)R< zJUQIaUDBe0ncmH4be?_ccn_iyhBs*ix{T!zAU!3G8f-1Bx^JpEmiIZhQ%o6ONkv>`s=`MdxQ4rAe8idzqmBbbWANPPo$i;vv*YwLY;|v}} zIUh`ljjnTVfbc+dCW;Zm+*o~X48G_%v`Ww_v+daiI7hb&Tp2JDV?RhiIRjIIIt_+G zD_bhxZ#RF!rZwOEJ^v};7mWqdsfusXBhl|l`@xAGK$Qk%#1I%#uZrI2UEy$F;aNd! zDQq{VnL8I8lQ2I0vtkR6blGD4Y<+KAEPcP;2g3#oA*PuyBcyzF+VD0HZ0*&89`MV- zJR~fWlN^I%9iAWA$$_Lj_!~h$F&zs|2EMVse?LJS+Q(pdrjOAv1&w;7L45O*0lInq zeA+h9xYxmwT^HR__|uBkX$PK4t*el?hPDtGC+0msv2wlKUOs)j$#9~<-46#EGrvZz z>|`sx3ASJ_noPyJ~hZjcYh1|mr*9h|JU zC2d_N^$cyq@|W;zAW-~JUr`KT7@=RU9^p+87+^m(sG55T`ned7f?;uDHVUt*v-IuwX@rq&E?*Va~QZ?sS_ zotZMPLWn`Pzg%dP8DHehMS{zh7}r?df1yAOgP7QPX8(UzBqHDJW1T=tSQNT&Bs||G zK(P7ZlnM}EE1hPClZw;ywo7CuY`i3UNxhwvuqFGNkP3KXootP{hXeeDo~9doO_6%X z$hk2|Ra#uX;_LfprSViyyrQqIa6)Uf$Vjx(4`B-Qy`Ji?jEGAFu0*dd>{q-Z3f*9| zbUs4-1v@b^=G29ETr?%*n^))$QQj7zqArjg9@%}Cp=oi+l8JdiH$ zjqg}0Tft^X_k@n6o#Q)}6MC&kTTANW9OPU~1RPN|W0az*l( z6(h4;o^b^f{e{gwZlPydA!NdG|8m-%6wXg{PE)004VaD0^So_y@O}2O;^%3MC8e!~ z(C*E3Ar~*cZi_IC?6&$)IeD)2%~Q->mS34Mpn_+l>{V=VQeBtSx=C-eL;)H-eT48|wK2ygzrVZOQ-AOZB{RSDi9qDYl0Q^H{n8*^f}Ge z+TzVZz|xZ2Q!3G7mb=3H^rY3+CLOb>QZbN3ZV;glGqMSkTC$IJe4$Tv{X;|&TIu;b zUN5KK(J{k!=vAS8`!PM=^^9F_2h0!@VY%Ppmu65lXP1+!nwm*1IDn6=mYOCI-s3+TL_vE{5^HML6d8w_kQvxcC znSJe2VKAHJjqDf-#fk$7dF%>XSKx;fLkvgJW-ZqU$5S~BR7ilp==EBhN+Q!aVdrvv z{LZCR6_XS-GQ&kc+3cCrGTUa)zRi<=hmFL{_SWKMP_Ln_N^hW*R`M z`PQ7!kFJq^09mEe2-B|83&Aw$q3OH`u@eI)#r#geKU8QvDcVlChhj}FCt=F8o>8&Y z@9!o`(Z7kXr85owL20Q@)%}aiilEf1*ZMyJeLdMD7^+bWd>p^=w$mXTZ}(K^h?EvK zrkjdL((G6>!wDIQ;7Od|hZP@6fU0kcfHSlpe$RCM=*XK~FhenhBz{o#G`e6HAlGYB zs=`43lCkdw`eCjF=ps}5HlX9sU>ISbdlb;sr3G|DZr~di8-jbIf;)KXzeRODfi5R@ zb)DoT2J3k?W?|G4jS%#0Kbf< z$_)&^5M?#oPTZcW3*y&)M!br)ZD!9P$a4l|xTOo0qs9&ZuV z%1i~$KpBrZt(3(^5I08OW-UU#Bhe-M6%XM!U385t94v+4t$+3z8U$=(iA|~+Rog0! zO0gQnHsBhXq*~J0yCpA1eIgM8i$s2-aIXgoW7pm&wJRey#lR$0c~{BzPp(pSO9Zsf z5hFPAGl7XCr$|Dw7=J3zJR6{{RBc+jHVi12`DgAxX1fQJoTncmaPSfp{qJE0EX;q! z>Gintydq8T)TDQLZn{M{R2~UH-Mh6nJ^gqrp##Z8OMw4ZZEz~c%0gC?pGU6~$PV8e zy<@%96TO4QsCbxdc!MtxJ$zGib#y)HWA@xTRR3)SL_Fx;9l|rT>sDZal@A0-8}@S-H*H(2{;&1TWX{3yZ2C_S|_FQvgX!WYn3$^UzRIv{o(VqRZq!a<3f*M zek@T}F&T4_XHI)@t0dqgx9IJ05i^>7NBa4`7+7)`(q&5`8Dop~BFqgrPulKVe5W@p zoy3|Y=xGUjw#+nEx)8srB+f1R=m&g9`iR5z^fz&FZT6Xc^zm=XGB`FkvB~Z9UkW-( z(F}qmrpFNaGmhqXnwq?$?VcK>1lsChl<)_Ix(o_<3!b@qv#ns8{QH=K1)s>7@`jII z5;ksTkQg7tNhG3{Ebfy(!U!tMrHp#J`S0-l4tad96*R$o_zw+1^Lu63K8PrtydgPc zz>tWTQ_Rv=)kYZ~7Z5i_kHft)c51GY3{B(Ch+K23G(YHAETK{2e22wAUPa>?KSrXg zO{Z#5QzCs$c)m;M4rhP%ex=+?zry&IARDM|Q5JgjWhBncA!A?BZq_@#jWw!%YTJ>L z{RCu~A^V|sujEg!8h#AW4{xz=6^9&$9mY!IZ~jI*f5hYRwA+{5fVjf zFG0ONMMr>t`Ss#wpo9iLe$JAMs3@XUD5CbHb}agp-eA46Bd}UDI4$y_8L=3KAfyn; zhYZX~o-#FWTE4!;{E4)Q#01%{bQ}(cyma9vo8>GTs5++2=D3AiRWXxeWEqehG7lT) zX@QS<__3D1o#*w(wOQM=%d3_wrGYHp#Q$3Mz)Ue~)?8u5+HV_tPRHfK< z?~bnXy3X;Oidb}xcM;U3N#6lsaW`QuPJ)~5W1}|`jw5R;(gkxUT4F4uy&1tWpS$1i z1_0}qsFtal7CQ;grVQ^C@Q;#l-G7Yv6((-h{6QWou?Ps&P@CoCJ-AVr)}IQBNfZN5 zTU+5(V!T5J_hhPC6&F!qm1dO&UfeF(YTXx>(vS1NFFkCKkYbRU@ z`T3+nzvWYk#eztp<GE=OH+zfVJZjmyRBL^Cn73a9vq* zH(7RJXXRsGqbzWUQMLZ~MGV|xJ>@bv`kH+Wh1*8moU5?1fzO10eJV`i!~BE@w=N3kt1kaiyV{0=)JBgMJ+6z5{b z(e5R2a46b4b)KWcP7<{ zq5w-JjL<-`CP?x0)LQp3B2*ja6Ss>v+2m~L>U>*L-MSF3woy7=*Tt(DH)GwTI$ag& zwB#9Wvuh8OQKvUMINXOW5Bu5Ja^qUz+vYLojBAeMT+4QNikbn@#hESS#v9HI>o9K6 zee~&||9UAm!wKhhP`EHByvZ)(Tu<66TVWgw%wR06VpkdG=;v|bScO($Z{R&WepTRY z?<6PL!gI|+KePQPSSrFyI|4ypL$NXN$RCBTvIzgds0EgfkvWGd1|JHs5 z|NXmVXX3vd&-_RH_jU|8&dh(uG29=a5@B))|NX&}-;Mu%d4a`$EC0w;Pi-zbq+d!k zeOrP#Gl6@0x2=Zg1MiV%13kX!a6A6eQ7@@p_v-JKUizd2?>*A8@9~=X)KWUlBBEpH z(7ox<{;oPLN@-Sawj3@UeG?js*nDg2G1c07>^x4_JHlI!1KnGXIN5qMKHSyyZGZZ1 zU4LVKm?is<+kXqyo1ZQ@Q~M`B{oUGs-dWo(02|y{ZHt3R3P~-{f-E>zg53e9p)*|sNMM|RF z5%)?Kc-aXDp6Ia?u2!m@U$d$E4yql&r~f6Y9dT$26Ry$(E~JO%51c(zJCf<_bk$Cy z-22X|o#!YGP%YKYuSRyMcJ?wi{wu1Td7t;*4hzL*JN&;vwIjL?Pxjfi#r@5|KDriC zu7y=QN4~RaCyCn6w(l$1Bm2HUX?WikV}8M%Z&mHg1ZI zjsHKDKe`|7L3PzW;wi{@9MVA>aI| z)h3oYm-%yA^`DeKjyPSPIluZb|F$2CjxsK#YJQbmTs8ga?7QX8fbbo;&{9Z^y_-Be z#uSG{iQa<1t@J~fRDEYp?dN(WQL7ogLnLZj?Jd2vpWWiLj}WKnMGZ?9d-K`O?;gI9 zXf2q|?=(g~f?eh!{OFVtbgTF!6wbqdKeeuKfT!pqr3KxZ+UA~`I@jsm7Z@DYf;Na2 zln7zF1N)KxA?UlNoZx0kP%!l&A(5Wi!4< z?0AWldT39bD8Xxj<3uBRg={Y;Hh9P3wcf1}<+Q)I||IVlh6*cG$o?yfx7dmS+psisAC>;pt zKoyXtn&%*V#Pz{@Pq6H$yZ^w%W1P*sgC)NJz%=*s* zt@J#s|4izo|CDSIq*jw0XCb{OTI6rndCtfS38=c|J!~RpIb^8*Ah1>S(&(~x)6Diqst>m%F zmqy=+JuEqyV(lC8<4)bUWHKmTi_ZTv9mTB3oPnEhfJ87VNTrk)WgAdljA}vEK72>? z<`NPT#@N=`_@|BAj3b6y89N$YzB3F6=t*6#LOCzs~Y zCU}6WVmXD9jWn){wMUtN*NdL4vt| zxiyUla8^+H%CokDbpDyHr|B?JD91^}Yw^$+M<#WZ^+P55XeNncySZ~7+6O4Y&rEaq zpq(KAeY&~}KzM#a z^=~3XzHq4bo>-4B+58xk0duDP4xiFF{^##M$WQkhG9M%%lO%U!1qx?}pLk-;%vjRX zUoa244dl~@0QyXG&C+2)s>$O?HqZF3>?rwE3htI)NXbl-l38}`&CHg0dRBD#3X(XA zb6j58!Qe}F0kM#du0NSiDqiS$#Y=}tBBh0~rqil!jz4(cL1Kn>m6a1|FaBB0vE+x@ z>N6$TdgKCON-$W(O~vMY8A+#2LP8X;)Mp%AFWN|rV1?r`c4~(DdSkDy&1_<@alAIY z@mG%nn{ex^(f-!Z&v&4or}kuPjl>5jYz{Old_wqoBG z+EaV$52)^ShyfJctJXW$0bJYqe_sCfU#3jW&(&+q%b!0K)T=Axc5a2-mu#EYxrLjZ#hHB>d?^Ip!fB+ASr%% z(1>mCO2z6M+EXp{hiH`U(=s;$IICrlS9kN2ynKDnG;{59(jajUaX07ZnR8WB;7jWd z>07j?s`R>N7_c4T_sVuj(jd%XOIH$w`TgV;F{4<<%Pq7<*`vY-f4sf*6Wv> z5d-y2fj;(4`h_W#>xv(L!j?P5C^GXgYsfPz{WLbSnLMKv>In`0^me@{^*r{IRW zRuyR~IDQKzueS92VkonYGJ4HA)y#dNW;%-Xqe;Hv4Y;z!mQRT2qxxPvDrsyrL`vi$1=U4YGT3x&;nMfXbTj(45HuWM~k#Zsw zP)D*iE5eu&ulMo!0a7&8>m5n*mR=Wvo-|{2-)OxC8(?ypdmX=4t<&4q%a`#kthd@S zAvux;=nY-H371xFP|cm4>{wqv@pcs7dYcSO-?R2iZ!Mpm9I<}Zd2enL4@UNlXDv#> zK03Byk?a3?%kq9wHj1*KDxqpUP1n<-5j_BwY+vu$bN)E1(sRyUFt)Gi6@0a)GRl}3 zPgoKn%e1|#hU$h=H-i%k9Br_mw$%6p7%)<~YF38i(CRTyu9{i$ZuhhG>8Ac~0@aGNCR+XRDdU z?%3kAfywTu4D4QxVezt|@LH%_s?V4cTXas!c75|2$Cc%d!C6Ms*wmWk$FMz;HY5!M zV5${?M^ko5HSzwTNbY$QSfy`M6ftGP$toyFhcyoS+Gu$RVxAJQDSBL zQ)EfPq7?ES$pbZbswwziA_lp z&7nlTYcAW)Dpfc}Z#3q_PlN7|za3GYZ8i7JGcFpXl;F`4a%9lq4%j3_x$-B^=x>avk zZbA+s`ssB7t4MpDA`U{y`+~Y4G#;-CP}2}3a_{vj}n){t@VngZEoA0s0=xgn_=hpzk*e zecwdCVdUZhE5!C{glIN9k=;;SZ|S{^@SzsCWW8#0hun*l7+L+UlRNd8o zeTUG8%!B2#qoNf3k+-4B7Rl*JY9K$Mg#};G@(E*l(i`ef)JD8K)W-!Hw({9y96mo5 zon0UZ6LldE7I{`5vr11G6X6RCILi{Cf;)yNPPpI#cGj z0*~2!fk!Q(5~3$!Z zW02F{v+ukSEvgfy_JvLf;V$%f{0@BwTxDS*(K8dm45e6XV?Ti0*4Hsid#YX$aGC)v+P!cS)f&Z9wAwxhY`Oe9CxwUNkSe4xK3TY=2NOt))z)8HO7f%VW6@Pw=@arAch)Ju?8C)Q z@)ttupgXujVfWm|+0F=nFnGMmt>t2$!W%K(+@Pl|1L!13!R0E^kT+Jh?{vIJJMab% z0T%AO8?Mi=?R}Rv*@W5OtUyY^r|N};2c}89XaNt;4hiKDA1IR6u~NU#QvbPHr)y|m zBJ8WQw6^}R6byk>1-_7`iD@%msHJ2K&WwrLQ=Mwm7+9%O?eTyPOBT6utg>72fuM8} zA0v!K0#8+B8X07yTd)!ga^GMSdxP{0J{>E*h@LhdJx$;XE`6(3ww6^d@Y9N7D)dyo zN4vx=#6jMM%Jh`&Y*gx-Qi7@(TWQ+xV;A$OXd>=M@R~6(Mv%uHXC}+rgfjUIqXA+X zh8oGQGB`{*DUAf|MQd}qcbLovk$)IJWaeGoIeuW!z^SOu^7FGP}H*#IL0qIJ>>qJT(I0v-?H@KZ6H@QdXBjwGAkcNHYLl4s_i4%e;as3x5yBJ2C z|1&qS+e7R$2aZa6;kX*xz51Np5`4JGl#)`e!`g^v!g4i96mx<>Y%_%Wn$yf;NQd_CncM6i4@SR|%f21Dup9T4i7o!wG9TdLjD=*DXwr|9!(k3- zj@8(x7R+=J=0bbQ-OMeCW0;9F0UyX@#0!uI_d#xpT|2#ErEbwOJ7GrXADh7N_eogM zT3nS*TXE-lVNZQPb?=gyy9a@I<960Yu+F8zog@B>d+n<$GPW}rjxVr;StaYPumgA^OPV~+qv2U@>B-p zA#RXECz!3G+c>m$C!_}T&FhKa3V|fCr5&xz@4fLi4La_r-0Gx#R7TxoMlxO3jYEP5myfw1nixv{{aSmLqsXl4S2nKt5zK z%Cm3+a%#%24D4uaDBHfGNTzPD))msaqv6)I53{#;N7K4RgEsxwTgRu!Kxs8kA%|)R zdwAt1>YoI<)Mh{|T2|HqJDj!C1c7)9?Qr=U+*pUpuWh6&k=cSpKHAfyjrvw71as$H z?P1~NJ!y$H?V-ycvUF-gMoLg9u=eikenEXtxKn_D12PwJt!OA&~wz zIPz2PDv%%R0{ND+f*k7A1#qFC-4~fW7-aL`2ck%uAR8;4DJKQeftg{LLuJ4^?Oj(2 zeQ{=~1#t5^g&6xl4Bdx+lhf;`T7y zq-jEO<7C$N(QXx()BMAY@Iwz5nBo(Gh z-{aX~yA}-8ChVc|WW7!h(z@2eA>hUEa0J&PqyQ)6NlGQr zES%b}2k(f*@_AwHg3E88qn3s}iWSnI;H`dB znN-a}nr`##C8l$?a(s!cvmd~ zyd|d|7BT09nvzr1oV-gINSijH#nTy~t)5PGvhdPZVaXip(s`J4R4`nxfj#gg=*L29 z|4z!q8fl5z3$^M4oop5@IpaoXEa3q8Z;a&n8NrIy>wnKMlj}k#@D{YLm zp8~}H5WhvO>|-d2USHC_2^7;FKE+i@yOQrd*d|Z*5dX?kYnQk=(mS-kLG9Jk(* zspc1>Yazk@(I9|OAMjZiHy0A1tE>@N>tnyX(>7A(0w5PbG>H)@&T8Y&q)lcmrU$(1 zuuxB^3%Cb?X%&`A5@hg9E4!612X?QM*TExZ8JMY9O~gC)je={iAwHPX8s6@)BXGiY zXqj!`y5ONTRbA`Sq!o8jC2aF??QiwNwwaK6Pi+u{jRi58A3KAoAm-3k{bP0>p0DKd zIEb%M@C=ZD^@~awQ~&MIG2Ea3)?&AxB#Dbn!pbrFTj`OgkSaSUC+=A9+7>FSurbfnZajC&G_&)! zq6m_lg5$pOu5G5EdY)S$+jWUQ+55TlzA^Z^d^PyGeAS$oS{L+sO?5-Q6MS7hYd$`v zjxH>_v30NYFyDMFjXNh--q5usi-9RGr}~waY(t_tlInp?Rb+xx9h) zvoqvBSgDoW!Ey*eL~|Hwjp)1HVCNvEnIhfsKdIrKz&t8 zLS#0CfaBlKHIdT@M~4>3v)OLnJP4~3sr#;-I$ybcV;G=|KIrbgcOejDr#lA zZ-QUuMF!?BVbV5+Ml&d*Dc(HN#B@f}KU4L6MWg5~&eKn6Z?u)v&gY(YH1UC`&gNZB zkL|5K(S5EHrKpyP$|=Q|9N)p0diN z0}9Wjp{zpw8<|?_G|qoLr?inpY@W8FQeys%;!a>k*VIub%pZ)|tc@L;mD9AhO1~Mh zuM#tNTF@8W^aCd(Wpwb(IB;jd_X?K6Etyvaxu=Y%dPF}|?~DD-ziuT(LPGr7@pqQGF5-No-dWxdS%m8 z&yA8NdGXp3u?s77mH3{QYW&9?jYMKS6MTVBNsS;2kX`$eZaBUC<1@gC_NnsIt@6L@ zQNHBc$|qXouj^5M%2~>bE4C-Oz>dn&$c0WRhh@YXH!fV zOBfy8irLQOs+_H|W=%i1Pg2?g^n4Kurj5+Xq2!qJ^ComBI@dCN!XMg-OLxJ+$7A7; zvi-f4)f?=owL>>*5B{1*5R^nuhg0)7`4kJ2UPZiCu~U%OkVK8(*Op3rEB=O_f@4ZF zV)q!!_c%09AKtK64cekT;?vuFZNo~5=(1HLi^ZIcuPr(Cio>#mc zo_ad^7T)D~S0G{2O8W^QuFDmBEEr`0_>&cr3Dp^m#hO<31%N33V=*O}W8)KZnS@z6 ztT?x^?$+GiB|K%ysh}XmD`pbjbQ7esCTpf$iGTg?aK-wRrf22yGe*yv9#{nxtm1$* zzTF2;JU%gJ?=KQ_KAD}Eu0F&6xseP1@);i;)n;VP2D~FA(TvDc6D)f*Jw8$PV6ylH zrza*54G7U`gO*dfPNK=S?t_3*=VFei^+%NUZZUP*+|IuL8RVk6;yAb%a>I5@DFqgo1(9BO2j6+psN|g^%rQYd3$u_BYixt^Vh4}^TIO7EMzu`rfFN@Qw|yj7+q1Xb1ytYLrP zsgXDa+y1g2=)9Bz$lbp@8CjrC<``G0*?+RI%IHfv%|L3Xh*nlctGtt9$aS8slkeOi zDbwNqY3c)i-VgD^_Ad151M;fF7(@P+A+WM`c#)m{yTK{*I?|U1{=k050<&aWfdR5c zlImQNti31brFD#^0{x($0}xqP|Kr#13c)k|)Qt|?BxEl8(G+pw$fa(a-BE#;uBcurjWx@xi# zZ8h16cFRN&kWVw8{+rl)Is%(yQuX@d`+2Aw(H>j~!Kya29un^$1w-_t7GGP${5Bys-fa7IKc6?RujcVHWTKRv;!HZ` zI~6g1qk0@0O~A8k_PO|ZM7%psN{(&8rut;z@RCmJ#n%M^9ACF!)P&M*M zRJq+M2Y7 zih+->EmGL6a|>dU;l1BHPJzkJYbU!3CzBBNM#o4*IwIzMq)Okyrl)i}TB(v+-Ye#G zd^?d#oW$K;<}km`B@umd3~QlNX4?RYFdZ(VQYLVvREsc-DV_tb*c~0+W&0qd(tp3; zI{mGIo6wSQJjCgVvujxHtZbXC(uj$tCr;qV=|MI}$ka{NV%Yx3 z&XZ&{A_|<&7M_?#pKca*NVeCrY2CB8(7I;DvGRTKH&_sFj?J~OhlJkdyc-*XwNWh( zAu^uqGz)$t(uqR68pthvz1p;N8Le95r*C59NEu3m-qG0EV+S5@jC0kFQ+h+aZ#Zx- z+a1N>!oxZ+3lHp4^fP$R2=mMP1S1{FU&1@lWkwR(2<{(#v)AlYoaWJ`V(2WvcMfwFYJ&CsEh^nkaEZel zMPVW%@y&BYHGTn?!K=;3Cn>pX>u>v1awp1spMF14rzWA#lV9IB*H;3Duoh>f_%6&42x=Cp0k? z;Ps)Z?St{5Dqe=C%K&29U_jn+eWMtVht~z#YuRI~G48@|t@IVuj5z45F*lwySn}{; znvkI5i-00ED~`alVZ5KyoI0n)Jr@0^cSW2r=U`X7?ZW$kstTr!k#ANU#xcAOv85i$ zC|{JL5Nd(7|91HxR`h+1rK7yJI=bt)NVab6=CM2b;_;wfG6tHjEx>`N#&NB?+5KT) zHADF56HK^&QEm+oB-F~+1c5*Xq+U`(2= zPps3kW*d{z$x^6ir5lrO(OtntRAJM@Vade$8wh_cY*(=yGx{9$a? zGg}x;F3GR1E}O%bG3wF`U)t3r+1aha#~zY*o5Gg|)aCB*^48n zc-<>JX!y?>FC&$xXOUK^&A8d=ZK)k(7O(zln)zdT4aG_A5Y%CZpKIzjDPkZ)0#p04l9H^#;P!}jAh z6BFo@vdesRG0rNJ3RwM~pVmXsUKQ7Sg%SFMmr74go)j=K>9JZ&PJ)-9*Mla(RQAQ8 z%&h!c{K}r^$C%hgz0;}J^L|24>020{I0w0%d8W3DCTGWdf4@{UQVN58ZF2Ba5+8cZB%iK%%~jIc z?06cSYyNp2@yN2z+Qsc5*kKV!4!T|&iN%R|&_@fjOVW+2gz(}iCvFxyfJ$hoQ=w+U zz}*S;On;QwC=zPUN6Y!5o|M#@Q}jp4@8F-v7bOWaou-pMkg|oB&vx@ZPz1g=jv4w2oLrBb7_5K4Vo|IMHBJ4f@lp*l zhws>jH@jd9sfK!NI~SjyZ~p9Y3tRpVZSMjeRdqG|Pr?ue8JVa-BcjGSYEZO6QHh`? zKrYH{LL@;eO6#T5*w%nET$D?266A0gs}=j&78NgTz4a|ts?l0Z05e>yT(n#S6%}=- zg9^&aMX2-r*52pL3@H8H{=etXqnUH|-e+IdUTf{O*Is+AnfQ>_5{awImk)ZmNJ1>b zG(N|s<$EG$aZG`E6f(n9zvzRDGn#jdr&4cK4w{lbX**y)8l4{dUxrRitT@7`80_qP z@E;!-2s`~p9!<+Ck+X!J-?}N!4WI#htBb6)t}Z}SyW>;a;g`4H2RO1%Pu>3O^KSax?PNINrJ|2ZmIj7YyqL zfBc3rZd#7YSE)n7!hP{k18db2lD7pms7}^TY6E9Av6%xs(ca`MFNsJIOyXxF)04QI z@Bk7VYZ^<8UV3tB)gV^KIFbYcc_vx?w(l6tGkf z>amNu?j)#lg{Hft1WWpktY2?YGzgzwJT2Sc-g}M&Z~FD?7>+3_8O7RNW7*7)`wRB8qQhK zkHulJB}cGW10NAq`_StP^Z+6VCduBszV@&TqL8P*=%=!r_U*pzo4L1XBr3q11>X{p zcMwm~C|;~#e1pg@T@phLW@Tm7Qc)|f4EkZySeEiO3iQ@1?|qrH_QHI>8I zxV5XE&KJ}z26ZnSoN&9~}PLPqno%tcPltq7wMCfH+^~pY0%|~=qWV+Xqr~dB_yMtWHVg+7Q`c=j(@>J&VH-?yip@2 zcNYV{tMjeO5oCx+np`Ub;(Haoo2%aYyJ}04z=-zh>`iADykS8usKFD><39n^d2m$C zO2w*S2tA(POy(ocb}2yl=HzJd{?4>J7Nz9SI@()o#i1B;l{)`)%ZC7Yv-Cp`CIf*&)SN=I= zzNwcot)@);-o@mo)d#;w#qXUfkGG@sX<90$N^F%NQ*u~>$~ zPqYEVIX;S{Xqz!7D*H&ac4Z+FLR!5s3b8QxEV$aH>gJ)$d*Zg;lR z(H-bBi>cJwRk|;7f-c;}6fWJzzKX#_RY;XwZstnMMU_?ZqPOm{b1Pt_?>s|z`~ihK z?NlcUFM+ziTQ~^{7{7g0QPZ?>p2$h|{nGw<_e&q!zs?e9mgJ;oL{;D#2 zSA-XFiRWuhRekzYwO-}VhiP={QRR)SvOcX>&m-~zF1y=#C>l9tJq4S;?>t6`^jy#yP z!Aw-i(g1kH*~E#mtlZEiwmfSAzr1N?&=U>fDZ;?D8N~EN;KOk&A4RY5i0MlZg&IicW3PMUG-p>m2M+LA^ETD_etC z&J!>p-DY{wXvj&um0S{1qvjiixh%a)pg*F1Oyq>8DaKRl&%a#fi#dGXl*@H;oZCdB6L4 zP}T7{tSeDjs7tj)*m_Sg*-bM~(9F`OerOVO%x}@U)?E0A*56Bi)y;2znu^a1W?0HO zAQnLE#XP7lL|%#>!vd=o(sa^Q1d9Gu=)VOBIbm^~`4Ig;{Mul8yBoPQKDu9>`lk6$ zE;8CxQhg6Tw{-Q9ZajXo7{<3-ZTe9ro;vaSnyJ3cK@o!=>OmH07d5Pb{~n*TJi>jl z!ow^B^D!DGY?RNs!)skstDfwM;P(r~HwA{Q?7KeaK()23@9NUklRo4~>5JT) zwfOGWRv3Yyn@X46@rH#Yd8HT8c9}WYcm6USbWd0~mNS;dm1D6*^YDN5;r2zboqaN! z0kp1rV>A4oczI!9*e+J8K$iU99Z*?#UK=`a(9ppIg&I0+(9mjD#-U*`b!d?@F6)+U zs1o{EpNK}V4{B&5@Aw)9s0%JJsKS|0ctY;8p73JNvmQ0>MpS7-ORTB_d*}eGst{|A z;U(7a0W^X;7klVntE$KvKF}IInC7giVtZ({Rn^ZPI>M@=*a&NQwKaSg+7F_nhX>HV z@b-)F#53ZpzavuhyG1xezIBD(K&U_dlZmN74Qt=BEz%7aQlgqMiieM{%-%2fJoZqS zSfKd=W=$AbphZl$Lh7#UtkV+4ZF1kzEt4jJZWBv4&uRoC?MrexZaX-xugKe@X)M+;E|z#Ix;xoH zp)u2IBj1xkSL7saTQ#n4JN<$UoFnBD<6;%NoXI*6|h3bMO=Lf(C;l3Mi>5~S9`*f%*- zHYDezVJQznA6z@eF5oI(-*z$HS@nc{!7HWfCm(;?>Tx+M@wXLHm$G__Bov+|=5W7~ zKlh*$%Cc4aOE>43-pmhEF~cvFUW;s&RV_`G9*CY?x@qz-PT+3aFfM1^AQZLV52;}c zHCafr=an9qe2(NSyKU{b9755r?qplR-enoX(3(RZLG499lI%Qsf6h9hKdcAvM=yTp zg^P$)z&kQbyY5iwJ4BEh?HyD_H|mt!>rEbe$N9G{qwP91injHHq)L<+SupcGe2#Yb zdSWuXDaGGAdN&@)JKTCf!#k8lg+tgVoL7TItxtNiK?8o-%-6(bw6XYM;?N0 zUp<%^*XPSeZ|Wk`6!8C+esrqhusSjB|E3?^-8D-;>bFaozrGmSb@|CI=~%on=ko8r zqH+VV&jb)7cZz+**V?{9XQ%BeP8uJ{dF=uzIb=WL#;n;X^O@W?xh*j+r26*POz^h% z#^o#zG>c)L%=Ai5yO85i=dSt`pbsC%;T=X4Q@!jEuH^U&b^+Z=;GCz)XPbZ#g(+aM zuqtgSfhmQL;-^T#1L}u)tOlH*B_G7;ml#q=wlSpGSR!38h7|bv5<`lkD2=yy|Cv&k z-iwXJhTFu(0{Du3@OkB4flQkWeNcse@(HllI(6lp@C{BIM6&#M)N&7%I#j6VOLHzH zL$g@k3}d>V3?lG$O zzdlGM6B%Z87(0;hiM)a`?@f4Y8dGC$2cnc=f^BTqu6VuNl_#I)evGao6#GQ4`Xdli4?I|6TmJA;3`DN49oKo z#ynCjp5TOgen3rwD!q|Q!ATY!z7454(gugW5)S4v5DZUmrpe^PM_BkK14k#R?YaL< zrQs3JnBJmp<``|{P6rA03lfaBbK`wHLrV|dQ5_%P;gWHzBe(RMJ5CjcJ_qV*m7qBh zeP<}dF|MN_IpihtOZC2T7#3-~h*45^X(5R)!dFV56L6WF+o zyFX?bk0J}YTky=7TznG^#$i{gSiFv)n9{E&-+p!J*U__~nz0$Gk?Xgng%dI@u+inX z%Samzy>yJc2i<}pqQV<_ad^k`D zlfNlNsVRNbV8)-CQlOrkp&=ssz^l%~#h`0RW5y3RW&PnmCzv_VK@zD;y(Q;D*gVPB zMgPl!*Z=N3Zpm(6hZ_>7(A z;&N)@uzIz5?lO_Q|GE=U#PK$O<)#=m)Tv+8w95L%r)t2*!m-q;U!q;O)Og}!X+55! zuq>-s)D)Wx0OnqlS#Z&cXa3P2N==-e>J?@{+Fnh+8*m7s)7h zt0ZS2?oK>atR;(V%?|Zzb%=~b-M)Koy6juuE-SsFd}^XM)oTH@t1BsggpSC8pKH&N z7V9g+sfj*y+Dk}U;*>SeyoM<=CLL(J|G!#wsPoS_ib=zmYkZI98?VZ0Ezm_69=|L@ zqVhfa!y!H+kos{myeshh)xPM?WLLS~KFeBp7==(C{tx@EbiOE$PfhW~Oui8PCrsi5 z!3Rzk9bCh|F%aU-MHL?Jc^J{?ZKxt>{Mo zHqA&|bIUwUv4aDmyZP=j=ev*1cafDw-wgf==Jw%!Sa@CQ&pZHEMMpw7T{!&(C#_LT zUI8+kKI_p`XpbyJ9zj0YYMl%%a`Jt8d{i)A#bNRATE4`_3By3dj;caT{hT#WTUyEd z9QzOkKsYVT_|wi@^dmouo-#P=o7bD$I0t8Py|L-wbgotS+5<1HY8re@N%Ra%0PyaU zGgYn}arZ0Q8=nzvxz-0Y;i~wXo=~!v2>h6LTmE3qGHZJ%{68d*QD^+mpJ0As;nK^- zU&*kbm-?f9_N_mo=e~7kuzfKEHskz^+(XmRZryu!ukC}0e zc%qLK#-O9gY)Oi*_p#% zOnrTHeJ9#i6;N#;HZ|WDJa0h9#PwancBk1bl%M5hYozX9OB+b$oyAUhqV|Yo;GWp>Jyy+rtA@XaV(oj-%e>2;0QMf!7f}M=JmD^ttW|umtU{u>pp3>=}@QW>-H$$EVj!}T(7Sr03YZ62T1Qn3~cnG zOL=hu4ix^)t&dy($4HZD`mHDi1#Y*|c8@I-uaaE79O=i+XT;yKD%wx9t|(%HXvWK% zx4t4$5xyxbuA3C%P#Nb@;#-w?3%jkx0!($7@Ss>ky_H^(^6|1v;NqNXDaObA zdc8mev!xZ?pZYpk!%A}|pJ#5gSR1={M9yK!J7c3g&3{Is`@YC=`!<|elfQ4>ndJqz z;abp!#U%Vg`0C=E`I`C3n88rr8YMblNm6znBE`9`F8taD%Gw+kTwcbtz$*W{;qQ1aO8*a5uj87|u zvm)&e47@Z=d~7Gm{JE5}8uP7j1$MO13KilbEm77-gvZOGN<=)iMSeQnM<0S8eborU=76(Ses=HEy1p1sF*4Z%@<=DPN>nna5 z{FPh`i}YXezi8vBId~uS>4zrwq0xPqAPMD4q)m+nb?Nl*%O3@b_b zLv^+FD!f+54z&)zu8?$d=^~a%`3)uEA=CHZuv%4_0+RVLU)I)wjJ2vpr}~xkM5}nX z5^HCxIT(_*&9It-W%`BAmbec^?n6Eg6!*CAyO=6HobB$zI`^TChxn_(Mt-brVUZcb zf@thtv_&yHbG*{{)fqj^QdzO^i{#$*>cg!y)?>b6U6HYM zqe#3t_#}0Q=gJ>x1^uRJ#jY&2md6LYPMQSJIH9gV3O}cdf zPgm*xJm1{;eWcd1;nbQ{<$|EV2-`6)wM&hmF{Z}!Oe`YbppE;`*~~pw`r_teS;M30LB4wh&%IpYcv>w5f*+K08 zwrWQ+R73x>cZ%x@sKOPE-js^3l>3I zE!z;7+7*-swWhZb3qO#@ z&g(gMey@*ssk}P+RlTglwW@TzMjWP~(@SgFtEbEVH9sx!5~Ef}$51eeV%}oYiamkm z6pkFQ$gn;8);+}$?JizpFSkjr0?i*uUXI-;o=(^z54P4I+cNj}!PBhjGKU<>grk-f z$shPBK_lQ)Zh=|fk+}=Z(O-X8=AwU>8Txmbo`07q0p5PSaLcb z4SS`C!)lS4tR=xBkSfh0^YsghmB)S9MK3hd+|C2N(mzY|5?3b+=PyiSb+z;;<~-M{ zX$k3qxFKYRE=%Hn(hB|!3Uu8UnfhvLY3Cg0xefq`Z3oQ_(~acU(JS$ER}0H7thL_5 zKI>^|U9QqQP_1R;0!}mV!{HM(u4zY19$rZ=)Mk1!Z*b{=(@k54xv z6EjDbAlwliIRpcb=HMO;m*!xrnUw5-a#vj{E&lfSh0zJv4yzQxbd$0m54{W61vgCR z(nEIP=zhez@D1o}iKbp=WyK0J!S!mMe!|sSe7>H_8cHvbF4rLl%=o<&D`3HuHi;0&t^Xl)Fy=m1o(u=P7gPhKUU|w)XP&iX-t~ptivEvlweocTq`yCND`PN1 z?H69}OErCz6L|3}9L-%HY^3ZhCL&GOtNI7! zd%wu|3jiV>2`J@hI4(R1*{@zbmC2q?Ht2GPPeJ1N_vYd&5$QjhI-~|0Qr2m#N@Y8a@BGKvwngu5oi)!9G zI0w*pBj*snOGa=O88$K-Tc8X3x6PaHm9|Poc+1KNPPr?2nv-{;u-j&`LX4|Aq>e4q z8x0Mxi5h+MEQ^k*`GMBP2KEkp4Z=|C~vmLprc<;PGoWBQjAJK9j;N>9p}k zy{6*F(rH&Q;{~O=Q24cIcgSoGb(tFVGmP*UZ9dqSvwI$(_@)iaIIS;$544CICLm*Z zgUN2rG}o*1?$@{u9Sem($EOxjg*WK#KN@bzCd9wLvtRft_8-naq3?zgb&Ij|m0*&Q z0p|F#$lTH3`baSqd-T1mHy@UhK@41CZT&*3><`Wx=NAp*!`>MvU&~=H$EaJKW_F1F z*69BN&3Efsin;&vxc-i&CdDiJh3dj9{SUac+gC0vQNG0KKj-3?qk0C zz57_8e(OFKsr#BVC{mMys>M9UI{MV9&aOHdGQJ4@G*922b;mBhx_{WoHTqOeSKTT` zIC#;X{dE)Fos@5FEN}nZH~VYZ+FM^v`I3+lv1PepuR7`bEgPnuN6aruyIOR*co2|~tS*@*Ghpr}2r9R)(`uJV3ofBNZNihs1f&3fhkU}bS9i@d?rhM$R2ex!Hhm{E*kX1pB8 zssVa(@b1yS4UO-qVqzhAJ~?$Q%+3>kjjl0)nO|+rM3pYMEB3JFbKHV#`_xEmcd#_^@{<%Op&zI6-om%968STIoEcZJ!V9>mp zif6moku%K#slj3@zSvY;r`}j5UGXLtqK)P}d9S?TM7=T@H&_dN{-5z@;KgbDd5i%P zPY#aNrTl<_L7-ViosCpJw|pd;MyNe{mIY)#Oe55Nm$(QuGL2Agq|23BpEP)p1Yb#~ zI2cr?5{F|@>xJ$NI2bf58-tG7=+422pkUDXCuCy~@Im1$9XOA%HCRWaBtftW!Uoq`zX#=jHpe+!rID;PDT#?(%H{H{>fbzVM>- z+&n4MfU`bB__bkHEnlIPuUM;p{iGrr(GfqQD=Tb7j*w6 z=?@1tAl6LWrIC#(Js)KE%3^O8{DIHNx2QY~fuG#}i0K&{E}WSr@Y~)#e0uIZE_-@} z-^zJ{L=X3;?(nI>6Ag$uQd4{?HN(6lB(!lc+{;^WfoH2LLfM&@M{#bG%tGo3c%_u^Z+({*aR7Sd2n>l!)1 zg?FBe7yuDki8^(K$>!+m*jn|xMt7;ODE!+aD!j#1i2eQVT2skCYPS8@mm0nzAwQPJ zNz-3_A31b5K2_V}V6F=vcHrZz5V9_q6{1L^Q9ggO*M{r$*FQh&OxedqFYevTfhoMyOupE76V^yyW8LX;?=m!Q4!>Tkm zo%3R${|&#@9Xl$0e|SDO8UGD`c>L%3d%^mU`d!S7QtiA+CK0ZpK0NPTajA7Ud&z45 zN9OzftH99(M5#6ATD3~)2+E{phFMi(WB<17v>7=QGe|a$7>-#%^*SO?V2A5LVv$L{G^byp^k^v zY2d@pFy3SE4t1zDG3=AY?Q?bUk5D{o*IZal<|9b#>8c&7zjnQ;{ZF;(ZnyU6<9cn& zy+V+Zdq!o+#fQzG%U{1m55&fu<@H34i_OBlRFBv!zbEiuo7KVL>RwG9$U#tpVXxn! z4o-G`>I#i#nmXjv16*_np;n!l$%>n-3?X!L^E8LO2FMsfc=Y=&ZjZNiap&TAIhBA4 zPSU^?iKv1_uM0fn_4D157ZE*O6uoX6$SNZHR#HIXHW4`+2Ack)$yi@ufD*+v_d7w;cGP{U;wY!JV ztlXzQjgyvo{0Eqh)v9|2xv1AUfjX>%ofYoE!oTCkQ?YpnH1D8$v02z~HowEu{}SFXlh0HZS!&4R(Z$y)fm|Bb`(Zb|oS zybHgUF8-6OJ6pihVO_ucQlrBW4AbNbW;S}&FK!UBI80=7@(KQhN?;n)ABc%_IcyMO z)1dzaM>1eDe-6r*aZIl(p0ig^JqXtp`I#_JuUbA{x5bT1DNIR7L<;-VwWcsdhZsKl zkXsb%n(U%}b%80WnPAV<6u2jt4nnjNm$aD{jO$t?b`6n|mLeUJCL% z@Wmf)7H~No#zK!vQCu!j$MkdidO`Si>28{ped$WKoBBZc!>-ax=FdpKT#TEc8oU6r z?lXak0Pa=diEBOrqD23s`Rdc=o#PC3uX(J4x!r`)h)-CapU4`njMrV?zl9G|eND5< z;H$^-sl!*x(hIsQ?cbpg(aZXe^>k?ND)O!2t`}aI=B`KL%cX94@P#@xXFW5W=Hd%k z2*H0n$3eTu)f#8K;LN_W+_X#3l6bK~_&A*sY$!r1Zb^To@#T{<-8pdZr7b-X245~t zxD#RUWt=w~U&4QKi)+J!WEMbyr{i9*L@b^%-m?3}_7_E~8p_qYDO-f8GIuu<-Uck0 zp&bia9{|vD**@fO@}gFh$zp(S=dv8xiM5!ItSMUea8kn=*$iQBN2as=K<;O|n9hpd ztK|*nn4;y$x1^h3unqJ!znHka(8X=<4#(pv|=^kZ3YS*-N*Dd#kdGi7g1`Wr^+N7s@g zPyP9IGb)HG-KVSRS8gJw2=I%X`msZ=Vtk0`a#3vH=~GT_xXr0kFOolXYe5B#-Sik= zAb&_vApdFxcNLZ8Bs@-K&N>KuTE#-bT^4zl{ef%c)QrpU>&fA^ z48QJN;S9vx!)kur#S|BQtu%6agUO zej=TA1N^#?;nb@ugD#yJ+7o_#SGpYf$U61v`>hVYKBu7wbp^t7_w-kq_8N+gpuKs3 z+rZ1v-pk7~=q$W?n_MP zuPqmZ7p1#u_;t^8S2e%BQ1_JiJCa}j{!@X9!>_x$6*~O-faX=`Me5ai=JEfLU&|rQ zf5fj}(o>@OwX8^nU*Fv?&9Cnx5oVjlmwVjuk!fjueMdU&76)GpzwVL7kCAD9U6n3d z>hSA}(<$e~5-jns><#*=jlfK!%|)jjfi`k~IU8;6Za*Ate)r8snTsRK!|2RR@xxhm zh93@xAAUa3<%i>3erWBEwZkwDV~RC(>dC%(bL8^pkIjd|pEY|tBbx!JHq$f19?vmZ z7p&#hJXaTy?~hKC-(koEbJtb3XtUugJo*r`+V<87}wut=Wj^5b0CF=P8qb}aA_ z>+ab8idiSdt9KG8XUdg?0hxX`VL(o4B9zCivHfFblC>~)px2avWEI88nm?PY;j#Ud zEHwM8B7x2o#C!zb@LVb*6mo zZ!MFbuB|ovj9=cmre=*NxvzDTe6XvvQ+_&I&y}AKTg&8UYwH;KdAs$8^7HrBiSpCY zYRS)Qtq;pjYwPp!^L*>;^7BmV0r`2N)hi7xY&~9n9&9~be(r5OUw-aseOP{)TK~jP z=VZ3Ut*^_Im;|=ICr>|;r(N$g8l4|{#Je@61 z2jT6VedOuKQp@o?Wtc4Rhd;6cad!Qq=GL)c;GGM+VG%v5ghU-Ms3M(&eLA^5gv*J}K+uTznUL#!IEMoXht z5tNx|%tQvjF$wXRuku=Bl|A5ox>aPKW>3Z)vTL$~`*Dod=y3EC@kGj2a;zFsx{QmD zlU6zvd#|Qq^w+v$oe#+Ir+y}M`_;*NvpZavjhuiE98Nj6&rO#0I_+5Asvj@!6{hldzi2HBY7u{)l zACQ~R10Jxx;Ud!~+)L-HavTq=m%Z^lrU|)0&lZ(?AXNn2Hj9krU)q~6r^Yva@sWs@ z3C{w|+X)YXurr!C31z;(an%y~q^g*kCS?+5o?E-dD&CAwZgei>8!k5_%Kb7fRO-iL z2z7*yEA|)mOu1>&XIE;pH+mu^#-**dtOMc(iz3*to;B~&6qe83u?PNK_sO}<@Ll)! zWd6nez9|>T5?#kV7i0%h`3fY?AGtNV_oXG=YcL= zE+X)%1Xx<$eozNk`fB!a#-oE$ZN~UO%t~Z8hVNjX=-cqtcv_V%W=ok{@zi9#Wtg|n}dG3Bs*_r@Zrz0W{`^!+B&7$Pj|dhsJehB z83DIv=8h}08c((w`-pvlRUPDqXzWE;MG9Q_d7B>`Ej88$}>0l7n@TxWKvt>n8QZhmYd6!DrtmIyNkrgh7g1`b{T@l5oi&&U9_|5HC+3v z^*i<0JDVhtK(9=@?#}_W>GYSyE{wXiQ?XTEz~xC1aAdQjt|Lx{baJsG&u-c&C58ok zL<(%?@PjDS!!2iE3kl0h=0a^I$z|MphR0izz~V$Imxp@wH4`L*t0=ao=4;vww0ywO zfSMG5lm}vMFOTxi=~GCZAl-P?6iG#T?Melr;^p$tQrr@&y-7W^%!s-&B3uLz5z7~7 zxfZZsMXO!j;+ms5_y!d-HeY44*GugdfJvrD=#rPuTZ3$mn zGsT78->$>!`K!7CI`^juE48cXP5j!Ucc?2*ryMRp61=P2*Ym`0Q7`rD6>LS@yo^-( z6;e;jSDWoq>@u$g^m1odf#%9;YqXPAwKz+BG^S3kdk2-X4 zmjFkSQWvQ;J$K>_CvtLpflf)l!ZemF;zxax&$F8$7{ugA23`J$EG@K;2sVNQ<$aiU zqYhBMxuDi*+V54M`5#!w)0LoIVO*H@-!R15_|_*doSVg^=?QSq3DhbGBVOQpTASYb z6y&-dx7~bJEl%D~;9(rtgM)G1oVj$|u-h{BiayEX?I_k&&ko$I zb%tI^rgQVD;eW?6Ci0~$tn)SU&_IFpsvZTkEYM?+`W}*}VZrNx*0>h0j_4CTmV{xh zQ~3NEbq+OAjnJ&nG?+%|B5Qtdp>$?}h7pYSNvUc?@ES5hEq=GE5y7&K**fA`^4O5t zb}84bIc=dH8h^?(9_FhN4k&0xAXZ7PzJ|_Q#bU%vY3(WF4Klq$<#mpUK zFEg2*!U_6?DGa#}W$r_X`%vUQ5Q- z+h!&o#@ zs;3t%PBokx{sP>TS||`w(KA2gBW~8IHBT-UjxXIzp3~q{gFZG)u|r3@YOhznc_UA5 z=Scx^K7AhTTL;2V{SYL4R6kRxv>H;2c!kS$$H7jHdSR`UQ-0C_aT5hpn{YQnE~zD& z%GBSw?@Wo^H3KwqNu639(?P7Ruy@nvR=k zhDnpw_?gR(-6Pg6m(YYpLu%$(FQ<5s{19Cbs5?I@7TzNep?@+M6}gM>#O-cb)$76M zQ%$c1ZL&Pm0(_$fbR}MB0KHi`F!&Tlxt%sW$}B)Pbf+s@)L2G?mywn$sDOGnZ>G>S zFe1WT23m?qjZNRkY1!#aZE%RSUkA#wzJf6a@w9pOU)fxA=28li@{9W|-{(;`>k1>6 z=}P)+v_}MkgXZh2fsqn|V>e&sqwvXzar1H+ky5OYw(=Ivt zFjMZvsNf56ZwFjUcu>$HWQFNN!dHv+{6LiN12MxBf?DD2rvXc+6X<>Di73@vlEU*jTSRzviI&fcoX#U>_jH`p45W%9YcvXE|oYR0Xp^ zC%CUvuif3oOx4V{NG)o?D;iIQC8@bD>9Tr>Jc<|amH{p=+%8|7cvGIIa|q@Y+Oq@@ zTq@vS6ZiguT=4Fb4;-TE+<@>pSGEWoR@f!{<$zMwp+2Q@zd}$i&?0xB5WejxMT4gF z3AE$`VDN;?`0Ddnc^>SG`|uc>B*TpqTOCcaiaqR#4O^~L&-B7)cvUgA$zXVAG;^!^ z5}tqndJneEV+Yl=JIB`^^)`(@F{g=T*%Oh+TqsZz&TbShXlDItu_Ni`*;5E|B)3=7 z0#wVm7gG4oGs6P;iev3X)*Ae3jaYpE-@jZkW+Z~FHw&_Ux=Iow-OLWEOwt!f`r5PzZwgjR zLfLC13^xgvO2XUH$YmzsY)RND34Kiho{du%`&W=qs1pLs1BKE@2JP~K*h(+Ej;A^0 zOEGa#-?2@A9{;dFw~r^#JQZMo-%PdmFg}J&R~hjfH{uhv%6t?#DWtwE(5s=GO+zQ_ z1c!-puL_(bG|Enc6+^JY+7g~FLWcL$PgB|-z;&`e^}|!Pl52RAW?)aeuTif5-p>8F zLgSv~-p)GliB=JewMj%-pM6CvF(KZpa(Ul6HN-&q|JH( z2&uvB(;A9u;ec}Y-uY1{E?z<}@ZS)$hv4Wu7`a-MXfF!l&JXUAZdc1Gsi`=S&pwSb zln%PRSXSX;2m$ND2(s#oW)d=^?yZkbnAEbR1S@?#y_IPYzC zOwH&JMEoRTapz1e!~_VtRrtMVdpigasKm5U?pR;~^ju^N_y?apN zOv)ujP5RuupgMQyq`G)@k%%Ia8d7Z?2k_iJU$27AtEOEGKb4H+*o+Rq%rKC^@;i+) zVIVJZo=l`8D{vGPj`6MP_v{{b6e>h#I^X#MY+V`KJ_|}Y2XRdLMPuD;^XLpGG^Qah z{D2U`Rs%EvL%P8qPx`La`u=U2BAgo3FC(n*2VBg;B~!FGEE0qI^)q{9Jz4fO!Xcsw z-R{@W0-}3VZ~1l$nBrGg%J-M=PU-n~`mJ>um)!Aus=k)K3wGA4d!940%R(ci(UoJv zEdrdGJDKGJYTp6*sa2yVGUP4lA-={#uW7SI+Wh^~ddO=j*E#Dm?uK{&3ZKFK_|tG^ zRuIcsf9e!PL?NPsK9goB`Fu{7x=`(7KwYmg(Oynp8*=E#Z=@q1PnVYMVZi~Z$bRAj zk^YpVpFcyRyg;>9Ee40F=K%Gvwmb45Izu3HkMz3-xx3x(- z4Rw{V6}wc;4<1R)t-xzo1pU&Eovk7oi%Ppf#YgU}tzj$ki$ZA=RlfL$J?kS;oU(Qu zru28~7k`@9ikHvQ<#+TIfl!S1>|BdLL=X)mw;V5_-qO#^-o$UjKP)Rj-}b(1YtS0kbvK&*Jewot(^hiTFDVS#Jp=c4r8MfGi{N5!&iDM}7J8=V=-`Dbk8_P7XMKEkryo zHFodyVw`!2y6p#=w;;Y12VNW&JP(vR2HGovmV+A6q{2{rLyz#hGv7r1yHjedrdq$g zuOkN%BQfR-E)}dD&9XTyk5BWHT{V+Ou9d@&-Xwde)$dg1@b=U+%?XhDL+XK_LW|Rb zCwZp%wQ#z8qn;g-&NE3xYOzU@I@A(I2j>=h+gG<|Y3PqI|CaMZbG`(yvfUR}?82Ly zMCmyo2P`KZOfo7xmK|0Acs2cXfRIz9zx~&NJlMY-%wGcOoFSgi$FUpWz@Td^;Y%iE z^!4!y6;fyLfxHXy7t<#w;V{(Kv*`9mU#P-x!3}{uc2|7t&P1*(`WTAgZ9GP8oB*j{kK zNL6DeJ$Bo?f(z#j=s)nwNrh9+p*)ci{jl8=IVUwzam}v*h||WPY?iL#=cx@2AzC-x0m~mb0~#nW*ds zD2NhOe6)gt-GarY;8EjFo!}PiV+tNMQuII1a+*flB26DPmSVeG&@Tmvg*CqO-k%?Z zpAc!2cu3-;%w;DPyJ9nap6K~_RPKe@A;&&kK9u--aOOed{hae^Y`pT_G@=8-I9>&N z+I3zl4{91BPHM%8b2&y)fnjjtD1k}YLq4@Hi635n@=53~q<+)*PrZ^Pq*jaqc8F8- z7K*UYY_ay+vp8>z?!!fCvO{NrV`FMH!Id$rrWrduSnh(1V|OGA_~hhzRqfRHHDMbn z{PdT&6p7?hJakTnz79ihmmYok3^g!q6i4*L=#`N$0&Nd5STD%`s~ zH(G+Q=am(rqnn746Q0ZS%nR&YP5|V;2xvdp-n6Qa%kM>SZg1xnlH?2`FS5!W-N){p zYCNP)L-H4GfY!_2SeX11O|Jf-*3&fKE={%>Ig)J=LZssy&9qr)p?iGuIJ4WF;!Ryj zBL(V@kC}}oUOCYh5&pDvv$My zTc42*2A#F94JpsLSq}NdI*K%b{o$npC^y5sMTqV3;(=6h{bG^ny`6pm7>#sv5kb6> zs^)bGZufVa+okhscFL%Ae=4(lL!Zv!4xu>oA@SAH&L8NhU0%|od_bgxsJ%o=`*gi# zNrX(dM-3R%?Ud18LL<>b@!xwIJxn_$UfzFe^3x;fPxD&=U98=!7OH=w5x?!tZzH}- zuf^8bbrN_zn#Hgj5iL=%jX`)472D-Uu0eQW2f7CC{t3v?KZOr(C&wvg`yUb&vaI0W zNAylbcc!8$E}W^YLW@TB$nAqhZoA`jS^31lf?csAQL#g+wQ}gPHFA6BR(To!wza13 z!S;i>;%bzHvOr9lWVP%2wY72mH=IaU?wb8IIt#66y)rNqcLM?Km>O>vy1b~59S@`U zXZ*V!KFzm(lq;b*JmgvxZ^)vX=|UH@WGithI>4?zlqi!EdQUub$QpG>Vy3Ob9sQ>S zfiK-3DTuWlvMRQR)Sct@ushj~@Sa3=-)4_|Bkr9|kb6+ni1t^Rc3IV}eR3;e{M(u4 zkmb5_pK7}n{)ajM7ukDF;O-Z|pk%lHZJi^*9fBGe{)v<8d;*Woghy|;aC=>`jeBW! z#X7rHKxkV0FH;`@QS2F;tt-@zFL{9_p};WNcai!s?%Td4NE?y)^+kxxMdu;lo#1GK`F(%aZl_^TJSM5&l7+&XsPxGBeBkBCv+tFVIBCep?)zr2CziFRxC6d|rk zIF_BQWgd?=`LW#b%uT*0KRL-wt)3?G*R^`cOs;D6pzuyEYxMw&iEV{dy?pyhFrTcrnqS3Wp4aQ6f9dX9PR z9k{z$UN6*T%c6I-iY3n8c5k$?b)bIAiQd|Jt|?qN=?ATS&Ev_FLaqJGW6wzyt+FUk zxo^^Ct>>G^9+SS`dMS^4+jFC5wVr1Z1Cx5UUZfL?qWOE<^It{-lxiIynZw!-n?JpO z;85F_w&rK?-#T1-;%E0~-GISUNWIky3mUNZbO}jLl&u5mF;Zl^(6{%yT4gRnC$gv7 zLVEwLqTUp@Jn`r{>olr~kKA0R-Xn{h*bGeIxaHBd#<5KzNL!T@2sL=s!IN~6aq%j@ zlhSEYDq{%(hi*nOp*ES60rBVxQT`DbPUJAw=F?t#G*u^e%cDvt*iTz$@r|mKt}bu- zDkoV;z)UUM-1?UA?bwPEy@wHZ^DES7{4ylByQrpr!8Z+`@OQvxksg=>pBD-QJ`1wo zGn*8FPxq7ch#1Zy^*7S!)QN5{wr?=K2w>z4J* z4|&*O#YeWPGj!=di(F9@opNO#nhmLj4F}A0HeW>suIk+hof^b{hp9~ZhYILQJ-vbE zA__JUO?+^C{0^C*E=GW`wxG{B;azwq_ngi~r=@yQx5!tY!CD1%9wAo{=Uq{2&+x~m zTo6l?z?EJ!!CGlX9Q$rI9c_L|f3-k``AW}j=O5%dMwz3Uo$#)Va;J=PhCfl|V||eT z6NlkUtvYZ#&?96!NIrAD>Cbqnc?!S~j)k*~`bp;(22|)&Y)%13NbN~@JUXeiCQan{=1RFgrdy2WIPOeogq4%=J9U4v>8qdZ+aV z)!%{NMB;F94EjIrTl7zgrvDQ)PEV2ve3!KTt56=?8lSNaO#|VrqiZ|zQZ?$UCfy&X zQQ+5$DU)&$;spAeW~}u@;5TiV_UhG5x^{Bw)I)3a@!N6nk!@-^$)cMOpr3-t=^8`L z4d37BLe~VWZ3Y$^Qrj0-1$t=4c z>eYOPEv#!O)24eoAEkR$kyY`W&EKjZ#pB}_!+SoYBsC5}T&`GbL5&y^ey-C3&9y=~ z2kffgpsM0XFNBO5gyf3F2+6XApqAuPd*pMq>gV2XI9 zRbgrqsoZMkEVOek(|Q!aVg5s|XLB>}Ew@P4+V>es9t?MvCCdQCu2HKy9%n;fsrjMnG=m5K-Edf|P66&I2GlMGw)H~EF z>e1wBrs^}qFPW+Vda9(7T(xng9%%oqRI?>MxV5tU zCKaiWv3*9G#`jWTi#>76-BGbtBMg*Y;v!w2c*R=O$7K;2C3GI?4vnvk?a!Mmu{RwQ z{s;1wz$Ikh0^R2f_D0@kr`EE8;T(>ZXX)N8$y#krAO-F|e?}T*LTZ+Q(r+Q0dUdzv z6Ons`iY}orAiEp>6n##wpYf4P>WE@6!$H_v1jlAPnds(i+2g?i0)qwSZO%W(pA52R)6H(;PC$# z*5u5OwwLBxt00(#r6Yn<1x=^3Tg<}KQtDvSH!#bvH&3eNNaJ1ufMeN24^!p3?Z`w@IPp*#4N#N)T>iX9ZPBNr(#1a!F0LHQ`ud^ zrD>2S@)-N{MtgA3sxmi?hiO;oodP7YEJ%Q$*k-=Bj6N**u zmambsb=edbYmARq$!3|zIg9Tyb4wklki9sc?gu%p)?ErTiu0V6D2*nZS3L3rSHuDJ|2rN)ljqbc2x-N*J(+0rls6 z3OZL~o+u{aIOxQ_Sf>S=#rD}IE=PHAPep0Ymh)?<;wXG=$ph*5UvfEaEa7)JuOg~KDq4gaXYD)PxRO?ayJ!@$?=xz9 z{6&IaEA1J@X)ZWF_z-DMbg2!|GZS)+#`9NMLT!@=)||g88*9XUGj=DG(A1A^FQmd1 zpP3U+XYNrAmElTAO!BK)kuYX2=qMvj5XS7)L94nL)^Ll&3)ie6z!78!#eAY0)(4(s zUZNXDNlqWYEK%GvGSf^&1bJnt-YRw8AgDDg2;%4i61intE*dFgV2c53O_5a-v}%g2 zni8vKfcWSa8(d#aNF8Kf;0PaI&=BVlgFRf692P9&bo4$_=(tw${oqi1esDesd}QwX zX^G_{Qf$mH`H^#Xeo8k-&IBg%*hD0;K#N#fut1g%M2Y1ViSBS}6K8At<~@znA^~jr zvlHW=9GHDBzvvG{$0hIgJMR|17Puq0IJ6p!DJB9y*AkgyIut!QJ`{^YR8ApvpPPu^ zZ9amT@z=~IAA^6%;fZeS`_gG80^MJMbW}bdq>BD#pxaD}DVWvgq4YV~VQ@v)$p-r5 zU8(NT0!}>FsvW-&yZHBB1y@j@%B|T)ccpyM-;mj^5@gn?b~4FI&Pj9=6iq&k-4fI# zUT)b0T*S2FehRaLF4pqSujm31BN#1?Y;gdp3dq(qOA=>!Z+32`2rv28I}%(3GN@BG zQixL;D?xe)c9CDF{KrTV)|R@@fr|G#ckx|DCWQZTTQq2BO00VGD+)xFSAY>Yrk|R~ zhiPKh+PXiY?SZy3PK2`f_aX+xeP~zbjA5uGh366GpjK`D*a1f5 z21J@vZVq+En)hRCTPoN<&LSTS0`y0`>o}m46>{_$*>B>YA{17K2$aB?t4dD26>f}zPE7(x--duvn87!%lM#vtjC_}n=~ zPF2M}m^&ddg7-cYFo@+&7|wmi^0YEJeT?e#cW03`_HDPX1Y~FDt<16?-Cn1)FyTl6vd^Yd8( zk2G*_$1_eeo17XE=qqys3kRVacK||XDP@OH>pW%E$PnegJg0xk8fZai;V)#Ka7 z)T%}D5faMCSDi1|#AZHtO#^@I61$=`nTLT+d@NgBF!>dbp=riz8oW!?&cA37G|hNH zCp@LLx(R>K2@BO~H^H5emra6Q@rJO7T6ICj@tyUGpHC@|X>cb~974X5w_k0M-%N@6YC=(5C z_kYdcwmwqVJjA89>3C1iw3f)@;Lu}VTVziRmVOmzzL`n3qVt7|jocQ$v&{P2beLbP zZGu(N6kAqejcpd@xKsp92&Vsr_>AYQ@9*U1&V2!^oUU6S2Ua>8tzIa!!t+K!*DP{d_D!s5a zThY1nK2f21Gx9{mPDBK%y3ZQFqjY)XJfw%A=tvY?;1_#^or;u|*K`*~+p}Z~+;9P6 z9YqgDH^oQZmx?Y>#j_FT#?QB@R=1F-xKDUJo6V66+{=wx0L?Kydye}Yoz8F~gYAm@ zV*9(?F%IjK()R(EK&Dl`e}!&gy9jIoE$<<;Bu`A_iQpuyB1HbV>FJb)pqZ*U2yeoM zrkm|_ML|MT{GR0cSlhp-e@f3(u%#d4RlQH&mr9<*Il&3){ef&k{A$0XbX7H_t?W&$ zin;Nz3sQfP2~&?SLt1(YG>RtZ8|l_p{o9&mtYa|T32QgL(wVfCA@$0eav+M)Spg;t-C@t?+7(N1 zOKQCn7`BeJdDyzxf!sjFI%`)VPY}r32<)x>ov#8Sa_o`3aE7)f(EJQ3__1CO zF4S_Li@zmD*au(S&sXq1X>S7mwy z@?z=GvLSjBAB!c%is+}7GfHxZrK`4$fXYYt3n)IYy+ z0o(F->D0*0oH-2|`F8Z(&L??ySJ_+tYF1gJ{};ji5v$^DYEXTf^RQ;!tj>7;Bf#}G z{Xj^cExhSAdd^CXu5L%u%ZsSY6S*l~&hR$J%ZtXa?cB`wspq8`HS}c%HrQBIY;J1Z ztc#xol?4rz2{zhux5?k8?fj+n()K`$oX}Wb>ao#Gr&vtsm(Klq_IAKDXy}bpbe+t= zyILIK?p>SprS^j7%%|ATO#l-()Nz-8?z162`Hc;hmc^!PS*%J#uBsyWBcfTi22Tya zxpdgX(=T+Ts|%12#kfs^mzR6-57PXlhB5|O#(~sHuLw9@C-9kL@GShwutz&bd&a|c z1*RCXD?r|gzOA*tAdE)3n{oXK(#?z|{A%hc$kgrD*LCVNpdqvILu>4ccvKmEG3U7B zcf=CjI0w||AI?3v4fL|Us?&P`_3Xd4NktbSHpJS-i8`LeGLJIx=yvXdnL=|+p`OUo z$v?=v`7AB*8dfssb+*<7>Kf*!fyHDWY#&^^G3E1kw429@RI`~U1+Zj_@XPQiZ zG;^a9rOYVk7|P(LDumx(SQGUg~O&MiDbDFqVf|veAzaBt1hhe9B4Q3R=zZ>Mj)6B+})blxkW;rJ( z{s5OXE4?UMuB0Jsi89UqReQj z*8m#f{PmGtBwK^xbL5k-DA2-fKslsx_4N(E$>2Z~tnd1BfE=GAqYx}Sjg$$b1p3NF zrrW!Qc!nc;*rmkh?4YKEN5i5_rqg4M^TqF#S+%B>SmpiVzuGQ|m)UcqJ8kBEBE?{eimqcn6#QyuL2oDn>9y@SabSG-E&I# zYu_t%nig2*CVS(*l7`3N-8WR@R8EDUNqy7R1x=}53zz+ic~@7`U2GJIJH0h>4CM-` zpEu;k9^zUz|IlXP=BCF9-ESJ!GnGOV2&H=U;e*bvczz6L?H>Es@Lk_{Znk^%qm=ER zH)yt?Q{WfBB1EPfzRr1@S8L8X{>u6W=;pNX9Ntd259Wt}quk9|0v^H zDy6s+tRyVRn&}%;kL~BlKK2lQtW^V9yxk6<%(dC3;=N?Fuq+rF zW)T=ioNkZKx5z3$;mh?pw7u#R?!Tg@uy6I-bGFl1={SER-!99yxe4sY$#2VMh}&fC zE%W9_ZepvpROr!KT0jr2rG@+j9x_1&TyZ^*H8RZx3(RDT(_&|?qo+CCBt0FA5$u_c z8+@HFfaqETnAs@n{t*&DqN)r6kORx{9P!V~$DT^JX1$~0%qVQ&sa$XdHX^%#K+6L> zQB)S+hbi1N{KVYUi!#jY4x@6=7z&Y+Q{-Y$V?G*yOsA25q}t(GNc1%_zUlS*F`3bS3f10mKo! z)Ks*Wn?7C}OHgJ8AM^n*rl33YjkBV4p`zEZn`W_6-`5p2fmCGqrYa#lOZs3xr zLx7I3tV4P{ktibv!OA5V!jJ5l!kl$43zo9&Ufu&d-O00ktfZ8-M|xM6w%^gKd|pjz zUdh~vsk!;p@tT~{c5D5loi@fak9YuBs<9~5$Vtz|N$xtW@N=&V^IeVTPYBM}r+VdU z8s(e;-A*M(45$2FuiI&uz6mv|Pxd*J(8e1#ob)7wp~iff5rHr>LM-FXMdX9$7{{KI;lN}cR(7>?gnQyC|IeBqwD^uYK4BI?9 zx?0=sJ}g;l`Aq$w*B(w_%c1Ow1J=y^&KNmN^{7Tzw3TD`lFr0-mRQ_^L#to>f0%ps z_^68W4|ta>$pQh&* z%z5VWJoC&m&jtVK#_ zKUJUgw~-ccyt2Ama653DGgyzep67$so4KK75L&FWhTvrt?3z~L&`}W<&~b<&gTt<* z47o~Pt8lzUF4t%u7G+{Pn;NW^*k4V&FBLx@LmmM_duJ7tk1e_S)RaJ@L$7d*9lY?x zjIE)G*m*`#^q-hmYq>ltdZIyTH5&`uOIEbW`4~f4yp(3KLM^(7&6)R|)>wHY8{Z6^ z%Eso-ng4;-()jOwfv?hF6!4iX@L6_`?|N+0c2#cm1FDx?*h4$>w*3iSW>(=Dq(s|R zxlLyIBetIKR|1;T!=0>X6i~iojMg()F;jDbNTEy5wU~qDh^^eCAi#!`@%UxicO3_! zV4has(F*Q@oZPuS2ZBJSHVJ(L-Fv-9Xaeq>ZyZhrJkAH6!gm5&ZPIU?UNA;0NYgDD zyEg({tn?#^;e$!9kPO51g7kG(4Vug)n2hPVZ6_uwOYCRkFhQrL>v_GQpCdhzTidyh|;TYY=r~ny3fnE;149l7U<}`B(!lYKyg0bxM(O|K`P7c zp}p;tfsTyb{&9UR&Z>t{WJ1HIZzn=}CkIgw3) zUd23$9&dVxtFoh|V5ST0X(^yJKYnfoqX3?*mt|RkUNKLrm>VpZ80AM$0xG35u_79{ zRgl?IFot|(aOxNkc)1!N#7qB7P#3TXv!iQLDu{;G;;*=y(!s^^#9y9M+k^s~#d(vA zB@fsvo=qw+c<=-{eyB*t3|6 zNA@RQ(u%d3Guth$N|h2s|E6B-uw{KB>zOVNJ}VmppMqF-Vagq;+)6=Is7X=ACZCXwAY`;abQz!C6#=iRcDbC`MuE-66(q2qlh=uXetqU~JxtW+g}YCq5e z{oflV7oz+d8sCEaoM?n~0HFFMAI2WpRJ0=c!vX`dF9 z_dKh(=CgXvQ3?ox)i!*O%naIMH~^5X1Q1}>1cm#&aiO3nuu5lL28e@6N#MhSAet1--b#!JE5451%<{I zKKv@iaiW8Azg6>$guL3*AZRAv%P}DTE5T7qf3a{k@SAoq>x&>Y;KM+R`|!cb%*d2R7k2zJ;{ z9!E*C?PA&*gN5J|(8-M)(S)8>*?&;kp)4ey=RB*j?N1oZ*lA*Z`zC5kSDxyd*27;h zwldPq+RI-tyE4)Tzs}WlC|ntF^1h1Bkt!oDd0&Nl;`4j>g+B>Oo+=}w5_-T5e6Z$| z(9?4l*Btng_`|Jvuirf#fq#f;GJTMdzF&BMx;7G8f_FBJ!6if$ zrA-g=?si-Z*$RIsACcU!`2EArL|_Zy9M*kj!Z#2?*uYf1)`$(|2~Dzx8_B4<#eIJR z`z&Y4J+DC4ay6M(?P@Zz+STp2N;yV%GNZCu&p=FJ&l$ACgDLG7Pc^KI#0y|ddDEDf zbTPm{9aT@E%k&)Xux2}`K0oOk%*l$j&A$zX?%3zPEap zBOZzNDWtZ#ZLK6l4$n~l5Lu8ZRxC0WeIIN+TlKuPr!%%rpI-b1V8eEJfo(>)75nHs zxym`KzQ-Id(7w+)>02B4zT3jfaOim=I}riJ8p0{uC@b;ep%;iAN*$6=f!}Qy4hi~m zq(%4$gfccr&@&={&AC#?mjWxcqlJ~o_pfNMcu{Ywp8Vw46>ZR7K_a8Z{1_1F6TrPf zFbX4f2s>M-HwuN$qZA*PhydK`a0ie`veyr98CFAj(H?!73l1n*%OIq~(<4HGviDAj zseNCKlnVQAB|e9aA`z@N2DogC?5$c5u(7^2?;z^!yo`6X3j@tISjTE7bF?#A@B8+L zasUI&ZD5ZxyjeTh80ltsZGth;V|?M;UEkyMprEz#3|1D?j;Ix0XN%tT-UXYe%J1<} z6sDp?&_=lh=2YQtBtZJCosD00v$i;^e!^VGlUmVEZ2&p|{(TRXxV0uxv5f^CkQYnC z{+$?nrRs3CQ3D!M^loSxfP@J56-fUnj?;aIQ7Y;?Xp)P*gA$B4@{h6uuL2@sGPyx)s~M&L&jPpat5gU8f-XFW6E^xySvR@cA2@6OQ4dci_NJ z8BZ;$h#F4KR^PzEi8P$@<^>&VIklTP;0dsEDutO5v^5`srW#x8JF1ll8Ya=XfwQU| zz?6zy1JKV%?;FCepNFVVxeJCzfBetUh?wxJF(gq*a6T70D0@dM||79v--@zQn)^ht)gW!y@7Co>EJaKhnP)@*tdl zWI`-E08A*hop&53nckdg5&bZT5P_|F6x>subQ16poES>#hAk-cU&e6mqVH05d*D>c z8!32lPS}Mr7Mvta7kgUd*r8k+bMyfqAkGK=#@qZ9h+mymzsEgJiu0h91-1bf`ja{q z_?mHx9nJ@K6Ppm-TA%sgX~-}q0!}+Nx_WXtU!ivmyI{a(Fa)p_Pfo{X!`Gnar)djp zT4OyIFfGS!I7?u1g|_o9Pp;6 zuRMVddkZoeHj+%b5&mPw^vG4HlynlGMkfp}iS)POi7H7LCg;kRQ4&I5TrKrnXaS5n zRL2S@ID!*X0u7_Et+-0t8|i;sNlGq?tG;A<Ba8Im`#!XBPHSX_R*S7FxNXwN9<#KgYwMrNdUuHMVqF=v9!6hrTaDl z*3c|TE#Q0tVh&h_(;}QYdCBQGO3t-oWp9_@@BvTQlME1SfbnIErDx zD9l;d%hEmvMml!%5Li~_ENpXLFRc~+<=HgkU|TaR-?x=unl8&v4# zT8>BFv@FvwROuSD193DVLy%$$y@^dNHU<09v;CCM5W86Z zYlG%Gt8|QisraKx2(7@Ab3MVthP?oD-?{QQlB7wiUSfyoE5Eyh%0cR@NoZQ^s|RyK zV_AHvEi?$zOAbT0nks}m?z{$oU=H*~#PEJh3)xUcjy~jka`Z!`Na;MZ(pSI9ucc^v z%~=Q^_K@OC!e)<3cLTIiTPe19#e3uyPiw+=GN3G=?3SUg{4?&`9Q@d_p78H--@|HZ zVRbEFWAYE72NM-%^}z2q(I9x2yt7<@>ac zu(2)+hqsf!!K?BRE*VEdS{ISb19ireH0`OJWsDn~oLcs;|kH z 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­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%0ApKJ2hS9EoJpTGR`|D69n@JO_OPCEY)<8}T2 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%0D$Zc^cKOj=xu3A&>5R_Nsekat$NJ(m&Wqz~ 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�JV8<2`&fsM3KJFk|y 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 fYzWS?V?Q?@mb<;7NE$m6 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

      $cyN4|Ffc;1;>=OT6DkQ%dh$r4ko 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%0AWLGeLl{EZ795AEF{5*B-ktu!3~}>I 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≪glA%YtpiuusZM39{j01)C@{+ z?*#vCoSL3ci|u<$v7JcU4z3QaiJH8fkV%C`3n;86!2r`&QJ0ejMMXz{RQLo z{1i0m-mVGy?Wx|*v|HfNH}0gawqs4R=%;@XU7S{2t6%HwcF2zngN&ExEc%+HwgZM| zu>NY@!D*4)C7!e4OGf=vpP(;IiD7wMa51sZIuQOX!~p?Uzb7etDvA$@tSvLR#u?4N zQ)p&(wlt;u0%eQ#IE2H~BZ}Z-s0E+sI(y7m!(_X4;wX6rGSBXhWFOW_&oSA0WxuFw zh1Eo#{Lp5u1`<%?Ku+U9&HFTXN!zNyo19Fv?VAXcLJxz>h;HLgYu(0P>^zQg0xU^clK_zFyCp!+9XEhN$Q!Qh)YEtu=vb=2`tp zoO}z4J!eB_=*Fy$_R>M$&OqM;@6L^An!FJLg%9YBz1o9QC?0qZmebT5`}ARS<9blr z>hew2w&pq}27E;lg5Bu@F1A*WpV%{Tr>`nO+gj%G!AEVaPMo;kS2d0s_r(1at{P9_ z$-bfqyh)naMR(RN)Z5-UHpGaHmowCy!h>~_ za~hJ@PUL;iCc8l>J+ zYq71>loOKp{nqqpt;gYHLc(}Slj>dQ^U@?G)bcVa8p-S=q)VSOv#?i|`!@{19+ciy z%M>)4`E0d)dgGwqjfT75KXmdd{K)ZX>-MQ)Z)?Mpw z##O&qD0^O(`ZoM3RarYB{QHsHKQP(C=Yb-bH!0D=VupXH?`iI$isth-G`zrNcu;$c zzkS}`h_}NL{{JjyX*54VDk@{4%edEVtW7fV6-5#Rb6($1t65C zh||O_?i6{N*d<@&DH7%CT~9m!s1zt9jz2d3yFLuss2K>4=MVdf#mfu=8~(W;$qMR2 zY^KcfkPXP$U#$KaHT~q%@TcCVb0gAuQ%(WfE*Pb7#frieD+-5p6$)3ZC|t3kaK$cf zaDslXP&h>`p>PBGzP4iwwrN^{ex#ikqw8lEgVna2XW$%c1C{KNq8m@@!#Rz8b(g-Z z5Lb;Wr;fZ6gLTuw*KrA7!-AqN+357GoDSUC^Ipaz36z3d+!qg0C#WwbRwt{tc(^pPlUs$N9>}x%Rd%9PcX|@7gQnCisdcv@dk|%3Q9U?F%RR z$|lM+(N~seeK*PX&y(60x_xDC`R)>5*(GwF>?@mWeXse7HP6N=S}59U-3)Lp(!);p&uxo$!@ zahptlM96@tAu>c#=snPBoPWsxtB&xm%O@egP`uC z-#A6@3WVLwd-{CStd!U3;?a9)^R7WjCg*NGIlp;#Ghg{Mt<+=ss_ZKDwR|+b`PBU8 zJ(jmNX$rM%+w zrDkuC8#N*0WehBr{oR`s{g#5aEt_5ri3Svt7-kRn8jM zo(?H>B`rfSvfrwkE_JMNdIJP{QI(|6cQ;FsJUf(vx{h)Qqz7~8uvHZV_g#`rZuj45;x%f@v0$QF8clM7icRw)S82#OXTauy&T9> zlcA7}nt{5@8U5NRy!B?=HcpIBl~8;fbMhc4z4*t-VRdpyDaBBvSCl*%7WGnfiXT%S zv(uvoTi&q^0ZS3Z{I<3Vm(<0d(I_Q`FH(gZmO$)X#D^wRB$E!+XLQhj^j6^exb~2E zCuYB;c`LX=`F&(3v^`*<|(o*0F|60yK$p8)nP0K;QU;!v6fcY!vV{$33m#LYgEfCzu?n4cFnz zOP9`Emi-o!toU0dIkv8X%?XWNPQEb}fToK&a!Ln1bD8KFPX9msX4s~7*}Am?ScxrN z9f$FTDTAa=qvUk4NnIkFHv353RkeDt!y9ylX&NpfUA3Xmc{6eXLSKD%QQjzs+NYcn z=$hue6WEYBzLjfxV!pN|0Po?d<(zHM5&kn@`<6`i{i*rYn@Np}_|*K-4Go`#o6z5U zk@>c1k9CP$dIrt{KG^#vXTcnyRl+@f82Y-PyEwk1PpG_{oWC;AsgU)JIYZ(u?IAT8 zyII?^Fr9M`r30@0IUE;%|YLtuIb)L!u`|rowDrLa_>oJYwAZ>_-E_~`t<#>@GWZLKg$oz=UI9Z zq3Zi(={s^??^C5^@mtj5 zzq>~9gD@>`an_FPqh{zi7EFRrCXN$GQaMHR zD;#11;l~XYmKzKe3&O!V840bRPOCR`rB*Mm@6H_sh%zm7xn@AQkV*QabDB8qdSuOu!Kjz%`z$MB6}P5?pjw=H*rmZ$iu?d_Vj<+My7n-IpxF4D{n zSrf5)CB+0xWPSoL>Ye&dq=Fl?&B~*x(VTSvpw}MjWHWflUj>)xydoDP+ylRn6{aT7-?`XUnk=b*T z9sp4PU_bDe>;6l@=(xGS=c}!M(^^xgM%%H+w?LcjcV3lS0M154Tf04Ut^BZMCm`GY zO99#I{%tV)ny*Z8nsLM+C@S9-n#@Aw6P@$K_*w+P`X$;{L}6fXz_SVs4t>+MJRt1~ zZ#GW*$)M)l$5^y2`Hs0SYY%sD@9o6j1l$ ze_xe!SS77O`ydXFt3uNxa~)Dbv-H;c_5|9g`8=*pipr=vs)rSh}BllQ~C-yIJ5?{y$HC|vA9GB}Ks z;CD~RYhN1Cb`1J%{qpo&aPnHAJs|UVy`eWCYyNu^!d)@=V)MHN#i5dd+XG}axZA7J z2~PEp=y}>#WEo3l$~Gdtbz{#Aa{OVp-Esgpu^$FcX**ueKCGXC#nAjB%5tbd#DP-N z+c==OvR3gs3>GPx*Ikru(|7yckScbdsjTds^Jm2m_G|vn(O6C)_~HoVwJk}_P`vc! zj~sQ=m_i;r(|r4*G!N|M?bELNo`S2i=5vbXT`g2APWA*FIIsJjLVSgTq)}+?pxWGv zuR>P?Z;!Vhf+84|2j{#22cW<1c>s81jG^CANJRKO*{?Td#AVWu4&uPA{aDoRJv1mw zfoO0%^k+WMcSD92zlA9^6Db|)FUiuF1Z~UWlt}9?%@<*4`dgv#@|sb1Ydc=mcAVE6 z`?VcM=loUk|Bl}?yWs{zlh6pOIN0vK%C~sh^a60l2lkplB;3$_#kj3bQ* z??=R2AN_(e$>+RWAG#%f&K}QT=4+WdDL(`H)FtZ0AJVkHz}`+s*Y#6;lZ(hLrFYr) zZ48GV;1^Ii-2tUAptTE{hu>>h!_M)Z)NnD-wmhdcA>FbGW6e%H#I)7j*8VL=^G7dl zTUcD%JNQ#CpGK(;gO|Lbef7y5{YZ z`-Wt#bw4-kqIMiWHQzBFW*x{kYI=yk!lpu$rsd-Q;dvljsRu;qptMCOQDZ!O&><1V|3dMT68iw+~w9?R12k0xm~{sBsQzrjTtUv+}I) z4`j)Oh*Os=GvwQTB>VuN(AcXF%^TmwIsXQ0eq4L-MF1&ukUu1g4b2qHE$j0# zdu-$FFSF5Y@afv7%LP&F_uu!CwV->OJArAZw)x%jkqBf?+wvWSp-T7SW*xqQH-25s z4KGek(D&n~s%^Pc`^j#t;Cv`ZV_=cESOWeQv|W<=VPLXnGR&YSIhdOzoB+xZ83k}* z3!mW~SAvDuJ?{i_XRDVgV4UE8IpCq{fQD|II_ubn0S$NLz^Md%d6tk>jcVn~3DGZ6 z{KdJH82!kS#i@3B@6DQ^J+ug0qtKI;E~CM%4`!lYL+dO$bp#}%EXgQN&JI|#7(P04 zr(U>o{}8E{4bDUYTlq8FI)HnnAlS)AzWnLk`Dl3Z75R9^uI<>V@;S?goX4;e@xt42 z0rv;kaldnlw`00q_=;e}K7D7qdlH+i<`o}W>e3#2fN|7chBKCaUTZa3A%BT|3Hb3) zxXCC*p>WIe+CTs!!V&#w%Sj~+o>RhL+jSsWZTqQ2{XEsy?b45)Jz#$yrH20=I|@bg z6|&ml5|}LzLI+O zj(W{@?(tQp+q>9$dyT?_{$!Md-oA^7iP`70qRv|M@@)mIrC5P-xUy?A1N+U)!h@WM z#V@P%*VG1$)3#2shIQJ1pF@9t^vFC_+V;0msqCTuuuj^hPHwajG#0j!<1fey;|*6IrW9NPpTXxmRPTR-Q{+t}w=y8>;}mM`n?drw|y zIcH6lAn(B2%v6DWBBVi@lcP14(l=$}(KTkk8Z<=BTiAEeTQ~^MD(%#F=jYjhb(>Pe zg^MUAnvKuX7NHQmjR$R7>nYl9|8fDU4Q)qBx_;KT`(mdLi+R0kx(FlCoRvhHN+QI3 zr~za_6}mnA0`+TK)?Saj=){GVVXLRlP?PHE!iP}Vn%12|(%3Qk~_ z5!E;iXU)CcvscV9mHm;@gZgXigvQ>OGrW_2TPEbtO!>&#OQ9_M0~k)wt}wIbIM$WS zBYG!0aW|<>@4w&PwTMj|+C-0~qa7aBIrNmw0q|GZ=TFY}c3#vW_=N|7NtvtuP$IZ_ z)-KdieKJuO1rq* zC1($5-ai7Y`y2Z*$w!1r1Knc3UU|@1Hm6pM5WnR|{i3!N55itlV;7Wa4A24Q+rGnZ zg`MB}H>X^QAsHw>;_*TKipvFn?7McLMG8TVCfBj@QDeM;~2fXzA{Yym)`l+|< zKlqozgKUvVX`eTEA(*Q)!{{_b&CF^#F9niLTx1kQJ2Us`JHdNIH|q0pibhe6*XfvS z=X`0p4*Tg;ZR>7*-xwWVo4|^-r3)#h5a3*Hw5^j>$@q}9w&}bUb<&OUr^+tk@oIK0 zLUL@J)`(EU>a#}1_ldWHInm21RjvMJ_=|v^kAkLeshv4<#J?7%BRl@2XOob=S3d*Z zlwA?}76Vigoj_(tPTB?wvD&j;W%1;=thW7R;@aG((j5|?v)o;mr)^Ep#n3NfvwQ&B z9+Sm{!S)RJD*xuY>s?>rdwe8_9QOr)7fr5gxoAZQ*#=uSZ;t*Z+)`TyR-gKrdZ!%m zDK+tQ>n(>Dh%_WGU4~yJeu@Xp!{55VCQdUp5>3vWF~^%@Yl20_odSN&QqztoXjgQJ zg4QyROPB9)*BvA{M^7+8h8f<8exWY5oae;3T~TS}ui(kkw!f3Owuxn2yWt;}&{HeZ z{wYhyljhdgVZy%M^6P!9wuN-=%PkJM=fMf_G~Xptb>J2+Z!#Z{)|=#D{dA zEF2Nzw_Kv*UgO+$R`6p}ma7pptmW<~+?;aFK}$5vU+l>4T{pdbLb0!CI>s$A&f>@t zbcjwTJU-|UPElFF!!IKnV8rqW)@l!ne$0D* zV#5`Y^rwDWaL(55$`wUeDd9%a?TA6ygKH0m9+dAmBU#{DT0v@^4>=buBRk3>2rHfI zdQm1eETMK|WgeC7I=0M2Df7E_SNrPe%^zLV+C=HmJPfn&1UI2Q{K*w&KzL#%OEd!m zGuCh;jvTrSfcmseMa&>D`32Fn)L$=faZ5_}zPhWd59~KVbF=rYJxf`c0M8)yXLXA= zO7>v=Br1x5PV+{Gt^Pd*ueEm4IKEq+6HBZ0L+0g-FSLzUYFI7zrnKJ7G`FpwWf-~b zGLC1VvV*=QpObaZmF{8>tb#6pJ4l*q3;%~Gm6oM6e-!at*F1dDbIptLRm-{M^UfjF z4r*=UG^{csKYKC!`<8Rh%s*$VcfnNUp5p)pP-Wba>OG~2i#-+w#^}o4S&ubh5RgW& zo^`C{oa)r$UEV#y<%N#1XH@5}q#Zc4S6s?3Sv3)oJTPiQ#o$BEhZ~EW-VGwZ{0U}X zwh>X3?{n)Hng7ggtyT7cc-Ry7tRR^K4_;w!G6$o=OAjh6qX79uj6BFM=&>u|z<);> zBxz-#woE=8A4GKA(PN1)Jy0`!$lil!X~{7D*@@on>97_%*$VA$yU#sdf8FnPh~R=w zHG#8{;0VN)vTTU;QP1J7~7jCl4>M z1ZVFnGc7S?gNP~DGAoEFV!+bcs(6SJ6qG0U1=aM2KWpDjXaw3V?bY|oTR`%-uMA{9 zU=P4VAqALnBGrv9LIjnXevZNx1r#cLm6;Gh_9wshy=qpv`v3uL?Cx~l1(SL72dlpVGK)KBxBzCTHu68DvpV-!N^)-N`u4SfPKM) z59U=cDyCe@@0N^m2Hvj{osy|vVc(7LNf8h{q*i4|!e2uyv4bIl`nmF?i0u75*6PXu zAtoL`asSQR*pDQ&Qo2ZmFsh9M+Li_hggL@||B_)V=6eECg6DWG-m#5l8(3seYi*TQ zq8)|R@fHpsC-h&WL$!KdeRm!*0wzRDMo6H5?g;%|X0Z`8+K@4(894-`nkl<};%VI6 zrdw@UyuF+xfya&V_LU~ijWv5M_C8Txh?wTWzJ$0|*mE(Q744*elEv3cdH8wszZghykaB z^$p{Fa|IMzW~#*V2m}QaPCj@b3g)4AhXqgf#UzM>;-A$xfbuIYL~u&3j5P?~$sZ91 z%uowWDhZ)q7M{hdM9*i2d{V6}NLhV%F*YHo)e;e+vH^py*&BLGWP_lr>L}Sj2?kA2 zisMQ)Fhw?4OF`8phwHIu(|8z-1x70qpRr^%pFg$0+a+7dUf2`5Pt7Q5+&=Vu8?yj7 zTRl=@kFEYI&`exVuFt&MzFQ|xC-)Wd2q7ivlJxshLPJO; z7B&dKGtw~Kc!1e!93!2K*rWaj`DDMqKJp1jl+z`!@#{yVlw~6_%F|G5@`F~JfB58L=!%e1hDW57eMS)o7L?hKWMJeXrGQU<1*8C1plQxmjulcK7I+dNMKsht z*2wgIU4#^0xsp)siE-{CCM1FL|6e4OJ{ac`hKh(nr^ZSto<6_(My0ZmV5b4Ry*l^* zH504Dh?MdgJ(E!sGGU6X#o2Y|r%NeIDTb`8Z7SjBA6Q(iZ5FSE#T_qyYSmav)L2(p zV}(b@Rb0G2dr6WId-~*CHq}Bs3mC_@Att3n=TJ#0v9Co+nKM$?97{@B7?o1)W`GuS zh5pD+ii;>6EO$&w=}TN&5EU*U?K!t8DP@wr8%32!Dd&`@a$HKm!gJT(e5LRD{w*%0 zNM+$mf{rm#N=IBuDeXgQ_`C=xHRiGr0i|MTOhCDDWeog~QD)?@r#@Xkd1=e12q;Pu zjeycoe_w1Rhdw5t+#&*sw#i^3)GBUL=5} zJ#A4z1sM!MMa}US!Oz-Oq@sZ@k&au_^EQ?&^{)eSOJfun*Vp{q|6=_PbQ3&PG*R7 zQe#Oc_&$G{bV9Gf%Y>EWdaJ%i+ftn%4ir&^m?srk0|cmTnHZHel&nGFwXX1V>oX^UCER(l1c6El z=B5buOXkX;J@OHIC#uBnmGtE2PFy~uK5wJjzHwr-e0@xBFGVeRNj#Ts$?^_Q ztap2dUG)2L&_6)~`8yu)9&V*c@*$g^nWMUtbcHt{m@w@FWo#-!?UYYgS9?kpsf?f&0y zrQRfA0cu>qf|P&a<9;*xy^wr-{SFw-3!JS*%*hB>u%32CMl+OzIetJx|`P%m5VdHi|7%v3!HQK_Vly6 zA}z1T+9)X?n1EBDEquxvD&tg821&7n_j!l!(OR!!c;UZ#hgWK?*UIf%0#D>K!acUh zCCvOIlr;#?uCG&E{vDK7-jM`>E(_(#QS_?TAuLbx_TqWo z`*Nw`WhyfkWf*IcVZ_?MKF@d8I|SC_jW2JWQIH|tIg-3%4sYbZQ(;m$4&!FsPo-Y4 zKn9Gbz`KuRuI~FhH)ceD4 zD1>GG>MNViO?U2mTc`}EKzEAC=tkhWHJwK+>RRj7+;kV*NZd#J)fwG+j(l$*AvB(s z#>&}q?Vc14n7N}`{ZJSjLmi=axbpro?qz=3^X-J>pfK|%b2`~dUlF%AK=?+5 z9EjQ*W*tK#))bw~SAWZ~z}}duNR5=q6l;g5lb~VcE`N&)WbwjPG=VS1p))_j9|?_D zo~t|WI=hjd0c$k#1xZgVvGWq~nXr?kC%I}Fi0tw2%Je2l@s=zq@!o9PxLGiX#9a%1 zQS`@>P{n%Q8hZw($nQUoJ%d=}`Ma@au!}rzjy;27IHsV~Vo_q2NQNY7%gw10ec z^~kH_=z*#Kq+_d^`D1k?^dS@DZA>EMlb}EEkQ1LJZbI|=aSVOkK5MoGU+&D)btX@w*8KDUk%Q0y|~~bA!=SxRvH)= z@b5UMZE+wB<6U2ouD^Z}kF8$c3cP50eG8^e*LF0&R&q{>V5`QVDmgLE9@xH+k7spo zqPiQ`#Qj4kiWN_wcW1lX?kqlM+c+LiqC<_7^!JI5aWr&-;@Xa9TB*lh6@js*Zf(=o zsm^;5_IR(>s&P-Q46SVqL&mDFFPzIyTI(b%nr$Bn`NUzavcG&xKOmM{ZtG94e+izf0pZ6dsvIV6m{IJUB$kIvrFiK=ULHp1f>Ub z60cBZyRb)y&)m3bmq=$!bNiz7=3$5Spy>1Uofmh0zVtBJk+mJW@bvKim`bq+X9Q%{ zjf+(0_r58AD?UewvqzRLD>v8n5Y3LRfn!ULhc@tq3{-2g%akeSbM4_r5z?FQUBILW zx*O?1ku%sVm?65&{tfa+(v0UXpmuFXN3nOvrEQjYrIGZupE9SdyA=Pg-O?3$ zg1620r9;Aw(;eWE;ozT6C)CO;;zq|(e8+Sl-P(@)+1ic;j;xS$-+TUQ&lG`r6wgd> zWq;^eC3*F;*s7?^Glj(=dS&xRH*1^kVRBeZc2q5Qa|t!Ff@`tfJFbISZpKAHdr%NA zb%k**SYRuDaWb(er?@_;Er$ZL8DQzVIu6Qb-=71=lw;58sL5RPz!| z8a;7%wH%xA{(;HD{N#ULdeZW?z=*!Px$`aW#Tsq1u#L^b1 z0ygoC_Z!X4XfpBK@mIc!zr||XYR58q8=2i=PExo!NrA69?<3G-!yU@l&8b#KTmJ=) z4oN=*QFss7W>mSvN#HdI+6-~`L+#zGC)X)oK`H^OO#x`8)n!%a+(&KvaJpdb( z)8NQy31FzMoL-;_16Hqy)-uxb8Nhe4>|D&5p|{ZNH4jf~n7rNAVRMNG*(PB%WCHDb zTDqjGp__TZ;PE5?7W4G3i(S6k^OW=ao%!{lr=*6!TmHv#nYiZR`D&C}erM=+fHAFv z?xz5Iik{-?C_oi@nz`BbGv>v6{!Xp6opRpuOUK0%lH3{^l9 zpR-$oS?luM_PIdV^_;_Z+jNd0%-V%e3T!+P@H;1ZI}(LOK=W}tG)rkrdxCj$X$&R= z_b-{Q_U0r|G(KYfrGksse!)8&sc-TQCwcxE53uG9H-J5U$_MRv@K8YQ#spv9SGx0N zV|G6tzI?kdn9Nk&Vha26Zr~+lz%-J>uc^{Ibg9-lg${d%rq<61-N6wE!7?S&`75^7 z&^MXRcpcyw>c|RjSD0$5>ZMc{ROdpZ*P$z^fsJMhB}rAxB70EHOy~#k7vaGXks(em zQL;;tFRj%rWRQej#6y2b5Fm`4980NmCv0>!H}*2xHipz*n98~0sGXCr=O4~G5Y51- z<6GwZE+lq3UB|$6us%zD_B{gDKVH~pe^X8p9w89H4K;m3aFDbg$q29Y8qq4BpS4FQQ${95j+!fJ+W=&`pc+L^Eich60%> zJE(2Cksm^0U7Gb_OXG2_;x*oxeMs|*(~gn+thj@x8sxsdRbmp_6JT9N8z~t z-=$WB9nKFp*L_ak=Xc*gyfkwfCgxO?GJ~4hCVE3?z8Kj z@)y~&dm6{*-2bd|-DUnFNA$t9j`P0>%12r64%O3u$ai1EgM}qx<(32pfzI)DnaiH; z!ZY?z4Lie{`wkd3HS^jNuVisR6oox%6~RI><(ye;JY%c>jG(7V9G&W?%B*Z;L#A*D zCrZ)C>h^*ChRpsR>vC&G1g@i|+?8k_HB7%E~Ez5?xHan`|G>$rj zr^CM=X@KE^SB6Ol`-#pT*6&qM8tl)#X(L zRxURW(^*cTVLG~hu9y-f?g5Y??UQNVuixdZDrzaajk$2|37#S{T?@afS)4KdCq zv$mcSz;btPfj!(Sd$BZ0f9Ut}eND14RXLw$2E0QbHGG!Qqgb7NFY23G{rC4Nmeb=Z z_I6y%9`?MQ*~tg`RNq6QPI}%Ren>``=y&Fcofo+$T}LsWW;CXW5zjuig`HoWzq z3N76>+j|i#m{Ev`x~)brM--a~2d*TIVzuqyYai`wY3#GTgEH>XZqE8V-UU^(UZ0LFGUx_@LmPpx%NhO5n?1L{%7=h(?Gry! z&@yD*?>3D4TbvyC1WK3;ZPQl-gZ!FDIKR{0i_Uc!{$#t%>NJjuyubgP_w9>R_T>hr z-UBMwufLYr4RYN0M)+}QqwXP`fwNz0oKTy6e}SX!a{oP!*psu)%R|k|fp_!=BazhT%-Ywe*0bx`$+9-FhLO8M+eCt0|hezTd=;9zEbC}`_* zpje?dDc-(m$R7=tgW~kpTHcm%>Nn`!XWxWilwi0R0%_&YJwe3j=8Es$%uA30<2!vk zOAL7+A*mdHMM5V)#Rkl5i;9I7P&TF?6L|g_SSU`P7N;*4FX+YT%lNk>3eB-J_gRKd zRZeI<;n3~{Y)A>`<_IuL??Q&fc|6&{ImvB`9BGet@GKmzE5HHfT)@TEb^uA?)^wNl zkocoQos9)la8HK4+gLu^-bG&L6mp%bo0+h49e`IVJxLN!L+&aPsXGji`JF|)N`v3# zFF%yvnnV(Mt#zy5!Nut*{@DSHgWSzDoGq{tUz*3TZR_sFqs&FLg=^|A4W}x9QJd{) zMNpdw0z;I96z_>?+577V$K@#auuJo74~eCQedP^Y6gQ>KCm1IA0tS$dqu*NuIl;3R zJQTre(&j}{+D@_X_7)%vxZEsflxi7VmK>-N74Vo(9iHzfCUsm#QzSC)rMpQN(j2~j zY!R(Zk`elSD_01X6yBp{xTZ$xUdDTG$I9ssy>-@gdt%F5bp%9GXGYcn_$oWcpND~yHF8B$p~In@LPbA?lk zg>Gx&tX!4k@KwLK>5ot&t@V#G`off4ygvNS|1{{+0=pA&#qV4ZrC)uxpTW?fnW5`O zV+uOuTHV=%XhGir>2eFC%T>Zd3#cy(=ZqZ#Rd_N+hH;H?!>Ept04SOGPn5CxR*-$f z^GFz+4f{PPDAGbA*dW9Lp^W0uqAB6mSv92w9?j3GeAMRCk3Ja*j?a=nx8w^K-L)fP z^RE;=H%3ABv|N*M4$_NK{Y%oS%y0koB_w6SU3TA!Pyeu~aq@tuof%tRf*wdCoi5v` zwUt}e*NUer&G?DSatoh-m(QutTuFWYCCO$(`XR1K=39TDqG5BJ)P5SXS?F4NIJUw# zypUjQgxDB)Zn#B)QznsZVMDq%kS5f_e9xr*(tfzwCqmSG#Jrmqt5ePE4WR{2l&FDK zgTHtZW$_RAW6P+rnGgQ{rAV+K$@Y_1ZT>~Li<3R=HYe$pIk?Jf;9t2SNy`{#TO_tn z{8;XO7FLOM2{xQzKH07YU@Te1&ic*c@zy#?JV%g-Tvuj~e@TW;urVjg$mHa? zR7BPl<&vOvbz+72PiO<0b8Mb;|B75%E0ornt=8-n=98dO)!I{$b-5%uF1l4%*KhOI zJCx|zYmj8~Kzr(xul{=u-+BHh{?~(61G&-wZLc0zVcMc?%^vbhHxqFzgAExkBd z=lmWiGm1!oPMDT(6U=ENH?mI^olg> zBKmDfx&&)gOAyR+iNmo0xVx4CGPNmy%xg3mx)JPY&Cs`G70$h?*4z=26BH7~cqCc5 zwV#xI(}fgv7a9;@y5dX$p#twqVizRqZ~K=xVLO+sc_R`m5|P7ZMWmX`N>kN53kxTeZN`yPQ?Cd zQ{tgCZ;U2_PBZ_q*#cNAG3~kUjI>Bz^cchn`!E`0G1jWeWnoD}tr+$RtDV*6*(AUd z^YZ8Tne$w$j!4^`uf*E!W#UxZk4O^g@Fqx72J~wtQECDa{jm2iE)x##TeiAu;r%$@ z5AAVJy%YZB^fI_{^GaqbB*Z#e`-H{kY~iP)Xy|{1f41^i)|4JAISBSnGZNBO|k)^a=Pnw%%V;_^BqI$)#wyAPmrxAdGJ_DP~!h z0#y*kT@d;hddfA=wnfpC5dKR>HOB!`j31=ys&Hj?3Wkbr4=|K0cT=v~#$#4{B0F4G zd%Cqr9+#Hi=-ex*4af~){#A70l5+eJa7fr|6qR@f9g~U{W4hDYJ`3nG;Wt_xVv6*D zdCRqjB8)_9mB`7`nW`*1ok?ZCe6jzCvic=J3z=$Xxj8fXWo-)Kx^T_ z)SY0VnnL%~QP@V2p;N@D+o%Xp(cE&g_N2l!)gYg8b0R?CUozJ`aROkNWBz-q1q_nx zOyQeHwvb+|Z+)}PjQkd0C{B9jmjFYVg>UwL1TfGE&>Y$Hs?#x->Sbw?JGyu#yHhXD z5Qo>|Ed9PDeUe_`3>H`*QDA`t*r&ZzVIPTLUq-h=RdMw5ip=bN0a??~k9jMICkpRE zugb^dlP!^yk-1Jm0X6;=@RX|@rF=eDeJ<;=43;_u5?N-ySB+9Wnj_{s?2eIoNgQ}A z^$>Y(UbTJ}Odm3j`9}aW#YPKS>s_)`F+9Oh!H=T}I#7_T7sTKuLCDX3hAa>Z`62W8 zsvPOwQynpgeIE6;bWhVI{$FIBJG7h&VQ;;I_DMx^Ey_b0GSpJ42Z|6aBHbnMl4kED zaQ+&nzX(sY-M0oJu|hi-m$4|x8*q=5GhdLGMG%B^d%~1OB)oMgs^k;5Kii>d@V4>1A@(GdZC*qia5z zA_EuXVu^bfnZJWS8wn5E_MztcEx%WpPqtWlAb>+g<)BVjNvFP$vqEliL9Apie!G2= z&sC5c9wg9T=KJ{T`)5zhJ`6h4in}v=>#sprL05~@`s-K&%wIf*B^TTKQScq2I5AQP zGIe;})to{wR0FJk`c&E2DT(oy>Z zelEt57OnCl1{AB^@pb7MXLW#S@)THjedQ9S=c7Ny`*3Nz4}S$Ng+FZIV)Zvk%I>$yDpMfafuIg*qn;FC zC&q(pR6*=3K5B>zISQJb>tK~zm^lPb&$r$%CFa25VR~N5>6Uu+5_G@EGwc4+R zu5w`*qx-cD#|vw}HaC^q>Sy`U-`NQ!sy41sv|Pwb(Vcn$%EctJw^+7qvS93|s9GIo ziSdQ8{h6kZ%5UVaN#QJ6bGFTMyT7qdm@}ELAH4|ZDdueJ-&tN^&dBN4XWr7JK+pJc zP&7mMgMgP$n*~=Kid30ji2kM+#RA`GsFU49sHXiGBZkvFm9he5l1~J*C}~8VFB_R{ z-atzBe$O>bfA|J^zdCKz0KKm^zfrzJ6l$JEL#;Z<;g?OC;Qo|LLMre#FYmD?j8FrSKPh5gbAbJ}Zuwn#XygEU~8 z)EauqLaw9m#s5T4XO*#N124qzg@ZGYBlPs~`#*)A8kY&S@K`@v^wfae{1~>l^?yrG z*|II;#?Vubbgwkty>Fh0p^Sf^r@4xr?ve!-H&bh|4#;BN5~ruo=;$`Rw^VkZkjs%B zh)Ti@nT!$4A|eYT$O*+nkehhKqM7T+&G%dGp_mW!$~u0np;;1JTl7-xKXh9by&MOq z$M#>At-eH{H%>TV0@VJSEBkML zwNdi^fXa{Rj?st0!EGswAOGolEy4%$XD*$3C_*9}*h*5nmAOn6ujVe3c)z%!%gLi+ z4l|`93JHZxRce`Jzc{B2cn4DSQ~pIx^KO@wd^cIoL0M#KaJt4_X4{7`QLhDFGX@EW zdLRSy4*D_5DhqsyJr?DEyssbl@o5`gHCM#*b z<{T2W4di9e7?1yJx%rS))d&` z=sn8QuBf}^91_LG7r`>~wftU*l-^Ehv4hDcSR_$u3#wuH-dwMS5_rd94{EJ)tOmP; z-}ybvh~yi&!kDGsq)*{k2n>jkV%+1*ezU$1t)^amK_!d1z@aU@>H^8G@Z#ex}65C)ZG*%6$K;YV_fEv4A~9(&tzKoNb|7t*R%=yuqY`C&M3n3KP@57$)W~ zZ|shk&ClQTZ-wYly`2#?}}0uA&pNvSXkPa}qq)S?KPG&z=X z7%?OzcAsICrW$s=D2v2|{AZ~Lt@9t2{sN179Ktwd=rXT+<0Z*(b*E8@Jf3WL@aYla z90l(ahJ$#zL9}4Zae`6dG_Ez)IrS?gf-n52WFk-1^OE&pOPLGwNAUd>6T2VYGM4db ztS%+GKUp&DcazL#JGVz_LOBhR7%C2x0zU)Gss zYg&*_fkQ>Ea6yM)W6wIuL|LN|rIa%G+sr&m}a};24@-juY&$ z`ejT=`&5i<1&DaJ#jB!*0JwnxB|e&4a@B|(D0BKQ!de*CAEd%oK$ zH(rWisEtBpbUg>i)Faz$WD80V(aB;dnrgWHR(k>2ge21`91xZ(dO#A_=mE()Eaflj zZqEH$#AXjCRp|T7&%7$MmwM@*u$?QNdbO*%YAIk-Wv0^$Iczj+UPWEj&OFm-*^#aD z5mpCd{j(eu)tauR`r#X zFf?PMs~w+?WaCn{@E0@p%-Yr3p%w0t0|3+yWtEk52-X#Ju|hhdBWo<~b`MB%U#2uMXJ9^JgS$hM0g>|w4h|#oNMG`7i zk#P23291Vb*WyXSI^C3GGxxENb7eCl_LrMKp$5GVKDT}=ACc5^Lc?TC{+Q}qSUHm_ z&XEFI4pP~|-(~pq>B;i1$`nWJ@b^c*5!aRQW~wB=9=9r^r#`%l$7jHtqzZ1fQkJYN61MC5pTiV>GA8I@aH)pCUOq)->~rPq5fjHC$m9Jbp|pNXNf- zOe~ry^nCW1o|70h&m{^MhQ{iujw*kP3E_RQ#<|kIn14R8c}{<J#e;1e}_q5 zX8x8|r30sle_w6B{1|;0HkVs{NTm@$_-SO% zI*=WdGlRCPS4gIYx-X8bSF}dGDpjwNIhMtn6>Z+as4iP(aP2n*?WH>OY|yvmq2R>8 zEH-KkjO%3;(b!j1EUQ?y%-r`Qj3;-ptVgQNQ;dy~l0UP;Jp8Dd>wCV-T+0!h?}$f2 zx%u?B6}J`MG|DP6dOYmE$}uBaOHS2U9oeU?5#25dth!XTiGsicn;H>e2ntd$?1g^H zs54J%o6c}0Opo7rgRX&SK0XF?RtG6Tx19h<`Lgn5`mO27%gpDuZzrB>!KBuX4T%On z0*R1VZ{No93iJA#L_)xm&*i_(1xl%4*E$tEzec*xgmUw9(Pd^Hj(tb1as89WBF*=w zYqkw;F=CiMy<3f4@Rc?7Tj136-WW3vT`5dzUQce&t5m(it1rrDRpw%y%=PK35#Lh#pxx8*G4&+$z?h9os8VYLFoJOF2ah! zzf`SN3E_pwB`leUGTsiC?o1aC5qYzKf4Nah&VuwTa2sAB3@AxDi(Q_1$tX8}A*xxd zO6Yxiq`&wfvPKsu6#<4y< zmjR`hnv=vlJIPV%{j)MtgpcNQ^kLHcZFc}}_c({HI+rVpuTn9M&gnT9o5CjD2Qv6GHWqTp}VE{T`D zh&f1NE|T>hq_@hP{UE)WOB@XEQDFErV|F@jv7o1Fwo*AmTm^ifqlE(9%D?h>c>ox& z%~E+vS5-68Gz)U+<-4M@yg&VGK(6RFxXt2Lw7CHJD(|q3UGL`{x+NqL?XP29Az#XcB zYCFs^r-M;djhtCIZC=3>9l}-0uKa`!*m49^daO+%@h6%1bO9O_TzK0hRwod&EZB_# zY=Mv$g*-<$wH=J3n$lXAP!rAlf;TD*&Ne|m-rkY>P<7;9C*M z(bzntJ>NMO9Pps@#p9ZL<=QN0($8|J(rAks?dD%8h@PNFMAL;Jz|Ez3E}^uDRCwIN80}QC|V>Vi1uHlpl+{p zi|oT0+}#NB!CYmI0TV+CqIL%2q?TD0-qu-%xg&c$oUFV!E0NbQ?;L-brFDRVs}1T z)pyC`aS_J@!rO~SZ|Pt?S%3zDxh~OLf~~{PcJw)P;@8j7&uG6rFLx>Wx!3g5493)c?t%Cz3W|y*u=!u^eD*{G#s~MLJ3unwJOwp35yRduWa9*b##Za79=V zQOr&N$zH$a5ePro^*BV_ZI4uxn_u}abYoqu9i9$s+`{>Xx5nWGvg#e4+%R?9Vq{2o z;aui#+idQ`U)y$J8JF9(HOSMlZNHSuqHTxdvS8aaOS#P3_9eO8xa}Kq`O>z{a>>~C zfm}YbZMJ-V)wVn3GIiSna&d3lA(wI6PI4LXe{~z#2yK}|fuV$d8T|FHe)TI3Wz6H6 zsCh5Y-Kdi3T;N>7zwA~&Cr`}o)QUS>hAS&8$Gyl0iDQ&a)~DTk>UaK`zg%+5&AV$Y zEI4;v;GG0fIkm|z?mPTWLQ#`KPTar#T?bW{rHD2u%UJHjf;JzO6V%Jw1p%ut@8x&0 zt-l*9@G*7Mnfj}x;1TnEwnCT_7UA!VRyJWAs4}lm-AIax(f^&Y>6)*iY+B!ivT5p% z_R3BNK2V1=60E^9UX%?;;jcw*GXDY;;S1Z~G>-|1E>0>pH~m_Xfok)Ycd0>#dq(ds z6-y8Ri!tw&gPiHMVu3MQIA3O{T?XAB>d`)?ybnaG**unmi$vfIC2ynWr~9Sjq+ehHHN8RFlN!01#Mm&HK| zC}7@f{g~+IOlFZY{FX#Kb?I5Mb5uB+vAUYk^CR8~exe?%5eoZN_+n|7v>E4tM3lzM z%8AU|_bWElIaFo-CMP2Cf{WUMH;tRn7Qac@wCwZLfUE7C5p3lzNMd4t#aH~^+9AL9 z=_z3q$9?R0B_Aak_5W^t9@F2i3_mrpK5pCU6xPS{O$7sD%1w%@7%_GK->l4i z-yOR$PsDm^T`hbCvLXbEJr^Iv)pwe%Xk$S`{6L(85wws<;LlduabE$^M&Vvnpx{}5 z&H9%3T^JG~4XM?{`vCrc9nQpbRq$BjDcARmXm-mj%ZxJin7amp1|(2B4zpqd=3p?@LG$MHX!+cg( zmFw@soBsf-X1U(yN7lYvPqMtw%&KBW!6_v3Z^lcUKv-hg4Nk%1#f90ZWq|QeK~3nD zGP^Pre9HLVU}(|t)qm;J#}@@1hdFNHn9Mi1RmJICi6fQiGg~79WldPEX?aG>8s1lZ$vA=iP=09dXj|A{T!(h zM3uqJLmK`uK=YN)p{FT#=+5C@QwwXKDe?fjkd^}jL z)`xrsI6uSvzRP@n%VV*H`^W$3zUC3&;3A4TCqx}u=y90!5_~bA|2M&J<%`*&&lUTh z8D2lCTA>4@HFuTwX?mu)mv~>4?*WJ^v;iWsEKlRu?dJG7hHp8wORZxNowOimV9srP ztK)$A>wiBM4d;4ecX1wb%^bFuTherNtZ(tw-ZG^2mJI!ttZ?oS$&n+1QxSlu!#^C% zE)dEb|K-}~stYeU!VTu$tCRyTy=B$Gi{n??lJK3B0v(*3#+`-!=lq@Mk3H6?l(fz=f43e8aF#RIWxl=}dkT7G-onHh z39-n-cgU)b-+i94C~k+Iszm|*TlN`(=f;Gbmb@IGvtc$?{WRakq^y>_EFMTvMDR^> zMYLkkWuiJXH`VNK0WCHh$*Vy7N!;zZd*oib3)P89u9!k{tP0ibPdRK5r)yZ>?V@hpvp>RpPROCbUZrL`?}$u)%yc6yu+AK( z&;xZJ?Gck0afGLe1=CTs(o?-=!ToTL2OQ0LL-1wFWx{Ych~9^AgO`CrIX!Po$a3!0 z=n)5VtXN@A-f37%1S3Zwyu5HWI?GdMo%+_gXnn z;F#1YPh_QX%f$^BAH75ZBR}@ZM~Cod54?@0|GqO*H=_RS5CONvYDszIdpX{To5n=-N!Kd<^EqsQ7j3+>20OTQuErOOvz$La`0lK zN+oHpJ7^-RH1doV9&o!ev(LH!Q6-#a*`(c3{UbB4>}?SQZ82B~OH@A* z&m8$lf?{*!g;ANlkM;T&|J!nsf=_)r@^`4UDa@2j_lz%MGRb*dBHo6MG@O_5J>KbBB6nhhZp7O z_d3JqfO7(33!FvxHqJ#ee}{M#gbWawVp-|G5k0%T`zc1R4~eVG^`&z z`XS`i(cBT*vPzbJ!5h!kD!JL1)CQq>VO za$DlE~Rc@2s5jzL`^6m(#XI;Bxm{ z6i&|&?u5=^N?x@C1NH-+ibbMPKMK?^a$l9fJ5ann+J1@rRzuR9TW{BM-!bqx5*vZ~ zc0nZSabIGGcI9|ovfTN0UIEfb{j%ukh+6jlxGZrKV$tx}{sj)T*o8*}lfG*^`RyNK z+lhkM+D-}pFZ7N&(_6}Dsy@+mhj~6|o_w3-a*(XZVj5u>E%g}lfAV)nBZuSrjoLqk zqk5j;9TCM%TL%YieqOc~t|#v@E(OJO1ocO3#kdA{637y>`#F=sc^MUpGH_no5S}!= zV$l#h6RrcljI-EE8BW4IbNvyQcrYf4F&yJH&)FVF{J+hR9>k(39Pi?u>iE~ei?9ys znl;3~0~!$NtA1SS|5^ybm??0JyCV08jxP&d9WL19zeF&<=D|&BR|mia{Se1pH3d3= zSd~Kr$TeP}s^C^{6-gbd$l^l1$!x9JC8RoB(B_{awPaCC>8b!SESKb10aoB3vunvja}FTkTa!3?Zh&1bDdb$iymb@v#5 zraw9_#awJL492Y~nA4kg#eU6m<5U~r;yE_AjjMbJM{)E$SzfX8nYfQdNH#@OEWbnP z<`audx8#Y|CM4YRT^Zl9GTu_wezpvq>C+B^32Ym)f6)43UI~0cSMW zVP2aDRqB=%#A?W|b&71&k^*|kSRYh7=KL|-^aSE4K$wE@*ar9HSB4oLkETWndNH!*?a9!un z#|T}GW|bKJ?g&HE;)u19|D z7eZ<=O+rF@Fij6${0-`v;73vT-HBWN`24XcCmGX!p6F{3kwgg{?PW2Q1Q{kW0{U)H z#&bHN8WO@TbL8L^D4w4vP*8AjBa}EV#f-2Dt&Pn=w?i?#sssYY@SUw0srUl}7_O^X z%;|f$x*A+nKfhnqwqRlUwsGjk{yTC37ikaZ*Z2L}hFZmT)7E;j9$xc-rIHfai$j=N zHz9~0X{b0>89a9lU5AY(@^MaM_X;57Yy?Hyj%HhB`uc8vF*J!Y_P$ly7W9?~P1i%W zK3>cn+8#8*B{Xh{~|$;0aK4e!__}0dDcb#O{5f>iymN0 zS3+j*oL6LNytQkUNY$0UtViHb^^VGSx+sIbHDk%IIeN)P1?#{q53WqGqw94 zV@=|ha>sOZ(#9!OPk3KSQYJEh6khWpmXeJJFXJt#m~iLlb7E1X-T$&x!+vVW)^GHL zjzt5Gv3jwblmGWdYlWjRFK!mijXPIGjcNg$i!4=-QLVJpQW%ap0JV_sei%!FA-p5~ zR)lg6uezZVkVIQxY`b{0#7LV~l^wUc{Z^@Zxg0RVC5bUP%OJvK^$Zfld(KZ-El`T; zLVjamByo-3l4swTr9o}1Z@J_{Wkh{jFhECL<(ue%q>O_$?J!sLMZ(u3Px^Qjy@7pxvy&{?8SDU0AE|OIvxa-Y~`N$PWp} zzk2p7u|XX*Bj*>r!b>hq-P6XSjS*%lH(g zEvnQYdTRs5_h}h_!o3rTQJImoeK+El-uqd5c zbdh-Y8<%9T@;$3Di3;tr7n*I11Y6qp%zNDnKcWd-gq0U754!juTRfp%)Z@rY#3#{4 zOlBj_FEm3hy%DV#y-=%ukRd+xt?2R3r%rMe;GK`^w7O*iK{Ofb0d>62hgD6luY5Y zNS@EMo|70<^HM7KYFtv5R=p8$F(iKQmkhI&p~$__7BP%*LMgTCzS133z^i2ov8Y;f zj>n(G$d;OypZ&FvKEg>d5}Iz4yo$mZiu|=7f|ztysyuF4Kd(5s!PYK*N#tje{~T&- z|3LzR!7}gXC4RnH`Y&6%Gm-g~hj`m1G+C7$CS}EhRetvNr^ru<4fxf#1RsDtEjPk{Q{0IC0kHKWj`n&w%Rmyw_p>I{a{+etqfr}~^!|V<~ z4J?piK8Ms5&!#kI_Y0`z&YR`#IJ5vQQMG3Uek3t)&I3R5y`pn*8RMdCw?i$c!@C;x zB`4=OeJxhz;Cq=jx&vpJXT8gjQ?+K*oGmq%Q*(P?8O3i-f!lvM9V#{dGT@XcSS7gG za|-@Uf`m*{y**fUEj_FqRurW<)a*v#%UEj;e2Q0KsT*Hws3-DsSZL7;zJYTlC1>Auae z4;SH_mrBh^{MOd8De*j3-W{A(R%(vsN%5vg#djB*Lm6<$NrYf^Qq7D~^Snf{$kuMs zrk*VL;Fo>JV&Me@R`XKo@EtGzobq=6Dkn7I_UYgpQg_8{iQb=8kyTy{3{R1lgvai~ zCEC2~S-pz=1=3fq(!rpw0d5(o^U9fEn?{{hcaZzvJwAT0_={o*-KtCBaRl*j%)0>M z+Dbi?P4fSMvXPPMF-;yX!-xcjZ@{$pl45_`{~WeOE>dq-vT`GGTubs_BJDj@3K{!N zvAN5g}6c&u|-FgLZx;I&k`R-`Y-No6O4Z6Zy&Xz z5!h*;ca2}3%spSRpS^=VPQaV~RXF#EKBCb4?GKV{tK@BAiT`o=GOLeDE_dV%RorsR z_{I4S3?`wEXTE^SM0vA4lDRi9HeeQjzL0cK9FZ%hbcDpLmL{p@Qix* z-pEgl*8~*((9qrUeu=B*59ag=J6=ZVA0_jrnj+%>BmJw0ncx&=`W=jpS(}%jON0EA zNGUYGTo|WISDWjv6<*eS=x47)<8FTYz)9+DJ+@Ccs;()f21$)P>|Y?a8Y|@Eepr|u z=k*WII^B6a#vUi8va@2r2wU(1BReHCJ2jYZA;Yg=D`Q7LIcJ7n6FwQt9&L5u@43X1db_dMPDx^=%*(2=X<&q1})FX8?-KLzdYQj3`zL(cfVRWv; zY@5F|8mT>XePh5WH()&(*7Xy_DooRHPcqpFK`LTianpv1c(EC*#64(osM$e8;2#>Z zQ!C0NG4BL_xmL}z#fCJDx7bpT;z67^%#OU<1KAV!ZW${gLQ4!%2Wvh$%KsXq3HsJo ztz<-`cK=w$-CS902`49sq*G)@y?V$dV~!H`n`ss(q0A&KL2m?^eA$j5Uiidp?6MeS ziVC5Yha6Ov&@e(-89#PLh8ni$Y)`EDN6(BAlH4!If_F+_#>CDXO?+)Z5?Q@1xdxe_Z z>2ez)zNv5}#ga@D2Pydl&Qg_Eh?)G5)7RcwK84G4i$C-9pnS3-osw z6Z?zB6(Op%DsdxVh{H~oF;IZo)eY2Et!5^bhF#kPpsk@XeUld6W#5Rbb7J~ec?kDz z97IgHF^v zn;A`2SbkEtC1O!>NQfA`3^HTo)4LujAbOrlnu9P zvvN?5TrD{ts@k|K%w!C;YK_Ifq__zmtV&^N5q7QfZP2Q316vu};fx5;6eN;TfzMh@ z$b@;}?S7GwcrlR|6T4pwO1#M7MNapNq}U6~-RXJof^i*5Zc zlHiYwaxs1#R_8pH;K>XbFYG@gJ3G zm%`$3Ms3)!R2LVhYq^ua;ej}a?y$FMRhEUy`MQ&+p_u-BMnGeBamqEYuM*1Il*nV} zpnwPK%I40dFtn){>&gz(W+f&Q5R(EXTLZ5N?mamcR_n#9)#Tt$g^Q4snCQ6CZNvN2 zZg>jc&P7+DTSTA+9C;RWWEOY=DO`jHJ6P-aMt{98+X*mb20g)lqvVV|qTHzve;!+W zkJ5Xt-nQtOu;&d?6MCd!4Of=#q0NDZO8EIR6y|_8QvDqkS-E}DYk&F?^x8A;R(kF6 zT_`?(_~SW+-D2g*4S%EJhVI;^Xu>fqB>w4)bCK4?2?deO?Ol~!H$3F+qlLV@)ysDb zZB3BCu*U`>kKb^ucfv!CHzr7~vAa+%!%KovbibhTxK;FX<}&QqgVlh&t0X;M$BFvo%J9FdAC4Rj>^tf|;XF%+i`<+Hz5|N6 z2`J+Di$JQR{NnA$%w(VP z$I6RDD(}^c5~4K9O3rA{lc7sgv|koGVJx``q)At+7?!mSZ7qUuTNO6NGT__Kfl}%I zl0pl#1}~;F>suj(_Fz{#rBV$hhu9!tNFvS(Zjw`Y6Q_&72_2qGoXcz z6YUgy5tY7Pk!y_X&dlE0L-ovL_KD2#%p{?2I9qCD$?lXqk~h*XULu~1zbeb*Ps~?B z$DND&7nT&2nl?ms%t_>5`mU|*%yHPWMW1${sDup@e}5uydIvME4hb#LTr4gQMd^w7 zGR0<%^^z2HMP0=>LU=~il@@s{wl3md)_Ru6Hu%(;Ch?Cm%UywN-|oOq@r-`8?=W_N zbms;~=486l5ExLkKG09cD>_S2Mi1?g5geT5M~fJ9Q<|EBZ&N`k@(I_-P=nK0(5a6Z zVJtYIFC5`uxbaT@i4w-J-(pC7gh)Clyupp#-Kl5rc|s339hCF!4t^4OFAk~o9j8A- z@E;UE8lX;7&?HOh9}7~Ivqo&tLLUKUxKF=jiAh_6dI4j8z{*M;hP@G|x@ zgSdzbyBx-hR(Ku8>#JQA>+L+P+$CN<(c{?_Nv_yvui7&oUDCF2>UIuwN4F(U+Z#!i zKyEv$w*?<>e_bG(MhKW4zU|r)(X9f{w5qG5{oO>u5Z5Y$?QL5-aaX5z5+6(N8kTDY z?!vYZsEFfcxVFM4$oAT}^)n-5t5M$OI~j-dWN;|-FtAlvDWhz!F=H2QrxKuk&=b@% z^eq;!XqZIU_`|N9Ov}-2cAQ}W>F?#9pV(BX?@?i{DbBN!iB&ap+71aJS-x-RF{ltg zl(hwkv9({urVO|ExE|YK-|AaeJ~A4_W+AN<%=NGwp+jvY*vbur3zxg4GJRe-`<%RRaCK9m?ck6J!nAVt%6VJq_i5ykoMkX*9Q$Ym4fyc@a5VmykVJ<3UQn zTS)2H*j}_uagak4GGZU06o_K(YzVwUh!Qb_Yv*2q5O@TCMZ+z3e|rXWPzIf7U4!j7 z1=HD};9;74&B1d7q00A#U7h;wp@%T$Y*(SR0f#8SjE*sFpW)a_B}lZ7wZ8yx^j}u4 zht8WNW}VFSJE_Wx=BfD3O}yy)_*%6p(Hg|_4#Y!AA|RN)ty-06{l!d0sC*0l3e+fc z;Osp!Sr&1Bq19Qg%yDWR7qE^e7|EO<^&9bIj4~UBpg(4tHKz9O^qnU}4AWm#AgBKc zA!LORvMWPPow}z#N5~U8$4F=`l=WaFO$ZuxDNwj%Jky1851`=+P}KoC7#So^TU~?@ zKt)cEztJAq8wV&( zZ`kRG1|{x}x&!ER2z|jJYg1-<>Y{PJt$}knXl#kKpDgsS$?4k}{2a4oalqVLB0;fw zi2?{t6SOb5uarF*3@A3`N-lDlZ?mf6=r^j^68sztAq+8w&Z%S+vaeXFZ5hJFC~hFW zZNQ*7MTWaoXR=sIx@>Wfox;2kuD@%cBt`=%xtwo4PavX={KJsMNa~1Nc!C; zL^~&m(Gao>mEIM6+Zwf9jM`U3;b16@`JMX0ktdA#C-gBRg{-$hu6M-;F7|D~Qz$1Z z1<>u`Tu+#Bv~fx_uE{L#2;9W3X_R(?*=lC*I*~aKd}|7%GP5b-sdSWH(rJu8q37Wa zuM>}(`sm02D?P81eO5MnUNv{>qbx}O%-JCh>=AJ&4L5(nDC*P;`8*N6t5bJ}>N`RB z518ofr-fG-K2Ua~;ltQ5-MB~WWD#%5EGnKMynyR3;@h!9BKI6@@Ct8MHzQBda<=I6 z6kEYS?g2scbHUsnK_EvOgE;|RoyaTMK#@kNskbT^*`sd(Ki_4YCl*C)KC|Vf<04@4 z6}jgQQnxy(Sd?>Q&3M>%a?UwEPe;%l8I)cx1-U0z@ANSbBjw{9;AxJs_84@!VGv^@ zV}+h`R1A&{$5Oe>%XURtPMt4Kr#Cs^ckWaq!q*VsoYw(AHs(bPv$Z_PMqEmMAaXvM z0e@$qmzslzSSK{5b~=)&$j)j;pd;vr4AR#DzvVIg*kvkHv3byXz#IXbwpA=T+crP0 zrq~pn>om8j_s+=YJ*SBA5PKBE9?t(7J%D+6#w3R^01tD%V}TJvcM?Q8ILf$&0}pD~ z{f*w_(h2vIbaz|iLS*h20%nOh-)cCrkNAe@BQ0;x`*TUC)H7oDA)=<(k9^!>( zXQ;xZ=9$yph!*RIq5rcS=3ifunp~KFysbw;d7Cwn{tDcuV5a-|suzFvT3tVA_T_hp`I_~+ z+pa0TMq>0L=mh55VucjUd&J+~t+#?tlPvJB9CX07}V81WBf zWs7_oYe3-}WR2?WJ*!`DUE7>GB!h^J9vcCwmxgKL9BZYOn9H~Wml0r?BD-iXT{XDp z64lfAMiR%@)Kl=4)h4r{UDJ?t5;6HsM7Jo=!``@Y*=czYT@&0liOI&?Ge>~>H z7k>}(hsV9G@2Y4}jjvpj=-sZ7=iT!$a?{NA1zLt5{)E4Y*&V8R-?tZ0IZc!QYpkmLX<})0fRXiQ$&)gm8x;`+HWNAOsKrf!^|H zK3}fww%oD_Q&_n{L=$ye@9z2CX9lb)EKS%4h9$asn)cQC-+Rh@7;_weVT*zBZJH1| z*>~Y!I{HDH8ihF3FRf?0U?sG7FoXmJC3Xi7#28_B*Q%7;xPrEDaKCRe;-GNBF5f|I zMYD0E)A?R)a3`DIxpFXlP+Y3s5Wd-7QI0#e^zhjFipGls>sB^upsq{n#=Z{6mHs;_6k) z=)1AXam2!^_<9&FmB$^;p$VR!gkEqsxCvi_dP!P+`xzA<*_C=@FN`nywB(&AL~pTn zQd&!%Qg2MhTxFeL!6uNNoj7-0#e7k5)IU^8jl2J!FLM+83Q@6M%U&-`Com-)_w!VZVnxJ4K(;BXwQ#eRW;XU6-{|@g+49(bvMia-AH_ zSW{yD=C53gO!Gih_2%)o-u^7|kTEh+XO4rq6Op<)I@0uaDMBCVs94~|4%V$z{~N?C zG}G|o7x{z?&ypeXerU1VW;vfTR}vd0(vTiiLKB2FbrJ>yef#z4QN#0c#Xan%-l9^@ z=GQVCG|j}0;t75ZFk13_hk+>gZsZ=M#6)IrYA=j+qBlNg)086fH+VUbTn&*n^C_Ca zmG$w2ZrORrhWu}e4#zv*gbqi4|EEfaBmKuQjpVaMBRM%$l*`Ob<4`P9zWY~Zdl5#v z%?$#3Z^U=MwOUew&O-ANI;$S7LGT#1;Pvso0V4QzV;uIll$&di=Xq2;xAaQDgK9V6cZ6LqilLbY$5U#qJEG=SZIL^zl-+7KrU@B)#;yjS|rYDEra)<;iY+=r;yg z3$0rp8u+dClh`9VLJLxC2xAo6{8u=)xRHZ!Hk%W(Ef<>pybj#fzjtwBw%z`_NGUYO z-DGL(beZkhXba?}0Q28)gk;>}ME&31FhO6prlG#R{^-XIpY=8z58t^>G!=(#<)X~+ zteY9S2iu4NM$S49<+w=Bih+%PW3s90g0Cv)xz@PEKNUSO7Kr7{Rg<}^v7c0}=pCw^ zI~!Fa%^cmr8FL#xNlwmK8u021JY4pVrC!-T{kNm`Y?=2A#3!A92|ptP{7VkAVgHqn zS=al=%Cp+MpZL7z<_!=QJz}pZ;(W*|v92Dwq}j>o>wT?8iAT%bl3aoXLHf4JF1hAo zuXVC(OR*tN9A$IZsp^w(D)`fa*xN^|$)_-}w8QGC?kR zi0-y}poLMV`1|^g_fa7rJnel{7*4PIK1w-CmHQ}ePi}DPhzrkD_fgzvy+jTF#bwkF z3%+$3wJbin@$vm0e_tY|6@koY{e8*S&&&Tee_!9e|4KD;Q>;}a_g|dt0?4ij|H~bs z+Fj(r)R+fl%{TW7yLs?J7w9n4~ zm6a7JI(m(BV&4Cb!B~k8Gs|2XuYl(uLMtjMH9!BcjIHZ|!S#{ek?rYwB3lypTJFS$ znz;V_Go+34Y%dXK$=#WgQzE2oAYm5pny+hgj5l~=fZJ3~`SlB9wz@J)arosXq??|I zmy~G-^rSF1NWJ7-T;@igU0ebeJ?uHu+)n35?n>zdoQ|dOg&(<8{FMFUTx;B8e&n!^ z%2n7RqU9b=I+W zESmT61qqth$8S3*G;i`$i{>3PzZ?^{;rTzHwY$*4ni}>ERB(~hOlQsICUqI6XV7cq0FeIqp4N@ zjwZz_IzOsUVy{?yS#w^h-B`HOY4kFt;}kk(v3syIs?^S-+c9AZLy(#keDHD>poP)E zPN$W{()%_`e~+rVQUTXoZ%O2=oy`F8SuVn}qnQN)T!wpCJ#5CjQI*m-U?>6LQPDv*jp>xz1T?ZiYk5A z=xb6i`kG{ozNU&kA&R`k(d85QvP>yvhVEsDJ16Wo8mfnxv39weJqo=oa4kJvLm`Ce zg%we|o>ujYEKtHco@N*QRnJ{?DtqTPOyNE2LXGZ7Z)4#)N7%DQKR=qY&e8rysl>IG ze!BFqpks?N8sGu=PeUn?NqJ@O3EHRq@;S79O_(9cAkCBgU(PBF6!TVvK;_b8stl60`v zIJqAmhKEU<4Q&|O=-WOggN?qrlM4ME8kQ!V1JtZ5?ICgKylN5^NdvkTue~(#^wwkW zwdkAW9>eCPPXWupP=x}HEm&c#BGD~;ahE}g~1k46v2@``|o1@Ur5ojx5s zO^ekY3$G^!OaVsi6&beh6N+T)nw2!`ZvRSw<;;!CS&XtIwUv|lR;|aR8WH|gFaaMe zE(Mz1n&w*W%Tm~iewj&j7W2#W4ZE(0Wk zL@h$+&lC;oLi6J#s}ZgZH%4<*ISU2Nl*ERN+C07hmZ-@<;cGa&X2Q)_;}Ge6bH7u2 zukda#c(;eDk_~*P$9E*Ede10Go0Z}pL|@D&`iVc#yhsg|RDPop2G+(M+xJxRLw^R9 zL{?Kc=NpA#SN=oc!TwtXf;Sp^+y0iTrlF2J(Qs2Ei1xdvAQIJH9g*dAC zIZ|z=T|@|#B!VmWo59!-FMB!Yg7Zdk-wJEe6L|BLg*R8w-YIx z)Ys;C2l3~|KcA-Qud>-n6bJKIUo{BrqQJzMykY&c=pucT0r~De3M!28uLivKyBU-3 z)|r0i!_B9}Csy&Px>;lTE-utQQE_O|y)7~S`O&|`TxFgE_cr(cT`k}N`bW`uuIN0c zxq<|}DUyV}4qEfz^z?ItD~>C0cOPek-m{yVUm|Q4yQzojWe-1H*-CR$Bw1o|H8gL)R2UtK8{Rp1UK?=VX9w;o(ga~foP!-176moJ|*AZl468gbu4mxo}QP#_86C#ua zX1NR5dy-@6=UVBb%8Dl=5%8EwzcUb`kDuBSo3oxZ*40d z+So((j?h*cURLrMuZh%KsNdotoO;Xvr59aJ<8L^Bqxs9>uaKp76>euj@1#~-XCp$$ zMDL91_46;H@#)rn{_&mbWnZ^%Wx^zQ4|?B|T#;VtmyPUx5bWq#J&0y}vYGS5d{-Wj zO9Z*MEbp=ZnWPb>Z>CeNv6w$Q8xH=mB=A*MnwTwR==qjgn=0=!WS6t;unW9b)O;uY4R(5$IhEsg-CH;hFDJ}a?-Gy$x@ zq1q`fF@KzB=MUj3ufU|3G`J2w)ME(l-%i%AdKk?0)#a{-0Qps@sM(`&d zf`<43?P<9_*N@4_xaG>{3)x3LpwT;KC2=45U}tR1IB@cY^cnHa1iD`dhsmp{@mDu> zzk14gH8K9`y6#t1)~lTOt4q3H-D$lV6Mton`@otyD?$ftW%yaO6|-!N;6^oq3i@=b z+;Bger}gr0-7h`XOBqM6AHIaHqu}+ zn^&q#dQ*w{59^VwvQ}jEo-XZoisIZsWj+`Pn>v1MP&hcHMP`yDLc`vd9+0d z$xDdzQgcQ3s~Nl^K5ncX(BeiCWUr|5?iY}%y!-fyt^XmyhFfNv0N=QeaL9Q2dj;Dq=G7MJzt47q*B^&(S|$xrdlE>lTAhx zx;Y~@GNtA#)}xHf*W|~71_QPdbFaDra93CkI&l%mlhkJm+yIYf`4q*#3Wje$Z(K4~ zdByk#w~XVRjL(=t^ZD^l%K8wOTjNs@qq&RB)n5pfssL6-7Gm+>03`Y?QYYld+3w}K zK;}isOJRdQ#`tZ%EwBe~9Y19+quK!W$p_=qp^4W4Ti{KJ!}GY+x5vHDQ-$`5A5neb6|g* za7#`BJyNfBROqXy7fnb}@^ro7MSHj?N)XC9$?Ulz-64>-dD*psNqB>yr1nI8WIs_b z_E{UU?Ee!|%Gw=NDJfQcMdpzzHE5yEUV$mszQ%e8OuiP2ZCh|M_-$3UR?5(`v4v*y z&-Y3L{J65v+*PA~q_4krBPfr$lG?xFg0Fpw3bfpV5jS?OF6I9ua)zpsWbz&*h`40dKkGEgTw@VBCoo0;^r)7DxLA^@^ADKCGX0JEM?NY%<0t+gSTV=!_ zNi523*inIfvt4aC;W2NkShpzk;mXkS8)XyLVX#8E^%J>9Z`{3cu$+YY*w8IS82P3u zLkt(v?(1MfI7W)Jwm#tDzFt*niGUsKQjy;=B9V^o5PcXQOd;#SOjHjL?Ma7F)> zyrvu{AB1f}&DLqI`ax&3rPqrbw_9r37{d8&^0b$yDxSi1qnRG_k|UUBv+QdY@=LD~ z|0nA5wx)t7j^Z^-Rr(|Hx%N>$n`<8Dlj2YFW$r(We<9IlKp9W)ApWl#9tBGHvi|~< zN2%-o2PiisK*5E+g^w+E)%(gs?MYvi4(iA>KQM@0J~c4D|IY4uZz6o?~F)BbRWG$vB2r%UENca86z)IVJX8ZzCBm zropoiUL>0*hkc2Syme`W`rP9L3F^9i-WSa^|7NmaufkhV?%1q7oY-X+^cQvb)5{o`B6qE9wfhwU!t!Px1a6~ zq73(Guao|PNqBrORLowSnTIzVPlVvb<6-Y(0fHIMw1cliMLFMX&V58pB!Z*MRF`J{ z@Jq3?cAMen*9ox~-@v)>obdw@w`fnwngGf--llW1c_kaQ&oOIab{s$4%MxIl@V5@8=_;*7q zfSD@MiJ2gt1ZLTlzT(v*JGta0?h$5Y7)P1rduLZ zBjl?__Q)~n$-z^OdU_F|#6Dimtu>~aYRR%mkn4RjjU8-ZjA?F z8>AcARyVS(Ze&~C$hNwXZFM8t>PBUv88}G9+_C6ot*xwhrT5^4FN$bqZ3HZ z0}^o<_8fJ=S%qH{fiMdsY1VcAg|La{KVKCw@eERD`TSc*DKuZaI(|LbYju1=nNOj2 zgd9mYm(A@k#T8fjSG4A_1k-;?mJ?)r9VRqF<(A+t0AP$#SARiM?0E1e-uugcM~zHL zL$>+Ww`H4=KPg;_&DZJryL`wu`g<7=oW8$>R(}t_@~!^XUls4~xvNg?ufD~+1Q_)u z|2_zlIj_^A7|r7I5>%hwANDxW!(sa4UERm+wa2h|=hbB7HEQd+Bovioorl(lwXGhBk0*_%(I8 zApV$yA+-kb&o9UC7iNw1_tB6P{*!kUw8sl-)iUXE-#cOW%$}mW9t~e%HEb*zfrPhO z^gm!g-WHf9ENs+2B`APX-)Br3VJurpnxQLM3C7qcK^EY(+FY#4yYv$*oQGILzZ@g| z4Bl_d9T9#@f!^hx2!!SjGLY)gjZ*)wsmN?u^hH!uku|*(M2_6vqn`%vt$sGXl<4Ou z|0we)3*az2IQMg6tpFxQTvovv9)C9?*YKb1z5JN85D4N*0eX4zK? zliEKdNnuTVeL1mUDeIvTVIkhhFB6Cd+NGiJg@LZ7 z{gmh_<`*vrB3bh>8I1VC8%L$SjM>&}6c*m&7k-cRWpz#Ykwu;rIv-BG_ieIk-7jo& z+HQFgws|;Dk@Kwq`S+3TQc095Kg^K4rS9C-&AW(j|I`s5n6skr(1~DTcwvem1^C>M znCIOuB<4BWe;3$NXg)jAn&&R_Yp90uxgHu*07O%|I$n2ER(Ypn7Q7V6E>?cw`(kVntm;a|!z)jT8C&!+JGFOrTDLr#lT zjToNx*9#6HY3z@!H31nulp8m(?L;~N$G5{A@&cRQg`!I3#Cd@`wpoo_9v_zDUo$M= zOWJ8D4E=*UF=3w*e9WH?TVwt`{8Fe{g2~x>6bgJtA*+6|COc@hiUMbhDa-i}`HztQ z=^pt#{~^D`WSQL~|NcX#??fCPm{&8aNB&p;Lw+pXO?Qv{Ro|PxvRTH4BJYcyXspXc zrz>K?Q`vliy2=079{Df&zWjw`B!792{09%7rpvMU{lh@cgE2VPpDteyd~3H83s^JGraMWsL`LZn6a=D=0AQr&LPPa-5EPD#z9lx zw3pcbgsbjxZZY@0zd7pb43=l$!%%;q;{>$9xLnbO$WJJ%#mfc<$9KD@jkXyml?U&W>0AVD5-Y0ie^!54>7jDBJ2*ym4Hy14-u=Rw>t380 z(qQyCLAarCl`Yb9ODVn?)3{QE;1B#mbw6?@{1=KTz2thtQq>bl3iXSG60au~10(Z^ zFMNG7mLyLDrG!?JuqI3YcDv2I{+6#L=m@f&EvQyNQ9Q7k-LT42&+;$!DBrs9Wt$l- zi+r@i#=@* zsyO9Nv$xp*TVyTf=uW{pl)N!C&O@e57y~3lDYbc?=Dc%k;XIrmKj(jf1sV_Z8u!F) z;T8S2>J2sI7nzsesdB~#$HF(-N9D(t?F?oitypj_d!w_|JX={>xWc#O7n?_|24>kT zg_2U7C=%~YB@%+tuOArJ_4@4iS2$S(nUt@4rsNpJsugIKpff8guELy^^DcwXltmXS#L3;D5 zXN3+;hmD*y(m$fV_{L8DVVoDe2}%-KY7LL#_f8LAsu~n`@Zv<1wnUR|U>}=+{rouW z+u+eog}n!8B^GGE`C|gKANp@sp!tW!L0kK0Kzk_$T73N2Pb|5IITHp8_l{4MT}=K*|)N4`BXv1 zQZuRmv94ZaHN9eQpG7l7ok{!?{Ef$-V886?aAKM9km6&?j$GljOpJNN; zfhj2iV^|*8+P$y&>ljN5C2F5Z?3!2k(+nSh9Q<$ zloE6C{|LDmqBnCXcZRw3^W%h<(Uv#0uLqAs9$-PiI^#*20reSg-k|y)YB*PSR&Sf% z8*gGFcZ^L+{Joo12}#hM-^lQd`8tKav2iB@e^c-c{-(Vp&fm;nvi|qH_+*Xho~&6O ze<|}~e(<}*Oj-O*L{v#e$BT5cHS6HrPCw6@SVtV?E3@dxbvM zvOi2hyeeXNv}!}wCu#SI?yaon@a!S*biY0(GIOo!SxLqDvt6sXRAi6+vD|ph9yr5T z?1Z%72p)TKh*J7?d1$Gj<+8Q7e6;F?FZO5>~IT5SN?wMktd5 zmERDzw%enl%F@)kvqKH|r$`I6+VI4X=V-r%BPP1hI46WaqNQZy40en{q1ZKeRR2B= z*ykTK9Y7gsO7T%0P6Z26aCjlkFH^aE#T(N}ZTvxBqc*uqg4R!Ntc;2epVcNGYve;4 zw-Z7;iMPj45O7(pnI^BJ1F3R5@`%^Tu<5udOp>@mX!fq${v{gCg#wLSmWSubK;6|P z10|kL13xgTR2c?ok;B)Z9~<EaXEG*5$ec8<63!=HN#ccG>Q-+Wm3U60B%Mm?u- zpFM<`6D>fmd>iAY(=Ug~G+{bpOn_uxn*At6D3y`8}PxZpB&ii+cmIrruKi${B4-2{d67b6Zp1ema>?o3~h-hB{M~5+;-D? zTl=qMPM8qEg>f_Tee1$E+2uroZ?Lwo1&n#wQ7-s)fguVzgp2<+c7!g0sJ9=M+UR}u zbnW$pDQpB15ZwH9+n3Rqne&He_rEEW|CC8FrlrParTt-ED%8n1tla`vA|QdM0-ZuQ zaWH#Wo4$?>0^CBahR=L=yX;=%8Gf?CniRrEZ;ya(jFQd9#PH6gSFyI}rZ~$9gOSVhOv}DVAiz)NqtWt`lm}h+@%L|x-1C*wU8Q-_#xpM1`k#{hwx2> z=6%2$ddE5IhyLr-%OvZi_z}W`Zr6{0Vro<@@Qt{5a^ zV-Yx4@NM=C`s=W_+6m@!^eZ8@l+i65LEBCUO#AOCp?U=ZOg(=HBYg+B3j$B=fxuUD z$Tsr8-W0Gm#mn8dehlnoNqhkIb`5O%7WU?Yz4>78=!Iv-F*hPqh>&yLxYCU$U`_iL zm^-a+e7|(-8v(Xr!9^@;F=>=&HCmmB(8Y0aP=qN~=z8;-)-R*OW~bpWXV84FIEDqC z#i0-W>h;aOR(-2Bew{Hl6%VtMTeY06+T@c2K+)gR8??Wk#3_+}vf<=lx!gUz{rGcf zY@UL8K|VjAef!n{$1@AeL1lQlJ5YXAb^W4|VokPP`|EN2^m(}*5~BSE&PVYw*-4~FXPD1{ouDZWO%SsQ=IxHr|e zMH}C!jo+f>H0w8}>f=&S=u$_sv{SS{EO|pLx*9W_@SfU<6dO1FN%Mq%o!&pr5?$AQ zFXk5qZx$Y|drY_@bv1U8|4xN$%Twb#Oymi8m|iFh)FSj%S8dOm>*7(k;-{Ey7KizQ zF~Gbg8xC+tS^JnnJ+(P3c#Q#HHQIw`hO?b2{1Td~+2USy>u0`0fs}@i!BFB!PIKaf zjini~C#idD?ljW`;yz+)JY4LKFX>@-eCf;Iuvc=cMsQh2J9jxHG9x3lrA~jKay^f= zdAEi0{GkTu)@OZ=!D+^I4dUyU3uvQYxG`-A5)kM`ORw3;N@UAM8du`N)e34kw|K&n zQr4Ww#1wN1+}1&3PrgHk^e3fTqFb`+RV+J>{w#&5!E-5ECN=AL6H86gTVe{zN(<}G z+*HZETI$p5O!6h?9=Nl>D~ZImd-4D&QbR}VTgFj-yJO#Jv2Pg+y(WiG@$Xu1opsy|3*ki_H(nb6hj&0mJA*qOTC7)Yop}GjLg`IR){)$W4^Gm2yyuzfsXa zGM@s)ReN3=n2-CB{xBtYiZ4&Cs;8nrQ*+HKK(a^H5ZP$EDS=UFP2Wv>91ZIj{ZK^( zBWDjSt>R0jgL9I-wpN}CyaQ^Ns0UBGM4ho{wDhL|ebODB34Ky49$~r56lNKNg`HTL zh@znqP{qc3KlUyu2;VufRtgRq%K|cD4Slu-1|U+$0J0;_6``y3;0Vd`REA_(*QX6J z)_6y_P@MUMXJ_@zcWF8A5!T{nhjG8mmhrlpt;Rlw0vD~Zopq1x=*M?{CExb z19z8e37%mzXOzgOVzKKxl)n)NE!Eq!Nn2qz8nyfezTlN({IU~{!wJVBtfw5ag7BO- z-7h#tOmfi9;WaOOe1mXku}Y|*Jv}i_@g0r+gJweUY!nq<@l+)$-b0T;k>p_i%I4|P zon9PlxfkF>cRj<;L=6qsw8@J)`OK`#QqOz&98@Q`8D1$V+SrcBJC)7y7?6#b7fTQPoFY%s+qCrU$CwLPfN`b$;`i&np&QiQmha6NWPJh z&-ESoq>yA9J9f$_^V5y0vfj;#G!Vm@^wNS+=9Wadkc#A3dWQM>De36isd_TZr>t~< z63uk^hk`7hLIPr$t~BrYj!bguv@#W?o71dJSGFjs@$UTetPn!6;DA-~h&Ca;>OboA-esy>#VDxdL~q7kq~WgXCoABrCu z=mc&x$~wZ+vtYxGvW~vfAsEvR7)kJH20|3PfeI|_L-@?l>c&vp+iFJMJNhXOb8(8h zOlCr_lvxlv_p6AyAb#49exkil&|%-Iy>K$@@iiP9-0;~2_QnBQwC9f{<4k!LUg$8R zDxG4^>$NfJYtwgWW7lEHjbr$+ZFt&d=cqj1hbdbn^9KK?=1)`=c5&7g-_=5XJM`KU z%##EdsD;MbGM|(st#=NxSO}y}h-Qz?IaBUXw5pxtsJM2=F+{+DGz+;&QOK=Ty~AU; z?hcB#&`0)1tEv@3G>keKe>!WdRYSOe!S}>y?0k#H?u5qP<4_b;Z-b_mnTn`xhp6rz zc&vO-`ZhS($YsW3YMd(7nB|)7TR6p+ifiCy;}QfG+Gy0xra@#;E!y}l;h*se`( zkR5dLc725;=rxijhU4)Qi^C>jl`OqZEmGB;aNR=ksQ{NT{Mz49dEiB|b*m{>DccRB zEH%79j^>YSJT7X#shmU8M8-x^1H_FaH%U%?wlvL3RPny#YL4)E*5G+Lsl|1qWBx~UtoQNJBS;o``Qyr9Z8V=AFF`h9`6n!3q zh~;S_?R>b2bYi`>BG)VC`zE$DGs@}ZtYDS8}?)8b?iZA4cJ zj~iVnJg%SpXE9e8D;Gm?AKwf4_OhRjPh&H!@;=R59Bgau$!=}v5@iag4YejNbWPIT=Z6$8 zZx5{y%_y7w$$fkcsN2scup|YMuaZrBSQsozo!uHO^9UzCx`Gsv=?$b*tbLkMvIVtp z3`ZcRKS2r&T_{T_Mubpm-shB^5>`Q5iTb!qGzyDhl#$d(c-Dh|P5MqoB6Seax6s>0 z$jG0^ys59$!=snKRP@$H_m3s0_auzhsAZCqVI5Lxu6YaDugtqL4W5W`l?CION^L=P z7m1Vb%1E5DcCAY&!KX^b(Y9b2qc{TTcScy9YI@=i$0l(q(|)0d>DDR=y+VYgs(<$aNt%gyb*CsB&^oLlahH&#fnF5 z$t$D+EH0Cow=LK&<^+uJe0w5?VY~8= zD0>PMB#dUwk6Th%V9Cd zKQK9T%pSM~4>Er8-_fED!xRy<@yflDU!94KN>$G?RnIa7Yo)*%8Cg*dBA#iLBfAYj zw5$Pop|qi}#Q4 zT`7UgOadpAy9R#9NBQL(x`!>uBEz8U9O5GpFb>xs!2`aNMsTl$cG*d(fi2=FIoC7C zs~3&d7mN{m?4m3^8xcqLXl+3D5d1fUELWRArkAybvq#HzeA5u)uHnAjdgs6ny)|4k zM4#4HE&@3GoyeKFITID%K}5_9UngUX5_Oq7;?=W<=nIC6cjf3e zWevM2ZO~m_U)h0yhqRE~NPoLf`*4zt+#RFv+d_zpax?uH!#M3gaDp@}fDO7U!zkOQ zf2cjP^TLJ*VeiN^@Gx-C`GIN+i3aTsmtL@7dN$Sp0b?3;y@6(>&X-E9kB5?jj6_HM;ipS6oRdG&xrIfr&O^l41R6sx5caogI zk~qKS;)u!#p;E1MU9I{JbPPS{5@+xtO!va`)p<-YSscm8tmP0_Kw}A#YuMUH1s|V$ zoKJ~H(lM~j80!}XY|76G-XOI z8;hqqpbXrk2q_kyl=mgk2rtB z`8h3qjmkz?v08R-Ti_gaf)wcd^zGerUer52{L_oP?>@eAc0J=otG66ne-_@LHX}l? zas2Jn^4qvZaO(~)#P7y~Xj~p}gtRtt%DR6`js8vRm&Cv7?*bqD+EL``{MtF}a`9~U?)d`$Tm`ePLYEyfTQ72mtYQ!skF3_*=^J#6&)8%(vKt5|` ztLKI4c|M=iK7y~q+Ar&*06b=07T>hILSEDQibB50=8U~gi6sx=yZtEpWNZb;*RRM+ z)d?RtFI<*fA_V(J7RULRGvm@Rr?6UNxXxHAEQ3)iqBh?#oWc*>Rep}%HFT@Kd(gBF zd+pPt4_NvPpDh)VhZ$MiQXyq{iXxT+5CC_p^E2OdeujqSqn4m7vW5H>4@CKXw6Tq> zpNkCkpkJ1Zd3A5jIk^XDN4xKKt2P-|sjb4Q#VS3?Wx9U-ujnk>tln@cA6>mM8qT+K zbDpzKuagz7D|&63MOZxOw$S{WCXa;|0^{L%2hwx!Jla3hT)XNW~MFUeY~&9NJ0 z?oTksCTRuDBdRk0GVkF(vYZZosKu(>|5pfyiiAC7G1Uta$;#AIqleQr)@5pO^mAxT zIb?I0Wu8*1X0)?#`whtV69+~XDJbc{*J6}3AlU)%?kG~rYm?fTE97n)Ry zU!Z4ieOa3ZcGB0t7}&@*>DJ(_MqnH9a&}u2Wob)~MaGjAU?f1?Z(oxr4cLk4^6dcL z1#3Rl)U-f%bpqEB5oxe|$#IR*(EvOP>(LGxMC}~BKj{34hDIF7X}eqMpa2zT?z8p= z^BXb4OcFy&aMIDXpYk@iVNC~>2cOt>;|DWq@2v(863}pPP?{99>|V4cChtRyZzF zPwWdmLAIcTT~6Yd#;zfaZRaL54tgv2cvrlcbF#YU@HS5>i|w1FK_1f}kH!g1uGfQe z)3$PR`XMdUH!kSS7Un0x>5bqZi+&&f{T*_KOwCSLSMaLL%OzwuI->}$?5z2>3>g5kMEZdD(xfetvZ8GvbZF9gSzDXNCY)( z*Mig7w}a<7n9sYJ+$j%br(4x)Sz-uwRr1%fmK*;D_JfZ0CKuZuKKYznZ1=y)pN&s* zAqm@#SC2>%woUS@&&I9%5$?3;D1^ZzVWWQblUfpFdz_6rHFh_c;|4AzyTKq8ETR$2p1YNo?CqW3y3A~h?~#p2 z2zqJJh)8MKj;!>Q1vAc>sVGGzAMWs!!0P zD3I&=Df(K()v2G#RbsouZ>_XM?dgLhd_%buXjsg(rFI_IjDvVs=u|6KL!EwF#kEMD zu3ya^P6k|?Yu9phb)1K}6-`P04DB=Pnr-rH3%{)OyY+R4zV4ChhIY9&bZ~8{6))I% zy5`U2>H1Etcoz7u!tyh^H#}UQPf{Y&n`I@CFF`P)0ndV~t=j^aC#NO1WGC^d&pu1* zos&~gJgv#8w^-BC>ZYAcYYeGV}(*rYNxO4~;+@rj-~dAyaKDs_XbEHCErv4S0Z0N1rs_KzXXg8ty(4l{J_&5gIzET1?|D)oZ!_V%@r{ zf`hDw^#ieiBtS)4s-KZN{#Un7KxDPfBoLvy36S;eRLje5>%H54@VJqM*(&`{-j-%7 zg}p7{aU;>Y`bS^AEU#oEQ*R+3{-ge6U`yU`dESyIx~YDxcaC2_;WczYzaBTT;5zlR zd3{<-t>_iMSU32p=nm;x^Xi0cV0VX9ZREX>!6ZKHMr;jzbN4r^zWWp&GrsccW!G|4 zsrvc7-bN=CYdbNYx72Q-)5+X<#lI=Vzg?<+c=F;yDNd=$BTChGqooFO(vNH-3k?us z7H*1p;u4*gB}GS;sxzWR2W=EI#@EWq8*A03fR1J3MowTa_FwmST|~p&Ml0;Njx5YA zRc}OJa9r7Fd0IT7RBeeqrTD89mwF0l>bLPPUUBOg&lmOaFaGMjxGsl$bMY@EwIx;Q z?cwRs7XzGnFwLia&v!DUD@xVX(U){!hpBGdkDBtmK8jB!lU{FaE{7prWpd ziM~Dhf(A16Q$}!e{L}C7RBwqFMxWB`J*E=9CI0RB7r%C2OwJ&`So{ki0lEQT*E{+m z(atNg3+GyeqpZ9P8Y&uJs{T3qO?i(IrR|{>o>xR-DyJ|RB%v5KK?+wQm=Hb(>eeS9oh02$xr%@Qg;p#@A zjwPxO_NMUP&3YnQFkoL3uD=zP4A>3NNbl;Ol&iKcvfI2Zn7_kb|2U7(A11X1$8QTx zI%d~?DrK||m${9^+T-@4draWK(^rBMIuYL4@0YD={qc={{iR(itemX@s;~`n&pkw4 zNcJKqZj=i1l0_)%q?|hoGxmGVs9whHc4zEqjgcXZ|2nt#vb}?L1|Q$vyRpl29U$}L*!Q>f z>^flA3e~pjwNOLc0Wcx!eLmV4w_O+?dFyIvM#72L)f)7;*JsK6=LV`4;8WESzpvs(hH||Bo_()C$*Xdm2G%Fy3XPXR{wMam8cI7*w#IeZ z>qHLZsPP>AHU}?0J@9H7c$AH}_$%>DSztj-#i~gk&2QPD*B$|aF#1Lev?%*E>B2Yp zBXl_GKyb(_^&vO-7YG4GOO0^rH@A24iB!QK(ZR(DA&I|k<*Y)}im+B&_tds@ukTLZ zO(BjzZ|yz7M{lP?loeIvs!n% zZrlhXpo{p8|9}K>xclM{qR_~qt++-Gpr)o?^Do<}GlP2E&yVvhC46z=d$#<}31>NBw z17pGc!-Lu#A}Km2+AX3F=(n;aoyowpB>^phX@EuhxJv*z4^hJalR%fP`@8j0#)@#p z#+dCFZ;1vi-nY&CRfgdWx>g1jN}Vb1y0}E@@(YMURB|WwkvbpVr2)^8e6x&B_}(q|@7l zmA^%>_8a#Z2Q-~`$C6AKdtqon#&;7>#whWR){Jd4BV!HMZ=#k}L(a;qB7;~QW3 zH!Y2+MlB8x6qBrAu3z3|q&Q` zj*M^=m4r8*p0F1SLQfx{Q{Zs-6(&s_5$=VpqG!qx)-VrLpGcIfrwdD&kkaA6sKy?Fc(EsIESg*_u3 z$6Koj(SYz8*na4)Dh8Dh`gsk1v>b4k=sYr~9fN*xw>-PPz5jN}nyYDTMRIlXAt`V; zWTH3PUVTS?VRZo9zVO>o|1Y~*6Xbh^8tX8EuW@>hKh)K0!CA7d^7?8Cbi{P)Lf+sjcxrUUNhZyn+3clA?g(|y{8JlJ-T%Qb+1 zwK%T&X0%OiAq0cpfPah;1#=V6sTRD{$9zQdgSc|yz4FGj`oxHk`CjbNLcCCYutmpb zi0-le1p`bU)SnPKyT|ZR9(o3HSQ_2dXd-45Iaw3np&?($`4A{D@Rca}(imts7b={7 zJAt>Fd^H&Ibu{<{^ebU!y!&-m@bPW&I@EQlbMH3X5M{Xb2B8y~%@VfrC05>X%{pLb zryzw%yc8RM6$G+Jd%Q=VhjvRj$QE+hli;MzzEP}hJ}9>JL~t)>sg<+X3Oyre9Fh_k z@`8gxBLA+;_t%j`Hfe?82W{m9>{S{}D>Rs%6_oNr_zJO(GxaqU;wWz9GC!kS6xbPq=DP-8&VFgm9&Lwzpv zqmolwrreazqP6}# zeSb)^o&o=V% z;4ZkE{j~I7A{U6v+PO*gyn;EcnXifWK(qav3{z|_ui-!-?o0QHnZUATj!@M!&*~mO z6OeuI>(lgM#>*d}nB7YU8(b&JPqva|B}r8AD|ad)kw<)nqb1oSMoR7$ws{gcC?!%p z(jOT$(mH1CQ8K9#N_^CMi>Twwj*4AGmD_!FeG8?&W=<#XHUA2!Oea0bZ69%f`o1Cc z89P9<)^AYjHz1f+uNJM6mzPWDO-vy~cY?>fX2Yk%AO zsJwBr9rbsX_(Sw5XURM&EO!*56q5 zy7RS%DB|fKDVQLqM5+p)p+M=M#2D1&E#dB6?oiyMe3)3JN;x1b5uIbi1SY#%^fm8vLK_2?;M_PTo1V zYyR1IwER!w5NprQe_0Kh8rBOn>@z_Q&Uro3HZ+dxKo4DhAmNsw#xlgr#ZT$;60&u> z<>%@NObRt;NG^X;+$Z4=nP4oCX{^(9LUIWO68x3;CH#G5eTXT7=@ZigK$qlzSjZSm zDjng^U;G+dHnWsDBZB;xFj1XJ%Jk>>V5!^=>@Byw>e*Yeso@b*!xeEkfUgFh%GQDb z>Wxy#_#i3L=L{`7!V~gM?f0x4T{ntNM~!57;tWTaGoJSoQ?1s)o%2T+0FTk8b6az! zbF{s9{>@MeIPmGlZ#qHxwuM__2hY{~9wR<(y@y z!Jju)>%7M24uTXtB-zb;^M9V!SWzGPsEYFM;T9KukegrfA?xVuYK?e8enNV-eQkH} zjae=>&D&Z9vnyFNTlgv2Qt*|;JI3vTeu~#5?}AUfm9Wd!4Au=4SqPdD1<3bg@~WBblX$##(WZkj5+qEI zKve8N5TAqcV?PRySc%5%x7O=*q}NoNEws|Z&y_QVDv^MrB&Lcly}0nIV+ro@Bk4XO z>Ntx5K;C6a8_FYL=_(5wwpBUHnt8K_c0WC*JrZt?C&;Ef$zSGq;4XoDWm4ZrQ{Sad zUIv>7JUH(+pG9C~77-xKA8+l6DpCOhYA-H@WsIb?@K9cfC%j~#)ZVu{=bu$oxmZpm zs*Z^FN$7xRLuswZ=B_3f-!af9*f2D2n#hs>WEVsA`eY4!%@@ARvyizSk=hmH<7JbifNTSY|F7y!2E0gq8;AU) z#B?ZUYt($zIwNMjDrm&O$6l88J#v2$8Z-M-J%~hKiMWhpoOVi=k>euR+XT}X$u=fd z$ejpBUa#6J_@Mz~=11T#HOZcr3|ZaZ|6_Wf-P>u)(%%dQH2bjO&#N(ncDNv z`^($S-~dx$H=L-cyh@u2ZCud>#mF!fq&%;X!AVv z+8?OkKzX)P7*HcoW6a7^E7%^0=kmeFTk+qC=ib6og?XWyXu2Yf7oNSO#FfuCIVJ@>3wKuEgi7**^CSRXL*2k1IM3&A9UA_wJV z1P2vnIfb)S$L~8MPGOl+`tLk-h`-HwOT1D38tX@QHfq-@=}EnCz<9X@m0dqKdV$aw zcP}(fo{U;Vj*H*2pPZRJe*SRlH7k39J-J}m)Bzios>~eZ+WR4q^iU)0H|fnl#?eqtR7jyq<0k*lN&^GJ(; z`PS{iM1`)`5xJi5#&$kUSWGa2_(crsq<)Uk%Y1XucuA2q&5v7h<|hj-ANHmc7!B1e zC>KTAtI6u(1IEGvGd0cg(=AR4&rc%$D7j^vUyuT35pq+N5t?+RoV~T!ONEVmOlU>; zt@r^mUdca$Ae=~+ti^$g7yHHW;bn{b_LL_*H5gcbvg^OhiFaOBSDkri^uHY^=p5fq&a+ zyo!z3%x{r&mK@OG15BJ>NSDZ`x6RCdy^y_`%6q|eYGHZ}%8 zoShW@P=CF6c&u#==l#;EY42q8truZ)V*=*b>XCnqHE(4TGUkNK#pM=zO^SX4VPp1!rP^-3|X}|M|&j{>Oi>3b~M5E zxJQYa%`i0g2rj<>hzctp8ka|Hk_-8S;tMH$awf7-e@Rz06R8k2F8Yu8J_$VxKo0}Z z!w-|9^zf~qOAkB0B0UU1=eD6>_e>8HyV1kDOy!0iZd`LpdU!JW;$Jic`Dyx5)}KpV z&YzQ7HW&0@AsXruPjAjGv-Gm~+O}>Baf~#6oFG;6oQJXT^d`ORw^X2xZ1^STE?Dn@TkGCzHopFYgb_kf$ruYPs9 zJ3q(1;{5bse!j*0_B=oRyUouyQ@NR+l>1LPKf-Td9XM)wd_%T>1CqY3yq_8>4odHd zxR=}US@!7(1QYeE=wnZv67FqJof^x>Tq1(RE;#tcD7w1*MQ4U1a>SXLBuCfae=O^T zP`4URc;@h~5>?JJaizA<7=r(ygim$R>^q`eiesw#?<_{{vIGi~skX8on9;LdcLWW+su&(haNyCUU}SGwzQfdiG=3o3S-^p9=t@kNbR> zH(|xm#i$<5emOWRnhYCiR$8KA-|9ii{5AZq=!6MaO^aeCle*8L)$!CFn|*nDp+LU< zKeYBLpZ3=su4oKDO_Qd*ldX5dZ_AFw^IOARS>`U|?KkIZWi@)yWi)qN=2L!t;xd2e z*`Aj9`DG7MflA7WF7r`keQC5v{r&%<%lyx^dYNCG&oaNbYz(hURYUCceZ1~rnKQoQ z`R&Q|rT>=SYE4P_ZSw|iSn>RJkr`IzxD)toU(;{SZHec%MUXkoZx=H-!*8`-5?&bP zw@ag(t!I8ayF0(FtCDqlf(G*+Sguym2--C)*SSZQN;f_2M3%d;MjDEqccr=RmJ`_M zO;Sj7w&3z}U9P+I-}0z!U{73k9>q`2b;s#1IVeg5gtni#T=(Sk#t%LBL(gw#qsyf? zmjzsU^Z8e#=YHt<4JZIT)0;pydj2{|6d-1X-W04lIlU1w1MTkgi}dws=&s0&CSl42eNxQ z+Phdkd~J)6zHCRj6}1u=iBu_Qr!f`CA>gNB$+VhSUh`V|vZvx}(@BiIAd2JdSEM4@zA**w_emwe%JIr2pYr zpXF1-kcy!Q&IRtLu6DR@4wh<&c(CSm3QN5FECHa~(uu`O1s+D+jx$BrU$cxPosVHH zkre6H3nGzYi5qqd=hK|Mb}xHzs<%o_Z?R>#Qad~FS~VSZQ&L4fg@Ey8w`~@t^EIRQ z7kOW5z5hVCe@kD{2BL)G=DQ7{5Y%x+12g#WLBM_=d!B%OOK|ye=C{PufP)HA=$;0^rt8^Ub+!E{AI86EBPKBS!ztw{f0+yXK9-UGj-#dvhlg|nC@pyaBSZ%S<>6!okn0z+g)2(@ptb5{+mD{h1ujwCs6?{cM^C(bsbqKz` z|Ie?Euit{cx%j$Drd;fK{|&yL1|If2zuob5q^aECYv+oS&oBBMv`h}>QT0FB9I+a! z--Zg_X$8qQP?s-;>C$Db1g>n!;xLftMu-b$;4ATa&`&j4KJI(miI8#c-=5p^dm-D9 z-^qS9p?a|ac8|2KOjtkyTQSE!S_?$ulyY{#h&KBS z?%nnWk9+?u&X|-^HWhBHre7JA+0QTg9Z!nXu+34K{nBN~>|JWn7Fnrmd-}#5=z!&=yu7cYR8%-GIYIofKTVuxkm^bc3U)*$0GGqM7w@(=3 zcQ!_+`|3O5#(2K>JaUElCNIE)pJftnBVK3TYt^gEkwWDtU&REwGToV> zA|r~`d7y+4_}&&LL+4=Jcu#mwQjGUF%gDn2UZmm>$5FEeeOBJ6Q1fVs7-;_O<_OhS zEeZOToEEuKtyvInHM^aY;1jKPEl$hy>yJ*4EDFeXf2v;{36r8xj#q(Nf0(Cm>G7kAhF}1z9}G9_RLboauWntGCQba%@&O^=o#!dXJrJ2giv#f4D9( zKS0V5^^~(Z!lUpj$Mu)-wIn3{UHo)MtEG1_bL{??^Vb{j-bE)LFyqzn&=rZHFOwFf zZNfO}+dSe6N!;?6bl(@gO+)2D4iDP?%H5_k`PrKnZKSR6ZMsx`&Xu=M$j{5<=P%{w z!}2pte!e0<@0FkD$eKT^9H^Ta&_3{_j+>co%}m25VQAgV(bmkd*39wN%&fYZ1x{g+ z`gPW(NZm|vAF^i71-sZe3+Q|wvcI21ozU-iq-x1+r&o9Z-W=-ewLZ*EK8&0LP!q)IF@GyKj!J45$UHyV9s(Jj}Z@2^>d1e0F;R>A@RJ@17(^&S`;q5w| zdcqT|!%l8{k$!M7R3tnm?!kAEKf>SAUk(w`dq~{7H%0c`-?j*nr3+jtvbFfmF29*a zEx8~yz0_>umOJGvF%{b^H4YK+{3;f#jBc`|%+8)WCO=R|Gk9sK{y}I!$IcF>$AsC=N+PUcqPFGs+ zUCHeAYnlmeIHUSw9AkWTmOuE&*5G~Fqg%3dAHDIWRvyQQ0w7VvHhd1ZVO0XCDWjhOZeQy_;z0I9W3MLTQ*J4BN zW-v60Deo*bkc(>Ii4wOv>^GkL_Nwz2v5&|`df9VPn5?@*U?Nt4IcJx(>nXqGNevSM zCJ#RGg^2X|IwfgN;qcJt-Y=$6)yCmmBz9{2wyGrqe2c#^;`O@ZzIBra*m+|yj;t(F z3+6vh7TBA`HWse6{e7E>;m8(b@r4h>tzd)SV(BBz$y};;Du+9HX#{$TC^>U%a6`VF z8r>VWpkYmfN9ODk-)2s5D85c@sa=g46@5P@Z)`HQ{(LSO+#-=+&=5(pn%uP7xieI&Ms>aRQJMstu_j z69?jk?GN`09lBE@psg-B3Hv(9)R?FS{1C+8yb0=nFixntV}NhTK--@l8P!*<`k4^} zsSyN402`k!(M-Js5|EcDAA&OB=8bMpjhq*aQ))WN)TNcB%GC9W>>JcOk1p4 z*>;Kk13sZ8HyzjYMbwpx6_a;_RhL6B!Fv9wT>ygI!1Lf&i%~e^mBAk!a zzeJsBJTvB`s7*gH;vOk4%bu*c-&a<}MZLQQ{LV>wcx$uIT99nbGzZREGgF+xG|O2G zHB%W29>Z6AFT7O!Z{_-kwSKg)^Yvr(HH#~fcI|lnHrEz##qV;0JiI=s>UNMMsMFf1 z0io5zxFm%Ka$1g&(nY6FkW(r-Rd_~f@Y!*Rw^+4P`O>PN&Q)ACg(_RMv-Gu$t5ZLh ztNK@;2C~~)wTtzmrChsd0}tPYHZaH`VLN$yCJR1_|0)qLX~AdnlW3%lFRZ-+y?w_+ zkEc=SonA~((XJPm?W4>hXVLK)*>`I1k-rTxU=h*Bdx8VpWtYylU%Qr9w3;O$fwhnE z!+BvTfP_SoZ)?@w2ohS?oIsfx{F<*=-F55p5l#TJCf?(AG`CJ4c5O{%w;}gFh(^G^ zzRu3QJKUFb>2Ujy%!;#YH5eOdH)>B@! zYz2!o@)zlZddEB?aJZ^rh2ZSsJDt3x&9!ph&p!R_u8%>%-uCHl%1xj-s~@6m>-q{k1@7e(d{#Jtz=nddxMF}Zd|%7X&zFnlDWG{(!;ifZvJ6zZS3;JEdjFxtCik?c;kJa_aRoC-!dA~Uc>fnq`5nB_2Q+@1G zjmws;NBK-s7v1)l%!Io0K7dx3q!#g4LgKaaMcby|uZGp( zP{QIc(Wy-hzvMprvAat!0ckgi%!a?1{e~Fu;<87%Q=i?~5D6WN;Fp<~9O~>}K8nql--Rz- zejr%)bKbjf*>Syw%K{fJ)G6QzzlQ(u))5D;b&sVX-|AuYHyQ}z+Ha~arFtF~A#84{S)R7v{fS%Cm8DAQY+M7{z3oYxzPVJPNe^K!)Qvi)XMcg zmhG88kA*k6vcuxZBev9OA-b+sgb7!=_{F!^Ms!rw&iU&j)y*Q_i;4g8g-G~aYH7uK zGS`zrOh${wwjHT4I@e9Mu1-{8Euu>w!;f{FA+uieeuM|P+zu!vt@vzBh}nJ6OZ5Y5 zwlbuLod|?>%;81WyW$eFuShMo1=-q*)%5)+`}bmhGTND&RF0+z=AQ3VO9L5LuXvV^3sZqI&rXL@-H+lbGjQ5}o`cS}d~Ows6MGNh(r9R|3pJYV@lw_9D9$`qe)y9#J$T=)kdw zR?x9U-KlPxEA5b2ViLhIiS|Hs$9FbGAPI#TAjh9?jYketZKpDw?O1@qHgT8A>U@EY z3iDO>GgC-ViRNdi%I)fiZ2YEH8}?^vwZSP&mlN2|b}Cbf%$rj6)-fvRo7pdTKXxKS z|L3&)Tz;)iDnfQ)>_cg^v-b$a^gAcCSi0L+7HDE@fl_B_r78} zy&!fGsfNnZoaY2fpA%)KSdBNm!W2@HLM|osDPCi zqL4z1@%pICOR3AdAne$ADYD}7WKYCIb;qqZZ@mSq);MJeqXM!Nxp6frOk`nwV7<@k z3T@G=>!LaY8V=HpyrCDDTEWjxS#GK_o5^(-)Zc#8(}MEalO$Qow=6yzHLY62sp`dP z#8>+k1UG8t>_#U`Vtm2)qO#x79rUKj>YO72iA1|W=8{Ep2?w$8Jt5ML*6Sey$Frac z!lc_HyO245YYN+0so#A7j4!|JyRFn)VY>q8_6xqmT|xJt=H=k>g%D+kF=8V|g|;$& zIr`A|QuRLT4D|z_jnc>lji5F9NlIHTrQ*OFwa2huR@IIc5 zHPpIf?Eb%LNLR}5*^1EE+g1qS!@R$9|+`~vf?*3)} z>4q}JAA=Abf|;-C_8NhI+z{|T-$o5yY>m0)y z!?o*_>E>iHYlBsyF<9Lot({=43OMybTGWF#t`VA{Z9$e%`fKl(=4jW$xMrM8u;{B!DG<*r0k1AV7{ zx4y67zN%rBytcF%XvrCzXU;Ftur<(`w_gzS1lB(@rN%oPG+mflq$Yjxv^<__9%t}O-MzLmQl|}bMoftOK-O0EO9C;i z(WUy_=xcUn_`g{%vV*SIMYdiSsunDF8e}pt;9aO%CN#J+qf(h}Ghu2Fx3vDf`LI-v zx}8+ibJ1zyMIx>(qGD|f5?oZ7Q#H8kTEWkgnUtm&9~KUEmv8x3)$l{F7Fj^*lTyQA z>ScYYzf6>NuJuY}$+Mka3B86xKNeffP<6*mENi&Zu4=K>q^Vc*-xT%8Ul^V7Obo1x z8Ek-;eXoz|oNB42Cwids+p!SoLhBgUDW1o$W~)H1&1;Tt@} z3i2Cax^rM1m@y6;Glu#lCBl|5TbxaOVtL`~$K>m)c^7XufvS7>S>33~(LYm&`q#)7 zGcKM=!(hcXh+HQ#d+(iqwPCgXm99ekGSo&*eVP|Af=WypY5+f2iRXkWQ#qcK2S@*` z9|T!lbG}fY|GZPjF*Ugf4Co)4dEfZ_zrwHn!5mY|g)Z7Znyz<~&W6{h-^c2kIiu~t zb)C>xal$Y=rPSwC%e=+#r?lkBgeq;@!lglW1SJoabaj@gDOGp%Y#vOCtNNxHZB?tK z?(nN_)tW~dc#3<`cI*8Zhj(TqX{LV29w2(MOfoj+PP5OPpxLLN1qGD zdZbcVy*R)V2-!8<19kf&Q%&63NK)%PlEMFh*>1bJdMor<1wV} z;+;5aFkp3^^3_GVINf2|S#WqXrj1O(&(7 zs4Yv4xUoWTQtG%xWxxqGdQ7PvpiQ|N6_ILr2y z=sgOM=%?ZRb@2i_cD3A@GUp&D=ov2Dm zRTdqklEFNflcrvuY{Wp>=F3_r+kA34RKZ@~m3Qd9zIg|meJweL_+HEQi7HZGY{NZ_ zGzpl=a#HPz-DtdJL+EhXW7vnwc5x|HZO~M77wal};tn|! z%>T`eG0!(Q35>xP4>dS7!Hr7Av zz>@Ci+WXW}^WnFJ`XtPuch~lNCSqhK*pDa_8?|-i&nOWY1X`ShlK@#2Sxj$)*MmTA ze|p|u+TJB$iSGVVn!CT0MzuZeFFkd;H}2oxAfP|R{*q4CXU*OnBQQ~ui10?v*wEBw z_8~*-tlWdujWXYMgUr1%14GCof0Su|ue4ZQ0|)@&`8;6S4@@%C4z%K?z38zGjYXrxKBdOaH_p0B1@q{QNvv-yD}ftGKH1gf2e)ZmUXIG3O%BP(8GZ|wG`S>k=}nut*-sM(wJ;IGjhc4t z(<1E)Rct`{V92wqckO(v4uMd6mYCv@UyIar$6A=Ju^QWO*gUiMGuTYL6I6FOhaW?>mj=OTp0n4K=h;XHhg)7LE@1JX)z^%9U9rJXovlT8eL zy;g=h+34%J9YyNLAGrFu0N?2A^1asA^-TN+eO(HZ$)mbUE9~c(cDq^`W`%`vE@ldp zbIDcbG>8Q0J}Y(M@9O9pVGeDP8A<7uB!=;Y8atp97krKssreJzCH_8;6LGh6ZtJLS z+(EUIC11*mxiS+tV^RJSPT#j)L*aFxYTxxmP8vYEoDS?Sq+iQ22o0b%fHLSwA9KypZU}uA^+Cw z9m1Z-@Wv*?t4{s%(u4I|xH`*rm#U+WX+lMk#)p5W`O^{}K&VEVrVxGO36FmtE=C0^L;Te%_#l&V*MtGPMQnooDZt!sHOXQ=Xj&ye*f zw4U7fsIM&T{brxKb%BOf(Sc_1mB~qVTwXq+DV~?-C6gbU_gI&~*_?Ejx%Xo&82Ejn znR_BU!e#ESs!8Jnc&)dl@DdTr8^bv);C&m59x0`&yqP08rKrmj`(*u>_0r=*04f4rDgwzuajv@arcTt zmE@CnuqF4Pu82*2PN6ZYQ+Vy+qR1Xi_+r#r!xzgc>FXZ@ZaRCthlxgJ1^yzhUjMH+ z`(J@Um6O^3C?9IZe@3OneY88j=Z~mg#Mv}LV50c`sk2BDWG4KtW?p?mcc%I(2AMdr zC$+4WCR&)2pYBXbvrCigJCjM0#Yw{WHRW;;nPiq6kB1I;CK+M4+^x3Uh!XVKDDCQOrB4_P=}+xT)^(rA(NW9yUopG+$8NZ^AXUmfDZWG5dnar z)<3S>d{WvJvuY9%FOe&8P1|_mYD}2Nn^plI4Uf~lXFK?Y;5j+0RM)YWYl+Ihf4!>V z0YOGFAIgd`=0ov<5%Zz^ZLXC9Jv)RMcQ#Q%?k_veo9&r#EP>;!hbgk7{MEeK`s9n< zuvA@wWsMnKgW)6Q%{DYwhfFit&iB@6VeJAuH45i=I`)&9n*rf-Jkj<#nHyz| z*WI&gWxh^kult`hdR|*}A-=|5_gk+P!77zwYH>8isXpwoVej=yXl`n_$Ivco%Qw8wozSrolI_5Yyn|iz%T!rUccD>8^%1)-f>| zPPg;OW#6y76w}MP@MLjS!^ZewcsC@qLENCum5;QwaFTp9=&X`uY(INYP!oL`F9cPzUJC#v#p*Ne(Au^? zgzS}y{A-ZA8A-L{u{Bsy9^}&T^5Z`BPn>p{?4pmFF`*`FU3&8-qf6(d*w-H#Sei9R4w3V0A)zJ?q4Cf-P#_aH98SJ?R{UAi-W zuIHvF5AX#)EKx)5)vp1EwJ06b2piL$>NkgaH4*e7Rz@B0B{uj#`0eTzSq9qMuNdin zMQfW)P?jHLxXq^E)QNY>5ovmq0s(InM)i-d)w27GbP!>MMl2L${u?B ze9*PEG;OBiUM*$DO^2*sp$Gqm_6Q@Uz-%EAvd)lqyM8&XO?YzYs#96ynWBG9PE3V z9yNIMNHwj~n1p@r)?a91G>!)lqhn(XCW(FTI82%~8%)YiIwY7h$q=JU{^A<;Qar<6 zM!aF~wYHdH?{(@ovlK>(I>E5lT|V#8zL&(%#7-Y?-^mfTK)P%&%P%=wSBMf zZ(`pQImy@EzIT><_A4#$u2{=!e4$+XUZA^uFELUQa8{)Q+hR5Ekhbr&{SEux%T8Vq z(Yx%<6a<`n^n*m_S5nGZAu^h?N+hUaYi7VHDe??_-~Xd);FBqdH}H-A+kZCj-F%5Q z@Zm(2s1{$T4Scv-39S&T-gxT+7D;}V?DyUNK})0=yB;1_>ZdQWfLn01g4z68A;9Go zRV_xe$0evpWq(J{G|*IMGbCfzn}pC8XV;74f8g8R7*Rur5>pzK7h+XZ1g&y0Y`w;? zW$mTv`=}P8PnW8GYr(KCbqGNa3|p6ZQVjd@2O7if`F9M%Uiotr!*UPd9^kAOanu6e z4yxcwdU%G@%@<835-Cqx9$7r3x>=+_IPKVx+61?J%Zm?UnITLr+#89=;NcGuD&xm0 zDCn)Pc>AS@mnXMh%528jFaPkmYrhoaGWJXPUfVAsD& zO!9-og1IwBiu9dJUoZS5W*=y~(#-G4>;uqCt$gEzqfTEUT6YJ!5LO7(Zq8eOIO_<8 zh&(wuArGs0dR^Xd&T%IHY@r~&QQG0{mE+yPf^t21`sR&2nR<4+fm=(S-U_Iyyja(qrq1_jPNm9| z`<1Yxo-zx{Ug@bcJ$Jx$<@he1NIi_VNIPIuEg9}B$CW{~+yuQK`?pD!N&v@pq{V5; z)r|rOy!z&RORXLzihHpd&Xmd)S`djBU4=KBc@y63#z*{prcuRy?=|YJZ;sxK6FHn} znQUZqp=T4{V=GCBo5TrEu&0fOGt5hi?(OX(y-9K84ftKLs@%UyHVc!5?%aS|oqT=_ ze~pS4!iD^FH{C`=HZqN*c-86>8sDN3XnPrGd+HKV$Wqm#qJf=Ns;)xm3ZJeXkUxD( z)r%5=(h~kPJkL<9rx5c@T67ba7h1banr#d z;Tf@D5P$}}IFC*yhJ##^BqZPz!5}@BKSeNzDeqLvw8r$YmD!`a>2vt&-$FRaQ;jTZ_U1f!FY<;c%`$va zMz%L+jh4d^zZ>ns6?7q{!o>TlX!#$1U2FDxKs;{HaYxmW5=ltq zB(I5-;A&#`cD=W58gJ!~$0%_HU-Ds8ufR2=giH;ou7f=#j3?G{C9GQlcK&#JP=uUs zbxIIOI&R3pufFQ5l^B-?q3$jvj8=n!tUUXGG| zkv*a!1nk18?CVb&9ft-@(yk}En8a4z{Nq^@!*oC|2FsP%7qcH%_jLdq+|bG_NTi7D z&arzYFZ$~jdoP}uf!ED_mzWNtXIe837OTtu81uUUI#y*WkU{J?NwjcYDtT7m!I6a- zYVF$1oH28dJm2eag%f9gS$T&{JW3DA3xXlBhLxyUl^S};zS76sy@2tH;XQ%zqLLUG z$z1>$#X}t`agfjx8=os#Y=>BE^N8Mb$w?RF#0_lt96>6k?%IXvZEvHB*fZ1HKIU(? zb#@!;%vtuH#77k)GRO|ab2qR9Aloqn+P|k9)4!Iy3`XEvnRjv9!_?7zeV9mz>w0Hr zSlJmQv$?qD^~Gmp?x?twX+pVRh16xI)n#8CzRaGS&hxX~=XQ2lGx|h!x>Oxb%G|M0 zVp|vV=e3A0xZ}YEz4?cKb(?=NM{_V02te+UymWCokc>Jn3gfxBaugH(n~S5MwU#OT zE&dP}vRs*J%{--?si)NAk3G!kf+Z#Do~7PuxFXh8TndU=Q+l38CDW+cA!oJsFo9#f z9Y29Bd7~JU8ChF85Q?9{@Lh3pA-4uzQp za!ccuz%5qpNA_*wk@w=W84<@nddy;C)b0WRaK~SLyoN#GO86+h$t=UZL!V&iL4Gh^ z2XVY~vKoMo9!pX}sQR)2@8pqPCqR3WG9j}yxMoY{;rV_{a|JM6=sz)IR^R44l35-m zJN$5wk^5({=Q;6HiT}D>CPF(82`-kY4S&Vs@Z)X1vJ1h`vPX_?^M#YkzBtT-GD{lgUFp-eZ_1+ z1QXuZ_EZFfC_9j>iVzoKAgA4mMN97sb@j@Q%JeQS$^(Z+d zm#Ui=YF=SgCW@U#($;p9bw2Rcw80+{-%pZjWy~U75y_Pbkvl}t!|T33xnnNWSaw`` zN0%RnP9R1&XWWp+&OT&h4;?)(IB~Dugux{mZb0g;nunzSx$TZ$Zp5vB#Ak)o;yITU z9M@5zo=G=&+%jSdd2|)x&k&E+TH}B9Ino|jMwZzL`x@WvRctj;pz?b8MEA3jepcMn zlR<6%4Lt&FQmMME!ULKl8)NmIow;M#Abnc>0C938SDqM=G=bLHCyP{y>7-qW$eS3x zr&tXzfDiw&8@wNngSWToJ?19w#aHbLWd3knb12!%FnlF zv^O5>Bm8COu0vJJWLvg|GDmhWdJe1X?_cLE8iL2xHAfo1>?6lmN~A7%b4XLXi%L4I zw;KO-rtN>h@CE8bVmvd;LelCq4`Z=+FP zu`g&3T0$f^bYsHS#zVd2pu@;*iKLvIgp@`m65drdQdw*4!DkF*AVzV*q3(I1!30u%99v&TML*J16)x(A|k zowx7EuKvfsqTGFCkDK&8YiHw!eKOxzI({Qiih!z(M|PgKum4_+;<=5Po#n}m@Au)5 zr>=62Q-1#Cgu^UK>$J>Hd?G+B?Gl)1a^QyFwK~DX5BeN=E3>KMEPFi!(qHM7uo*RU+CMwI4@; z&%*D!^9etJu`T0NtL-BnmNjGbZR{K(T(&ZxiMJOU;Fd=|Y0e&zP_-n(S3V@voQx%@ zBzcYWh%9#Mz>b?I>P%C`eA%JT8>M&XG1Z|m zZu^EI!(xeh_`DWhSrHfYX};Dq=AGT5)7{X&1q zeg)!Gd{FjOXB?VygMnkmg&#wxpPiuLXy=bY$C&9?7ttf&NWeh!Mwb|qk>ScpGn#7n=) z(%S2eIex9U>qW2URGk7XsuhyS);hn>&59fTx8|P{yE^lT>c?;TI zA7U>gc@tE`8)Dw*xPY2O*Gl-&6RRT|eN{f+06@PFfobBC41S+FJ84Y>GhC>BI0Jnv z)RGD@Nnv1QRmn-k+1=WwLu&r@6mGs3slDIdL&8`NhZ=IJp;tMnLa=huL_U0B`*dXI)#fTfNZ{ zNuzDzyNQ^HO~?)iDZQp9(VUo)fnSfU_Slq+&e7N_Q$ngvKFBAsklcql9*^lF9#0nN zmk^h3q-A~(V^|zv!D6*n9m5w)Rz3cJgJX@EEsGV8GXLVp>q%c7WC-mz%Ul0~54b21 zO))jm&D0E4i8o31FIB&E>rYYHarGM$DC<%EnEI(z6JkuD5^@LuIXI`x5Rf-VN^Z=B z1>FhA6&?X0HlbY!JPaWro{W35tS-DDhHl>OP>esGKu;b?F{A$v^kk`9Oz26`n*Vj_ z$)nkZp0qxBGJ3LwvAXmm(`)Ig(UbjEC(x6NLUHuuI{=XNf4R()=1s%T{|fXZ0EdVn zV{>+fuWAW|V}gy}dWsx3J5o?8qeU!>xT<);s>LNJvEpZkPg=WrkzvEKH}c0c{nU8^ zL~kF+dP7a@#I|)Xwj8wl2$l=SPPoFP+d*DnHM%ApZ@r|)I*0pOsPc2)l5zGoNce3H zarNhD97bf$=QCrc%JsLufV(XHi?%6wB<}0Z=!PPS{EZhF&qFq=McOwLz zh{AjEUo%Uj^6Z|L$YWQV*=J#h6~C{rU9)!8a&iyNxx=iOiNF0Pd~ZDDS6D18w>K}L&nkhKX3ceX z$YN>xn-=apc%ML@Xr()edY`kwt%*Cp4M|k2DNbKV)Q``Kfh0zv?!PKVqVCYHA~6zW zF`EC6wYPzfs=N~aXUKqqjNU+p67m*WLPC@udhVF9Di_U?GSL0aUP}y=iC-Y9#@e`G3!IXC?um zyZib5`H*|>-22?;p65L0Ip;j*oaa1fDR3#ZyS@K%QG%G?{l=c(T|oJnMckc@{%CT1 zjK-a+!l5$dTV*z1s_s>_EO5fV=8JEi0DD^Ek;uo~3r(Bv@v432uq@PA>sAdQ-y8v! zccf0H_VkaNhS_loC2i0a#6T0i&_kcqKP(-$_S+f_Jt?-9dB4wWeiQcu{H@IGS~KSD@3)86Zi1?YORkmz{CvK z?9o~QQYB|sPPG3@>#bXmeVswe|5aP`wYLvl%lM;fW6C; z*Lk`z>r?H)AD3VCk0$!J?wLQ)zc0d)Vgpj^zzq_6Dmt+4-zK1pi?G`TV$I3FkLDTg z-4^o-a_vV;&+D#Sb2P1@om@U7^T0N~} zoX31eq*s0cL?8?VA2#&A)cT|r2E$sdT|fR7PlP0ExHc9iTXn1`kikY67k=Eu{$bar z?5K>iV4Fdid+Is!a8NdccNMf^+L*3N$s#kYvBm8BzhMZLUu z*T0M=jPT9A0Sw=2K?MIIs33e~B7G_)57%>ii;ct$JK`D|? zfNG!0#k|jKz2 z^V%0;%pNfcZG1?F&tWZMvQd$>StmG>bXkl8-Yms`!b#-i{V;(5b2TZGfUHDE!F>eJVT!v z89wVfvFaLpf|{Jzuk%q8XAl}az;ix781j6MAD9Kci}3-|=J)YD@)u_q-;WnOhhgx2 z34bBIC=;XM_?rrUGSLU@bDJ2f$C$elrN{%&x)il9a;v0nzQA~;9(p9zEKiQ@FdSQs zC;6}E^rh0e5pVH*`}2g@5`V!4LSFM5$?0buIe(VLwuI#17rQ)Co=ob;8d#KANyKhl z;dcYaNtC(Bt)C^hpFKYG?wqn3)}5%TY0w-C)1W@WYe$)0g&j@)v2eCDo^U{B3Fg#6 zs{P4uwE~~4wi|()se{y%Mmo}hH0!dbn9rZIzCcy>tMhnOf-`_g4;$Xs{41IK4Ck<8 zY)&`S|5j{wA99#s6=8RP_sUW^A4*W?nA~IC4xE${v+;+gAH|<8F&b(}C*GLI>b9k6 zk;+`_^>J7dme(mZN?Bf^md}8%Y>GaHakA-~d=Dl!C6jSdmPU^l1JQC<6RxC~9ztTVVFxBg1 zkG_kDt=Y3RzgQJrDhmYvBLf?y2IH$*A3aa_+WZduN&K?l!(1AKas8Fx;R@@>jkLFv z1nd5?AtUx#>^i%Csva!e<*;x%_%2v@N z&AN44N7+oLnpbDen@Gu9yR2$AOF23sWw{urpcRAz0O(vXML%=GPaN+oa_U>>-lhf*lHJkpO9@b-h!}!rQ2r!19Z9(oOU9_csb5ICtO+L_&b{ zN=f=WX2ezu7?II*4q5+*s-nF>!gA-Jb|%7;@PnQ!0Bn2{#eh5ww^!6yW{&h1KKxi} zv3WsN7DPgxlT>UVE?4+q^?)dz5YI{81WVd6k(dO;`;!C!aFmfs3doD4vZ}^xYQNO88F9l}544=<0hZx0&?cZos=b)&3hE+TcFMy`%)&ug(+7>s$~Eu%4Ck~MMtWavjm{u5 z2t}sV5|IE>Lpw=FxUFfnwux?8&l4=7m)N+)47&IOnM}A_R=D5C0^2wrXGHiL8gLlb z67%Qsg4muf2aD!ffds;G(VB$aSsd)Qxn!71W;(;Hbt`XYnGh_yz_?_s(vL77NTB;| zuKt(Qdw;EDJtfs!{i`E$@#K<~Yp(7Qt7RMeQgcHwJ7j0?oVIYWZ-vG7w?;KdcpVt?A2 zf|=Na{h{SKyrz4}GQS%blfl zf{gxLd705tBtN$41Qd17%KUImF$)Exd(j-)gk61SQpH)~M(V>^KZCy~l_Scwmd_4eP8Nm|bPMzf1yGO6%y~7cq~; zsN)DKR)RWsRL-OR_Y&|RO|4&H=ZwcMsZllqyIB00)?e7InH_8WR!n}IWw>UJNALAn zQ*425mN7fFWQO^z*o`WTc`W8TVUnw?WI(L`8Ros|=Dai*pv}&iEE9uTGb7rh6J(=* zWqfYR5T}nxl45zzh$&d7%P(tntbdYRRvjwMFD|Wzv#@HkTb*Bnmz*GEN&>DcwG*t^ z?^#1;sA9i+P04Xit~Djc@Qj%yeq3Ul(mAD*@5O73FZO$_(Fl5yBHCSRjkkS2U3j4fnCA3-6QC0K*7}R7(_JQ1uy35U*))O07m>j)*6I?tvNUNDUh`KJADNF{ zq@FwC^|*9BV=h*%C{|7zf`=Pw<6jhDQtkQ7@hHxqhOy$iP^gbNl^omY4fAGLGp8|b zruq>@I8db{;_D@x68>J2abfGGIVY`}tIIh}bqk(;lr(5@DkV*XlieSUv5N}0k-R|UAQxS5# z!&1Bd)pMHKD-;GiT00g{ps|bf?yc1^YSNQG*-$xYhP`J0B4jf${(>f(;R#k8pTrWb zVGH+R8_?>K4<(1&q55PL8LKI8H@lr%XaB2HH>l)TWRZtRs2M@4KZ`g|a@aK;*IO~- z(|gmp3Os>&Uyl@N!>oa7ln6yA~#gVS*#2T6s-{;ANPXuDOIjNi0w z{v|1dOVE+rY(4$=jFJqAm>LY6ZJZG9_@u`A*4O2OuE1GLb7<4e$Ai}6Hds_>=GyZ> zUX$c7cOCk_B!^jIKeh+|TGTsQD{L#$OF zFbKrbChIwg!DHb^Q<`nJRgc6mD!+rF)Fc zJ*CGgNYyAL$d)G3V<(u>1+I_vm=#|)&}&uO#X3uRb&p9BH+N(PJ(gTU9~}=))4f$| zMRZrCnN#ShUhBzUNLTgpmS!PS-^2hpwKrxS81*DNA9khYmCFmy4d35$p>_F7Z_9xQ&-M#-C_ZMJRqoX?(!B>Ky2N*`7@ zm@L#=z+_FeYo({cCnl2R65m)xq$o?$p-jm#Yusu^_Nq4;e;C0i!AiI# zw@#s3eb(cC*)1X5PRAx&YxrS)hlM;%o*HWo(*|MI$Kfve@%Yt{bL{(BpfplOd}pMzKQWne>U5tdex<> zkaTvckjQ~Tk19-yU}Di3N2d{n`P%{_^LKjC32)u%*tYcLq-B2h#@nAh5S@TvH6CtP zJKE1&%bpb_XIgfE#}Jpry=pML&52xfsdriq$lZnb2MY}cEBHs>!KNw8{H{^#S}I@_ z?l%fMJH{X!+^WXYpVTqNfijZ~CN6iKL)fwYllTjqiEet)oSHVGEo{ljQe0ub;j@#P zN+pc*14IalKy2~Wn1y-d()7)!onB)dMKKERObfB~Ua^U4z$ZO`9Ns4|#h|J5^iQaX zy%AI$*01e%C@LGmE=n2+oqo#^SGD5&p|+;w#4|L1Sidj%gl(CBged|72BkMfHU}9- zr0g2C&{O{h;h&>lV(zi3j=Kvd))#qX`tim$?divmm9deBu~+Js@X#8=GZy(UjjG7_ z#9rRRwwY3?_3J@R9rl8Uc2vEVodQhUbZ6u9a{vwi;K{F!0I(ts;8iw&3y9*0tePnR zPO9Im0nAAN_`u6NY<5R}rr$bLe_CMt{x<~18Nm3=SAkLQ!yEmLl&~(bVPqK0`Ik<% z#?FT&Ts9D$>}rxUUb8lwiW!MU0e;T5cmrU^#j<`#)}OFkGBKJziO7hmFTIS9{%N9( zn7geT<)g86PnPxAsS#NDHQE~X5j$+#9%hN-Irt$9{|G*BFC@_WmHK}< z`I+=TO`%?pl(B)ZpeGajK^CR>-`??AA5Iy7$A6 zVVG}mGiaF~d<;&@;bZnXn$h7MF57d0#S!6eH;tmv>>0HSN7r9*x!5Uw^~}crOJtpSOuS!#^-Ut=bJV@ zzxrpv=bIw6K#zvx7j8Wc&@yrPTk0r$83|uU0h8x+n%tma!u5mV*ezQ44LEChPX)< z$cN=w+b`ufc|}Q<2BChC@pW)PZzrFUgBhN0}?NRg+7@?FllGrO)uFKVKIcV@B&J?nGYm zx9XY^ROR(|$v~U^e;H`J&h3Sn^EAy4Hvrv5cw(ObXRZ|?M9N92 zu6yiuqxBc^yE;odeGX*qF`KhfI@Q3b_rzk==yw^SzzdL%Hao2YKx^6SR-(_1Aas9Nd=QBp~=-{M15X0=z^EsPq zU*hI%#o7}lRhztLmSmA1 zRbON)-5$Lwlx`$eg|^pt6mHwb(HUO1lM@-I^ah18P7w|_pmC~RbvmZ&ZJ+2!nlo|2 z)Lf!;J()Yy-V`BckNr`lA?3+@upncxo}{#Q^4!JsBD2H?DN3H&Mk1an{7d*-#x_dW zF`#rhn{R(?{P01)j5N}|Q}(u4a$7$|$w*@T9GLp%i>N=8*{%jtdSE2=+=G$aDW{+M zWn!aV^EYzhyM7)lu`iRkTqc)N(}VtyeK&)1yYF%ITWWG8 zpwLUITm2P0)a`Bc2e|~2nf4tYAF8u2)3}^%UuJVTUoI>BSpcdMK|3v$ahda6UrI*V|_GK=Y`Eps|p9mzy zT*e`hhG<9x(hEZ(Mwvbzki_}_i7azkHY_LMnClINKiH1ws7*5b2_x6rezgce#j_Q)2vNycXwh~4pQrdq7U+^3UAGb?W2Dd~#nSDA*I1$7efSTLI<5_wI% z1Q5a(PDSpnQ%!F+Ol3Bhmuof+s8gxLfRKnY(v|e zr8W&i+kdlKTE~haRWO@$ANrkw`2ee5C|G1tdg(GX3y{5~c$bb-O&J!$F$hVZuj20# zP^OxC0Te?6%TYk}Qdah4rOuieIIB8SjvC>uKxfW*lRAphsi2Swk__(@Ue+iutEtvo zD31tbApx>iZp-5&JW{~cB25w-fNmi@L2;ceO1EgZTM|8CHfJc^-++=@Ff-76BBjF! zKf)wN!$59zzD1Bu9E@_lvb(TeR#xLLbV*7`q0v(iti8W_5R0!Y&aU92}NaI*H0USd=1dG?HR--m%6DF@X@QaJpOt|ErV1ZFQz+Uj{-ou=Hr>AW19A?W#sxToi1fYT|x z3z$F``1s2ZCw;D3I*FO*F2?ob{EmX4Q*>=ex?naX=BuTPRKXJ33`vFno0C0EbR(V~ zY&`2QFZ+yRjPu7tk6X3b^2Mv#cJi7y0ot~45z$_|O(NuQ4qNlC(^Cc=0mM>Qvyk+HbRlcSyxVj){merY6 zv&F?xIXhB0KTyJL+G-Zp>=oT5?2ST*n@IGXtQLA^Tk@9Qf zQye0mG0s6^3;!`9n#<_|vVM(z_S zNZQskrj81Kh*(cXPJ>$gUMaTBpN52UbE#EUj2{RwkNk9r4&ab7KlQuhBvCsr`3C_= z%|tPI)c=`WmgTE?#cN73COI2@?9MEeqWt7Y67bk66u$!nFAe1e;|(b++(|NLnCF== z+wU4z?N?=PHP53?8>?jLsXC?Z$wid<)XkGZuW0l&{vfhax;f`l^}?f4HP#qFA%Dw zQB__4RYO2(`5PNm`11up(G7wi>&PEl*yOanSr?gW7h!mpE}=qUQBH!;UOs(_f#zQ5 zt$#!pyU8vVUcSh&6|7;&Yy6^FGvBOS5ZDKvEAPzQXD(lsRJkO4P-FRE6pL#v7T5b+ z*j8_k)s|fU3td~^mo!{v<$SYdL7CGpNR z=(pLRKCAx=Bf5(|@5?{{hL5dac`l>f%C)Q7l1w!<^`~_8{y1dJp$Qb_zuOA+0pOMO z9!(HQ@d9||q77c_A9z@!-l_kRe)|4(@xEzDi#GVI5_#2Ef0KULHT=*YZAiB=dh%TNe>6{LIz~jvNMLeEiJ(zfRaaMG3hIPV9p!6sD{X1d>;&_R^;a=RJIA|0mM3>C#sp``9Jqa)>6qej^oI|B#L)@(fr`*Z6G@zq^8Q zU0&%j$FQV(T2N#1&lJMO7g|n!CXX-$>%{LhPY*5g--J;*UEj^J4%m0~XuA3rjHcIg zH=C_C3ugTG{gccV;{3klgdQ@(HqwD`dv@e!Y0&BnYw4*|IHBB;RbGAut%dyTEa^H8 zJLxQW{VE|1Qyt0eD^sh{*GK@O_;jhShi76etzZeWFTb@suhFA>MioEbuz06chpBB+9uAv zI;%1$-08UD3INJ?NyKub`KkJnD|b7l*Y^OW#M{(=z{QOEJy#4lB9BQsrbnu~rq@Ou z6IiB8!h;zTsCH*=XtTi`+5F-+(jx1@cWwM`PL1D|x2>l5?XSjf3$CoW_HElZ*Vr${ zxt5)RT0L=bITHKx9mhVmjr(@wD0wI1R@n#rdaym{7iOc_Fy3iR{>v%N;@h}GS}I9( z^(%SEwBEd&^oHtiV0Xi4v&Q2*oY_s#x4Ascxm`HP_Gp;(6T(RC>H^)Vula?QHB_kX z%}U9k>&r;K6wlf z6S8GM{nd1*^~HbEJUMw`R{cVL2dzI{V~=~{m7c^%+Zvni5-*4yn|=FSFK zxg{>(8j|RlL65U4eSEFIBR}YfRxP@5-m)9-T{8BaMz)2EM+eel)+4mJ|HMdTHZeZP z{}&q~j90M(S0~n6w)!n;`nGcMAECvUy5-=L{44|}udXEhR5GNof@X7ys>(Ey`e8ax z7n9P5`i%^EBUe>csLFDbrES#5NfdWdr?vXqxu8U=zbk&x%Y}J$g!DhCXP@qHHeO;* zccV=aQ&bhI3M(jLE&JdBuc)2*>Hj@KpV?cDJbZ3DtJS|NdRV4oc_0tox)|6)gQiddS zt?=iX<=LFPX89yeX~xUtH<-a(n&3Bs#hfOZ!F*21X0U=&z8Ng%2!&Npw9jVJQI zrbew7@8P6yr#EoMSalEBrL`F`jBzRE6~P&oVqSUOz7&15$G#Lx(3|$9n5Q&au{Cq~ zmVH;OM#t>Sd@hg6CA|-3!8FxQBIzLC+s1u@nn#5PM>Tv$6ZSFgK-e-#w;vnc2lZED zvvo#{CYwI1lJw~b$NcszQKbbX**FnUp&yo-AM`)U>9)>R{S)?fvpYsQt#MmjtN$4( zS>Y#N?K4g`rnt{dZjtb@!H6p#9OdS`L5IgXR1<*AGtoM^U98Cy!#*_#UBvs_6Z@Sd zXY}q2K=a4Eq^jA8owKMQ;^HCtk&vXVo5B)%>8faujChW&V0c z(`8`JgASb4cLj9H(|T~0pANokj)1X?DH>Dx%m@8X*`KkSPVIHPJ6kNmjTzKX9@wYw z3?E|BQA{F|ihV}$exqU#K#SSn86e74jc_)BYi2-v7kIK$x|@^r62Uby{kN~iXU~02 zixvL)JYS%?h*i!R;PymyV51-h6B-koz+PqrWk;#b7w9pn_8P^zjjEn;jsA&7$q=7R zGfKAek{DUjtvBC19lgF)gP;1SU*-v-qhjn>hNW>RWnaTM2uZPItR}7h5;dSs3tfR@ zp8KgFpA}xz<)H~#syo1dF;=yp--5tNOeCJCzKD$zjXJ}NA0~*~K8*$>2lf$Ur3OV! zw`p+v3``^AjGt0rpj&krW!w3b44SHLqqxhcIzyY%0yyc7vO`qhBkxgFyHUKus5(f& z^w6s^H+2}r+&jpwVR$j06G-E(aqdT^sSwh9`Vt5}Lp)uQ@H*Y|(ZWve*z5x!v3(<^pvnXK3uc zjr4)z6*)8^xpc7M_GE`ToOxRPTuMm*P@BA*S~9?dB%h7GC~MBmH7mu7m#t|D4$M&Y zgKKViLB3F#qUCGua*%ax$&+DW0U_LToy=Hmj7`Lgg& zn(qnhmje4!KBlx0k^HdgNhzTo*Cif!LarbBsl3zV4y_21&?hplj%cdi_KObINH}eB zAc>uYQ%iget_}i)%{gi244;Gu?i<_QxX>JDe%Hkq>qvQL3yqD6wF8#w;c|r$@$vglap{AD9|L?WW89XK{p?)V%5=3(mNl>Hhr zk|Bouq;b5ated?}*hQ^!pY)GW-Y#?~&B#P?iS;8S zVXV4NC>+CjrC+*V%!0^zVVd+ic!MW(W1>pgZbTjdsO#ZxVk%1M;$gCE+Bh#62(r{W zIeXw58LB5|aO{AwY9(b^NxqHc6mU8>wH!7Ido-&)X%xZQwyTefqCLW^Wl=fK#_LHs z;!P!EOeO5w1A0{r%UH|sg;(W@CTonZ)FwZoX8&%a%oGilr7wdI5`qeMi_fVt@@ek;;&LI>Jw6gb*c3w{1BDNdiQGJT2Y zcpk0fpGdiR4DT)X z3CXOI)<@FDOi@3Z#8u9bz+-YYiVoA1%%cKX>?J!n8OhuKZO&E_n zB_GueKn+=od>EJpjG~Udf23v`pgx(C$HfHnCSDPvYQ z&Ku!Ar%~7)Xus#1W>a$Dvv2&QHQIRV3g_sKA71> zWx6JH+Iciql{zSu^)`J#!1F5BT^(=CyrcT9I_GKo9fHdyrkK?Okx5sp?)WSF>{s45 zn~sH-d$beBZT)eNZVWC_J}(|rlqGh=F7?<^dPuGCPJawx)}O}iP7E#GFE;*6!5bJq zV@~tfy;->3*_%0-RN@Z*5kfc+*nZC?u{zX&_CJpbpLK0b5~?pc>paNJt8B2=x|^Zi zfB2lo z+27GNNwX|Edq+GLk zqFS{;xK~6+#*m+9YLD#LEwSyj){%eJASfc~OWulT9v`didn0OFa*wDo&6CtB;jm^T zmm|RqYU(k9-C5`Lm|aU`>T0!gzA9L-@Um$&R&b042hxI-jX5a#T+2>@N_uKX&Zq3# zHHvyry^r+WU|&T08e$jyFX~Cr|L^>QXba&NUu9tm0&AFK+z4Es=NSKa9>@6IHGhfr zZyrHIz^AwGY8G};#Z#i=VZ_v}BQRV}(hdv5sKK@sV;DmqABKS=Zn+ClE(}9EsoOPYT!vgMH9QS4;W^gn8t4ndFgm#j~?kUYO8 zEE`E#9d9FXZIOO3;zXIWkH7oA7e41Iu#_d!M8URLqP#D%p>%YCCfhSIXgrtGMlD&`tx`;f&~R$MxE| z>S9_u*M%uwO!Jxh1Bb%Bj)vbkvF#J8P2S+bc5|^ibNe0J>mrlJgqDp7qI?YXKdYf0 z0dH3H1stcZZForamDmkX$_?>{(iijKd}5ok|2c#qLh?7#L7h<@~Ob`49NDtqch@)qds5EW#imNJr!L>k=40|!nfwe!2(_GpWm7^j?|Or< z%x)raLEq6k{qDEZWZLK9Ft-b!G7tgi^0O{`ssV=%Mkjuc#j}>&IqE+I*h1GAfenYk zwKdF@rq8fM$qw%n)10gsIlND_{DViLu-t8I_|_{9IQZCu*eDhIzbx@=4L--C zCGawzwmvAf0VwyyUXax<#)h$D_o+o0s+@=ew_1{g*j>mX{JUMzoEoctb__@nBJHS_ z0^~$3K?FkJV@(htOHO-nn+>lX3CgLH&@&OneH6ETiOy+O%f9POO!eaI>6Ueb?LKT@ zM_U&fpZa;P9Jjp1Q7lkx$Ml6ywH@aI^I4n4*~qwT{$ygN#;+aZ*KNiRFB`bw6M4GU zjip0M`8e}kiJe-Tq3?O8rhUu{xv?J@>Bg^}B&9mr@;TYBm2(v{+@(9B>mTHHbiG(I z*kxks;b^o^9E*1E#Pt`ubMjgo^6G)q=Utq!N`UePkFxJRBKOoRuev)q+>Q^oIRg`D zw88CB$?~pl)i22k>gtFe9X)pM%hWM8Xj}&>vF?3Hh0LU#NbS@ z4clAEK35xLAE4+4*=Sf$$r3@YjmR0+t;Z2kMdjm)D(Hiz31*QuugGl{C8rj7j34X1 z#!{}$cNqWS9NN23RG;uHjGs~m)fAP>*Q|`qr=vH5*Bim_*dAlmCjzXjcc{RP(A~mT zEYTIJA;#%xoMIr)mY;WH|t(>jf^p}+y7tlcQH(NNr}*2y!~ zCgamA@|jc8^4jzW=}uiIqk*wu|6Z%d%Q}zXO@t9K&Ve==#kgW9BUfr|?5T7~g}Khp zy+B*KE+h5Gm0BxzB?Hno`C{n)Y)9k7cztU7*zU#)))jv;Tmwc>8CdYUeY+FN0;cpt zT~mrxQ9cBe>#*sU5#}|w2n{#piCNTqK~wTsb;c-rN8k97P;wr{jLK6+G3I5TQOPg- zJ>W2<+lV}i{VdR_wi{&!@#c7qs!nW+MwRscS{Wir50SoA6jMdHYRaU%Hq9hKrLf6m zSD5RBOO9J7EYeujEamJHYi%}4%%{ypL4uU&yM-bcHu-*E5Cu2J&=UGV%ZWj703#pH zn`;M7naY!0}CgAZKRr~Qk8C4#?vMbRQ0^MkV?qg$i=m{V~dq8uzYhOZx$UuY0 zI0V!D*qDVi7;gk}!R5CuZ?$KKTA*NR#k<#QZV@`fuT|Bh{d=d`b|Gq%cNvv~YKsPZ zt!~7a(8d=8NoXv_s*_?Z(;~=Rm!%tb-9ff!B^%Ndw>iV3^dqGo0oX47Sb6e&)ST~M z7F%d?nJhG6iODXb_KlB?TOO8nh*C6Iw~O=a?dUq~{JyM*cCyl>y}@;xQM-#L+{F;? zep~*~m5d*6Gd65%KXxr#LnlEq*9qO@k=SdLoi=~2hZSzVZlet2_FmPd!PW5fT`#S$ zyXfb-rH5Kh>Mlz5pL%0#cT<_&NAN6{Js8Y&x}Sco`zg&IIIV`LIS&=rs5*^Gibb8P zG{3T|o8(tpYyuF$J#K9p$0oy+&XgPK=W@f?5E9}G4<;E8+|F+{uAMaDzhte^%0Imt zjT0iXMlo!QBu7`R(6($Z)KdRDi5jt%Xj}Hog(>yd@-FdsXIM?VQ1G~kMyF**=lA+hK-QvnEI}LHQQ{wva46Y8QF3E~f+);4n z_j9<@5AA$^H-8Y}53jTdP;_niopGg2h_m^<3__jFJz4iOw~IO5N5(DfM)Lc{ga!Uw zhEy&?3Jr@Pm7W+k8Dghi-<|0Hm|qW{o-hK|w0ZoQ z?J4^)w3Y8QDv!pvg08r4IlMSg2r630g$uK+Pt| z;LIP;sfUwh>Gv_tN(T>#TwHUqJd|rg(xaUPyHhGl&v_+m#2@7a# z`50ur{D>4u3NEqVn6QY2D`X4`^q5SH@gOg|%Dgw%Tro+VX+aN1kTngUA->bZK0R@p zmWw&UfO=j7ut`3lTBJ_(h=9O`HwQ=P|JXOu0XlRa3YyF!11+M*nJuEmrIvV`sWv`e zMH4TqH}AVsb&NgR^aZmpXx>woMAY^zvnSlLz`So}=0M6(c-iU3*UjezYvv;&e$~fg z_cy)*xyrzSY-Q9PK&fp1@LH(W+w0owZagKF;xV0&c}N`Mnv6aCy6l*i{uqRiI?z_T z7NCb*{*`czaBEo~de$Rd0@y4jK~bv!bWBcfIRGA4+cje$Fcliwt8G8Qc8wKxAmoU|JocExa#^Xc_2 zKRRIH0i&?v+-#)r`6W9ipot0I^W8`PO~l%vImh`@2?xw&p8pOK4DZ%9YEF_Rn;f*FfLXPkY6Tc`?74cRz4&q%(e%$endB+Mf8Y3kEnTrrV@47)bI(LrtTwZE%Y&>^b z@`~QT>V~UjvPG;P2W&Y)R z91Z@QH@4QZ+oW^v`0aUH95gmI_xVz+>5TJ~mZ94zqPB+*JMOuZB??=g_ykwU>%&7j zk)G1FKe0imWV&_B8U{8JcRb8u9@(TIS(SUuo0FpjjpFqnR_FzBGjA34bK@)GOoaoT zl{9}Ou=FbZP_2>sQangts<%MwBP&ITAHIcX7{5|XCNj3pPhceD#m>$UwWQ(Cs|C;a?$ z(=yC{m8ki&Q|sPDVY|D%W4BQnG!#3pbU3xr!8MOCD{*L*||HzhiJV4qRN zm@tZuGGGY)L$Q&WR7_H6m5=rA*)U5c@qo_fIL>6&k=$)eAhL{6l|hMgR5X;rkBoV- z`O7WaJ~rw`FVJ%|Z#g9B4W=6zhY%!(8G5}u2pWcAwBdKCI_LEbj{FxsS}qg!A%4k*c}UOG1<*eVxqA zscFpp?ioS5#0%=w$)ud7cy!Uk=%Q?it69z*9FN7jvR&rmx?Ku6>|a^NM7-N5oim`i)C1XIOg%Y~BM5xnxq7vrkdMG4 zRtpk;{#n1o~yjFeePuUnn&c7)#9jY5&6gbIUiSow?)L7{P3O=RU!P( z)<=yEcl*e5e5EQNZ)-9R@W!jcXOkMQ)5>Sgr_+NqHI{fC`u~iv^6uj3-TBrJX-xl7 zl+*)q|A2sH^BXz`EA7#2k5(8j%7I2x}80iB@)iH3x1Z4z~vODdQknsw#Y+LgznwKD+V)^wu9Y9=Zo072H0 z1^W4X>#q3o5}xDoODd?FFl{!BNwFTGW|9t3D_5lztXHUG?b~-gjoGhYI?)+ z-|P-8^^IyGap^2E&Q-dj&r4@TpO=oa{+9P?V3H&S@+;Em&&^WH$zFR4Y}uwyRJ-9J zCZs2!E7d2)?rX%8F`!lpb(%z3tQLYqB(BzF^pNZ*o#pJ0B;dgft@C`v0a^+`b2|!r zF4A>lQJ>{kOEc8nS*vH=vU=9{%mTOgQ`QR-hmp!%wO(tH>$RdeEnh6`1;uJsP|cbN zEm=4GMG}PBpcC^l%Wa1BDEhGm3mn!>@JeC1Fha2W+$C+%|yqIl^HjdW{vHVJL%lCUs&`w~xTi%_5u{)v!IY5KTQf8%cfGqjP6dW@qCkNPV%@W+ zSlR8COeeB?U8`c#2@Dj7P>y1{J5LAJTz8YE4VKnm4ELB?IE!!(EE9to8ZqpbOZ~7# z^I&E3;BMo&LGJu;EebZhC`yUt05qc!9V-r$QO(UG6& zh-tj62x=r6Pe$AGLDuUrnL~_sQ8miMAp|&9Nbg81q#lJ;KC?D0k0-?Et}JG*k6Vh} zU%jK3B>$JA?-OpUXT#QQu^uLUao^Q3gFt*dOT5M$uUU{D9&nB;@HfrY=KmVu9ijV~ zY20`|-`G3$VB^&`!%$i(f1X=}mVeLDI6;V}=`vW-$!LQsdSfuypD8Ye1~KU+5r~Et zr_!qqrY=toR7xm)%24xF7zz8M!{i$%7!wPEHF9rgY!)&*YRef1-KH z%D80iW$q{X+n}0y+*~7+Vy+x1pUGxXd{oQlmHHd6*tBs*2RbNV)~IdB4?wam*OqbJtvs3{(>2(?_>JR?k^d+q`LcC1|Iv;V=&P;r0H=S z9%@cb;BYb)t5^)mIS70jUc=}+e$Hp5w*H;M8SQ`Pd~d7ZLJx5}rn(Qp5Tp5F8lhplojiUx6gm!P%mmBlZW<@B~S`olyUjq(kw4l#SJ-QA6)}XZw@~{g3h_mox!=#@3JK}dYa*>t(NTByirRn>Wv%aPtE5mYJEIDZ8~HUwHlRG$QUoWO>c|>M)hjDdF~X>+4UR zjxx{=H{8VBF8x1ab32^VUSriSgqo_|{kbnDG0hX@l4;(P&yAesfoZ#*_kWIizEc{$ zq%Ji$n~9c7Z5P5t16p)vbW#0uwcqlduyZwt+bp#F7UpoWxqO_3p?)=97TTnx5;6Of zvF4pUdmd;0yu*mdHylPk673Kz_W#{s6nbShRRP;-jx2dY4VOh=t^i)6y+RB49N-LDz?%KfV zRC=(%t2XL~Tq{kPOp|2U#EYZ)LYyuNNB^S{Jov0+kg&)45Yoi@<6J#=N@HJ!1N;tJ zo8GnOPCH_K75Eu_b%??1{Wli=UsvC!OZ_-j3P(AKz-LDr>a2lhcS zoYnb#cJ(>jmzLmn347LL)XUJOJvIjSbD~dv;AUGIgk8Z*jHmeS7T<5ReRgigLMar; zpJ^MX+W#0cKRy;WKO%m$nQHFnWdKXj|JEQYrYh6p4-6Sad+`OjaK~v-IFu5jk)i!9 zM)K#}Eod$>`+pDZ!o29{|f^>84 z%n2y(r9m}!rn$UaZI)13lf8}f5)3$A-W$vKctEH2%>}=zzqqNT1rx%6W%Q|#R*nsdilXzP_me0|8dp{H9$7KD9y@o=qn#i^7 zEkxPdEKkTVsn=y>ZcjM_QWVkudgX@sgp9OTL?)T~wNt;pUB4iAcqt-ZFdq>tJA1|- z4e)xy_mozf)h2nB4(iiuhYGxTbV)&SY60t2vY>jM=nMF9K$X_+F5|KE zo*w*m*Wngk`6=d!zDxO_PGGZPZ=BOkMU(y>uS6n};+BE@FR&7OAYb=gu^5USap5=X z$1ybtT7Q094`u2nd&dg`WAp`q-zxbPL)BAXs7rO(rBr+E3@eKVcHP$ad00*|sBWYL zhJNuckYRd5i6=bhx_83XD(b-N?E1ogIktX}>;9{^J|w3JTNld7v$aW1qqnZ)RBL^< zR9ljQwKdi>`?H^m?~B7&-a)#KP*!`loR$F zD8QT&x3vo1?e=MYnT?6myc?Z9S&=5LF*)xhmem%6BGZUW;ua;vj&P{OW~o%2i4v0{CQ9N^NN1wNM2m@%Ot&sPMRGGmxgxl^XY80N23h8#itTJht2OvtzE{JbHA*$%a4r0UZePs z#26Zd9}%49Ghf!I*OtM+fI5jq&U{i&J06#5N8qqgg@5U!QFYjSNF#r%ARo+sU_5sg ztbyJ*B7fJuE;t2QS2l?TJ}gHBv9)`C_v5ITPzY|Ly|#!_^Zb*0@!iA#o96 z_4r5lcSm@>ltGXwYDAInFtV-z;%a zeOkInIFany_yzm%!mH}P$qTjCm{{>)<~8wWq<@NYu0I^K#XyO+ybW)@lHf1FnCEDk zHtOUvo^4M8&LsQRB)KJAN*Ii`<=b}sxHW&h^o-4UNYpNA60qXGV?I30TvU%baOz!h zOdHR=b3TQm04<4=bbL>PY1a7HC3;64V03@w7#m%p;IIxn17P zzSP3B^`p`f-m0|o;)U(@!5a0*)K<~JA(k$e?K3y(k*VPioHeQr8O4mxv*vmY`D#5f z$(l?WX$I%{h9cmu`@DT<)^6bLP_mKVUF?Ve+;y(N9+?;%U?puCIzN|3>2FfyDfjRs zG|qpJugzMVeWAXR-mS4R4#bH;?0J@=Yf-bcRI)s=XR=~PIu?3TT^&yC{v>Wmr&z$F zSMDR4U6rSwJNdNB%X*>6QrWJ>cs9Oj-<>DX(a4v3Wa|h!h#(FhwRaX^YtUH~W8?RP zClqintAskHc`)}Q$3&j_RY5w@2^~)7dS`g4%ONR*^p;-ReMAEKSlOA+YbZemQWBI!f~KE$l?$2n^^G5yFI=tcuz{CPO;-Stg(U_S0+{z2zwmMiEc9>Z{65 zU87OlkyPRh?|0;tSgCVP2moVgIh5{r!MRa3n-27*Hm4as+Lqqa_cykpr13AlXIWIB zBR5!v;2lOg&*^!m6YP#JaOn^ljo0|WevU0bzw5N4J30%z(n2X6dmlVY1)iwr3&Y;< zguZYBcX)D3vsYAC)x&z2_0D^4HB%%fF)KI+#-3`d#iIgSPQ`J2Hxn*T!-S1e_|*5j z&Vli#$?RG^&`-XOQ@8q9;$=M7l;%7@dUokD!XZw*=Omx;0Jl%Dy70MKY0mxNDCG>O z81CRWy@+?-t=!}qgMVnkoTSQgb^8bo8=p@KfP8=4iA4K^a3-k&yF?=UYiz-9>^W`) zcbwjb_uI9@m|8k?t2;^Qm3Ox{btyI#q{P=c8Y(I|?SXw?Q_r}Q$YeiwzR#gz8bL zqkz7)M@{ph<4OAjegL@a(Z75KAak(?&+4Y~cD0@OjM!dtx?5>)Tp!72@<6{&_DJBR zXlMuxVjh;^fo?qnQ6|;OY6tfOc7((JV9v{CT}e`tZ$foiW(VOkzx?RZ_7B)!!j6t4 zxyth$yP}ypwg_dV958-V>`zhyG%cqiXGi9alnzX$&z)7hY!9%{IpiEtox%lANq6sd z?t7*DOJg0(kJ{zz+}{32w>o(0sMvfQDcjam`0-AV&!lyi4req<+Qsyqv@~NvK^9`0 z@Wi`zh)QNWyWgqy?dwaLQc7jpBC%!AutuZh>@rnxEe5icj;? zP)j^4O(nCPjo@x=UH{rP8o9Gc1nsM7Gh9U zER4&-g-FJ9lH&-yLZYxYZSgzZH{15Y$GKmee+9L*Bf?I1%U#$;m`yk2sW}7IpC9fd zU1D!!iZgI@@!ze%yEr#Fb1(ba>4k(<>{K;I5~WRz?{9l@2HV^A-^7~W?_ja+zaev| zio#?l64-Re*G zg!`oic4nXE&OFUx!`r*{urvl z@`KivhwO#?oe|e!;tV1ax%h6x)d@?totQP&ch_yA*HK3YBA(80yH8g2`%upUM;i-3 zY`D`3cUa8cUwll;ksG8*7SZb>DqDQcgihgbF6Rk5r*_I-T+gi76zw0#iS{d%op{U! zyxtks91W1YAlHrh=IQ^$I&`8dYBhFu>j@e7c^ci)XAi(6>-Dv|#hs4z#Dx8`6t;`*vx}aWZ9(@3@;S8h z>!X^+!2}9et32M(e+d#DB?@^RpVyq*-*)^6`-5xmyIGnn9^)#r&}H7@&cu#N^tn-V zh$dfU8tmD3)2vNVeB4e_C0BYg4-x0GYFE=Z)3Da^09PMrlLpx9T@(!r5MWu8i#o$9 zwWe=@<7m?fYyVT5qU7HCJz^MomZJEU-+6jd6go9F)cDjt6g}>bnEN-D`elDI?!2=ER@^# z18TD2zursRqxZYIl&MiFU^7fvUPo>TRV1M)CB1Z7lCfdV zhpk7LPBtB9kD>lC;rCYXfsKFM_GfBo`bTYsQbRLpg0Wj)`r78`mT$HH8HKwx{&eA` z^~bhTzQ%I#6j!6Mp+IuAjwby>|7f*?I^kvX>-F4pnK}KV)SiuZP)E?35U)eNVBgx7 zNgc4hq3PCdb2djq%^y0JvR~tItMdwhSq%=*I zUF{r=53A0cUA#%^wPb9MuFKVq(2lLEJ42o6p)*$-8;%-9y{gBxb@iK}o#~UfvC}Bp zp1Y&z(t^O=rp~@fAyPh-&t##=q+wow%?}1SlHTNrJ>Aj1>or-&8$~{@8Y^_?A^iRAQ+tJ5+ zfZ^`+zDv+5I~#*yH|=9C95K@Dq@kG@E8^`=wq5L<6|j>zDQ$5lD?Ffm5i6Aa z^0Q3{g;f3-`bRED^M3z@+wf~3tF>-B9BacQT{h#wWgpgMzZEZ=Pua-Ya*kHV(~rYP zRoi@hYXQd^tMCu6M$J6#CdD=<-M2tCCq1%S_a^&YTKR8pV%xEFE0;42kDh$@NA~(| z&49O)Y!tj-*%8X0A9XnUegaoJ=Z3`apL0W)Zd_0d^FOBBtR=VZAtz8|t-xme;R8U^ zz+P;>*(SS@ow^XsjyLpA@LaP^T7I!N^WtwxA^B&v2~sas{K0oL=8<=6HSXJ_x71oW z!ga<5tzSQ2Q~#Emq(1UKZ^+`pdNh9f`uOd1x!r8vj%Y%$jvfKQn$oN{xeRT&Bwknu z(hA1w(6rk4#n6^h0+5GNb>g{0qPBUji$^kpe-^_s|$QZkq_rXCP_N9O4rUmmFAN2F?jECwe5k6rp| zT46r$*I@P8u!cK4ow}T~AHMhQbFVUp1i0bw#kjsI@n&`EgE;@fyGTHAi*T9?Aq0C? z1EjM)*60i1#0anC-CFAh2Q*$Jam=eyn`i~gC#p*@p~{XGL)K^4Y-T%vNQpa|ZEdU5 zqr6n2K8e%}y=v1mq=wst#!?dkePkoXx+u#(5p60U5X*?SgR)Gj<9~O@85ZR z&hTB#@Qp0bmq2+#(pXdhKrs4^Nw0hay%$E}iQ9<`6bEVlXi3>V#3m+n)lZ0O46DIk zLdsfFNp2{ef`;JMTLBj9L`v*fJPoJP?Dv06Su)fkOW0#1-njttkkt|k@YRRsOkg*I#ZCUELNrY1W3l; zL+<0?S2~+&*4Q)ANY(5}>BOMbQ}cM#G>=I)El)n}LO7nx(zS@mZE>segvw<+cqCS!{25E;{ zZv6sLE4jgLa}9USf2`Ea40pPR`{yV2y-4Lm>xY^+t!JKvomU2tA5Wv$F;e4G`Go&p zqCxknTdnx`kqCf0nS=$&r`LsOKS!`P++Ax`@7LpEVVZTOMT3BWxxGHL`d=LNJ)5>V ztS|ri)hHR$v!Cr0+(aY?6O`9USAwh?nUGm8-U=JI)d~+roBlQ@T164dA#iFrH)JB` zMmQ!$4uk$R5Vf^HD(dX-O6V`cpu?LWE~`*V>@feHtxZ*~olA`vGJE1Xqc*xv=mt1U zAceWKadXk8?Iwg@DTb&Xu~2;hl^0mt2mP=xYdYV^u39I!a!5P|q>y zi8Q|in;E?YlluvBgS?4`DzWb+uS3wq7&j*QJE2c`l~(+{hw*SC+1>}&EO`l z=?ZP@+$zQTL*cWxHr1#!zd7{@YZA#6C2Ft31}cQ&s0R9OgVS`BY?EZ>uE?BcC~GDC z=3o?%eAfZe)Sp_7n>9e_gyUc&cbO&6nsc7%zdd|^`dDL?C~+Mn$E68(B$`lYzo9d4 z*-bcpP7?r)iQ5yjV#&BfD-3ldb;Vk;ZAE9aZ#2J!vC(M25>Qgs!Lm-UrrI5u^OBk( z!yO4UKFOXV%QV?6kuX?-B8q}a+ZmS|jb?GpW)`z)B1WU&!l*&TC5n-# zNr*PVL|hWZZQl1(cMmftx%dCS@Atp|_ip!mYO1@sy6V)a?bJD^PRSX?BBSiA4_Lt4 zgu_r4u$2XDrhpy@aIAYQx!iMJ@l7(l3{=-c4OTQqd0KN~!r|XYHv;CIiVJ4XDX-6;teNFR4GF-#hjvFJVYZ1o0Fu z3eETko!ptEQwU+gNGnd7h_T7amjR!Fo0X2#9h7WMCzh268lsp+M4#0Nb6jqEIpbWdzxX+}K7 z-uy9{g?Ej=4WMin^U2o3L*Oa&(G_3*m_v<@NkpU21l_k`aI``f7IekpAYhCSDYdL7 zI(x~WbW2!ep2o76Ewe%{S{BnhjFvp#dJ$+P*2r1@WQ;hcADWK26kN)SHZx9~u7oBH z5{(d}5G!ZDLFg;B7I}^Hdn~PSZoMMS&R{lN5vR0)Ofm#qARX^64MKMpN~;{kbEw7P z0{+-|O#FwM0ui^x>}yO1h~g9}ahL97ys1?UV2GqteGCCt?E>0oQaCYYAjLw2>KF+_P_wg&PIaHd$gHZMXa5L*$0 zsK^g)kMkliN`F>GLzs^5E0yCpRt|Zxm8IN(pS4%-k@oh=%42Xi;JnH*I}xeH_XTRd zrfQ+H-nMqWO4E{M5fRvY$SKPrTIW!OvDGXYr-bcL%#8K%8BVIkE#&q;_PKAHq7!3Y zmL}TR#$16g#2(yN?)Lltza?O^K3zj z(Wu@?@uCzNyf5eyQT}x7ILmz?*<_-e#cy{5QyzjFQ7_zIu@;ULA56h;K-7sbm`&kodw6&H&eb=RTk; zN_3M7ih=qY3ZSCFCi@7jghwl$VI3?=T)GV?tmdx+E?tCJz+Mv?mGis2#f~+ZbwT?Q zw0=MdtwZ=yqEf6_57iSq{e&GfA<1~v^CT02z|pUQSVowHkuVv;(G|fW7#C|~L>6o~ z#)@m-lV}?{Ur-_xz$cU`1&Q(_N&(aEKumUyNLV?8A#68M2MD(#a*h-Z&R|ch2UdVK ztU0^}YyQJIKhFy|V~(X$&d>lzQOyAGEnmB^IxrS`#{z=h6qQypz6x*#KP&_e%`GC`@o6^bn2C7;-Va5^xQ4rG! z@*m6$asUnOd?mXGm3%owwpF?KgmRyX7}-${;86f3roZ_mcC zZi4MTVwV9DFPL@{pwUPpr^Emv?8ioogz|WlI2b2EqN5Ynm^S}NBdzUg8o^>=KJzTp zH09S@@fy_!A`RzKR;&cBsn8XjP$x(qZ_qKh3QTacLl`Z}NW~C)etFmiOc?m<;*V0b z*{kPAlhV%H+w0pP)i)5*ia`xXXSZd2_%kVXWpjqtu0|{2^<@)=EEEpW004SESMeTE zhoS6fwTd^Sds>H9Sa2_oV~VGYXW+*N;ize46vb#J>>zFq*0B)Vpz_UQL6r!zJRc_9 zfB_+ohzP7iu-KH#;VzYec3@HjXd8iyUWaXBa#M5%IjXEny*bN#HqD{i$rcI?WQ`C5 zb;ky)FsMN|IHjKPlTVN0JjbT1h<=gU$7AM?_BXFs`fr9VfoqY!%f3 zj1@$QJ?l{#;(SV~I%Wz7TzVPr0AO)x|5EBq+gI$e(K*{FW<@j9rGgyzzz^ATKk!?P zJ$L_1R%d@_&zoOp1`z!4rXI9x3D3vK5S?Q%DG@CY$y|M ziKtk2GLTMIQiCYhQuK~-Oj@MKi(rry`ezQu6I$Y+v}&y9ftq>dv%?DK%E7KT>MmC7 zm-m{DmUWn`M<~lW4+!sl_|Z&Rt$Iom<3eil&7_DR|$CZX1X>C(88 z^$X$4Tq;hN0;K7EF{nnG-W55QQsq*AfN&%Wt4o7blMSf|bgrtHr^DJ2W{f;z#iXO? zbir4^@)2IDg6V8XL(V!eP4qd9(7>WZ-@Ou}b)2^~)CXUKE$Az5PxuliG>*1}fQ1zJ zCV0}}iIxyUgxCf5!g#+&r$@UkqQv4tIlXk?Wt_>fG#kNU3=c`sI-;p8OW&q|uNH&M zS@$k(^VV&~Kfmr1cF&|@WbJv;Hax@I4^J4>o?mndHXSMKz z$!Lk~2$>uo+nyia5&9OEr5EucMoa-BKsPmoM1slnH|L?U!p-*F)FG% zW=RJD#$_5m9Ru3Y+{PfOTrXD$>Vx>*P8ESemXNoV9g&V3PF`zlJoyRM8bX@XJFkHW zEiUyXj9f$<(Ul-vN~OduHVU}@1&J<7aBF4%xRFH+gQX<0ce9=Q#QrBNiQSaoeH4{~ z^C|doDcG`PW4^uP_Bw(EgC(5>6qtLIWNV(n(7SVaGH$)z}Vf=Y29 zm6bxS-o<$UHPrMd);96AM;~Bq!WwF#bcE3Kx*~Q_BBoPBv^w#~UTS@##RJUu6}R{j z!_cR$1X2s+oP4C5yz7d1V80yEn<9d<4{{&*)!g0cT375m&Ib z)G@PhteC%B>JxKK(t6m5dsw0LY{^G^LbnqlZu28&2@&@&d<-DHXl5!(@8yEKYygZ6 zL0rr0(zveIT-zkG?=xB@!FbN?}J-m~VDXTHl=ez!2>}z-gKR8I=J~Rk=k6kTu4YA^&X^cfK1e-9RfkoatMe0M~ zSvLm{l@IUE$8?n$YL(h;Kx!Ez>0WG`UFxqc9BQgC}Gb*ya%-=6vZ){m4xSCu#q;APODXZjPxd|qR=3TdQ(;%Onw4tOlCK~jjzO?ydK!( z=@q9iKP4ey5520GLIXDhDh6YlHb`}ll4@5e)t)j<$WDQyREf{c|yBh3F}XFd%!5E)cp6Q->$eFoTLQ@UbERZfvfPMK0HH}0m z7hxT1Vc4MG%F3ohWQATMiw!`8MKQqvT2$0)KsXat3fhM35(@ zJOqM1{sOZD$j~l)(nVqS27E~-J$}h4^5xIseBP$u9tZbEC=T2b-JjeFVa~;h%7u z=s7A6+wypO#eT>jiK={rYy+)LM*BkGa+e8Q(&yhLfs4t=ADw^qAkr{pSh7l^jKq46 z6`$`#102L^=@3(B_&AZ4DqwnnDks^>!-5I%CiX=tv}CFH{A5;N)=(V;E)ok~Y70T2 zDTyg1k&$#9N1zVy%hHuL^tK9Is+vnFkEdgMt%IN`IZPG)%_OOW7?t7H9(^~D}M08N^tI`%LzF)w>TtLw1}!oV_ifQ zMcug$`XwIgV5!tY(+MO`XU>>ZMppkIpLek4UoDQ^hgvV}R={>xz+_B21#H?h*AFjI z6klQK27-EiHdX41T>PV%>|km0BGd;eMXT3saN z59QOu{mlNVxNJZXXkr^4mEtDE$}ZfMI^&Mf@}Vbx%;;3jewc_vq1Ifn1dN*N36W zWanR7@LKAl?}LV`n}2?#UOw#F(M8uvHJ5YA{Mb9Je1RJLt8ubt?wr`CZXHL1P9@ zKxk1=eV9iSo6B*(ptvj|e>qnC$rY1OD4j0rLGf`MoVPV-lvYa5mOd(0yqdF?^27_v ztby6HMsTx9S0p)})t*3v2vZi(`r&(zoZZr#)D&zWVyGm6c&wS`E#ddXbQsNnh5?Jm zUxbpuBKF0j@b#1Ul(5rQxs3(`r#`0CcXtRw9o3JE*etE#*;$dSvc+pNfpI%I!AM-T zSac*Oj&vh(V)X=8A`9#b5g|cCub6{Hku;!K8D)VmWg)tzIhy!x8tpl=2l#}vlgtuV zOw^9(x#|q7CY-TWZR}0N+{GCO zNG;%zlP!%XSVw@s6!Y92=i0;LSz)rXzGHlw0&#~DaE1jGi<_kYVI83#QmFQXFVJuH z+ISTG_8PCW-&Yyw*Zonmm$JT#fHk@ra&n4Mbd$1#b~8>c`~^)elva(wzIrcrc%Eb( zkh7#~L8%X{V(dyW7|R7PKk2+75dE2?J2nC4AF0#I;zBLpuruQoj-A{-NWO&q-(XKG zU_h1u`BK(6hMY&pmr8&O97;hLVZx;xDJGU8kem>q1Lp%KF{nA{x9Uq#r{fzip#=md zgK-Rv9#)FMv)2(jzdib3&TUWg6R^<`i$)O39}`EA?4TOcJ_@|meh)z) zv%KJS`wPs@CnPD4m$)@f>b1lD+M{zG1VLuU9SBO9G6Tod3z=#om`DZkgIAekiReB^ zl2}6oXPdBrDum)V>X1eONwPws6Y-v_+!je{rWN~0xiYZ|+j)SD9s_KZt8hcsJS$%{ zHn@41GY+Odf1u5HV5P81Zw8?qSH~96s7s z$45w?)RpF-T~TXO2H&uoFpe=J&Kgoo)^MyLwC@f!8A#91aw*t^iN zw=A3ky3fj;YKOzPg0ysUm?gS6awIk$ytI;{!}uk!dq;wVq)BBC(PuEaaRu=qB!LSVuA&zr_b(h6h72853b0zhh{rh8 zd28$=o(FdL3s2Mxcx$KsGY)kRqu0|YsY#0Xw;bw=FEUuO?HuZ3Qh+pp|C%TP@64fA z;75fx>O;_phXDso6Cf}5FD$HfNj}6jX~mVpLW{@Jqa1a@Mq5_`Ti%#HhQWHuRlX?a z(meFY!DdlEIIbM?X?G@U!!DDUD4_lyw{|&f5$Wy-+E9RoHbEn3?F|Mpe2hQl03vPi zuwmIh7_K*5Pq-kqADFfQ_(NC=(O_4iyl@s}QxcX%MM>h1S1|qL?DMR=j0jj-VRRVi zM~g5F4}2Al$@0WJ?&+t|FIr0Nal1?RJqG)SYw21==PkiK|DMo_Y&BE*4hpvSup z_OM$x4l?0mSdGBu^E;K1fTAZ2C=p`pVsJ?T6P|j~o{b3bquv5oILZW+9`uFCwlfa( z+lz%Cpj=pB3DSUyz-Ey{bZQ0eFy!beSN#Q0HRkE~4t7(+Jm)sRbRDSC=MKQ;I;_%8$ z29L2AO&y8*#E9jK*hmYb$X$$YQwPXQMNjFV@2!7$?fGi&9e{CX42`oS~-zyxB&ix^sz`JVA}(~)e=Y-?oV zy0OsJ9px9n570txH$Z0rd4-9@-UN}g(kyqA7ITdFb~m{bQFDuckzr(Nj1a$X^{p*$ zpq~fLfEU5_BMvUuw`lYDp6ogi^j$ILk8M}M0Ds8=@KL}@1S&m3KctXZZ(NK>lu|sV zRj6$A#QWZW%K)?pP;zyUFrXCXvK^a9!7In=nNx&A>8M)-LKj27a0pOPK}=4*v;%rc z;cb`X+iVCMp_yMD6CK@DpR*M}ShW3cB>JF(^KG=_G#`6Un_`dl!b8Ab1X`GnKKBEp zp?tB3ePKa}wEeVSG;3xSPf{oKw)D=6i4{9YP_fdLLjA!r;3V6UZVC_v-{VKzyP=;O zbQ62?2i?rE-sID7^Xd4%ms4;vpv3%RrB}|rn^EEiNCTgGP3n-M@cQ5c8mip6@Q_@;=JGKRP)&9Cg%E8*edd|?2a+sZjVki)~{ofxGYEN zRA;BOGag5%*m5d56$I5floe}x91=i%D*;avocfl%KW9nV0wU738|XIyKqZi>QMgCm zIO<$o(5s0gLkIH{M@X^RPJ~$FR)PZxDiNZG1P683C1d?O*edENd&(WLiUO91@m;gk(kSv{4|#VbD_*w9Ae(Pg(_7O^s1uv0{T9)D1>4)J^4Y z5n_sz3rhZyG;&6WW8|P4G-ew?oo@1k#T3fL{rjnHxR{>jJ&xW^o|PX zgbVkIcvP>*e~$gceoO89iHTnG7J7gr(=7bU+zPZjharneRiM(_!XL$&gk4a4(K{4{ zv_HKac{n+Azy}mS?ff>zKVkHYBLP@NdX7+X1O-AHNN`v&6c@3RFRs*Bjgbme_r_Ul zr?q`;N2jBgNqa-G$|Is;#fY3$L|)aDL5b0qND7@J|95$xvu;?p<~(*Ry>`u z97kCqw+N;m1D@-{xi+@v+Q2DShs{l>Qk0kUf3*TMQ<*J++T1&-+U@^{kJw8TcACtO z0fR6EY82j9O;;cm`U?^8iu&ttIH@P8fxf>57=S_IP_jk9SibY_JyN=w8Y{lIQ4%}O z^&!=Tjw4rL+#+ciEY64a#>N?B!;bb29gH>AAX*lOj<$qPfPKAB8LR3=vlgo(9G39GVt?dBA~b$BJ@*vn!xvDH!orG%uzT`b6Ty3xw3qcT zNn{sD<+g@`EXDkRvUhC>Rqwim<0F+1NL~dg2{DH6112X15Xyt~9a*udBijZ}sf<(B zElP#sd-Qk484&u{34757R%cLRd6X_m=9nlkcfC}rriNI;J;isi zKL+4ka71{hWCaq%S0~PR=|ZPM=FNG`OHw zeF62w01TIV*yF^ zn>`x>%sAS1>BV}i*c6|jI$j_|n7X0pS}CA6HgO9hyr9#@?6e(q*^1q2K{28m0B7L! zCaIdMFpmzuU5-GKz)6SCOPop8zi2yHjrjDY)W0@;$g&*GT0kVwwL%V{z7@iwZ!xnC z!xE5_!li^&>rmR>VHbCHdXo5)w}vqcWBV1xDhxW}B_t(r6l{zn^JEKj;tK$tBAB=m zhIoUGg^e1+D`n&V1;*~&?$X||(C$>zwRzyQc`O_{td-st7zoeBwii?g_7r%Ec}sB?JrfOg zQ%VCAOOha|KG7a)CNE)jPhm`N;Z+WyI$4@OGD1scx69)@ z2nY-TFo9s__f#z`*g*q144Fff9~M0%9`crW$J&9CIoNwOwX^IAs+}=IrP{%4&h{yy zszXsaI!uK2y;{P@3gafAvSY>1KA;{{jvf?^2#D7i0YKYAn-F)=^!z`=o)^l5&&9#` z3b-4alO=Md7-4R2z@&UE;o}ke_D*I>A2*ObZpA)sfhrX%eAuw{7?fYA%|wZ7L=e@; zC!3&SIDCT_=Ro|H83p(#NJ_#{b=~?{KAsk zH6P{H@sZpfiN9 z+QVdBYynk0Zc;9Aq&jwvJ z1>;$0%@iVHQ7-oQ3%bU0wP*s`DjS&VI0|DB#zyQw#m-oHTP)B-nwT(`(+E0Gpxrq> zv?InTd=UhDGTud?Jcv#iGNBao%4nt~lUGW3#a8D2gcw&8QUkMqmhePco9Xio(Oc|1 zW^YL<26JhW;m<|cc!e*JS9;N+JUl=_ktn4^3TGOj%jvEW6BdEOTSUS(e$f{ETNyu} z3*CU{T`aT!|H9mkD4u)HJa5kA2Xa&BiO0qux^XzYLj6LddQxuX-r&)9#AjTUZG_f* z?BRHoJEb{n%1f`=DxL=3+37LjOZ50WRRg;e{9_v-(f6QcmAq^xElUY5@xwHX6iW$E zaUHuQd9e7}E+~XAr80_nbQ_*7b{&t+`E%2Vb37waj0|CQm_0Xv1&kK^O94~`m&TQ1 zoTKtWat!bvQB3TQN8O>0!FTbHzJ%OS3W65*&4Da+bR=u27l4peO@EYw=XzR0iBuw8 zp+_aono^y4lXB%taTT9mI85>etRJSc#RK+u%g9kS4Jzv!oL^xvd(JN`K#s6?GY#Y9 zAcFwK-a&pCp`K<(?6kHHlIsgwyu7i+i>yn@>Cql9oJ%R&K_Ge;yFsssT~dj_z)G79 zv`+Q|p)Z*ZeaT}E2SkJ#ag6iAL;PHwslIgb$4|sWf&yMcSe@eco&1F#*PiL)@!@`C zY^LGKi|8SRzcuBthaQTOP3TA}_)TFK%`zw*goR}>RWMWtm#n8I-fR6f{F^e-Lk9-S zJv8@Re!fk^?VxU|A6Q5uT;BCnFjXY?RP4A1gL0OZw_?cmt+EZ#nw!B)fDbLE<+g_1 zgw(K?ET%m27E>O=`fU0S2A!c__ydXoRlW%E7-&9V1AUNbzJ=mA8edCj&j`_d*AcQC zz{UhmqP{K*I5;dER?H=9I=OEnH6n0+e2tOmLMYClG1%V{M~l>(_egKCD?e#~RJ?tl zVM`2F&KOa4fD@NZ1^F86wfwpj3nCpf4N2$){TZ z6i`I`zRF8QgSu+KTOHSvwm?8QsVG#_7*?8g}oi&+9*h=w!KtJG(uw`v}a&w zZ*wYmg*egW+_1{#5Ll!5&>6sd93k#%OQJ*U(L%!#=F$+pbOM9hZ@ zh?H&RY7j|aJTMj9@Cfj5HDX>V4Bv-G#3BtGVQwV`PLE$GsHY_qqJkZ#*=tdA7N=00 zMZu#$uFvo?-bFJJJt2t&Io|_T#VQUWdwG7o(!GXWL{H_z4$d#65iLgSFa@18^d4C2 zK{%tC4=D~PGR1bYSwm=M-~{)gARTx{{9R#|7cq{)PDO}5vDgg`96>PDN@Hyjb}Ao5 zoabN4bh4g^E~S%;^b58D9L?QEVWl}m+CXzLf5H4E^!U(q>IK=`7N4~r^x{>_ZE+H>3np7khLGXVfnC9VO=&ASn6`Cacd1JL%D3i z(tJEf1C{MKG>4%4a|)S3re6wP-P9ODh8Oy2-T}n(w}P27#*2q#!&dwQ|MO3b^wuw+ z^`sDeO0$NWt;9pn`C__5YYu|8c1QKzveVgC!6NGf*P}W@v}4 zeqkAU-NUB#b1KK0wJti9(ed@9A#Ce&lM0QN*u6E;vihW@N=n;y|RrP?qc|v zfIrb|G8=xpZo(+YD>zpS$8lry!IU_bH5xrXPA7UITR{&tWvCW2;2QKD!CVH;7xwZf zGy65r5D$oVSGurZ?$bg;tS8X|u>qOCUJ*RYqs>Uw)D|rS>$WB%HJ4j75pmSr?KyGG-Dm# z8*S-{;@b~@Z|R?2vw~3StD{qG3B6z&5vMujUIwZWpAR_*ac5YGpxrKbL7>n`cq1Ec zv&w=jYqU53}Z_jc?NN1L-mmti+o9A-IwA5b1HWR;a@1+#(i$}oZYv8e}oB9;rnP;KB) z$n%ObCoMdr&s~EQ=nf!lN#=JKc~p=|BhnyR%LeAp1pB}YfdSaRn3ZslvZmX) z!2UR~YTqsFG9xo+KY*U1U1lAX@gU5Tb-#J}cWjmKQ{QsaIrgoC#(UJaKCj36*4Z)O zyo8lhoJAip)+6nVj`*AMlyQJvQ)7|-h!cHD{3BAnaZ*XB!d}7%@gla!Ioi&2JbF%Px{ZB9J*7pcx8J@e<4=j{ELt_@Pj=WN?KxH3A+h@P0+Vxouz*JBi$e)U){X#??rIh>e&jchYJ(BRz7)bf?;PvBSn)J3RqO@KxC5c&g%rSl3t)ppMPI}xs=_lyd~gqq>8qOF zWiLN5q|maI;)hf%JTZHKu#TocD29--7v0hYeDkNJ(H@{P?n$-yJ~5?O(^=2xKJb^A zbsrjo^pWEBO3Xyq`hN^3*-=fN!ssHUE!Cw%+EU6gUj}tq`HmyBHSl^l@-s=d#2uZE zSabX!FTUXt&^IHzgpt~uy|;7jxXeuGc4B81fDatwg$XCajf~d^WAg|VXb(|PpgmzA zU{6nmF(|A;uq}2QQEH13KbFFz(iMX2qxpxaVxR?pV(Kf5@D3c|V-A5@f+Y?{4{S3$ zK`TPubDXf{N*yeK$EIz@oX9#!BS5T_CM@KxRN{-lh+X-+WjyQ)NGXUkA6Z5i(4Llr zT!Ao~4C;t;j6burL#&_wUQ$G_#ui*n?5dkE9ot0W0N!V$7`g;8 z@@BP1t!qjw;b1OTML>QY8EKp06D!jGa?qR|$g=I+jG~$)xio&#d3?mV@LCe)DXYK_ z@`AQ`>l~|BHcsYVwHGJ53h7$&Q#n~)ocT$}-CE=xGQU_k6@h$7y(-g0#I%M~AsY@X z;bt$`=d&0wISh+G5YDu&eL;MJJyqqoLg$Yxd<8SMFr<^1+Oo4?UB(aV(m0*83j}Qd zl7!pOOQ~T5lU7DvT+Ra*M4EX8oYNqQoQ0u|yulj5BX6(^{kc|_DDw@I?-_(>hb<6+ z(KzpJ45Ztz%N-cvqhA<7_i+Xoy5rAxFnhz6=~9}dvAGN;+xflzcLGl9mu)}@kBzu@ zJH&YgoCj&BUpAAduiJc~|22MZKy{`!zjxsYeeMN>E@_eXc>e(b)fs;vQOyG(>=Zvz z8&G9xM3Maujs%S!!FEO9s0eQ%uGIgAsX-Lv>48!p=%)4n&c6!B%)R;*(nFt66dxOa zpd?YCf%QrQck5gSvv0uptTI%q(8&Lc=9WH>0E2Yc|FnOJ#hcDh9CW7-`b9sP-*W-u z9E{k9Txu?NF3<^o=$DdMN=_~}~BJ|5yOj3a)LHkhjq@r{5FodqMMjpf{3 z&?8pLOphf z@%t>_*vObz*fJL{<*@H*nU&>PF}?1IFiUsDCYG)^s4%@GA%RR=QiEjl(^1jEABhWu^*n{~+R6<~gmpNK6`v4L$DgMCpxW)Hb7*~hHz9&eV7E4;?Jw9Mi zxcRC84#P~bm1Nx5Ahgd`-S^-7dg=mZ?r}uV?=uK?Rv2GKXKc@f`H!Rcg>|#we6th1C9;=4nm|sXNRMGn79q<;j>2??0hR+fGUIGOYKFb<93!#eQ zz3n3y0txRbu14AyNPcz=__l;4HktIT51%MP$02 zKoZsyBMiEf4H=;wT6TeIz48w}shrz zYOB5dTAxF?#fm+oC|C-f>mp5dWFNAI6XiArOTkdD><7#~BtOoFjA>2BN>>N2H(1yr z2ouc2*W~ti)^-{kog@sLvx6*P4V=d362)^2M5J9ehiG0}#45`_Qt4w1K_wuCk($WG z)>YgKK*4|dyrwScPO48P0Cie{<bn-w$M%8xRa!0}tL$N1D zY~+aovX#kW(BbEw#Vl7*AAkHcnWMV*g7rYy6CWHQ~(F+1Qz*_MkCQXO-f^Bs*=$BXHUr@mV&ZD&y-HQ=VKyD`Wx%Ctd zW;yJXg8xMKv?6aw4f{S&AZ7U%h(yPR4IYRtaIn_&9D1lQkE-Azvtp-=7O-mveu^WX z1bkcSG*`g>I9ItzYA*Kn4FiHsEe1Qius8t09tZwUDcEwTZe$s*#ql?}=fE|v#OnCy zd_L=-;Jqg2Wv#1pu1n6m6jy!jV7&JyHFF%~xaa`rSE2hFtCrUNkebhm5w}Nz+?bbw zjkaJY@Cd~@SbUWU#tKsKCB@-GcELU{qEXimxq`!rb6n6=X*u~Kr5Cb`cg@)cQbz>T z) z53UCoVg&458Q3jIlLwa>kd^^boH~>nO?eT9tRed)W;kAeuxZL4N5Y;(P`^fi_{%e_ zOXQvt2uXBEXa#B63en~K1^+XJHWv$NzM@b;`kZW}=3l}W9e)sTR3Cb+4_3|dh=n7zDR$|fS31Pc< zy=4S6S4}bK+I)!+bmv;E#oFRH zB+MnQgFr6KueM=g=CA7)mm!0#8dMLCbwKQjVm#-CoxzyHV;NK8f3)y{izQrxv1xu* zG2jNu!ce{rfUxj*HL+tu!-^fT2904v*5^{Q;iGpcczzNeS+q=F81@e(_=Mh~X82#PWzpbdNqj1jfc73{N5Z!QU+eI;6Ky-4wS4a!{a;I0x3^ZgaqfPQgrF4TDACQ4+OJi03M1L}yD+8B<#?QH96oVE0@ zh6mXhRz;vW=3nla|L$s@Zl!Vjac)!{E9*Jw#!UcJ~TyQjyM3g zLIF_PX;yTnxEBA?QK73!m~FD+ge6=s;xB;sit*)3{7cc(esGQP=1Z{4nD|2)P@}Hk z0q0(#>R+0R|G=e;Ue3LWdm3w9Q9rzf*!MKjvM6AeTyD#17l&mQ#)`dqgX@Zk1xDL+ z;_rcYp!KtE373b1FZ8Q|p~-!Pc;>@=gdo^D_rj5HnEDmtMd7oe#96~JFMv(O4&Kt| z5F7;6V)(LU3m%MnEpdy@c2gD-k8Dc;hF5X11P|z&ZhwKQZpCEwEl@qRR1+%QcC!P< zS*tXIa3!vULZV3oeU$j(@e8(!=D-~@vf;T2Ea$vBT2a4hr5b9r54JhlfnI>AqY$v; z?Nu^Yu9DlRk~>nBWL*I(qA!Ok@u0##Nh5?)l^me1f-0fGu~wB3FDy_1Q{tdMWC&9! z0(8R6k5a+l;(QZP_HK8-oXJsn6J~}Op%`a$-=v>aJu++`kcK$ zIqKKL&tAWf&ft8aUaX3-FcdTa;MC`4QWj@HWZw_Kn@sH_t1BHb`G|VPfFKM;9j_ef zRLAwGFes)T{@>KGWZ@IM&;ziK9wV-QiosPuYY>N;{20_G)uay_UTCY;#eiy4B0Gpl zht35qUQ@^HGuu$sG=mDwCB7Z+CABYDstwG#X#TEJ7b`a2fSUh9Xdq40vF^Qt1lJ^TWVoVGU28OY0A6eENkGarbZotQbb^ime=D#cM~=(E4Mj zVGZq_^%(!jRC66|?c`r|jac@!M>ooPp*Km7YUBy9GSEPX(n8Ni7Q&N8Ew_jMtRdy( zLF628To&W#b4?g;1ak=)C<@sRsWu-{U}5S*d`Q0h0meu=>$$- zR=Gas9gsE9H3TE6am7?Xguu*5+OIqg4}2@sRz;kadWGo=Yse}3j0Ra`%%oK z9KVC}??OxF+c2pp#8}BfNa4!$xxWJN`FEsGenF}h?J5EW=ieFRX;2iRi)FH66Cz+V z;9K&y_>zFb`rK(KCH5X!gCrU(f_5Ph1y&LmEdnH>!isU8TW$#Au|>?9buhsdCZZsf zmtklO^XKD2*nV3k1VC%G7(h_c=u*;?9tF4vx6SZcZ0zp%Dgdv9umbTOLi-TiHM1UK z>T@R(FbFS4IA6p#EZAihT!m5LS}Xgg0FxoX&zC|8fsJTL9VBiER z7f}z>=Wds~`bR9~D?FG>qD3W2QEYnA-Way>ctDKZi*(3Ltl__?^*&yD*?yyz`;60W@Ma{uyxzAmHzy zG4M<$p#&`woF2Iw3Fa#c|3Y^#J;5xXGzHOFGbfS-l#_T#-2wH7Qi86mpv|cuE}4zn zuzXgjgAQY)ib4JeCla-$vsJ7BrXJOE&L91LL_8w!BU3A3%P~v zLt}-x1YHSq56($l*a}2u<{}bMM2kD~S6?s2{b5c=x_LM~W zE?JN{@? zb-WsK&OaB<`RB8+#iCcHb(xZ@!{AO=)R$g^UqW3{HyQo{L|IC zYQ3&s>vPXq$u|t*{{Cm;<x>N&DfrPf6)`gqD+$lf;l1O#sFb9n^x(AA z#AH))T53#uMsobbl%!xf6^DzBpPJM^CFP;F^e(9DGOi2V$d{(}<>IP!bNBF2-ph~n zXHKJpc(AM1qlfcb4-fghu3r5Ho{u%u>!tVhN4+c9@RXsFpN^}isqfMNKu94T?rvI& zqg?VM)bFHAdaEP(IlGjUm1lj!$2=R(OUb^_*1(-893)(cCE{Kc5r!U z{QGD9bz*#?AwDG~Eg_!jmE+iRMn?Q>Lu%4YLrPNWWRsD~Hh=Mocdq}seDKz@AN(5p z?6a>9<3hMdE*$^E<+d^qcf%PP`X@{`Cubx@MaB+KOPCrmDTbFN7w+P|GIpo zUh49d`l`!U;H%5G*Kal;dxWbES8X_I=UY3UhtjNt0404TT_rsw9sBpSzEd8L`HyVm z=(?UB*~rnAUE0{z(Y0-{v8|&kyz<;Hj_&iT_qRB@kzV(=IJ&+~p8LhoVZ!JB)&=4H z-#De+)a5I9P<$-koi4|+)4g-)yPkF|JKZ~%zHJM~veUhD>H0Qt#0A|uV`HS(LuId3 z*4pI)Hk>X6eg$p?UIk7CJ_RlX9t942{y|6ub>M=_j?Ojmh_9ooZaw=O zN4NLN=T{w_xpUuYM|UqX^o*l>;fX&)M+btKb8>bB%MG1a1dh%rvJM;Xoi7D;1!e_S z1x5un1ttX+d$LOYN}loyB^RarD86Igr+cM6DZXRhr+cM+DZbLa6klm~im$Xg#aF zyHE1DIx_3;Q?g3|CN2jD)8-68SB|Ur_L{5RN_IJwnim$8+A?sq7!XSX8kX@~0zn|>S zlYNqr(S2F7*H{wVnD@!iUAb^Dh5;xs2ET&pkhG9fQkVX11bho45%1T zF`!~V#ej+d6$2^;R1ByXP%)rlK*fNH0Tlx(22>2F7*H{wVnD@!iUAb^Dh5;xs2ET& zpkhG9z<(SA4b@A2F7*H{wVnD@!iUAb^Dh5;xs2KP^9s`f5mx=)u11bho45%1TF`!~V#ej+d6$2^; zR1ByXP%-d-JqA40OT~bS0Tlx(22>2F82GQlKm+wsF`#1LzZL`a)$6|+1NHvPFWrCm z^7uC|_kVJ^)w;Cu<%-M2MZ<9#7Z0@_J6zq1GNAu22>2F7*H{wVnD@!iUAb^Dh5;xs2ET&pkhG9 zfQkVX11bho45%1TF`!~V#ej+d6$2^;R1ByXP%)rlK*c~qy?Ut_P%)rlK*fNH0Tlx( z22>2F7*H{wVnD@!iUAb^Dh5;xs2ET&pkhG9fQkVX11bho45%1TF`!~V#ej+d6$2^; zR1ByXP%)rlK*fNH0Tlx(22>2F7*H{wVnD@!iUAb^Dh5;xs2ET&pkhG9fQkVX11bho z45%1TF`!~V#ej+d6$Afq3{*XHpX(a5jLYt^lA9QxXh@oskd$spPD|xDZbQg2ZbJGp z+~HpF16FVaaOne=F;_BR1!o9e!IdN}=c?f7DnZ=OpIyOSgv-Xei*Q{{QvBs1D_9)* zqcqqxUGgvDI|^G)zI-o5`0xEUaJ7H!IptUT&7+a( z!UC@5=feGKKjnMFe{aRhCC{F}ASZX>qQ!aq65&+ShFzS+6!+ueH#3is~Yf1t>E@X+D! zijN#UR&xBr$y48-K2v)3hjV2=p1*MMr=Nc*|Mk*kvEsMNE5HA7wd&gS8#n*_>(=e+ zJ9qEhe_-P@F0NWPcMn~?`VBlEYpC~X)VPUv(`L@`~53(vgXeFPnZ8co&Ud$|NaAl2Zn?W8a!m^u;F3hBO*pdMvaP&i5)%W zMG60PzyJRQ{<(+7KZAYzYyXIM508QW8%99QeEU!HFJ8(BM*ad#&Cf;iull z*SY98jh0F-;Xvm`KdIw z0O34<2@ha|oP+_2`9D_v_FO7w=2GzUXAredHK(M|ZFz%Hs5e|*37y7Sr^@vm^xN;I z(2}=1uJ@!@@qh04c+b0I_g(W(c#@vE#INpmciVqr@uYuLHw{b~$ig_Uv&)lKb{sJA zj3%Vbo6XxjJz_n=gIrd56!I~Cz8~B7>&-U@^{cXmLUssr#jwyKT{U@)aoPEaYzb#f4tYGa1z|hr*>*u&v=JFCtG_?K z(tqcXmnOa5IdIdttUF1cM4g}c)+WQ}QPq2jK5n~mSlBOGZhohIcW;)oiHvBk-+tqI zlh`KS1In`E0#3itV$5ydp8w!Zdv9H|W9EA=$3NKKcuIT&V6V}WmdX2K46Ro75}vR3 zmM%H{+ucbs43+!ay|q@H+%&ab)3qJ0KRdn2$icghZu&JOa^B-qfSt2e-f}50J@G0R zSM|BM=-h|iJI?-mAw!=ud|3OL%`W~mZSRWUk;e|LdOG^!pHDx1Y4h9ff6<2!88o!y z%FU|0r{*1)R)2Jwc2DrWxK6hR>l*#xJ7&Y3_Ek5J^n0&!iw)CH?^--CIZKmT?X@=M z@!95gv1a+{%N@PVc?(`^*6+yFUfcNdi`VHwL&A)n@1MKB;x)euO|BTbK0R>T8-Mhl z|MkAZE~BrFG@jkmc1D(EdN^88;@wL*FJ9MgiCx*~t88x4SN?`$Ck~v+n%3_<->~gR z&Zn>ap-=y2+rtl+OkdNa{LJ!RK_hNsKC4fy%&S}U$MsH(_I&@lcJVQb zb9|>1-dt>+Ar9<#Y|w`O>)dpQ`nrF!K|FZua&*C+pS~QZx%&BBgI{LbjN|jG^UFVV zYw8g+G4SOPaqk{|uK&*?rcKkgzW!XyuQ5#u+pa!S**>@O^^-FLhqU~(Q>#ISo?Bi& ze)P_gb4SjHFDfubZ;VU+lJDKvZ+b|U7svJYeR^o~)YwlaUipY`bM?o&o4zi;`cw1k z-%ffiJ8#rtRnpfWMI5c_Ho|gW;`>h|H_`Y<8_4(tT(LcPl ze697(&EE}c>ocS3v3hx%Z<)MW^}5$+@UL5zCXDgA{M~9X`AoaM8Rgp+eYE_gHUZDQ zZT5J1*oullon}_2zIi#QL9_k0|KaIXHU4^|lznXn2-Szyu4s_?*&LhO!cM`TC!0HT z>X;k*zSq@OC0x+U)?X*)i&OGSy?$MDq8io`J;&W}Fd``Bn(Xq%>UVmFU5Uv3vQd1mv3?UyRY*T4Tu za)9_;j}2~{7w_oySFpZS>vO>`mcIVy6CZDC(a)#_0uvu(?e3yIH0<-=|NQBP@Quqd z&($k``;QTmA6wt_!_!}V^;g5!duFcKJEXFBb%*h*`t{WRwRMHT`-NG@FAO+dc)m^F zrm+`3TQdIFKW7SuFTe9rWEa;yBQ6i9k90Y&A8$t13yJ$_z_w32ci;L>+B--3rM}#L z+pU>}!%7aGn0)c}=1(UF9@?@s=3q*LwQE;#g@a$}vt;+so6nz(3=_{yKhWB@y59Vd zp;JmfIx}bZPrA3?d&|t_^)7EtX>&pUIOTOsyE`M%$FuPH#dklRGcZ4=-HMJUDsdM7GQ94KE;d&0B9rT-#D+?YN~+&lkdqGD{{;`^|mxTO)5@ciq3~ zr^pSxp7J{LVdlbt-<)lH%++Uc`dhuqBE`rre+|Fe+@s6;VY`1i^KtzVzfXMil`A`r zwho$fipy!b@sjzM;_Loha_1BH<;`a%-u?6B^gc5-RCMvqnl$|8bDgi{-&p#XzDe@R z;hCHD?Ir{@(e$pLH@&!Zr}tjCdgzBG+q&%>(0_RK=@d8NV7|uf=Q+Qxj@%!=Z{kO# zKP*1~+jIHx#;TRyzFFL4%J+qqPOQOrH4&eGxoDk#vzzt%4Y_gb{r6_R^VIHl7reBo zxJ!mtk9h;v?#^$rcXRl&!w+qFZr!eL9(*$6+1A55KYOG}-)$=%q(6Ul?9PR&y$9TX zyg2msk3BD)SnQG9{J6{G53YUH_tTGe>`VJY=et{)M1wxs8#Mpy%-bFNocU?`nl6{W zua__~iw?$UigOReDj>z)Tq?%CY*vlAxYfBySPGa`Q4F_EaY_|GRlUSD&f z;3v0|z|6+y`gLCa&d+PVjQ_bT;hA09b}QfdK0W^Rw!iG%VQ%2vy5p0rCQNCPzbWtp zpP6-S!i6)3i#l9Lc7I`UzTfZeuT82<9nvE0oaHt10@JwX-%LHwZTs@)4-9C3aOvz% z{mwU}N=ocs_-5YsZ*&Yk`}pPTO`ZGvHMP&|Aq#>(ygYm8rTcB(Oh0|`>aoLaXWq4Z zo5Cgjvb8Myy;R-ijq5^|nGTLxdM~!fRD5b*{(#hkv$4f5ebuAlL6emDk^3J%_sy!W z)`nl(7;(9}Z2G(ej}Gg*oL}39^5eYtZ^!kHd12-+J>U7R&xmy==676o>s^zzdf)2H zzEgUZkN@Ot;fBYZD|z34Qut!uqs5;sOz+of?a67KL{Fcr=4mUF$NkiCY2x63jjI}6 z)OR16+t_wJTl?)OFn%hLr_=nDErTMyLW zW1PmVF{g3&;auEXaxNZiLD6*r!PtXyt=E@xtv{I4){o@04dOVhXENvJY3AG>Tfn(B zT+X@a*K_XrPdRt5-JE-)W1L5$i=0Q}>zqduH;t}|k4D$DlSbDpSW~ar7)`zA>6&^z zd7An@8#MJ>?9kMI{G_J-6MtwLJWZ{jj>XO{2BvRDc1T^imd$>HN!xJmvx z9$$~gcP93I8aIpU%o!;YT;uVR(sho}i|fTr!gpz0Jia4XCL?A#p6T9%`x$tX0!We& zvls3&5tfMeW^N+FlUUlxj|gSiBJTgrd}|=3)LSF%x^f1;jxC@tjKFuem)C1@D0}*s z@7dx*`lEEE5>n#QMd=I)59N|mC&3>wY78PIrzV?b!w>Ht&ZWkua#6S;@;ws|+b#qAD%Al<{Iz~#cNgxdi3IUJ?8U-mD;zX_)UuKeJ7!qNNiG(%EGMp_0? z%#BD-%7`bPzacfvWWd9;WRoc=k>X^U6O4vQ$tg*Ov#CBP}5* zGm{&VYC?MEbbM!+WKK5$>{)%U`{Y5rz9F= zz><()WKw3DIRm+vlBT7nWyEJBr_45(Q{!jEC#S?uOrfre?~rb4nt8I(keMEzz``O3 z6PcNWn8c*iWMG72c`A@br%p{xo0+N3-;$5i%>;6d_L!|Knnee^QB%d&;ao7Nt^V+bv-G6r zU~U8p>CcVgLY%@!abvg$r?4=@4M)f*q!Nj@oSbGj7tMtsJdzuNJm`|r9))KL=eRx` zBbC`dajrTsHy&6AzTxPuBl9^HMx>c5xU+h$71xiO$JscW#^!4Cu<32BZ2fHW5S0;c zwDfbOhkr4?6qDnc;fB6dz9(M`=L6>k_ZS>4_3FWa?a6t<5kHxH3L~G^2lTE1obry+ zrEkgC!%@0mG_kNo@QFoAj>22RQQRK#bAS1n@ImisX++;d!cn{^*^h-!=@b4b?-V$C zKMl?Rmk#F(M+6eVnhi&=&X@fK@F_e8j?&46qwiP1`NOS~pEtrMINpV$d_I7qc-!F! zuA^}D{tO(w9|HtF1K$ToA^apHWOC7?LOb=uJ^9_9A084NJ|uX=z!3Di1oS?Hqb-G^ zHLy7HeK+oTw4V^X3uo^ zGTX!d;c)+&!~HgwnmAuM+*28;?GY~j->w-(aWAqm(BIX7I}ZkQzSK_&sFHmyNP51g zJag6F+%GM}q;PfrdW_UrL}p_QAbEZF>q9Pc*y7bzb60*VJeh~mMY zAjQkZefFN~<=^kREDq~COnk5Z_DD^?MxA5lZ|E1%ufexBeh|}N?Ke8O@vF`N&h*8?53}99-G#zs8pzIW8tS(+n~$xI+g+aO9|7hH%WxGMzsS zbWFx<5RRC@i6F$hO$!zZpxKdDN1eHXaacPcwPN@*PMwmUFT$rbdj&p?3%6xoJN^*s zx8CsSy#YRrf$inz?y?^QpVAu)pS~XjpZetl`MuYeLwLftgl8(U2|mT2178C_8$OL2 zxw4-phrcR6FPHt5vcCpCmE&Fcc{6-U=M(w)bJ^b}hyO3;-UP0uE&TuA2xSbJL&#i& z5Dw2lC_>0QHBvNbpbS@B^E}IRWzIEao}$c|L*@{QkWQ$R+3)l0wKqrC{oe2E|9bs@ zuis{!_gc@I*Lv1kd#}CD>9E3Bh4CPd(=&=YLE&YEi6ECJNpas*+{ubNMRBJp?sSD2 z3bPddY=s{beo-j7iu8>X8Y?UYa=AFAnT7k$mMqiOMtE*=Q9E1@~r`DfoDKVFhg;hd0de1)3hLm9}HT6 z5nv5)6Id5a1bN;00#*hqcnUqP3-UUp0a-s)y>w9IgFy}-26B7N1-U#sz={UpRee+S zN$qb{4^(~fM7wf-Bp`lSaM&<+H$2F25n;zsA`k5C4GVM&#!wZq;1Ew9wz7YSw-0;3 zF>Kgyx8M-fK1SZRP=awfzCl0Yc)7XzaQNV{KEp$XHI~y6_9n7DFeIqCE&TBe5EA6$ zfqUg)!?1ba>odY1Pd2KQ3uxi*H5QO?d(N{7?$;!#EoMHAM%<^gfuK6fpdso#wb*~L zMi_4U1`TjeXD#mQV3qa7x@~=_5$xQzNJi2iK2N4?K`XFsJxTfl911f5rZ$vp0xb36 z-vGuMrV&gnn6`+dK?1d5p8zuy#&yi_5Pn3dgSf6^+zss9Ky@Tnep(0^&fbzM?)x#9 z@*@tO-$sPG1$hcNH;n%XVIRZ&g%*G;lsAhYbrsDongs!W^@TqUh`I4oKOUsiXciv6 z0l}d`qFmgkZv51PX8m1!C4Ix_KG=?O6WJT&|08un?;rl6=)X_Jb&O9?2(KibKEZ*$ z*bL$A13b|Na{au#E&ihjhGBlTjm6Jm7^Lw(6+?3M2nY=Smxgi;_2kFSkkBB1xjS4t zI!La)TwEM~_T7)(R{BzL|2{$1XVz8G@Lp_{Tm$_4edKjA*oS-E^=D%UtvBenfA|d= zV&IFo*bu<}hUb4ZUfyuOZ9p!YVL#+)rJpVROE|Ty|24F$XE?T(pzgeZ?SoN24v*j1 zhqU0jtA2Ro$Fr`1TB{)t=7(bZYZgDk{AXdfj{j)0{~_I9#%qW-Z!@XGRy@l7$QA0So&d8?C6mWYM07dIw*(;9vtE3+&M1q?&ZGtcUwZ%-9xAm~YfE?B*ZfAMO_r8f?Maeewnm zN3!w4zCBDdOcspu@C(u!n7c4$BQ8iTFbiQ4VJy7y9swpE#?%MvB#a%51I$90C>S?9 z`T5{kiuX0FrLnO4gX#{4HTF07{g9XZj>r$R#*<@Xd`yf$t@)6@xO^1Ecg6y z)WtA9xA1@GEwqN;U8-?eJN|chhsmubbc|z*epO@tTi%@4PaWm=m7z$7-=(TL%x@~k z{;$i!aXpYm5LzJwEoqI^!sU{AVPp)454SD9CuJS{wP!^=z3|qR>;LOG`n6=9h|d}w zfOoC#_ze3^`TjTQi1rpWWStRja1BR?Vf%Z^Z*qB*HfaI10XLf!ir>Eu(9lny>OpkuXe#)6c%ubKhk8u@6zlO>=k4$?hHlp z-7)cVJboVH@;Lrjk~;)paYk`_i&rWJWpfPf%kRy8Nr0bIIlfbeZf=1;T0rbW3Av-a zOTaHtezea|DMEB`v_~@X^GdIPpQZUJ>w_CH^|nFm_q7WQbmrF|;b=5vbKHerGm6(S z-Mm7)13WoCKXVy|b&*%^A9=_xZ+J=Ouw`Jl+?{-b+xhwic;u0F3i9$Y41=7}CZWH` zdaE+6?*+*Traz1)%t(wTYpIL8k2+4CO*>#mk;e?rj9uk@RUvngcuzIS4{I+>GE53g zDoi>|222*r2N=m8&v-CqFcvU%VQgXSU^FmV7<(887$+EK7#EoSFoR)SVLV}cVZvY{ zU^x6tn1wKrFi|i&VD`hr!(4_*gh_%)fysv9{SWyHKzU$HVJg5_z|@7Yfw6;efawq8 z4Ko2|Axsp^ewbL8GccE7l33C&(jU>Y~U{w zVS?F$aQ?!Ey(aI_AX$jYBc2=%aYKV-n*?>(A3ei1hg6 z(odO4JIFwy=JPWhksq(LKV@BzE0?tsQga8p!OiW{4r>jQ-CU|JO5K>;#_hlnU~j|= z1bfJ9G~VB%?qlG#hnyz|k$$M0DyJjz;gyT?QR~ZgzJF5l<@;7OPq{1Q{C$=1B5%Iy z;MP;i!1s}U%KD|2hwn4_&O|MjVF;^VMdwJqBT*;qZ{Lc!zTkOyO zEPhBhlnCh{IpFk`AO5vMS^4b=ubX@y-3RT4_dXb3Y(f+h2C|u;mhAsmMFP9tQhB)Y$>{2*u9(0W)Fm04diw(jZK%fjre9yzy8O-UZ=p zU{~{Uf?X|Vpkn9p%v9`7utzI)E>FB-=W?bhb}r8s#oh&W^DvR-K-g^+JD1Z{v2z)g zD)!E>?@;XAR%Z^Kc>OvS}4Nr#~2WeoMyXpP<+|{3gZD;S&@) zhfjr_>(1qu#$5ni@JF(*UvE6oe`ePwh8u*h{8mb?XZIRM-cilw8j!*t;rvaM(beWFXIg z-39-+U%4&RdYMl8X}5u0tvk1oYA=sCZkWk1 z|2B-6&x4RM$5qqk`P&yOjVcj2^E19G!Fy}u!#Od1eo(BBym|<^>b6EGUY|$E_mxb( z@`mAOazCtWTo!&V5-a%c!*Lq?d?Ze${4)%n4HhL8>gCA&iC?uFhW=U z>F>;F$J{WU(H?G8hFe80l=4U)C+*D%5Ij-YzqFan{2cNE>> z?*=X7dr37%oB_u;XMQ}Bg(>x9oy^-F>K+$=JL7lpx%YU4aSozP z|4c*lvY3N@mj?U)j4z%;@|GhI<>V)o-^XW7iL%YOWn$a(x6SL%GG&R^<$_3L_pSN?Jtd3=g_Ka45wZY2Db>qEYUVB)-)UfLO&rg{a z@?6E`;@b0hINnP(EFsH&wm0v5vIdCu=F!DkE9Uk8Y5g$t<2@x&Gj30H&Ec8#*EPq` z&oItE*Phy_$FFM-Kh^V`$bHFe!ZjQLJC9<%e)ShK0EgyL!)xGh`IH?$6L*mJ#Dq+o zz3ZXKiWRF=tgvZwqhiL^Mg@$DnVK3`F|Jm?SWaJjWK9zM07fYGc!lh0R^ zhVP~MU;)nPN&8`L!n}hq&4+jUFx_B$VbnN$N|f)>dFOTo%mJ7rnD;QH5Y7gMzk%!r z!#ddrJ;}9qlWlkp2Rolh;=D~@_$)##7{1&*0>lI&oXV#iKZ@Y8>ri;GS<~8E7HKM2 z+q-N!I7{Gh3F&TzUGCpV8baW^iegv(RTtQLwqP7wVRAnt8dckt+-5Y^6f3-%Ec ztf3I?DxCjpUnN+CLGa(UpIU#lUDW#j|Jz>w-A-;HZojFoIzF-{$-RO8P^s#b!nj^? z#cq*W|1p1eT5RcfigqmK{=5)3`%%*Y*E=4fngjlvH+gq8Gb(SsEAB+4S)S{wZ6>?MxB65mA04-0gSkWX&MWBByO}kwTCR`V zd^p8sg6VKN-gQr}zW&qWUb}Dse&+v&quD~vzrqMUKY1apq(l3St&x9;J#m?5kiYS~ zlH*^l-bLraKKyxm)xNlV`Hj?~8!$`J7gg^pw8B&6U8TNJ3bkzyTxmREdH!ySo|vj> ztRMsuYzE|Lez<_dQw8_hjEV+w*-lKdW-St&o3e z`)9%hKbv8eNJ^_>pP|>+5VHlCte95TtDXz;kMzUWVmcJ z;v8~6tx8Ga^V8EwWvkZm3F0;?(~Ph02{D~a12+vvSDvMaHyO42_1R40pK!}PMm)aM z_WbYhFWTEspSWx`nv0(OjM$*+yfre6!*R++!~MhyGIr!ICoO!5-y(!wvi?SJPrw+u zS%=xE`pkZ+Khq4!7|#@EJBxvp;5G&MOrsfC4KxSKfRYy2_{`?##ruO2yEeIT;9KDcZvK|?p zCod@{v7o(5?7VY;Nk3>OzE5B?;{1|+?;B#C5f=wCyi~cMs{bl~^@V;b^O4FQ<9Sj( zIcU}o_BmVJBogaMnW`4Z?pj>v#9Q6YV*cDJPo%e~_qgeiSZ9d!24#*@`&M@1LzMC7 z`FU9$FV5LZps7-SmGF;19MoT7*g9waK0yC{rK>g8Rr|kQ|BqK!oHLu%OxtF1Jx`M* z#_@foHX9jnp;r8jX3LZFkNiTpD=Yl5ZhJXxvpr*z-;H}0XWXt~obR}SB-axktn=bh z@7>t-b3XiS`}~-{vPk&@;Y}I<*@bd^3~YCt29 z&-oMt9pEkmx`2g2SI`*r1x-Lcdr}k(gS!|w6)X-e1WSNxz>;7zXbSEJOM!f*s5HoD zipqfTkeh**!Ls08upF2QRsgfWir^Qp5@;L=eE`isbI<~;0$PDpK|8P-Xb)O|&R}(L zFjxch25W*Lpd}aq)&l2(wZTZR4!8-d2gZQ)!C0^Xm;hRVNuV{D0X70ZfK5Q7l{miy znu5(hbFevB7i;xu)oxx<#5ljcWfZ1SIP+Em^RA4c%J6Hki0a}92pbgjy)PQ|K2axZ)UBH2$C+G!+ zfTO^vpf9)-oD4>R{G*gRKqHXPkMWO79){ZlJOdU16TxC&GH42>gJr;M& z3s?zs1zUq*U_J}z6=(u31&e@D><{i>e@m2u{lNtG2b0(zOkw}JC=dICU)Ucs{tI#| zlm|2cEx;n670YcfK3NXhvmA70xh=*g%Rz6JgCQ)pLwm6soXc(v+Kb)bCU$GlUhD>A znf53r(*fmVI-#6QXN*(OXadG5SP3*<$7`^7h;YZQFJJu5f-m)Kqc{=6a!`CX%rEa#nSzPy$2;&d5)|42!X_n!IUcd>l&{xx6xEH34W6!YRYxt zcN^kt3G0P5&X(|c%(`K%oKsnrPoHCAw5n^`Z|-Vt`z4Qs^g1v~45HCA_C z&sitf&T`fZYe=1BdnoJ<@)|aoOOilF0iv+SY!3)@c!sEw)cRY^}`x>0W4=7 z;WBgjtS8p6aTwMWw)cUZ^@a1|Fsw6NUoJoEjWzC0IGtd$2+O%HtUuN$0frUq9M?sT z%X-B5a$MFWE+>W{a^f`m$oDy{TU?$2kh6Yqn%oZjy%KIuPM`J68oBcQ3+o!&xxTD# zoFzdvo5Or#rkNC&|FUTw?^o8u!qU@5_W#S zr^;DxRXgi0_am26d;_GD+@7q%TsAI`pIqi{a+$@uZP72{`wrdYy0eb+8EMuT)^oPA zUa_vTozrK1=XT3m7uJ8Z@7(3`i+p)JsAb?Wq1t&|{Im-l<8t!&Q00DdU#R8heiU|o z%dFaY+;F>bTo1X-d?Ja*ANQj;vn9ro8iVV@V~Ts3dt4n`oC^1@1Pv3lY%jMW>oM!P z=mUOt&N|I)B*vkm)Dw0wuK45?>kXGll!ND6PPsqiVqCSC+fj@e5nhZLA@`T#s$+)R zluzApnMH}6Au-e;F$ToAHPo{XavgmUljCyxig6XGd8V z#Ja<$(9}BfZ^)>1ZYPgjQD@QiqRt&;T{f(PVSb`~q7G`_>Tl49Hg=MGO61*JE{AAu zCnY~_Z;^+{yR$Mjxy?iyi}|FzQVu_?XX?zP*3Vw?@Zy7_$nyM9-;l1}JqAeZpf= zZ7*(9j>A5`#t|b?l)1g!4{BTRoFjCgi(GyYhEE`>>GH1+J-vu4O`=ATB2XqCaKwoeH7zSPg zr-HY@h2RZv4Y&=A29JRI!82eym<(P9c@N+&co|Fu}E4V$_jq>IL?cnD1*B+b*I)jHm3;5>;z2W9Qw}aaV41t^1pa^gVsD->BI2Uf7 zYaQU`y`f0BH-MYKMPLlbYj`ZU4@>~JgS^MU>uM6*b3kXrFAS!_&3hRA;Wh@d;NA#+ z0k43@(fEE2Xa;i2TY!r}EAS|22c8A(!Tq2!cpDrHCW77|&zT`$JQxAq1YMDz2{;$- z>tH1K5Znab0b{_6U@Uk5OaM=UNnjF~0&W5`z@6X+@G)q#?SixfGzC*YbMP2g7rYAE zf=@s#_yBYQAA$YBd!Q$H4y=oQtO*9f?FG8R&3jK1;PwTzaMuQB!tD)uqdrBzrEoie z5%6yaM!_8n2ExB6xC8E`;9+nxcm~`BCW1WYB!dURbTAf_&~Lm~l@0eykoTTiu>5ba zXB38Xi@{k8ZoU_o3I9f51-L`NyYR07TEe{>v;lbykAS>5sDZl&=!|%EK?k@;f~Ig+ z16|;D17{+93D6a8JhI7qh$TT^xR-%pAm0x}BAh8W6>c8iVMxasTnKj%`@`KBTmyF) z$a`k3z-YLqfKiBF3gkU90{25c3p@k%W`Bfl0w%&84%)$83rvQ41ZV@dC72HPa4;L3 z4|+r10F<_0z)Xzx0{;X*K+c=U72uu@ro-JDw1j&qxDaj|&<5_cpavWZI)I^|3)lyY zM!8Fau5d30eL)v63|s-mz`qPQ74CUpJko6rE`<9J@G$(%z%_99Wq-KKg3)mI1NVcG zEC=U;iQqag1&jt05WXCk1$Te;hr2xZ1#Z6E%R+t{(0IoMX&Pt-ZUrsCF`yN=224S` zil80bgV-POYJm1|dxFm33D6Zh4F-ZSU<7y=TnJtQqrmfEI?}5I#=t!ow3<3Q?3E`>$5pWL!55wIIoD25^koT%Bz(}~=L1Xw=1vkO% z3dX=~%Y^$cFaaD7IzV0rOo7`6%m4$x4`2b%c-IB#DOdqq2wH;cK^t%{r~&^59l%bY z3m6EB=OF%t0d?(mljkY1Uc1Y4lCXQq?Ii4cf>;gjBd@1IK2k1|u#b}UTiAW&x~lf@ zA94AfNlizb$P-~k8_31kZz1O=4>i1a3Ka5irOfwpJh!^b zX^MRSu}dVLzr-0$aZk!;+4+$PkB8T_uCv_ zy)PDLJ%yY{%PmALF`@dck6kC@%<1#oAIeow)5Q}pG8;g?s7SVT=ke&!WBhGKs~?2?IR6tOcW?4rL^ zJKqloJAbNn{=R@}_ml4p#k0D|SL_i8-4%OJ;(MH8FGH2{a~!>{ei3^se7c|QygxEZ)=#ldA;v&9@7eG;5vhu&Cb3J%dxt;e z{LH~4UhGx!DC0Rs?Dz1ex(~<wY!I$- zP5#z1vnPM;8RTy~3%Nby{OicPr^3HeYYF#nuK4fY)$<|WNwt0B8+BajDJo;Fu@U|z z9gKvt^|F!ruYdUL@~2dd)Htn3Y>gNyUngh!m)2)B(&^o`AG*iTN~@})MtsTCNYyKJ z`Mx2B&P?%gX`J~)Bdu*5UgKE|eKH+4_e=Q~8mWru;Z8O8P~Umw)}3<8&`6dEMSMN> zQ1OjRlEU_;Xrvqdp^G=}A&*;Qn!TRu{tQ`BKt)JqNi z`ds2d%Y8JYPZbL)nV^yE=Jbj4+(#28PJF+SZfT@u8Krfb_R${=RvRb3LwXg;7q>{; zNA+yl?ry*Hl1AEE$DvoP{j|Me{A9=4`!v$fRteL*_EX#H7w4D0n68n6eHR_wyq~;I zd$|8G`kF?1@L+3J+I|XJ@^|vZh*KJ=)7Fx8YagJ2`c?i$Pi|SUhaVu@+eR%$ zK8@E%2NIvH+H!yz`0V>`(&w}WKXB3i_VWYOX`QZN*VcD5(xNvF%hWkY1H8YSon?mn zY<)-d9C48JtsDH+=M>tvY01)ywjQM9#5E>v*r(bzUL2&?^WR5q|9Dv=UGBZh ztnMMIWH#Vlo5vvvTsPOfEr|3E`kSYvAEIwd zTV^HidaS|2`U>lMhw*)bzt(a8wks>CLj*GH&R$bu8)w{Fwmk0oB&*5D|0pW@>_&Kdo`c->!; z?@@~RVqsCMKhkq6RAs=9qclXDadg1l3uX|JN5d&WWSmrPj@CI1BpbQmEJW`tek6 zPp>o2SKib}O;SEg9TiVjJ8Ip%HwX0%`gXm~`h^VK8U@il`_Q=bJ1 zA4e2H{R=+%oVxEctvpn1?4ErnUzdi9w`ZRw$Eb<}i|JAS`mcJ7ZFYv<%=p?+yAb(D zWOi~GbB4N`JV=}V9^>V3^;uO9ouOw1N5&n{zt>1##?<|kdxmyLj>{}p1O4ff+5Cas zS(0W^_2b7sX(Y|Eb0@>kQs*5{0;)dCf__hbx%22*IvwWKDIpi>KTF@U?(iqG$ z%YEp_+V_oDXwFgJ=O*_fDxy6yUyffo@f>Ylm1gtj4$LpRt87?t;vC((_|;AOC)%T+ z?qJmSbF{_WX7l3ZCpA*k<;%OZ=V`rJ@fVG&ApfUL^=BrZr>W5m-757#`qlSzOgVL) z);cbWo|%pL>H6a<`HT|ie$x}EU!=`L zuX?EO{Q04C&nM8g4NG4XaY@if+b*p>Z+wAnT|2pnW_>{a?(A>Unbn%Z$f>#40#%L`2zKA<<%#E1cp3gkn2W*?kt+_*@dN3tJo>y7xsCeqR}m*|j7g|&sk z5dPdC_u_pn(Z<0q#?_phi}}0ag?Y;_QRCPWWmcR(fA8r&qwL*F^lYr#wDO11J|DNl zY^r#fzP@@}xqD00*Da-g>p_=k)$xS`>I`|Nk+heW+*@;*D(y@#&+Lf!eS3sXdUTnp z_g-;2qCfI0>0Zj(;tF-x+iG#)C(!?R(+N-Au2B13n%yy$pEc5p@fX(N@BB6B|7u&G z&RC!P?iTk-yFzXI6nZebF!V7kU`UfXSEiqS#>Au?-A1RLl z(*C|m77y-UUFnbhZMkpIrHrfe(qztr)S>4wf5&b*((oGn**2ik$Q>B34P%DI1YV=Y zy|ebMJc;@r?!SKb-fLvO*d>bpf4MTRoGqS232!=XtK+za2sh^Tqjr88&tZ{r;6oCsztb#w!N3`}C}I7qQ3dNG{OoHVnqIm^^XfMU^QnvVYftC&+9hw(#q&W$e8Y{} zNUc)OH|>3!#+52iWX8y^m=6x;AGG2&?O9o8a@sxUU+d}x*FLySg}tY)TXGKRO-j&w zs&#QdYr$jhl3mxThvryfJ~G<6WMb@H>hPj~Z}fNQ z_q8MYHs`xXZx<}LF0knV*1HAUGCJL(3(Mwie=;8PZ@OhxuetXqd3JQY_Lorp$eKp? zuHU2cpI)ClT>?-dbr;%oNt>$(onJT+=%HQG$+P81NdnW zBhd@@1D4VG2km@FO`rYsYG*FyvnR)3&$%nW+E1n$;}JKBhVTlg7=ui}AL!o<-!4 z$Fz0I%IDr^q3>~ZzO~r$n8Js6$5$$u594FN2qWEND*CARb&nF5|J)}Q`d&GO3a>n1 zd4D_nTkpEQSersU?B^d@RIhRyY2DYXHeM;zs%Oj)`@xuxo?SdC%}$|C{tj2#4Z!__ zd5w(^cBRnjdhJaE4_0g=)$5hs^LYwoWbGS&;_X}9-#W#uv3Wvo7a!`ASOx228P6x( z$3LMX$8LKhHAa1ge_c1~+!ONYv448LdS-2;&HMcHrJmBfszokj^@6_n4oZ19aie?O%YAF3Sg@F&W*s_umzxlbu{N^IlQhwPr#=&=1WDp=a$XvNx9 z+DM0HSZrAQjC{UzXk2s%%G1%OQ0XVnsQ;EWW+QIG?Y#7lVm7HXpm6J#Z`08JRV;=q zpOi{fXK&o*_Z9tDX>H8@YpJxPU7FpTaP)sli*vpfY1F%1^Q&pE&D%&t+cZ2gI*l5* z&b?*y0PX+L_+wqEO7YKIZ)v3F`k6Jmy`gtYN@Z2QkNKlWRa3J=Z)o(e4`WN!#QoH< z75AUi$fO&4R&MB(it#jMPnjJHGig-CHoL2JKz^kUwO=Ob$aH4Pur(JkABCR1aXLsx z@51kxE!cwk+mAiu{z6Az>RN@B@`pZaYEI5Ybf!yY&*(ckT0Abz>A`Is8O4>- z76ZqJcWu!6mX1zu99hCUNk_VCon9`!sUz#UhmIY)p`#7{i>E!kt|RT&U7ZSp>&`y? zRxeRUH=PUY>T*p-9pch@`&`x0q=cba)2`^K?6LNLMqSpC&jhbxM=t4T`pi{xu3gko z?%VxR>IEGwbDJ?rpP(a;a;cXJf&J6gR4;p8M|Lg$^sRnQN5e~d?`UvVM=^!WpENzA zqk8QEinKbdqxX{=*KK=BN2RMaX{9}hcK%LUZM=?ZI8F|VJ)xuK(`MVo#3G*p+S99# z>S)tVqbidQ>!?NZX4-)Vb(FfQb_47EIvTs8PIB%Z=)sdoJ&*3zQF78P0d%NcW5=&0|y{qNr|)sb)RIS=<)Je+7ELfH(J-H?Q9)2 z`P<5L!VDcHCa>|^GZoSx1HPwKOg;3Hs}ptgSXdM<LbJij;UOB1WwI_v1^-3NWIJ3%i@kLMrm zsH0HR-qqf9gg(Zd-xk_lM~(Mu)@8NT(b~F~zPPtW|GxP%?s5wq%^VVtYHh2d63+9y zr`w=CirsR!ZKb1?t(r}#Qcp*Y_m-3zTnqhcb@lzC>N%MtAr$6J{+vVz51m&=*7uRsAC z&FM_4*2H+^_am8fGH}};f5l`{d8;E%6}M)R_QkNh0c$g<#rlf#)-TDVb#?X~*)=PZ zmh|mxwqjByy|CAW4GhgB*TLHO4_SRlQ8=+TP@vP1Q`QZU264ROw9e?Q`tW%R-rSsH2T%vCnU) z>wpfDvF;6hY-Kbx`RNK9+%tq@YA)RdR z&d(sz%Qvi+Vx2j#dG?JO{uxwOv*z}nLo#T>eNAsKIa+_Z{+gy(j$5`T?lrw>Ie32h z#@96ecH0RJ|9DLWpIR^ayWeYCICOCE0Grp;s#oB~7RIm1Z@v4tc8_0C=TEkEf)BhR z#~a~05@x@mTKWHe*k;%((iQA5_-d0^l+Yu3X=uS$bldOb(S~6DTSkJd_u3_;co!+k4cK-T~beevDVsqcI=~Si4_g3lJ zbdp*Ov}g2vfvOPCCLK})xO7&*G?3%czrb(x;>oH`xZ zmY`YxoG$mQ(`A}Sr%`H5ur&6hb;X#hqpV7h38@893^o$mKy}5U5{by9f z<^K5>H=okmrW{ZzwGkZ z4vSOhVwcV>_S8JG!ez5*;n+ z;%mO(204#@J<|L}A{l=xdVRprD^x1bG;5R91zK6!x5n*Rr^#c$zF9e|4k|n3_^$3G zu~*LD+D+bi=g73-qxTfo3fcGX#kIN3I~0qos9*L~iIGAD#22nb5PV%lON)Q}UO}LC zv638cxX;&hw03O!T6?;_!F>o{QJl*DK{>mr?xp74bt671@)(v|R>(X=eV4d~%q%Y- zF@oqY%Oj88ilfMcCjR5y3butCS3JwpGjE@!=~ar)>2~>plFk{HJB&Yao{EmQEp<1j zsuDhd<<55&UZNWM8m0x8m?`qhEdLNX=o&3}Q2%!Eg#3y;k>yc2bFNe8i#8|c46Cci zZ?N2Utou#can@((P*UYdERWo2bBh9-9$1@XURDWzo8{Vy`rFj0>{_g*k3%EJm+5f@K=T!{t?TKM(lV< z7aq^n@2^}=37^7pVEbYuA76H!t175NjEFZ~10N72^XK2#iDS&=_wdE}5DaQ`ubWuW% zje|y!zhwE;S+~+C$SflM?tVK({)**x!~LF9fxR{SjN8^w z-vhz-gkKVVyr@*CqWKiL{N^cIih4QyEe^`dE z2w9$36!&#A!=!urOWG>o<-flexCi&SUY^6_YF|*sQG_hFDpM$n;${p#7PF z(*KG_{_o0ojF9EhYty%6oS3w0;?-(O`tt1j!K>k0(m7W4?6*v*SA;B2s?zl>ZM*TP z#MOoBxR&3L_OCeNEiFA@TYpJDHM}f08aCxEO&N6M{PcWXl=Q!Ic`D?rc}tC_?|)v^ zMyXeXEMNHK;9I)l?NRgHkj_eYNsI7S^%LLHy`Je|MP4ZN)ynd~r1ZDsHEMFNT@AY{ z?I6o{q)G4S>dg}`WBj#39xuzY+$+4Jvn3YoeS5oyl72o;-?C?;cT}Q7mu=HND{`$Y z|FFN~JDR&``qY_=l=4K#@{GlU-qHM~W*u*gSLz!t%UyJV?`Uc7;f@=6tNNUu)9-(E z+B<6Byxu3gpb+_LW%-AutKL!D`;#}FINm}jzbrSl-1Uxv>lWN(zEY`Iye!vlIQfqH zUMkW&dAOptQUR@mBZPaC-qGT_<4f$io=-_%$osu`M~}~2Pw6tkLP=ki&s_TP9mRgD z;db9y(ZhII9_Cl{Jz4dhHSPW;bv`lT^uMHlESJ7nzo)CCtjeD% zrPM1zmiIr__C4*f$=N<7S1D(_EI(YW$9r0RC&ID+HC3Mra{BSs!`{=~ljW0&7g734 zE6cN9_`jz&pSM(LQd%7sviz{~AMYu$&D*n!zA5u+ye#(}Iqy9cdb)qm$lA)hAr<2E zom#AUPaAT>cIVnD<54TirylwHJ$YQJ*>_3F_DcK6a+~*u-&2eG(G6b>s37F=vfTOk zIh4Q3px4HMwS`?%v0B9E8l-sQi%r@<#)f3KgU&JV_%{+YAJ*<`(v${jnalv69qo$bnI)6%-W@e}ST z?G_=+qXMgEQ|S4$>)L0^xQmzN+Cb}UI#jA}>5PxcJSmxQ`kU-pX4Cq#Nl9<_Hxu>J z%5u#m`)tZRSms>B9aTSNxpzJ1Y%=cUYJahZGA`m}d4$WLY-(BSnlx{fTK*!Oeqy)b z*;H}gv!#tvRQ;FbOUsSUrr6Vqt31ME5yD{}mgPn<3`JCHLIxFGhWw}%3>DhF8 z%C>J$CNxsozo-_m<_=hxO^-jv2fzKHKe9Y!)T(T{mvwsa4L7xYWO@JIo3bgaZqu); zLsk8e>y;topt$nwLbPiE7~>k}(H`|PBY zUzW%BznD!<0UKt{J*3>9#0z=YP4r_@U)lXSow@cw1GId-~uCIv_K0=nejxCu($EFT7(r#AgA6fokYWWVy1MH~&$J}|3zN7aWce9=!yIZ^wEF(&OjUnm z`O>+~bEtB|O&6}cRQ1zTi&(~m+U8Kh#)TJk_fYiTLYBvSbj+c$PlL}douP!+%5tYI zPC1l+hJU)lB&GbWvfSZn?;P6JuS{fyv2s5XA->SB;QchP{?r`Bq4mESKY*N5lBHkCpOhWx03hlpK2cDRk9@$IATRD$5UdOv|BmRqVo@Dk*vr zA)AQpEnx>sO>MyEhlB?P}tHXA4(f3_Zum)+${KG z4qdvn)^D1NvQ9~6T>j*K-!SeTWf@ItQ%TVuSsrg)Ku@Q4JsMnXpR&$sWw~)qVLcVR z^!4K4HcC6V%JQt8#q?xec;w*PHA;$fB4qjD{-yMEqS(jAH|&+?vM5;|l~YzvIW>FK zbUml&VZ1C)pIS*zD<{tV^G+2TMSo=ZnL^d{w0p{-PJ`9^Sg9JNXSb1+ z+WxZK=2;y*&FZ+!V#s7=JZfdRRa+}PEzWo}oyscfk*h3^nrow{W4nDEN0(IBQ(1oI zs;!=$d%L|qwo@IyvOK}4rJg>{YqxOj6-CeEWqE4DHhQ|escWb2W4|c+Bg^f(wbRp; zPexU8BcCe!0Oh#+6%x_v*p5f6=Pn+M> zD%-Pk3DG{TvRvDzr=Fa`o84a(pq5{jC$#RPr!n_OMAC3@-N_=tS+4pc|zD<$kRxz%6YFDdU_~iTMB44RIm*3paQ%_l+GdKVBO)bAH zH?{EAWB>I^wVT<>e5IA;HWx{iY#}XIZ;mojW48L zNmb|13S9n~A0zbCcvse}$R�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 z

      baVLBi+uj>FagjuyvgN%Vy>I{_t(LEbO7YAe)n&6Zwn>*WpM3<%&;#UAJ{%Zz^ zwF>5?@f3!3j3hcJ9K?(M2bloNX+#DNj-Vuin>%1KEEx@eio!xez`>V5t!6r-s066n zQH$~8uNoK-F#iiFfSw2_4X);fBu^4fH8^2l6H<$0QaxfPujY*G`~9H@t(<{fN5s;` z6Cw(OAdwEisbLsS1aV3bmBbB35)w#2J3|8;xLuTV3K@cAzk!qkl6B4)vK$BEN$8M{ zlNx{{IGm1@RU-6maqE}DaO%SC=z=9oBs{zwk&Pr5Syz|cBCEjQ z0Pt>bz8g}%H5SDWIG`eqFa4m*3>yH1A(50C)lFb(42d-3&4DM$tR+mM{6nGuDV~EV zJ!B-5qzmA@&h_9Yj^s`}jK0$*OCXqTBMPPTB*^aug1$W1Ci`DgQuRdw&!nIznE*tb zWq*$aYn5hJ6y6!$c);pKlI_q91XTPcdz`}r^VHsqRxrBE66QFe=|z?XwzI&-D*BRU zaL@!vJwA+&@7IJxl3!KBf61K!QnE86b;k)d7d6~|P5x`_a5_RwUs@WZP(Y2%3I>}o z90?d2{YcdTIOs?}0|ZqlO+s9NoPxy+4JnET59m=qH-NH-z6hf)M6~e>ZQ)^zOr*iO z53FM}o4|%1h@2zr0%ldLl&z={O&QX#G8-Ap&{e{1r-CK{Qf0=g3k43F+kv44szyN2 z;lVQ{Mh!LDf!BKDkrwvp!S5~?!hUs+APhNX@F?upIFz0qhWx*#rN{po_kY8W%0rH- z3-wO-)5}HS|AW~}%w!~}fQ)^DPB6&jU}{=!%h5k6u%Jc=ed7a(oWbj13Q&gWfQ=3- z6Bsw40^ln%tb5=}$K+=R;R`SyfQkS+6HXum14mqh6~WvK;_za_^OTMOs1<=2gNUt9 z;VZmCj9jQnAc+FpN+;M*z=!Q`NzhcllaWaPZ~qhW?>Um~2UPs$yvQ6Vd!YbGTFgQM z`Jhz;O7^(?7zu|Y|3Nwm>6AOcGUALZbb^2gsyiOVFpui68(#*{UGi2g&THVFtF_Y7 zgxVZ_%rJ%|a0s+r4?T_e3dCLUco!j_6x3tn@7zly775lA@T*Nh7Xie=5Y`2(00QU; zmw*Z?bs?@Z7_hYhyOO^Gqh-bzM#S(Z1w2jrz({)!qLB&^m6j6rK`jQknUR$OA6YNo z%G*dB4g={5F#RoN??60F;Dh3Z3_#Ne-{zSkTN}77BfK0mCJ6!o2El;ENySfwqzpa; zp^9Wn0G?XQ$$H|b2zGSDdO#CgqKYPv6*CAbQ`Fy7vwzJFN67GjhjE|rFB$%GM&pti zXd08Km^yAFwJV}|qC7fqwFoYch`JuZX~M1oMi_}*e;p0`6^QRZJ+(+b`E=wb{M1vP zjqt-0W}OlY0^pT`vMkJQT(XHCNaJ$A^)~Kc#X=J|G(k7I0++nPB`8EVY->S`4y2Z7 z+!0OK2cqc>*o4|g(32zUJm@RpNC?I-x+H-x+XkwP?)GTMCrVoXFl5-|!uaV~&=o%E z2EXYw=BIi71W#)S|L{8rP0bb%QAeCNxM32+5rG>8HYa}v#^vGgsvuN~;b1&`Uam+l z!ghdLSyrHbz6qY8`2OXmH7xpk|>&NibvpE{DQlg_eqcyP5 zfb|Yw=K?w*t`C7x0gb_pGMa(K91yMoo9EQk6Erl;$bym+AP@KmggnbLK>kq*HH8e3 zwymp$C9>V(iqk;oA;TviQPgydF;5xPKtnv7!nU-j%6RhweJWvVI4qI0OSnh9dY0*+cjwI=>Ufn5BWm4#plo zhAzr+Bob3pTpHDPn4rWY4@M+EZqo_TozMXajI7|J5m^(^1%ea`-vmcNC#1eZJ9nXF zhsqV!P`p840H5*Q)nE(26oP*F3AIeY_@vI*#)K(gI6a{BjI9WgdL>rOVNh}*#8c7> z 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%0A$RkPTYhB|c@m<}IP?qj@-P^@klZ&nD#cLdk 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 jUFBZ}Z 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 z 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 YR$ucoK_WC4R!!ODp*g{( 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

      (A?w>Ez9yd?ZuoZ-#i_nbNUr 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

      l6Ob&NG{AM(S=M6Js7 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

      @y(OZ_Yi4L?>5E$O%{e06iMeb8tI&&P>ZJ=g( z1mmpQ*so=2$)H<)`_#rG{aOP3$d&mxwbe2%5Y?7b*&T6KqvMo4YcqQRTt{a2VPz$L zaKHHLUlFH1a}Vm>yUX}UbNtHTjYKzl;I2Ov^Kc#4q%K)i^GAV%{V%XZ@~-ouYaDgA zMgPEDf|idnFfP@+ERJPK!Hw6-+TzM$*(%#k$6b*<=`filhIbS_?+wAa=yOpO%cZI^zc1E8}4&J2bN{k_B?Z1Hp&! zg8zM|V(7H)*yex71mS64^J-{qPb>kqC;8h)8u1db7%o7z^9Mry&FIC5#P1o4_OObz z6REAey39$tv~-{-%(U^J)x{MD`#gL8BELyjK!C_Y7-tFUtyZ6-bO|A^gQqzl`YB46 zBuKs~j#N`N7g4aJp0PxPY!k-eHMF5$pV$1xVZ+lsPgK@!C zurrjunP#uD-rUV)ke0X&%<$Q>D5(R7H`%!5EE`G~)l^MU2*M9pPfY>anKM@-CTt~V z<6aV2M|eYdwtl=NV^5C{UtsQJ)^eP#U7r*kEh`8@=))3|<0Q06L8hoC5TQ|A+eV52 z8HNZGbz$V0(AH9PonL-0Z>wLaoOdQkogY~Z=HIR zjE*3*cS(HLtiJEqW;y3@FZUDMgeZX>|$yglDN9|kg%sEG^wfN}V2&vrXSPDf-e zO7d;c7A<4x#YWkAfn9RPCgiM4%dI%D;#H2*1qG6AvEqedGn|xGLHmlLLu330CJA-h zUruG=v36Oc*~u>bpo<9eRFga?7mQo73&3sd9DmM@GH{Li*&&=PP}Pmwx~x*kwdeay zz?PL;{6wn6JOD1hxixgUWm`hL3{FN)NwZ2PR1SrO;%!D_`MXJT`+^5_?H)1!c z?|XvE&mCl=LPep^W$V6#A3h!-9B0Gl6^`#Yu+Il!m7AvlW{VowLIFx09)A%+>NQK2 zWL5!axj5^qR{$rKO~OWMPwe#XiS?k>!+MRM7RzAjUf?o%R!+1Z&u`?Kt)HY5LhGY2 zI1DPrBLDm2`Q>fx;DFXPZ)@Ig|(0xN{EPISlT*PkpyP4sE!7niRInZ%B`O|G!Xp{F@ zl<)rvVNS)1r#Jzl8KqfFFS#f>&IMmF%8kPVUF_MH7?&UPBn(PF^)#`bR928rAq1C1 zPs7|)J5#!9oOaj?nz*wgau!*N;3&1KzL7jzn)|@Q=(~oa!LnTI?pGT00}nWBEM!@~ zDcmKhuC0kYImVTozfae@`9e?iC4mUiuC#C18i&=o85%RX(IRpV-6*rt5td?@!@bgt z|5}V6afZT`n<^3~P~gEVfNOji?qeye3vu(miGLrbwLp;CUiIM@qiZ0~mVRCXs?Wyh z0@BHVOaO1-i*BBNteF()NY%7d7cZx&mhS>1ljzBDilev%A6YfQUY!_S{}y*F?Ri!> zB+b9x*a86{64d>odPxp{#^}%}NcFI(oYxJvjmMG}Q({_!51l1^Gn2TivP*)KK2$IB z?7o|h3Kid`2tT@uH^^+v!LO|mb9lMgE1E+mEf)IO`rK`5{+n>PpuQbcg!;iz(Tv+j zIo@6lEe^*6g7|nqsOUfG?U5r|dmM&uhGrYdOqJ`UJ>{Wt8x?}SL~!Z0rGbM9H>1qJ z9*R@3z!lN=%1yIG8NfsR+T4UOZjv9cU7#=f#Qzybox_=0u<)LB=WTB?+GNztfde9_ z)x2KJ{7>se1qvDg&GG~;^sr7u;5PC45dt2PZm{RIny)`+_W))vdyFy_yA7~rwJj+hxsjU4L*R;v{9o?im z@fs$pfx7x!oRvsbGfpsLI+H9vouMwe#ruVgLnHeWDtZ6ii`pc-+z-~gNNGCLrT;We zR404aP$@vE{n9$j>z>>`&}%-LY_*Kd)`8uDmNs8z1J6;!Y3lT-%x5lp5{$Ihu(TMJ ziX){CjD}#6dF+xzJyPof(@ON$k4DQm(Pw1p>kQx(2F70D47Xvy#M~@7tL0N@#&;DW zsG%Cf`KjLt1d-Net}-ha=meep?i`v^>CL_wtKGnRhnk@bAOA=jke4h~Ujd_~Z9r0r z&cMcdbQuJiQHXt$$;DK$pt%mUUN{~JOE1>SZ z9fciggi}RLtx{LQul*BEY{D!Tnr@5XPmjggf_@Mm9*>^s=aNIhjfA4RE~)@Hoxlkh z+JHV@=~(gi!&+g!$4L%jqv>MLp~XcZ`o%3DksgO=y$vap+9VZ=s*LKx6$(Z_!~aRq*xhI zD7f}?i?aA@18F@c4=T^n#b*L^&zD1YnMIZDtzpm13u(Q~rMs<4-dz~Fyj;j1|KP-x zYV@d9;?5{ZFyoLFuR3)d>?#gn&Bh%=IDb8@Ivw!aGe_zVVq2ArYOiG5huoQVqWY21 z+a->G=Q3WW3j*szkN#CGTv;$)O%6XZgb#D)_g}A)7WHzoO?3Nk)4%?pO<`wyMD)0> zE0bnX@{xj ztL6Bs)uNls`1Eb(`({4UW@`?Xrvr7o;%fK_g76=UJSU1k$6hL%$&ZFT#XAER!s%MC zl%IwsvxE*0U4@7N-xlWh=Oz)48b~DBC*wjbC!bI;=)GKkP%%9yr#hAJ>nr?Mw4Swa zffg0d+kWx;$$x{vrfS{bsk==`r@}g3$;64RbO9N+tw@ zGgB0)>hA^`C+~6;lw{Xi5*x++rU4Rqjt18t<>N2A?X4t-$vO~ zRl@3W5jay!h!fj~@fF<~VakHH48(4v2fw|u-Q@7i)2gjpes$oz%-~Kh>TaDt$ z7_-&*T{u~hbKA}C*T>K7w$ed-_)NN7G(Rabw z-(1qJS*qI2D#JN#;N&;FZ-~1a=*g(jUCV>;f z6vPGxIIaISUVjbPEsDQ>{)Gxj$mgka3&#-7lL7BNk#_^X9)>93aaqLzCLzrEA{V>`^KlP7E84p5NP)s zQC)QhiiXYb>0Bqpt=q#j z6U?`lwU>Xd->!XRjDYpMKXqMYi(hBQ;%X8%?h)uyfSN~PCasUtbv*LI5~h!;sJ~_3 zlmr`f>h8W`fzhN}rVHUzvC-XL0-NzHg=(j1(CY4_tAh~}bjk56SD#B~n#A~H8Ql(< zQNb`NFQg2?CgXt$#XB$<85dzE(#=ccCQ)5!Yv*g&^W#?$k9uee7e0sIOKZu5d~Zu! z!kr3yh{A0#;7h?p`tqK@0N!OOpQHoDZYi7Fb=B}&r1vc$_pq3x_OeCskjS0%$G0wo z^SE>i)^k8v!nyB5h1M7xj|@Nqia$Zs-8_W6nzVlb02A=ooOcjJsaREShM$nr+iZN+%0t$Jv?Kn$@ z83q>g?f3yfB;guojwyN8q${q7juj7fM#dg>3}KiCQ3u_x~w@53W9IjXf z^USeAlFuEz*Ti!gn&MsmkX^d%R~9#m%mkjcsAFvkCoys!eF8k(v0XtEQtvI4PBsiX zU|>sD?v6YA3H8z}1Fb+z=unu-%%8~t9E&)o zgqk(sIvevc$eu?^Me3h5I*I&oP-BO)<-}n{ZuJg80i#V&?p;Z>`;Z+oLdKtHlR z$AP^K=`f~%+=Ilt;~`pJGO9#OxoF}rt87=V;4ivm=c;CtDWSXM^A6fT9lF+dEk}YtEPMIq@G>u1!sR|dB~HDnQM4n z$iKUby4LrK>kmnFmO_10gEN|P#E{sbYgj-IXbk_Idw(os>Jkp+=YbLDl5Xbo%yYLg8DsA6?9{)5VG?&T&N(s zIptWsIU3;l6fBT;806h$*x~)-))k@|Bn0-4sY)q_6kmd_WgxrWLK9|*uTvkv%0WET z3q?L?>(3m`d=NPS(k?*~1I*>}7aQ*rV)gxWyDDP(QD-hxV2g^rZzmiM-mXkw2?nwZ z_Cy&jCodGIa9e%Zx-B378(DDK1*fdufxGmU%LlQO+3JIfXne&Tuq&#cRl6r_P5Z9@ zRrL)m=22w^@T|;b41qb_UZ_%ffRLAbZ2QlMS_#kA_V@2B<)#} zGWS#!2pjT2m+dnhV`RyU!aVPqCEzkBZqYyPo(0TahnbfrLY(UZR&kwRA(GJn!LIy{ z%u3z}w|V}6GfubTI{wYKGsPXuTJE#XHUjNz{ya(uu6mBc@^FP zoKR4x8tKMEk5R75->ri(On`h3$B5$A6XH#TcHoDpHdfxc6lV2<%3)6 zxWp$Ac^oWBr_tTBwV|;4J~{tFEobkT6EAu#Qt!Lp#`bsc-b(84Q+`in{|Ce^!fkL1 zaQs7WdX=m|X;{q|ahMm$8t~WWvOeL9z#H*i1PCt|fdcA{QEY9V;~|pp+GO=7sVyIN z-se=FsFZ)pO>>tb`Yl@T^L}v)fX2PTQtY_{TNQH`#AaNp1QoCqzooc@QywEms0&iW zCe&cx+K>*>JblH;6~=w!j8F(6zPhcUY2>NK^ht&jE%X9#!K!VZ65 zY+JeWX22a^Ue8<|%vd7RQWg*58mNtJ1sI=fOF0pBWi$0N2Wt&p<*PZP0#+S#iSI1ZjAn0B*Ru{}46&Dobh|Jgm z_vI1;g#kznDv{?}HmW3L;}wRc_%79a(JD|=GSjRY(EZ&R$Z~`tVYAzKl_H!KY#DrQ zdBlObRME=6|C*U1yP@@g!mK^=EQZ&QKkOBt5sO|?bZ!44Y@rZ@1@*9BppnxH5V4+nnsN05 ztoH(h7}xvnWNfe?iSHU+)Uz7Jd&D2uQ3#BXq$Sn`x>@TcA&Kawza1IP=Z;f7=Sqx| z@c=2Q2fM>lfqD$M%Y=_mV)p!fTxNr^8D@ zpH6pUalrmN#o+!szuDa`pkwmVdq3fo8|{_Ei6yBYv|jWpXK+EVIYX`C>;b)Vgv=-G z-n=WD*A9VEEXd<`Bm6~Nhy~pSzX*22Q0&XH`5Z>Lcvvc zVJo}FaW4ui+_os%m>Em{_!fp|*UMezgee4DiT&9?C>`PET8vXrmW|~^F{i}@TTQgc ztz9!U?0PLt036IS)G zg=zB!F?8RC&57(y<*PA(Np4KWo@n6`o!C@{h|3y0qLfHi=_**2AAJIqKn(+wZYg35 z`A0+{3Md~7UX1I_u^CfL@uh-S1`At@~%(4Pn z7=QS)p$*1hvwu}HdzrUN8Fiimq|fA2$u)G9*8!=gjz@sUhWrFtlY~hw-Tar*#qZvk zvnXQdsI%Z}M)deqOO&;tV?mCY_phN}t>Opd@RGuz*3fQ=$%v>Bss!!TCblvlUoo{3 zm$d}dwxPT6o`9QB`bW@~F^yI}33hZ?oNAhPZ`jvw`vaK_%HqgvE}zwr`GAwa`3F_k zA^}1N&JF-e-i(_uNlx~5K`!D@`qwpy;|Xb&yWUwo*N9OMdu|BFjNc{g`LKh;S~0sy zjJqMsEs2QmDVj^aX*VpY8iAfHPx!J+jCWq<^3vyO{up(utv#2d7joAVraD{%8g0)>ChpX;AU}X zd$BdWb<|im_}VQ(?&pkChHO$o>KZ7ss7*W%VWmm%XG-w5eJwangIu{dk433IUX?w@ zlF8>@H$pf^6==B4URyMFqP?@MdpPAW@*f#kkJD_|(qKlW5>hUwR z?T2A3D&Ur;0$KalSX=a`L$sOz{*%Y>*@aY*Cd%mYGN%B1(hk~tL}?VDf}Tkxne$b$ zwYtuVTr7v!_)6=glp5F&ACfrAN zYn0rBMfr|O68dTjd{XxK5ixp`?^sspA4hJ#c#PVy+5|@R**7oUpGD}BPPi+8Pl-Fz z*GG@-lojtV(QDvZ9O}8&!Dp#cLXQ*<+OIEtGs+N**Hhdk?~RItY4kUzUy{wxGIz!3 zIu`E~`L+)4x%D6Z>Rk7el>gF^yo@K>wnvXe9yW>U+rFj!ZK3+*11;JgTVLJ8H93MM zuoq~6u_vu|@Dgkp7mKO}-*Un<^oqvgn|@8a8CgN2JP+Um4_p*x0~#@Cme=q7G4Pxm%P+a1)STJOiHS*fmle65Lt<#~AusL$vcFF7#yNTjbjI=dTgi{6thzC8&o{H2NKX?qQ z&B%oC7k8pVV3;XnjO#a*t>Mle02{|7Yb!KpC@QGp@A>}2$)_izb$%=w1sTxAu-o$o z-Vo|bd)VZco2$^VCMqJ@vt_v|Gee1t(!q;cmmG?S@u;p5P_LDKa12q$b~F-CHWuz@ zZj2b*bXhSjwcDoYXme=P!HmV-_=L6%55M20?C?{A$}@2qC`oUj)353PHD;JeTwbg; zemSU)2Attla`MUKXjpY*@ghmlGGItD%cPNdJvICA!QwZvIL-+g(;2C_yb1=cJB@BUm@;V8_`r{HVcJqDGM>g`7+vZQZtXW$;lNr4icFk zXEjy&gJG&URDy4Z$VJ6T^)0&mseeD@82InarK_fsk0KV!?QJ006n~}F9frA_;CT6} zV$ylP5HM$WO#zUB~t~`5(1|#g9{m?#ZTcExONXd1D?GZjBIU|@TW=eqWT)+q01u~bmPp4 zD9`}3P}V395tL0rrzo8gvz=~wW4J_)r^y%?@%klnRi%1O#j-JAeOK4OCT8<+z6(Y1 z4Ob>Pz_T#Dns46LYml9r?4bdo3w$we=(fgXL~QeTN>1xX?4NDN5X5h4{`g0#;elnL z+C#Bsu8l4tRf!_GU%QL#ii?Ov{VLtBP|lIe9IU$bU2{Tdm~oKfTh3qqZ3y)vjsE96 z5PW4BV`F;usMJvFEXs$_^hyB*cW10&(km}G^<1;rhfJl}S-10ewJ05Kgu9k*uPP%tY zPD4-za7`=Hx6~u^D_+^4D6Fg7Dg#)^1unBiZRSm6+ntQse*sa^r0nvgC%JO@$FK>p zx+bEl;%1%gS4I_uPdmS67uSO=XNX$~D>&6F8FpQ+HLtkgAVqlK*WX^isb(EEjvh@L zLm>9RZrPHu1v_3#S-S%=cH4`9F9(M!NRj!Ec`1;j>D@=Z)hux6V`<}|Dw}5vO4W}e zT({GElRyZ5g?wUU0>9?C?aM6vEhxn0Pd#oeJ)2(8S?gu>6zZ7W5+8<~}E!s4C9t5K*M zsv6PFFXd#0(l|&)HKaQH{CNbejC2^t8LC^D6WNwFKH`OHiU}V-MjrZrZvSEa8gq*L zV)*|t_2%JFy?^{ak?ozVWlO`@sf47$L3S-;>#dcNQmLfPc4o-F)!5eHMAjw5jXR2 zzF+b0Y>Ah?MT!#QY#6c7L3K#B{(x*As|I}o<`9T`OcdIFb`tS>5J&G^=FT#sUiPAu zZE4MKJB^CGYoRawzHia-q*J8=RrfJBkK<}l>Ua9__pBUmV5`M#`^4f5c@ws>y;dmc zN(tXy77l$%nR+72VE@#_R~J)HKQ{t4KkAI6Da7HWy|{qmhn5HrY#K9~^CX20NUrE+ z^uuwucL#;2KXwD%a0~7=zR2~nfVF1S4_;-n@0QsmRG#rB{yv{BlFYhEmG@IDI2$WU z)ID@*Q`ABPQp5HojB!>xTo#$*TGYLhWPE)!iwle;rGNV{dAsUKXBW#QKjzjw6Vm ziiuL<3O9Zte}J5@*g-7dNTkk@dzSn8vGo{a!E$L@0I-&O6&UzAg^9_TtZD139kQg#A!sNib_6+0#GP5$%;)K1cd0@wkd*@z72aR$1Aml=S&l?d@>ud#_1kR&PSDH+GBa^mm5OF2-sOVDA zHvzRARSsCMbzhDBM`@MWJGQ;vHv7&&^rkj=vz+RXoB^P1q)~q}L&`*zSLgD%#Dmjd zobucgQQS8_J{ISCkgHY0T4keKqo%X8$NBej7sNOBT?-(}=mdmEq!bG)u+GS76r4f} zuML<@l5lyXncGcX$%!Q+e#Hv@UOIAZ#Rt}F=Up%b8InqJBwv@eCyspFCNVk|O^CId z3b~+-`Y=C|by$*`eBe;v28W@aecj*TVQf8T5FysE1@Dfkd}2H{KMwY^^YJ|mOGFVE z*7$MDi0DRslTkWA4;0ahb$ym1eckM`!P0S=?h9fVw7u>JHGLlyx$Zt@M+d<+>PYb& zDXj;+v)urTm)i?x0bkf@-U6ydDXAjg6$dGOJ?sujsp1?367~-2iCEA2C5$E-MW{%I zl?DYgsi{oz_kPd#2w!5=pq z0_>+vAPiGx8h=4?5QIz`wd~cC;SK4sQ(DopcW%L)+xcaH{>23R0}nK_KQ;NLMr$6k zOOLIN>v599N<>Nl!%+nJ&JhuU#o zR=TnNiS$UF>qp&#mWfB;=c67j0QydAlcNTpatAn#Fh$l}SYd*y(_wFu_--{t?_EG* zSQt-@Sl-j?z`i+mFirvAe2+VfC3m##U2oTxs^~>i9?E`MwtVba_k~+KB=*`zBd1yM z&qB5Bu$IE&O3@ZQ#UX{H87OH;ea?$?)@;d)Xwc1E1FY1)`<(51C4;GOoEreJ5;$NcjH+}3sk<~Jp>vOc%^JFubahz5rv_z z=Dl#387^t4O@;jX0lqXkWC@Dz+l(F8lEFokv}mH&oyyHFHG`&zU@ejp7Tu$zQR@dX z8Nu_H|8U*S@F9pJW&b1F{fSATYT3M%^jzJ=c5KFBj5oEgMc78pC%L-qH7>+(<$vzo zfGu`4Kgh1n$3L=57J~agGHjE$Kw(>ImI(rad;puCuC}Dxs0uqAI%3Y-sPAM~AF!r&Mr+|LbW0Nr&K}cHy&xvGa+jug+$Bx zs$2?5`x4t%gHuPhq^$HFl0V9AM~|Z!$185uvs~?dm=&A!RTR^7=fny;?Afn*jB`0F zgTC1aQ4ON(R|9~&P5E2TQJ4u$Dmk9_9XhU76I*3JQXboG+~|CQnDPc-&;dOnmeBxu z)TRAp%mCx;Hv>ALs4@&?K7pkF%@xDgg9a>t_89x#Ogv$$(Kk zckQvmfvF}3I0;tGB2Vm}^l9Oadu-q?xGX%jr7MC*$1etelKh z*)PXSf3>~o3(IVXF?b_v*Ph3jo-O`{ld{lq_m{0$ zNl`e3(&cka$=MlV#Tg;ay9s-knwK$nC;!A|J-*^i z$zlbg59i7Kq@D8ui7uyfZ&Wy7n>l)6i=ll!;-;mj$ip_)G02?6s4g=I^53tj?VIHS z5e-+;Rar&WCC9G0wXkOuicomy7BDtem>64Z%>doMCR^lc-Z}TPi=W z%gpFl86+Mst^pdE)zMAaq1KOA#?iHp;m5b@4J$5kH@57x=kc)I>@w@gG8oJ_Kgb<} zJ{b)R!f#cae%}BjxR)e55b{~w+0S}$Y2s3mJQ|OIwN0TLo}P8^aoKh)H>={8rC)nY ze$Ot0K%V8SkAg>%cl6llT|PK~4jRuwK$=|X!L|pjxc2&Fh!Y|YKJk9BDQww2VeujZ z$;A>Ecs%74)sIaNo_MN@yNQ5^dC(D`HQiXNiiD?vCK^EvH&v!dYn2fMD+7~RYB2*Q zN-fg9qwS@u@XH|7GDsmx-*vFXDGoJfCs3*UEk!RT$8Kxwtd1VfiMq^E{wQIJNtrhL zs+$djCJ_n~dx3^&2|%An0)O>R^8fG~+@J4m&3@{nd4jp)QDou0nd*l^ht_JZMrb&u z$}ZIjiP>B~YaV6^m&gw*jb6V09yQ7dh9y26$R0qS+(IGbsDkDV9S!TnggB_<*AMn` z|4t=aX0+|Czjp4sYTg>x*@0!Ze8j2X>dArS3fkWMmp5BB4m}@_2xFxT8^HXplKD0d zAEshA4Q&s@%$d6&egKF(+`p&rZiN1Wc|lT`s{;#H6&6*URa{TOA%PmZPw_3&2;jMgsoPK7QKKJBEiFaWvN)Qen)*-Y@<3SUo_rlG8qnOi zOzHH3)DvWEHKO(`WzFrtyuklT0Jnx(@bj8e%E}ntY zEJ_^A>^62gJ~CN(=*yw0!}S;CgtlFzYrNq<%A^^;w-BcW8Kw`e27ZC zmrQi8uAIRZ;Wal@m)f}dPfYK-H%Z>F()nQiH}oNRnieT9iqv#7dO7UqVLBTiR3N_sDr`R*Thbx& zq?r}C;LK}4vL}3Hm(CtaC5I8C`PojkCJ%2?NHESUgr)W&LF@Y?F1arPlt@ zJKxuyT#lr&9cBWHdU=Gqe$de-@Yb_C4;HkjRJ)nlf30^(g*_?tMTwyCH{AN+37nrJ zcjA!8MjEZjLJ|~sVNR+~i_w0No1n9YJs;QL^wZTkhJ(>mG@Cz_wXodkVrYxxaw_i! zGlwIvmD`uYN485HyIl>T*W1{Y=^c+ipb?7wYPqjbWwzJeaTm z6dw)zDv8Dyf?Ok;!D+vfA~Up&Q}M!Nugq=yEO3{tL(X>1(p+sAkouvLqV@;%8XIx! zSTN^@_h}Pc;cl$G7)!)dtpihb71lyy2fx0>krA%CWS&?+=dmzr6rhD%oijEUk0#hM zwu1XPy?KyOP(u!x6M1Zj*T3zrzu6=OeKs$) zNlgZV=!{F(&pS6?oYd1A28zfb;;Z#sE(v8os-uiNd|?L)59MkM)x-fCjWDFRA-vAX zl5T|dzktX82GTA6M9*vSVy{+@nThxw_c@jX1{rc_eRwL?SvQ_GE1A>s>r6hU8|M>N z+NN%Hu!LQZAdL##{Q(^K*vxXxVRFwBLh}p#las7hp6rgCEBes-2?m+(6YdrOw+V=2 zR!SU+R=si9c-GVlW2Os(DIJ8aEb@TFHgoVbieSk1Q|7Q5^db66VY=kcC)t*i7rLg5 zQ;dc{s%_7U-?H<&x1o6`MQ3R89y%1xR`zFSj4UuERjsXsoDZM>3#;C&)o6SM0{3YF zL$u(O2lGutGi_L7z7ceJh61?1H5jv0+CyaEq}bNKfMm)Kubo;H?sL?z?CUEfHHJ2y2y<2Wk=u-v2O zC+20^D7dqwfzEdL$%X83bod)kPc?27Rl$~Oj%7xDbnB^!O6q8`FS2U4Gby{Mu##mT zE=6$cy`C{dn{6=V#(_=%%A_*aWD11JnY)AG?@r;9@4rl_V+`bg>m&awm*_fDLo9%H z-Y%P@%nC$*DbYTgLh(5DNN@n0LfSNls3R}N5JyUhWI_Wme2GThFr?mw!A|aQxg3QM zY1Q%l{pXc?9(ccX(1b7iHaD)*_MMU+YVq@yUGky3-)`TJo>Z1xvJ@mJtj}zq>G$n6 zF5}njBiU-tj7FG{U(hRXl+;GyoOc)S>0;0)6iDigNiuPll~}eq41l`>KByy3=+o;o2Q2Q)drF;Kf*0R}O3QK{ zW7~@XGRE#WAWd~wsXtG35SWba$<(%2AWeFiKj$F*t<$x|fv3{hVCX@iiS=BQ>ZuF+ zJgDLNns4tZN(vW2cxVoviaomUvL(8tk<3edAqpS7t7d4RtG<-Xg>+U?gv) z`r`U>v9*Fdji&c;5?)Nt@P8xin{`_);(a=C@Se@@MoLohyx_l4Yu9zMmZ&qDoylSLS*0vWLpiD{g59 z7cW@+&(~^4G&i0lH%S!62`}!Bw<4a!Be}dyOo#`YtnDDEIIOb^{p>aCh4;Pb&@Bdd ztx$iP)dxTfg_Lfz`Zy|S3@*X;Z%+Dng@)p8G=<{sfPP_|#lNGdu0hiBA#59Ai zYIf!OBY+8c`l0PJsQv)z#OpK5C2v?}mrYJ1xz>N208<+T?;*t5>a#+>tdD#0DqYU3 zSKTQU6L(qfxa06D4?jOk7$bnR0EXEeq03K8=9B)EYRyX6Sp3}9?696@7%Z!-GL!2*f2GE|UwOnv?W; z2DJ^1w;w+X|KX^zQmz*T%MtMpIUBY$qnu5`TOg>`0F7*y0H?%lvcmUB$Wu=J7k#yL zL=Z3O<|=M&mv=93*SWJ(M_BW@lBf7vJ{v=cgYgq6>ByNqOO;2*=X_FivOL|4r2;f& z|J|=QdI&R*O-oY<5w@D`9$0BH1$89jv&V z%*>??a~GdiM5ozh&Li90)=Nm{f0AH;Xkdi;)<*&eRzNRi)_oH6zJz8!bzDS*p@g)6V}-a(5u(8iKsmBw6Z z{7e;YSjW9OWwr<5nMwsnnzp6YA%CDL0K!7J964Kin zOAh#OQHT6B=aTyt{~`vnmj7Z2?Ga>!D{VvOp=z=9HAA!T%9WvXQVCb45n_BI-Df?O ziaSAjAWuwBRQzZ}aF`TmO1*5kE=YaMUhs6inca9%l!LzC+ zms8Neld6XxMuBvkJIqpWf(sk`sCJFX`Wb*3AWN6j=6zV1hiW=%pH9Gq-fwing>(nVXZ$MjT6W zn~omUkcubzjvxYEz{ZunVO9zDi>$%OR~F0yz+%lk%+wYuI*u}m_&h&51zLe8nY{bD zMG#>1@FyrvZe6@~vVyraI;w59%Fp86ATfm2 zlC-HL3iw7CD{j%HlHiZ2fS)62-ze@qHoIMAlKjzm&u}vEf?ABA8YIO!1>3N1?cywR zzCVL*UO2JHAzzbL>q(4`oxzDU|08jciOd&$Wa`c$*sAt$P77oUdzY%=# z1v4djcui*S)m*d&X@K&VdQ~hLi9s_l>$X~W)pb!ZATx7_P_jG_FLXC1N~%p63}>R9 zVft^Lfw1_QA`?o&oIeGpTl->6htB@4s#k8R8}GY+L>A9tJ(s>l3s+WkMw2A1HHM$0 zqSlgG)%vejo+1PMDVex8P_^jZnCk%~{ifsory&(ooSLHfwP41}ZJ4kyu7D>i_B|81 zElJ|wk>~RE@+Qq@wU=L;xI}gr?2dVaarSn~O(=ql0wdmK@IpL(|GQ37=6e-^;NVDT z0snwh%hswWe#puE`Ixl@O?pufjJk^dd}tbv$d)#G!4#|MLUdxdlr0Dvmntf_6fRA? z3NT1klGha#NlEYC7LONdFkq`Q+g&wWvCEtFC}6`Nr{WSp9{=kx%LRTx0Prq*7TTYc z?{Aj_l*dRh+@y8U0RTwQ5LTH*O^*J+l@jJuD{V|qE|>lyP0lK{i^qM5uqjoT-erY< zSRBx9MA%O`iLK@M(KDJe@M0ZeE#KuwahKc0ipk>?z?M?|CHpKAol*qdGgMszCBKv2 z!njyhgVGK8S=ubi!zDVM+=MeEB~Y>jEYK$0+3IjhKuS!7G9V!zFMo+MHx6l9e2W-O z%EZ}E3hzCx)0z>d8{Tq$I2mpk3q_~AYmnd3DmS_KTbXL})AnJx*@S!d#W%z=q6V$( z!vMi@G3#%^;>tSbRdumVIdeu7B?Ow@^0Odz(a-em%Ib(ZyvC*lxngl6r-qZA%yj17 zgF$}VM;yH5;n+lAHdGyxQ*T*eT~!8DFMsy#UKpJAf)-yikWgM3qus|JnXmy&pPf+ft_ZSOEF-g9)vi-#^_rY0BK3ASb1B-`G)Y0~cUV-I zy5Rm*6;^FB&)$AEz|nlPvLaEBC0w7qqnf%SspH=BlXJba^1lU+V)I;sP=1Z7 zK4t&@&C)gudfr~9rfu*2H1DbN_^Pt!OmcSs8QWNS&S!!hVvfJXkf7RqOMQT-e_FN5 zOOfZ9Ju4W|(DIOFV({d&DhReL|au;_Mpe;ed%bN9sqMu>bHjuX7ZkUldQs8PG&eB2cIZ zEMLp#k+A7`s^Q{lcCSz|PlqJ4J5$T6!|OIc6`bH+F)C_ZPLGHC1j6d`-LCZ!=|Uj$6}5 zaV8FO{NC6?gf#qBo%-xneFJ`jVb?OZt>VF45!xDn^^1@&%5;TWD-H6(My+{{d>6L_ zAIw-4H_B^W;<1AW&34vFj-vyTyOey?+J+?z-`Zy+C0{mDAS#z|N-cAAw^XC<5oN+nW7xfg>0GkF_nBgl|)tltG{Q=g3cYRaYi-%nH!>f z)BXp5@vY#Et`w03WV6rt@EHY)qeuZDktIu+M>WvdpC{O>oH15PkJH^~=AT(9FWDki z-2=>a{AjSg9Sb`zm+@94dZCfJMHbAy@2Y5+J)8!x+}tgcpwGTB ziCOWyFGtt!^}8tYc~pXNVz4k3MEs&SZykgv|$;F0dn3JwbNE}Q1rk7iS2}elIONg$5acBHT zHvZ;X{PYK9u}0TezWJAn%zo5&XWMQg4_;^ugPkX8(Y>MMa-Zz`}e@KJu;p=E`-Yu4Juxq zKr}QrTV%hML+A-Zz(W*e*0^KC{!$Altr8AqpX!VVdO@i#N}8qZ@G2cmmFZdV9vC2@ zLMGc}2|?-KlU=#z>scwCCkZg(zd_84isC2cCdt2Bo`5tBs^SyOKn{Rm5lw1@TZnKl zr40dEd9VF(aE)Wxz=S~?YxrS@)=PvyV4;0{+HQ5*tI~=X@zBKasP?OSYq`Bs|9FEI zoG(!^?-J?aRO#j$sK$k|gA;@fp2~UHcCf5k-}9~Sv)dobi0E(o9Cl&2?l^o{5_x$f z#LX%xbJB@6QyFJgti=};%nzH!EFumy(uQqA0-z*c=a;?nW0gTErqZ{tois#diFE}bKV7=jLT z#8u#Z8_e={tqNEXQobIY6Fs)>FW8JT>UykD48pl%_R9jN-6NDPTO5s+NOG6uL4aM& zbX?F~^xscWxZp<76EnWgo?>GdRQxRgFskD9pw%Yd<|QCENR95_%?Bk3_A9aA-X)j~ z7*WfX9pX7H?39KOpc34}B#+lvI-+MVks3Xp0!o>q=#H+k3lL)Op^<3+a2_6Ga_c$A z2&;5msp4|Igfs^!RsGX(y4djlt3L};kvct(J9J!2JZ{TDR--NUA)O2|`v@5AQ`+G@ zc?Fw5SC{Sa)&0(%PxKBT5Q=ff?u?nDVj3h|P1T=7Q-TU^!Oj7*#}91ClOjJfnWL(C zLUEqFyih+VVW6Hb*rCU44V|Sq24^%bafrP)KRb9*qFr-%p#rs#4zX_?ahMcCp|8olHOeQ6|Ii4>P;{ z9T`0ka(ll^ck8FoRAr~ERY9hJ1nP{v@41eE){5rD`Op=zx=GIH>~!Zd)jz&P&8w;j zx>Xeddn?wIWFxQq+RW&Ih73Uy898av*}@}2mANoQzY#q3ivRS!8@!-0<#dhbIfPK$ zeO#&><~#`{)WnlpX1##}7J2={aYsZ20~Z(^7Ej?h2izdroT1+wk7KY75qFgTjbKOj ztOCwO1qAd}v>mUxMSo-sEX2~LKa|kO$ohJ>*1V&M*WY3Q*i9GoMk0aIh`JV996Z1K zN!BSE081|RnM0bt>44AHfKPgO&d*uhR$M^6HU$_r;qh%@O=AQ$VjJETH4!D-fOzGnQ$*#&ky z?v}%WB9hmw-Waxcwsh3;5LK3Uq3`Jl%6Wq$qbbJ(4!S}~j}QsZvhFfo7(6XM42FL; zfdAcxv84M~I2L9TlcZ?V=6-BuquV9&kIDE-f}*}6a`u#aTfGd;asTH{lt|2{K@X8| z897aC-Vy8ZoXSvKP+wO2VAkyBFtda_Eb$O0o<1w1EN?5a=L|lA^+`rNmrqsKIoJJ} z-lI46zLOWKygnY{d?0`=48l@QwxeTkXI&SNGq1G$8zB6@#LZ9x)J-=h0!F$9{GdX zZIgJ;%=W9l^f1!ip?|D*0=?ftqg#{YWvW}~(T>DJ^_*>6{yWD*N-@B5w}fV2-pf`#wqjmKCTT#;W@Atieg;|4M0uNV`q3EP)xU|{IR~?TBGjn~d*q$8 z>%0p>&?iGGH*mpBk%8%0IXlkr$u?)xMtg{ugHz1=aZO3!ku$WBAfhwq(04Fwoi^cQ zb3G%1MlURY8xH|QShz8CYrFMw$!Lo)CZD^>LpP6!5oz0qJ+Hpi2WVEaTnwlO_PaR4 zuL^Al?|$n2$$D&&{ZC|-`k5=0?Id-R2p(0VD8A^so0|{4=0kr(@8UypW~xt;`dA{m z;s^L;C^)pwJ~LA&=!DOwER{JPqyA;vbh#2AuobUdsMgJv;8}uOcNi101u_M@XF2$N zzMqs^EnE~WZQSwauT~-5CDWpBoDZzWWDOjQq@6YvVe;FhP_NpuX*K<9#stFdlfXh)RqV}QivbIq zHo(NC1`H7Yp>XHN1Va8pY7*CJpYRP$-W&3BfTgraao2nH|NaPb{_krxBw6KdBegp= zTQ1q#5^$(B!@*Q|t4Y^7?kmrI5oGuywRLl+BFCOlS$PjFS$xUMZSk%9QF%1=wAv+7 ze)`$;yLBs&&x%0GJQpXUkeuwTnD1gqQm=nx|5iQIvi(yQ@$a-;$8HDPQk?HT-#EkV zV%;OAk}yjm?^MHIU~B&P;lJSF@!Wha0N6=~l(gmR#+@{^H~S}_|LDwvWW9Bdpvhto ztXW7UxTuiT5P*&#Wkk}*0;%=keDK-tyTvQl&9?VI;e9Ay@tPxL7|)<&G#GAF*{N?< zlEs6ih?m2aRbXjp7`vLL4qk{WB?HK1F^WTMtG@8ETNpohK@7 zNQtu#wt8*%XB+;3?$#Ee=hJ6-SVeYa>=S&5(KlSmj3WVG3Iwkm?}-ehK-Ji6456_ht7+W*#Ksm3NSDJR*-O2ChcC zqYFkr3DZg-SzfO~h@Ifz`z|WFpSJMPjaYz~^_|B$ro%g{Z|BfqG^e4d3^9nfMZxAU zh=>ppjl4~Iai`26G&v6t7wfehjV$lyYNuWpJUbA^X=pDZAXo-+@nl=ZClCWN3uxmU z`$H(u7FHxDcKQF2Sod_=aO6@dHfO3dx>a8>J8q=E6BG425#h39d+HItxSJioVuw)7 zXh)R#R=lZY7JXE;e3`^}g_Dtg*t!a0V1L#{loPn6T{=cMqfJNHsa|jK4|hI;^6rEr z+M81G85S;E&SQmhFPh>@Wt{Ibr_yD)BSIqoitMNEWPI7EgtU?kc<4JZk55jV*W27J zA-CD&Rlc)D+SsLiB5=BWVNQl>;sCxe$_m z)5SSCEAOsiK1YB}O`(5e2Tx8I^su6?$iF8!om05%m6g68z)k>1oxCQ+{kR*-9)>F; zzRxePHdWEaE+&Rl)Ja|`)pzU4m8&5NW zW7%CkAraU1W}E82Ix}(G{$UdE3a{`LsOM1L8A7;eSf=kuSPYxzx*vYU9M+8|h6I!< zRc3&e?WH9L--5B2U@?)sLn8eWxq_zX1muX@6}4(-VA*cx_1U!I2_kXGQWJp z0>fs0hayHjjOPKW|C+rDdU7S%L)=6H(dFSrH2YNcf7iKsvLq6l~@kH77!eA@x-31NayNY|Dse|4AgRiPT=7j#M{=gYgaWP5&v~^BZT`o9 zR8xQtA0+hOasr-)j7FWw>E4b0=ZxqqkhzPG+b!H4WK^KdQM!UqRGSt+L4&bRF$wQenm)RuYgUJs-DHIz6j z#e|ay1;0A`2NBn*@hi)VU}z!`c?gX0I}#iqcw-9d)^DiyRok}b(58d!4;>G@zpLVf z(l262+eZ->`M+7mC0l(pZ+Eizu2%O>v^6lZ?J8Ec`dVc6jl&Tg6At&XXF8&+UGevR z&7*Q!4x-P9#a;V;@s!GU-IbK0s)XBZGW`BV;F{|vyoO5JS@B0hK#Hf{W#<|nNwC!O zd8e1omYs+wh!~7qq>g&}23=7wOh=TI;!fd*G1-E;@jhv6DQ0zWxHUXR2NQ zpG80zdch%fa71ZmzUPppzI~Q+=5LF*5V=>Y{vZ$e2pW0?QGLsOaW@7*wNcK&e+=MA zy}JrFaMxUkfx)~!gt(K}*UR;FWQ3NlD)c?{_QCny2T@eC+46|96K%m6Wt*1?#@-#tcidLtDc4Iu404YY1q|WrC1qc&UKrl{T!V-5+I{PEj5GJVKCZi` z2ba5_Hh&)>;u}$Vfr|_N=JZ#%ua2{2i2Mb0Lmd zHj$SXCxd*a4|PyFdevV3WPnGB=&6X+w7S&@BHmvESS4MFNAQ2?Drno%;bim~jg~*E z|2iGzFRI)2T)JMXzTVh|lj&Qzix~>MU-PDrQeeLZ2_4HpPZ2tQO(#kap&cthK)T89 zoWe<0Al+Xe7p`1+mSY&ZJw9^dO1*7;b=Wvs5`9PTS1z4vzMZzXB0>E*d)7Dn*8uUQ z7@qP3FcHw4nqeUH>&N08lxKwRZaaOR|DDq7VLkoRIOe+aOhj3XtY{}Ib8Br0k0*s* z_Rt$Y4_hatDRhV$(AAZ;OEZyIwsXmZ?X#SFZ-_TQG;OcH=m$HZF|Ef9l~;sG-L;*u z=wV#DUC4rJ`vjTQ5uj5-o6aAYBnghInj9Eyj~>6kUJ}dnl7c(Gselt7ytM~o6*+w~ zx!S0>{N_>VyBFB1okra&nZ7mGqr0z3Lf0rb*aj14b|o+R-i^*F75@(2WVrHqna4xl zh&14wD%NU=Yuk(@+Pg=Wsqy^dzr5ir9H#g6Br6_l)oP+}$Cf6~aVOt5>%rDCy)SpA=oVkG@hkEZ2LmrSL%_vl zoHd?Ad-C`XGss=xdvWd_kS6WqWjz3-2D2oAw`vy^0rip0Msg$8&w4k?^H~Cqy)PHI zaL;=NX1rXaVczht>D(vF+H5Lw&4=`ZWk8~bhXW~mKmNd>bV(u|>`M8=2;@c=@_C7M z7x=eSD*M^UMV1ssXhTaPd8mQCa)iC90)m1s{&#E4a;#jFy)|)IN?xVkE@<)(;cDv- z;YVQ+ONb{&<-Hoz$0uYkr!zT1n2>=VNh^EskyozpR&V$4)b`Exa)uuVmd7u9A2X}q zgre!2WS(AjlA7o;n{7KL79;cX#{vX@&Hsn9(r_^8;y{-fAns|z67BS ze@lpihtL4hdQdJ8hnYx_nIeJthG|p-(bSpy$PIVY<_QPSC}7mH8`w`*r`XG-pFQtJ zGcG_{vNRzpS#L4bqo?SxP=;Lnj?&<;9S*A8vDE!IAycv4^A`9xc9ckTKf>_3B7Tlz zZ%J-L&XJCq>7)7J-%~^TONB3(Oj7)jHI$fcM${oZT8V|! zRn@3U`FBDVd2X{WV3%rI(+#}z|F_YygIc3;60X-)r2WGgiDC^FfJ!3%`=L(GbPeIH zr|rlJXT!rfVZbAntcsA{;Et2K#VVAk>SNywtcj`!!|-*S&r~8Sb#hY0LXgn)`fPv& z=>$nMcydPfZ8pL)x}!A*5l^Yx#q_Hr@*>?{Y>HD}&M6e}%~ZbpvPxNn;o&F^+@>OS zy%{#x6n&(IIA7o3ia2!kmG_TOajrll8bx{8&hp!Tkmb@*WwxEsxJYg3paN#fz$8Uu zI}>5{TWMlR8cpcqrx4)__^WP^mc-^|km931_3vnFC#|_bsv#ctEjV~gQpC#DoU?y8 z&V@1^oO87EMILY&UOxp3R)I*!7jRM!KPT(=~h0H!C1Y2(WTuH|JF(a z8FXq~3I!z<&33O-e25ABE0GL6@&DUH_ueCG&U zS&hXxud>tbpx!;S?Wr}M+>7%7nzFs6gF1jQN-mtAIN2n96@4|nP`FLJ@KmsjdATiL zL?WLl7|{d@kAuwt+?kPZr5qAUx9ay2mLb?>xaU&89=}i5l_YYT@$sa#y*Ryncr>v1 z(PnJB{O$1je0G@m$`Iam$Vlwz4^kO-(%N}VAcm7B)*zzs_5Jh)q&A3f19KY{ z@U@pMzf;r8FLHZ@3RJoD@tx8lSX3xB*}-TDH4<5S2wK+`E3q9z`&tj?UaT*d_r0i6 z?_YKW4>~_rNL<{!%V6WcMsr?yQllzpf3B;xMdQ{XhR#}L}pqYHyT!J}U!tbnQu z?z^Fg6=QJul>!Be2No*k3lB?dRj^yni4INypMwqvC<^EZNd@1#dM zhci7Nm%P4ysz0&W_vwa8*LFrdXS|+!avZ&jmXNez4wZU0iy2HbrBTWnmS@H4(ewuV zUGUi*RhjUngsT4fV`CBX)3u{;Nh%=v|7j!OfIcc>{SFOHH9K?JbJEI4+)qY5-%@$V|tv*Sl=QJ;R-h+o8sdLWGo(=@u6d^DDYJ@wZ?L zIY~26!51PY8oYkKvlpIkF_po_nV!=o{^gABuKpsm1P!O+jNfd3IF4RFobOttWe9RU zvnvbzA4`cH-x@4RowcClull-;z-YR3rosxgP_$1{dJuz0640JbYuxZ@Cb_1|{|wHE z45sv%5ahIoL}k-`0-0ZnKcv&hngmQnlU+iAnM7(MY*E%D$>sK~-?>>I4rF#+osXsv zE{jyTvKbd6>AUdyCA;S55Nszsf`R@wY>=L#cz%sC{Xbg)x->g`Qa5NPcO@knj%kZ zar+#-!wWc6SL|hYv%C#={!`$#O;WweHt*d#0CoyB;1p z;zGepoJX%2?N3PKO@%syJ|*$pTS%gy%r47-Yt>mC%dvJC{$m1RtuRBbLG)2T* zpSy! zh)r^c_vvN&y1A+zX&OCmCOOn)tA9(}JU3Gp`*+cTGD-oWOqC|>9sXK-6V{P zHF+ebS+c>bt^W%QstuQzZRiy)?bddNwl6kMR_)h#`4Vk9f+_ez`Y(NQ_Pe3JVcf~E z^D3$*bH2$BaRJ6b04(g2?6JiuLBA6pG<>I~Edlcd!5X9H~ zEjvE+6&k?!HsU{4)BYYgL3Z0T{X&=NH)@k<+c`jpZXv}ZBgl<*e|OyHlp~z!rSUEM zOM5|Ik|}Q2detEkgI(DfW1Z3Vi_`1=wb6-!EfayQzs{Vs%~t1x=>0arDZVPLLi~Ly z+yjh0Y&B}~XEgYBv_z>VsuEAC9Jh+s{nN*hoxrTybLm=Tx{X$~>d!SVvrewZJ<8h| zaNl}6bERFefy0C<8{z*-!V@Z+t`|iN(f{mc>;Q+EqrrfR+jB_zlm?(!@pGv+X&nJt zY%Vs|M#S2|QRBh@q7u&@;DE&DMF+jlR#~i91U(uGS)sGy zlaOI=_K^M$Z*LwCWgEtQw}?n&%T~s|wa6BQOSbHdtyGFap$(;M*N}ZTwo-|)W-D$* zRLsa)im|37!&t@=W6Us{qx#pbnI+x@49p7K3?#1T% z&-4YSHTKGReR75h^j4C{wRuzj^v_lk^5iG1{ciJDIs{krJkKwR`HDB2GIDs?JBv~B zi#x6>>+<1n^xg@3;9y`;thYIfDMIT|)tF~Tf{H=O&UZpIG`JrMj4DKc0u%u;0;6Untf?g( zF^oM=8VLnkM68;`?}?XRQv@ix+nG?OH>9HZP*(S@s~q90MA&$R>oI)X*oucKYGuO# zlQSW2_v?@`Z21z^TuLJBm&^uFn~Oem?y^D%2H#M| zqieLq=|dFDl4QLuvodd(Zh;9)5=1S@R+mu3nLp2SNyPf%kYP(6)2^_Cbc4IS4b2kO zW06j8)t7mJ%=fMRqn4<>OD2c*9z}M#EjicOl4GLKCV9ZY{NafyE5VwM=c7lTOq|R) z>kuEZ=``M@K6T$Ux$M=B9M|)_k9Va8HF0K`y+u}30$O`EM%c&3@%-F!hDum~;<_{; za9&~wa9p3w{Ltl$>q)Z}RKp69c&{;=ZbdCN_p;dyBEH3j{lBPz-0#Sx7#GeQGBLNH zg%vjnk11cnQi7=w{ONYoGq*O@mSj5HB`2lZ72Uk8{K*Cqe@vNc49e=*$#zwRtcR&2 z6yYiDra581D{!&I*%%tTqTEDf-EAV&2zIMeXmk={@6AhPxA<{kv5kph1iSN8Y#lqF znX=dUM`LNSg5JX|sEF(H{#z-&UsGhkYG$!VgrZc`nml$H)L;h)y-&WsKKAX(MQWP- zMedN)60IJBf6$LhbdqW~dcK&6>)eC|sB3vBA2&ln z-b4>_z5H^NI%r`uiw`Z*lw}*E<8rNXU{kTR<|Fv}!g6eYrLMg@GQwaN+AEOX zwi#&cR?JEuIIWh@H=8q&}7sKBDKN^sX?9M(o!i zkA`;Ob3UFcTV1inDEjK4#yz9q>>ICY|MZiwAsLR2uzok4yf~e90iVk{Co(Vt{4xfj z_0s`myE>UY53(qiVH7sDv@81XZ6Nx}IT5=q2O}{LueNT3sw>=3Ra00dbfDB5YUKkQ zyQjJxMsGnG=PUcn6UrU$NZoywYFOH;I|hijS`2ITQr0e#F(63iHDt$#sIxbWBR;XU zGS0s&>aBNDD&F)?#i;^+0`~rqw+_B#Fe=D=xDp?u4GXuUSQb zRH@{wT70))qR;QYxdO{KOCu#&qpF-n0Ml`gkwfmt{*mbh_yZv97W<&-cA_Uthw7Fp z_)9GR%3J4Yul!spZJovGxPpL~QTl2X266Ipy0B`=ZF)KN=C7Tc=< zRen7=jUc#GS@Q8WMt@%dxOL00RcWvKu|l{U3Y(TkWKTlH5PMqdX#=omQQ|wu3S-F7 zxgTwutZ9v}g2Lo8;4&A$qGO??t1Hg(#|<<{$>z?0F#8*HTq^fD740$smCx5p;#C9x zX7@(}th%uU`^Pgk>$%SFI46u?2ujG$&~Xt=TlB%iq-s}y_!v0)NGWb4)<+V!K2Bx6zhR^ybZt3Z%rwwJ#*%HA*btgXw0e?MpG#rDMAaUFZ07u)qSrpw6JvXYBRS-tY;(3Axvv zs2HDRMgvazy_|vX3$Lf0f3E6aV5N|-e^Arr&i(B9xF;N??df|~CX~jid$rgLuZE?Y zup2A6uR#3-;{x|)6)G8QDkk%yOo&`_;^C&^okXW3a_juxCx_jzZ>yi*r8@RZ%xszD zWsMhc1F9%lM9q&4i*G&AGo&DK_pK4iw@X&dO$Npj8$DAsj~Lf*x&??`UQP;<;7el? zD)ZwZiow?pbjrUD#IG2cGtA?w59TvT>!{W=mn*Ibta|@y---Z6vFFA3uRMR6u7fh` zS=-XlW3&yLEj_!#01^@GFmKxx??v}pDJ8sd90eLRr}d=Pah56Y+EQ;b-7=~pI-M<+KU^KHAcDP|TOd?724lg~%%+n7^w0NzZP$m1=`n%I_- z6&A-Iu&OQnjzyNX@!!y><+{C!nlr6NoHrrUXpho7a~ZeXPVF1tLgr+gK+SDEQPKAm zCT}p!Pw7v?j6&_-#3$&_JRVvWokWztUW|;=>Me6<6<^kn3tB6}f zdtKzSz_r+J21}ei7_wb2tLOoIY|0NiGnjvRckCM=!%t4aR^f=0-Gu^&RctAbf~*mM zFi+rS38y23e^y@Q`6(!Pka{%6%~7HD_TJd+3BNmk)J@|%^dRfAV2AThtk*wEbin%X zS?^#p{EDvvmQx{?EV*&TLC)i^zgB39*l5Uzk7@0=NYGwlB40Fyp~7l?Uz;?w3N6x$ zEw4h%pppbZ4B%n}pj_oRI*m{w6b0h$I#u6Ng0K(Ik=k^(@IY=lthVrW8xsp_KXk3e z>ghk;eX3&W3Du(7H@=%>!knJ(ck4&EuXc9gwQT66MSzcb&!XURhCq|zxvn1q^>aT= zjriMp1c>b1ohJxY`qc1 zg6=5EBkpE;NNV}b^5zQgP5T`|p-@BQL%&i)I=dfUCJlw6R6BYtPSze^J`w5ck@gC6 zg_^HYs03BMA9)1f=PwU>K9|Ysv~!{SvD!(UM_9>+s3A@as!(U0*fDP3eP1R-K2s~i zD*uLypuBM`@h2NKW!H*Mge1}LhVC_hdd(g!HZbF)jtkvoQ}=-l40dl>6;khzZBK9H zy7anPwF3PEHyQs%k-4tPL?>+Ad8tamE6agyIWQQ1QI(j@v2^pfh583Yr4`5Mo=kr!r2ohubCvf|A;U=&lzbnS!te)vxG<-)?Fnz&paThyMOro)x-!^I2iN;= zc1vOOF$=9%{i!_GzscVMzLWsd2n%Y4nF%u=O@2k6bhRd{HI$*IIlQu^Fv*&erbX*@ zRtSB~KD6E3veLxlcQ%0CfiV`7-QaN6+KS#u2q*#}fcQQy4{S!@Qq)Sqb$xgY-1URS zEPNPjISYrH310{iaGA&(FXFPctJjFLz8C@;_#B^w#4NoJui$S{S z*-{+xMaX{sc*LKC?{*fNCIfW5h{!E*p!vv``we)U#mD@qo#St$F$5T{t1h7u(>j4)hzV%{ zp|8E9w8wVU%|S!@vE#bcJ*zwZ5x1;Rj+1jtZ5}0DXvFr$i`k)G=mA@cHuBP59bgENaQZ&>plQ zLJ^LF4EcW{TucYOzhz!XwCZBAj|x`Xe=Hm3*pC~3$dw) zSzF4U=2O=!>Kn|D;3qiL^Zc4Ca#lZ*lf1XoaEJkwSTi|tgVi1KfE!56*Z<&u zQQ83IIo|E<@EhsEAb3I)?Q<s!530(L8u5s}*#U!i~CD^;$RLdhnS zQ67FS>Qi-Kv-o1UE=Q*Cr8}a8@Jz`Dd%Z&&)g6BMUz8l^{Dcyu)okYeOwrscz7sCOdvmP70ac zk_h~WRZ*ar=g5D0cwyU>kc4uGNnzhRj=1R1@oT#p|#qgJY@mAYMRQx_!cFks7!{$%cYtOYf z`lPu|UmRUQ(CsLx%D%Xxfwhl_-tqlCaGq<_N}QZw35m8#(LD|+^*Td5JIre%MG?Z?-S;9^hn#Z}+e zg`)p854yoo58<-=+=RXF3H4BJ9bnJKbvqZrFsln_j;@Zfmm=rf9ZA1Gn#=`LolhYP z5h0e$RjImGWr5j1;TPHo2f|Jy{m=lq;p4Vv^3j>RBA&P)o0z?dW_?Jx^D76z%qCED zv$q*vigBu*2dlsxn9%JI)xnd43h`0W=dQng&=Yx{^!i7Q14^2eh-`eR)Bxpw&nXaY z!xR?JC|F?AvFqByhJf;gfE*7A@H+SiahpV+#K04@k}D`nBz7*W>?6iU0g_+4qtvqA zm)pQz&id;I>>3E^6n|3wBj+ihkZ;W=kIvTs@4Ui0D%hzhiLl zf#r{i1m69-Eg{*8hfbL(0fMm~ z%GwJrVZfr;0X=fO6rr61&tZ1o7Z6Qn9(N&N{sP%z)KNxei1?$5%tcxA&Th9oS}y6h zpZ~n^*D-7|SpsHyz~za&fM7?n?n1DYLJBf;+Ug$M&%Hq}77>Iz+sM#SSYK*~Ifj-| z;8tyQdzB7kb>V}Wgp?oz>g@H%CJMcM!|n3{cw^S0{CMS7b}0ck8=*kFwfM^O>`WbU z$VZ9PG`8!0{yf}vXJ=&gs&|vCfrZoAyS)h-hbY(e*J-{OfOu7V62^#B;TVn$f(aY0 z|6(jD=E}!)sCB(|loL;}h zBy5LyD(QIJrb#JaC2fAgESOFSmMyYO0laL2`+7?q*8m>tVs3a5QXXR%a-1V-4t7N& zdka+#?0IQcfU4cY{iVFo_JXt(r%L=gGf>oKce>7D;rL7bXvQz4{G0EdSQ#pl8bY6> zzKa=NZaR1Ie5qjisT(W{=CF2?m1cr*v)3i&73GkZX_wj``v?vfm0(k+P9quI_Lu0g zmFK~qP}$lT8}yyDwI+SV9sb7<5x5!BpbT<;Wbe zT{4q;`J3d7_{ZZVUymf;L?jrW)paUY^$5SIEh9Unux<$-73a%^`U>216o4h+T{*q} zLMxQ)R3E>mZ7-%Cx zGnvi#`zRuNn!jD{oHgX`1e2fj|60|83Nt5XUbfNZR;MB5zATf_r)vJ?pDBv1z^On2|5enl#30m(9l9{(6>;>|QNE-QthY!V0#_)yN~W{Q^6421fbO zO$N($%s(v=KwOx}C^of}%?NPG8U4F^5r`^!Rg_`oisOxjz81%M10dULleI5Wo@MK> zK9ca$q3R%M4CBXw7ane_gP(Dv%a{Ia&dAEN6J&Qh;Ro{P2$3;} z(*=W)=<-uR!2jmGpMB1N6hQR&kWF21B2d+-XlTNCn>sp&y z5h*|OSB<-f#%K3v#AU?VcwS9AdVMWfX3ti#*5sji2@n3`XESGqx}I@Aq$x(lo#0rE zFGejLI6;O2=e2=5fy(nx^a9L2ECZx1jnIfU`i5K?9*&(Y=tICviaH% zW|&}=h2hYyFaYUOtrz|QMTS#Nd=%%lQwgg(z;29yRbEasYWg>Gc^&!oK-@?~_K0Q* zwMhe-Tx|Q6bdDd&M-^Qr><3vU}rU4o4)m z?~7U!tL_S$!PF_!nm1Ew<1gXJ5j+Sg4m9@Ng3tVftqtV!=MI+kxd{dx(!dAZE>{Ma zWi^1WqG2$i$?v{3vu9sPlE?TK#OZv{YGTYJac_3!{X8#h>F_H%HY09!v#F&NkAtlO zSDyIO=}zj;vcU#lIQf+6U$VNTdVp&+F>2<3k3a?TXY7HOF^Cr(F6k3c@4UDss<44_E&k#iJOw_pyhd(|IhA`fp){1G*Ba0|O| z2o}hBRonK-_(AOE)v?-}{&k8z9~s=sjLhE@Z~0GKW_@RrYn?K7dWf&HJV1`F+@{sn z9uaIP7(;K>x%@4dN)xU*9!`rmMgpcq^bP%Ef%m4$_AMyGgv+*6E@!jB7oN#yEuP0@ zVzqYOc1O9Lx=VpDJV6Mt@9E*41Sc=>TPP8=1LajeT=vo4DP3?cZ-Zrx%G9B|zkek6 zoGc#M@Fj%5c1iF^-d5&?BO7YIl$9VcvKg1Qi5(l$5gWmFC{U@BcSO3;=O}ZZJ zWnly5y<(Z21XY&XIShXjz~WH9Otdt(vx4bAX5}b8%Nz+U9M8p`Wf`7W{feS_NUx7G zJNZ=f8JWW>VIqQC5BrZNRJ zpu=RP-F0{z&(QWlTPvRpUkQ1yGp5xT4%<%&XPyp~#uM~_M-{T}iPF!-9cUgaf0gD< zF?Z7oucx;vh9UU9eBvs;l2lnGIWH9bGq$egZD19AHe6Z`Z#&)p834@kH1%6)NJFg`}~ zTe3&N3Cm{jy9jBvxCaW1u7SHRdg%QiCk0ce0~+7S$97r4M0#s6)H#em1r1OhPmUus zqfYnwHj4H0Flmr~Oq;z5#WGHDKJqxv4*6ePq%j8&!sYR8P;c7G9>%|{dFdrdRsfNA z!7!qo!<*nRcJslnPw3w$c^hg8P@Sj>h*y4QRLWQFg5ao9TwbW2$1K%@?4s^Rpvz% z=O90L($9-2faMc1#h1erPOPfyUii!VYc0o-bWm?l9yK+@Y2KC>Y(-TtHg751P|wp0 zO7h+0uj59*7X#-rAbEPf_&?Zd11=cPuAJFi$(FRgQF04{Db%XEWSHSNf)i8EUHO@5 z;J;lomCrR6yyh8082JOgp>e>Q?A}Pe!_6}Lx7k<#`kf{E zdB1lw`GZ^WWeiX7sLV)1bzWWjyr~wH#c*sBx_eHCAlB~=vbjNK!o6;KU6x|d>YtT( zmJ`3$S88WSxS~21N_ikF@-~x1?#+H#kP{U}jvKfE7=a(_kqPL zr+Ez>tlojW$nHl)%KX2=JMlI*3YHF`-ngO`oWh-Zq>UZ-uT=q8o~^&?D<-P=53-7B zZpzqz2VaKKaU-SZ7_D7Gm~A6D&U<|P#aBhEN1YUwWFvpcoqpCfsc~LUK=y!Jj89d- z6}dw(7_^ZA)`~ZZTchG^#&nZF!YUvYDIbT{!&sWpaKFjxXqL@_!#-PfJ` zayf%x7%ry1{>^*K4MpznM;w46<-As#?Sl^3Z{Z$o*F36vm&7!9hW^N@z~^HTm!qG~ z^0i@R!{I0b6jUU--VS=jq{B`r*X0KOJ_7vhiu5%RAx;u*rBi|2IV#6| z%3#}4OUItJ|e)*hN9sirC8y8vb6eKy47v4bI_w)tK{^ls)Z{Lf>AP zre`Qd$J>O7PV&17G0zlUE4hnWb~7x)D9AcDY|UX&Tfs=2IaS3F6h}M6GFa+nF5g_{ z7lq_V_+GQHJ&3ULAb2xa@`<&F+_%|e{+pP|r|Xb~hLJ;9R|tY%Y7_b#!ro9*ZljwB z)+4@6)0~;`#$?=-20Gspc2MvvuzV24X^x-WGXHsl+_%o2qx@Qz4mE|8e|=Sy<(_Ym z#KiV&FnOCwfy`yBie>zYVMGt2>vfnFLX19qFO&XdJ=T6(vGfb^^?Q8?F|8cB4Uq3e z?GC7GzBvC-N?Ow^_Cr=CzEKJ1ik>F-1BdkWv-IpUD$T)Mm6jSExfAdDc~Mbc76M-N2|uk0B@j&fzyWA zn!VNdq|QqltJNrz;xlC$P(|kCyBS;S?W)?j-{e2`q3hwrkZ$nfc&`!%o>xVvyJ|^N zI?2>0^2rLQP2kN^n2-vLi?&w)1m<1pzL%JhfgrVQ$}*2}rQ$jUayuCBdf15Gwz0oc za;AP(w7aY6_Z-vga-MjwIhA&>UG~Mcw_2iQo&VZKFm?VTHvc(P9gmpffz)5t8W>~3 zOYE7c)&6>7YB;ONusHy@-;Bp7lLKkzfwW}iJQi^VV1IC*n5g-Bb5qp1Jw4nFo@7th z3rieFNeqkD_LgH+)aPRQGQ2_(u5M80$t#$WQ0ipSEahC->??c6i$FG_2Yr_BmJmhb ztV)@@MI=HAYWp-$i$M4Ij~st0DE?`pfFA3MKqf!~D$1LIlT13Pb@H8eWaA2Fh|M`F znU(It8TX}{On zXP?Zr`HK2>PF|cWnWKm*mJE8FiUXV!uDqM42Gbp@2*TZKnPb1sz2K9-M98-TVecl@ zeWVahR~A4Rom3IL!ZPfm69!>+-+B?L6P+fsKHi&1#$%P4dk~QDR*;3bt52OjHRyKf z_r?srKe2knzKvFO{=mdJ_;z*#3J_SsF@XTETTIZyImx53%+S??_!s*Kpl&MsrdZZ@ z58=Ph?O&^OrtF~tMZAGS5duD?lgEC7{ z<0Ex?#~a~0A2W23Lm#oGC@t!VgHIM`!M82UjUs|cuFqhOyN1Fr^dZk;vnDGqZ&zxl{q zjPe zjiGKHce=a|3@esV8!%i5fW$PlH;>rM0X3b}V^m^hhx|#;t#`D}FqJ|?7;9`JaMfhS z=?8UU*<|YPUqN0g6T9pnyAy03o4MD!4bqweryAC;ltPHeVy%c zO;;fc&r4a~NQ6Hv)t^|5($vI%4#v@HZ_IbYY2jS*z%7bOktHp;d)_o zXtITtd)}iVBY2@vD;1I-D|?k5aQ=^>*}e*w?!Gc(2X&cKnoliFq)u7ob}rXcC>=Uh z#Al{kNqyp_f+@e?!QW%N5@*I>qLeVZ}{9xUJv_0BrLdd}ZDv z&Y}5^s2TiO|0`f{(}&A*{OL@Tg@Ec6&@(-RF`RIArY81chXwm9CA5+C5+Qi6S@=#^ zQapy^A9-_et_g*fGr!awq5_Z0#mdeloYK?kP@W6i=!rV6vv>^gQI2%F16THw^AcSy zghrgW%YEYHJeEdO3}o%gG9M&^nB)K0k^R5B6-JXKpCGH{c-Hx!wN9F0od8iju)WE# zv0PMMOMj^3zYE)bPIN4~CulOM%2g1^U;ZYtw}s5`zk8h3ZypL~Zty1|#4<^#3v)(* z>pAHlI*NJG{Qks^HC?k|#Rn&1Yee_gNZEHo^;0Z0@Ac7Zh00%et zTcc&`1UW$$*7bY|9ong6r+@ZI@fE{ef(I;jnNZT!jEi+9=hA=1a3G{L_~MABvX-B> z4hTOM+}EblW|aO|2DApLNhd5jivb&ew+RKWq|dDjp8|(Ic>93u-@z**-h#I)2A^Ra zT~ns)+x zPCt&^9ke&H6O03Ckrsl8hEa_F zId$?HpsdU&P4i=o6Rtgi#iz4E?Va0P6AkOLlDxUGx3M77{oWo$5mp13)Zid5}YXlHyo^2KlBLv|xgaE3^065fai2Aw!g-ovOMI=xlGs&zpv14Wd>{HWsXKI9o|({PLQH>QY?!-zt@PBE zxrv<{HFNKIVC_4MgO;BPs^R7%EVU=HQgQk)kDTri;xTKkmON=iNyaVB)NDc(B>Vc8 zSksd71un(178$->CoQ?|>^mZ$dv`N}=v}!>6`TJ?_^ zPxI6ePf|he*{><7TH$HW^3xAWyZ{*Rd~w=t?2Z&IC*%%~h1~^rMUtAyuiXS-NcPo> zxQDyj+|FnMjM+{J@3Oodoj(DD~X(cohoS6vQ>a?d+KdvEEgL}xy!m0jO} zU3ZXO0@$O#bE+jLzx@%&{4)8=_#ojSSK%MSP)iwXwouS#{Lg7mIR#m#Pt=Ja0qlQ0 zx^}g*%{5_f!No&4Q@@8(HK{X9i|WQeE)}4GTpz|dAnTC6&+o2ah1WS2q9nI~IIF)S zP`1E&_3@x@f-Qxk#bDOj_4vOdz!}}`+ZK%XvU}*MoOnM)~ zfNJn@-zEaLEFfk(mAYRfgj~NcN7)_xv*T9kM|k>Zcpk6@8JSfVsu9^RM;fzwT7>$T;7<{seHN7Ad-&TZ0D3Bq z1Z6wEBdXodZ3n$)aATL?SsC?7`u;tzO=@4urjvS$=fzf;F;?&BHc$S4)sbp1sKsO5 z{}`f7tCJ*;^Dhh|d>s(CnmUK89^LsUHWbEYPk(&ldT|hqvq`+-GR}ep4xBU{@j@r+ z+_c21ET67N#uwfnOnrrj4NCJN_0U!ObBLVdCTk77tS?+GFUZL=sZ3vpgJNY;i%0NB zO6+J~W&p1|^Srd%Pxe(q!FyuD0O*$D5lXeyXB4>`A9X<8<~F$}Xxx(dzq~pB@1Yo< zp)36rF{JZ7dr0ZKizVV-qWSld1Z$$2P0My~w|MadAuT}OfAj5QXMmShd3Rhz||;bMV^(xs1inY4d*|rw~6FODIqQ z{&Xx4QqkR)k$>5&@M&yj&O8R8Et?6S^}S>GT7`#lMTy zEe>o>G3^oj*i7I@ivso+PKM@(T4}z)#r3<|aXuBooi@lh7~~~TxY8TdD@wrn<#F5S z3{>bx?)AEy)V^mm5BP=`I_9>GV<#tTFDB{42a>sqF<^97alGFOPs*vJ-UFI`5lYx? zJHtla$VaGGU$M%B0Ba0RJpt7^3q-D$WH3SXP#R^6GqcIi(0>i&5$>1JrX_cD`0r+~ z4}Us{!0t%*yDt0Qp}VLULVc~X z*bLF>#5=a0{(|+H4q(z)AEqnYZ7E8ht}iaUTHVEvJ${tXa&${J>*)*ex-82JsHuv9 z2ShaOhYn6<7-Q&+liu(QN`h4EDq4M)t26}Udy*He%zuB)nMsXCtyEMSh&DzoL(M3IQEXhspOsN24@vggV}N2~6-03W>P6908$uYiIlDjn_yU+%n}>q0m-NB-pX_9yY-DaD*13Vf)LKC<}LwA zWW|?K9KE^JsK70M0=+}HPVA$J@?E{`JtbOx-D2n;V^>m6k=GqkZ;*b#y zi!wO-dPh%xF)BeBJ}_K{4O3cp!c@5b5$2}3$`Dww?v zF2wR+MLvSb-5&v5c#Rh)oNOj8X6CNu*7R?;{vlYyEf$^EVK53M(+k2>L!?6fs|yvZ zF=IbYl5hre{__BTA7=pz2+Sn~fdyl^uq0W!9E0(6Kvrz5tpmmWYewFG_3`+|4Pwl- z`*+4g5Oe&6h&?(+PZl5g(?s4%2&bU+qZ#V(#+{4{`e+%=HDgd<DvunYfBL=wG}?HJJYS>fY+z8Uc*KFU3zgj{4@5kkOHncs^g$T~pL!3E%p8{%A?V{r~l0{%7ABWUwx^9Hmwd zFwOBX`YmX3l=yfysF@R${3&{;zLB9BN;EL}u%>H0LwcnH=miD7`$!98nB~qQ>v={I zTl4U7Aa&sJPLnCY7y3qN?UISFSf6s+Yq347J*$$54p{jlE?B7~rZl1J_fjk%n78co ze|5mlAt-AQThjYUk~NO7nxoXN4zGhab?~u!Ix* z&$1wR-j&M-<&+h=qD>i{H~mt~a>Lf~=cI7}N0<#=QgPfKY!)QEhP91Xt<|(hv{(Pg;*o%l^*^GaD|YBc=FfgSKl0 zG{6SkRKuy6KqTwmMDF=7Z60&EFtU5c2REs|>Gx12_fQAeSCL7|UEjA&1fR zzYHshQx@fM(PRk{@Q!gu;*9qG3s-10aCXoJkVMQ!zIVinlj5A;Isw=IN(g|mxK^hA z+xy$5cV4%0zPsdh(1L9&%uF)W>Gq)`1VT@^Z~u3>r>ORK)SUjKlQp>`S1hps=j3*9 z{nwTQb&E6tblyMSjd%L`9#@-$u8dfuUf-MXZLP=}l#;pJqs;nQ#aMGICJ=kb_qD&mKbj~k>SxKh+4 zo*cliMYQgVO!v*IQLRme<+L z6Q}+q5L71aBZWl(CBJozv-Fu5kI0(0yy1r|T6GdOkMid4SfekAloF81AuMdjYebUc z1M;Nx>e6?aYR(o(lAq44jJRoSt6##O5>7Ooq#zsY zKhvjcGV(RzdgurDJs?gJH1BMQcbZlYo|*$Lp6m_gMO8-~$sdjE%sOe9igR!13>`I%X>EwJmELbXiQd!+tWCLE5sfcexnb6Tirw9uuRn1N3o3g89(vh`86j@NMkqv7(pQiF(@Ru z*cbPqi#D=v&j*UdZwnO1jI^RrystTHiND^Q^c_e!_3u9B1vGGZAPsr?cSJ=>MKYt| zwm8e~f4qNKSzD{R8Zr_=>Rru%gnx5Ot*hg)MRq8%7~pOg6zL4sC=n`)wxh*)%mQ;@ zRK9h75USm@aB<$PAYfX9M}(^laTZ;ug2L65ik*1385!%IS_n4{Xe{q0A1e{TR z{9$%W7(72Gas$3dZ39FRP;)vRaR*+(VjPDxuF&{L^$-XLYcl!E`tT4BkT91|7);Vs z_!IRVWk-_TJX|2w1+GII^yyjX{2L3H*snOqFqUg@nS4Vm-EBfXqz1%X9gnlI$J$9x z_zQk+G}`9g1BjdMp7Z!bXD&6B%n@;K8AeS@c9B5zFRR@u-OCH5J@&JovkB#g3d5Z7 zSZEQjsA6C%HRz1OAsvoSx0TiE)592!x8zO{FOEB?BC!pfqh$m^_@>WGr9;WSm@ury z6Vx3hkn?r;ccs%Z5P#5GN#%9pA4UD-Tlsa%Ptr4XLC9+$u zRAGFN;iJ39<%8!0!!nCdvKh(lKQ`~wz|vuhJPddh4qHi zlIOLb8cOXXbnSn5OD)C-#oXodfCix^k~>QYySL?^#B@m|9?ObICR2evl|%+$F8igj zSAjxK5eAeZ`SEI^W%s3 zxKQ_;2}mK<7Op(U!y<(l>tQo16>S4sEVI?0an@u)?L>tyF~Pc^ zn(bJNZ-N1Ke^90gY@jMEbF?*o@N@`Pjli_?=;sqWclb4~6py+)0WsLe_K|s4zryQf zZg`x9c{#;=Kt2doO!+3hu_wIoV4gj*-mesK4sB+gS3;$jZxvwmjbytNn(mmDpAep{PtD^C7~dOlz3;c_sIMn zwf|~>#dceIYO5V8{THZHKgSzu_6*E*p&5WVxqHg#jH~=eZQ(PPuS1V3sKTq5CH?>T%{0+^roS35H*FzRFW3`3sw=9 z@9qCAfb<9vt>0C1|M&#=YxeYCX+*jn#HynI0LZ}gqfvQfvzRB;8F3DR`wL|GHAZGv za$xHz+!q;oYbZVW9$-!sebzjxDjjmI$EfSJS1T#-MzJ-~Ho^FTax1#&Ho&0{1;!>V zK?;X)muBOl>f3^2gON$u54raRBu&B&gA<>)c=I|*j4BCyjczB=pYgaB*VGRrdI+(`oZ@%_c=A!?vHM$Dr*YvV? z(J2<{!rPRttaR$`lTk$JZl&G)?aLAW4upr7)ug}otkHR6Vn2GHRMPdNxt^fWWO>{r z{ukk;%OI=ON>ug9IQ(yJ3lf@INl-4uhcsva%eR0rSXJhA0C(ySY&;aQvX9*7j%*6w zu8@cqm)3m4FjU?)xQ7qtV>hJRDSd429!5fn+%&8*CoZ)f&Ue-k6d(zAoHANtukLUe zEY5ZY#!V`gb)r@wZ&?Q;Ze}NG7r>hlF#D; zI{9KFv!x0}JNn8xpHXc6-2YsC!78X(fMCtOyQYO5j3SCnR_nWOLj+&|iH%?eZkkU_>Bq`%eNpZhCw`Ro%l9Q3Y2X7`FzQtZLe7_Nc|47PkT*6%Okn>-mxZEc^(Obe$SHIDdX% z2mrIrCs7wIrS#!8|Do~3hIYnDj9BzvlL@zylNjG{=3N70=p3jt=AL`%+(8Sl;zexE zJ}2b~dTNXB(J*4}kZ93smf)_1$NWmmZKWm7zD(sRP}bbN3+@JojiGerXw`u7P9F2s z5_+hEGGwU012T!^uC*}oKrLt;dEfA&QRaktYdxY$aTwTw-Y+iVEo+tf)w`s(?S>f2 zAk+zjn`<)Xl$Oj_TVNRm-Ol|t)m0-U3+;e6)xi9L?PIgcQ##g%4L)fRq5d0$xH^+1iyAe@kKy;Ps>mKzx6Qrcxe zucrCCYtMR-bV9SwrYl^HxqW`%d6HS0(EZ}eccg3OWy9Zmmz=$QV+uKRvei23{Mlu9 zql)^ym%dagCa07FviyH-3zf9_^naa)^ruqW!@#3r$NMX&1ih<&SSuVOX(Zn^UM@@kCPu0Qxl?oZlB0NmLD<#WQ6 zkG6lho_0X?zz#m{_Bi-go5BF@A+pd8N>V2!G2v(UJ{$AHr6_yep#$btl|dj_p}uu- z3gFO9-+g$wi9N34Py+$kOfmD+;vN%BY+9Bg^RA`|v->?a*E=cD;MsGb`m}>Q#gL5Q zKG{3Tj9aLiOHiOdo_D>;8~K046VR(q>ENp8l2kzCT=Z_zee%b86Z&lD+G_0#M8vf=Ub8M|+n zsU)B~d8U@CG`d>ihxAIvBU}k!OX_8v z&9NVD>~bHoh=3MF*JD#=Xus8YKc8en;9>1p!nJ=v{ns+`e{+yQWiV7dZMU)GKJw#H z$wXA;M}}RW2jpE9!71&9I?ev`HD!=ktt;uaO6YQwX!N43fQWOOTE#V0Qt zFYGz(m~@;rtx!GV3PkBg2r=0*1YEjk3r@15997x>U&Z48?&Q~uFP=&p^=Xnsk64wu zjBwdgp)=oY{2hM$=dkq$J+#GIW)n;C?Qj2>?l++ji-;(NKmq2?>Fyj@x9Gnv@Bh_Isn7rXvN)oXv}dD$(oeZ#Bsh5c!hcPA zB01Mt)KZOPlu>#BPGUqtT|bk~!4tM$GBtVJPIFLggQuL#ABR4sGJAH^7yvo}Um9`I zWguP4nyRNn`-f13(f7w<4!3qVp{!vM?r#IqCMN^A_A7d?}P)h&!#h|Y8`Mw!f;!g!u({dLLq^ACNuF0ELHnm-epmEcz>kH}vJ@jF`pEt_1QFcrAHc-BN zlxT1WhE<|aJI6d>l`A5kCBpK$axQj}D4BiCXd^--2AKoN2TRHwqQ5=0oG7X4)U)xO z`2l%#qKqQ^GXD4`R>I?>`O4>UVnOg)XEUwOF#(%{lVEPv{ETt0cdPe9>`SwzyEu>C z5>53B{=jpfdB)*(bzi1+m7*t6 zsxl-|Kzr7MSH|zZ_WKqHm+kNQjqyyU#NBllz&`*aN_^Bn+&*=)cLlqNwA2SbK&5#u zz*xd-E8k^Sg%*ElF)sK-?gk;`_gVXIF$KN-@wZpJ5-D+ZPhm?*vHQz9g5=X7nU8Qk zAE0a-Ku7Gqe*OQ={cIQR<^cWN0db3m3AtK1k2}`8)gs;pazreY`MXXW7|GTMwhibO z&pM_k{ zv@KR-?aaBzq0f&j^fWIfx)x5y6X%D{yqMX9_wXw@hr_h&EScC6o#F6e-U+4*ZZBn5 z6AJL$8QebfEnaE-uQBq(>iZt{ojIwFlFd1DQnq;pWd`D6aXUGZy8(Yc@>JN`DON^- z-As6O*2&?iRUBQam-)55`m@fHAl@!f0jy&VNM)Q}l-$|`^zuG9_ctS%7fhHX9Je>eu%Q0`wCVN*V6Kh+6s=-A(Uc#Fm-MWIv|V=rQV@YaP8 zfZ3`by`8Xi!#Kgv;eGFTFBwG4^^WAS*l(7)C)X%XxL^~MfUlm##DYDLyuZIHe5j&m2+kg5^$Rx8mX~m;b*crj-Ghc9DBf$OWd^L70O@y1dg+ z(V=brh+E?XQz!<8IuMyUp1dn=ZW%dJbd)rOza51rg%*KiI?Tk8T%9@jRlq57Gszh4=Ca!XR`F)j69-+V&x7!5wzG^nuS#^J`zgK}oBW;mn0DnL$q- zZ=GTWRt9C5(27&)&E#<_)RicrG;=Jj1-%oUz4iX}Bn(nZ?fY3+Pa0`&p@R6hcg;@2 zzz5x%C@lw~*12n6R3%YuO6ueRAy#^Mg3cbI>aU+ma+l993O~F9gzhuBasEas4eDK% z;>9v)J}D74N}|Dusj$!<*QPz07XqmQy!H{=wmZ zM%K0`rR(^i;3t9a0_D>U${T_+6`2F|#o{uvEy&FQWzyc%CFS5$*u61+>rnC?o!Yl} zT>5)(=%GXa9hwo4eVkc+#z!@Feui;NZK30?wQ|rE$bv)=B{d;P6xNq0?|Mr=p{=`` z$zIvokFUhHUU-|!+FInycUB>8^1R$lTEv18q_n+jrwMLLx{U?ESDY~$FBl?!$>nU` z+%MN5a}#`O)BD2I3fmd!3@!I9x1Y&eRXQq>{Ca7R@D0@!)l=Lr8vJdD9VQ+y6V_nE zluu_Qjk=YtIbBjo+RL3dOkXdk#!tO^B<5sWTmO;l5nDR9RP$Q=v&L_2=2#1>!kZ5V zn2fh@A{P!z6RJDyFVh;i>Z>mSBJZmB|Rn`=5&nZp!mybeYp-pL?}cGzSW zrFO=xNt=Y;@3dm8$ed&N$*A{nj>@NI{sYV*5_Mu*RWj3*bUMcUSikrWGO7R(r%R_P zz3nM@yhBTe6k3p$HpQ}~paN2s{l8=xeXny%w^tFw-s{<-*?D=^9TQq&=^cdCrZ_x+ksSssHp=eg{AS1cFnBF$ zztH#h8&PZ5-t6q{{fcb^o=Ty3A3z~uE?@h=^G6j0Y064T)(|~j+*t&|wwe$s?On^! z2dxgsGF_tD0rp_S`I{CsG33a7Wx`5(`@F+Sey5#(Lg*1G+EJ1{%y^#@)+6^mD#p+~ zpeSmB)n)wN!n(}?0+LLJygx&1`YU;j%q6!_6zYH*ctsZgc|(KAJLUyaHd}}8sp>qq zDxJkhPOOeg)|cD=TVr0>?t zX`ufE0!)L@N&P`RH>zoaxc#oYReB1vcPcU2{)g+r&d<@tHvG(7)M1z>`m{8#tp@v> zAqvIyygx_y8-z^|pAE=vcs-28n2_c8QRmrl zF{YYb)k=xNIT>zzYkWJFZiL-kgqU`LC?$`;}#vi+Ulzm8g$-_8HLA-st4?p2Sb*#!<0RqVb-df#|sz6%pmC7{zrgqr*2M`<7t4>|Z0G^2t_Z1yeV__D%p zAKa#|8^FXYocNc#sCZ-m$vp|N&#OK&N1Q*HqBG~5vJ`LczjigQ6sLJqspk@mN`uZ)03*HU^@I7!1v@*7- zoU)51U3Nnk>bMb52TzFu|DcdgPfIQo+!u%J6%3h52V3aMwn6`0F4i?3OKqLakH>tvQBs2u>#O&e z=6d)oCB$w?Zi#4%v(qiD;O#~^7KVP@l<1c6lRP0^ zH}!`;M^7p$?R%zCwu2mhHPmNL_noBhM&4CP#SPZmJDVuX!r%r`+t47F6 zAT1*DQ~EDloC9CWMf`lHNe1B3G6(d0VKEsW)pIlM3A;yly#@YNjVXcl#@K3(T>-j-eSH3+3tgCa zTuY6{gYO5dXG$D!p*K%r;;R=rekv5wZ^Mqvr4;`{$1;nN?ilA^N(>7AxfVX{z+>(7 zV0 zma&_}*Z1duBkpA3>mrCbqd!b3=ryTM`zRoa%gk% z2^+Z|#hh2@#?csrV@KLBUsrz<{;prtQM6DlddARdpCs&Av9m`qqg+vwm=^Gl%nCwd z>d4h8;(q!^({b?B;uRf&6?9jodDGF>!D!YS4{VLx&U8QekH^*&F%KgQkFDv&KF7AB zZv^annE)uxp5g!ew?5|WtRUUegn9zG6NoUk$IhK${gD{+*XUU@V#*3ylL^E)>?>-bc+#i%BHi~D>q<&C%0D4JcxO32|Nap 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 N%_+Pq9@@h%G0P%y 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

      E^LNhFtm>kZn-#KyvIoA>9(&$pF*OHQ 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 C11K(bb(|r){*&{2uV~ep6yIg$Ez6a*dzKYr_ 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

      kqbtYN?~Vdb2dcH*+`Jmy*u)!_JJ4T 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≫wn8zE{bN8(1mbiX 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

      p4aa;S5NU^G8YA=FR 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®FGxnF|Qyx#-0M*OL8}J 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

      22uMAxpu4B@kKz6G{2u-o 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 z%0D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®BNKF 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 literal 0 HcmV?d00001 diff --git a/node_modules/chromedriver/package.json b/node_modules/chromedriver/package.json new file mode 100644 index 0000000..c5e066e --- /dev/null +++ b/node_modules/chromedriver/package.json @@ -0,0 +1,46 @@ +{ + "name": "chromedriver", + "version": "109.0.0", + "keywords": [ + "chromedriver", + "selenium" + ], + "description": "ChromeDriver for Selenium", + "homepage": "https://github.com/giggio/node-chromedriver", + "repository": { + "type": "git", + "url": "git://github.com/giggio/node-chromedriver.git" + }, + "license": "Apache-2.0", + "author": { + "name": "Giovanni Bassi", + "email": "giggio@giggio.net", + "url": "http://www.lambda3.com.br" + }, + "main": "lib/chromedriver", + "bin": { + "chromedriver": "bin/chromedriver" + }, + "scripts": { + "install": "node install.js", + "update-chromedriver": "node update.js", + "typecheck": "tsc", + "lint": "eslint" + }, + "dependencies": { + "@testim/chrome-version": "^1.1.3", + "axios": "^1.2.1", + "compare-versions": "^5.0.1", + "extract-zip": "^2.0.1", + "https-proxy-agent": "^5.0.1", + "proxy-from-env": "^1.1.0", + "tcp-port-used": "^1.0.1" + }, + "devDependencies": { + "eslint": "^8.29.0", + "typescript": "^4.9.3" + }, + "engines": { + "node": ">=14" + } +} diff --git a/node_modules/clone-response/LICENSE b/node_modules/clone-response/LICENSE new file mode 100644 index 0000000..f27ee9b --- /dev/null +++ b/node_modules/clone-response/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Luke Childs + +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-response/README.md b/node_modules/clone-response/README.md new file mode 100644 index 0000000..d037cfe --- /dev/null +++ b/node_modules/clone-response/README.md @@ -0,0 +1,62 @@ +# clone-response + +> Clone a Node.js HTTP response stream + +[![Build Status](https://travis-ci.org/lukechilds/clone-response.svg?branch=master)](https://travis-ci.org/lukechilds/clone-response) +[![Coverage Status](https://coveralls.io/repos/github/lukechilds/clone-response/badge.svg?branch=master)](https://coveralls.io/github/lukechilds/clone-response?branch=master) +[![npm](https://img.shields.io/npm/dm/clone-response.svg)](https://www.npmjs.com/package/clone-response) +[![npm](https://img.shields.io/npm/v/clone-response.svg)](https://www.npmjs.com/package/clone-response) + +Returns a new stream and copies over all properties and methods from the original response giving you a complete duplicate. + +This is useful in situations where you need to consume the response stream but also want to pass an unconsumed stream somewhere else to be consumed later. + +## Install + +```shell +npm install --save clone-response +``` + +## Usage + +```js +const http = require('http'); +const cloneResponse = require('clone-response'); + +http.get('http://example.com', response => { + const clonedResponse = cloneResponse(response); + response.pipe(process.stdout); + + setImmediate(() => { + // The response stream has already been consumed by the time this executes, + // however the cloned response stream is still available. + doSomethingWithResponse(clonedResponse); + }); +}); +``` + +Please bear in mind that the process of cloning a stream consumes it. However, you can consume a stream multiple times in the same tick, therefore allowing you to create multiple clones. e.g: + +```js +const clone1 = cloneResponse(response); +const clone2 = cloneResponse(response); +// response can still be consumed in this tick but cannot be consumed if passed +// into any async callbacks. clone1 and clone2 can be passed around and be +// consumed in the future. +``` + +## API + +### cloneResponse(response) + +Returns a clone of the passed in response. + +#### response + +Type: `stream` + +A [Node.js HTTP response stream](https://nodejs.org/api/http.html#http_class_http_incomingmessage) to clone. + +## License + +MIT © Luke Childs diff --git a/node_modules/clone-response/package.json b/node_modules/clone-response/package.json new file mode 100644 index 0000000..a4a0810 --- /dev/null +++ b/node_modules/clone-response/package.json @@ -0,0 +1,41 @@ +{ + "name": "clone-response", + "version": "1.0.3", + "description": "Clone a Node.js HTTP response stream", + "main": "src/index.js", + "scripts": { + "test": "xo && nyc ava", + "coverage": "nyc report --reporter=text-lcov | coveralls" + }, + "funding": "https://github.com/sponsors/sindresorhus", + "xo": { + "extends": "xo-lukechilds" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/sindresorhus/clone-response.git" + }, + "keywords": [ + "clone", + "duplicate", + "copy", + "response", + "HTTP", + "stream" + ], + "author": "Luke Childs (http://lukechilds.co.uk)", + "license": "MIT", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "devDependencies": { + "ava": "^0.22.0", + "coveralls": "^2.13.1", + "create-test-server": "^2.0.1", + "eslint-config-xo-lukechilds": "^1.0.0", + "get-stream": "^3.0.0", + "nyc": "^11.0.2", + "pify": "^3.0.0", + "xo": "^0.19.0" + } +} diff --git a/node_modules/clone-response/src/index.js b/node_modules/clone-response/src/index.js new file mode 100644 index 0000000..0285dff --- /dev/null +++ b/node_modules/clone-response/src/index.js @@ -0,0 +1,17 @@ +'use strict'; + +const PassThrough = require('stream').PassThrough; +const mimicResponse = require('mimic-response'); + +const cloneResponse = response => { + if (!(response && response.pipe)) { + throw new TypeError('Parameter `response` must be a response stream.'); + } + + const clone = new PassThrough(); + mimicResponse(response, clone); + + return response.pipe(clone); +}; + +module.exports = cloneResponse; diff --git a/node_modules/combined-stream/License b/node_modules/combined-stream/License new file mode 100644 index 0000000..4804b7a --- /dev/null +++ b/node_modules/combined-stream/License @@ -0,0 +1,19 @@ +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 new file mode 100644 index 0000000..9e367b5 --- /dev/null +++ b/node_modules/combined-stream/Readme.md @@ -0,0 +1,138 @@ +# 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 new file mode 100644 index 0000000..125f097 --- /dev/null +++ b/node_modules/combined-stream/lib/combined_stream.js @@ -0,0 +1,208 @@ +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 new file mode 100644 index 0000000..6982b6d --- /dev/null +++ b/node_modules/combined-stream/package.json @@ -0,0 +1,25 @@ +{ + "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 new file mode 100644 index 0000000..7edf418 --- /dev/null +++ b/node_modules/combined-stream/yarn.lock @@ -0,0 +1,17 @@ +# 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/compare-versions/LICENSE b/node_modules/compare-versions/LICENSE new file mode 100644 index 0000000..6d4f12a --- /dev/null +++ b/node_modules/compare-versions/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015-2021 Ole Michelsen + +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/compare-versions/README.md b/node_modules/compare-versions/README.md new file mode 100644 index 0000000..5b0e3f3 --- /dev/null +++ b/node_modules/compare-versions/README.md @@ -0,0 +1,113 @@ +# compare-versions + +![Build Status](https://github.com/omichelsen/compare-versions/actions/workflows/ci.yml/badge.svg) +[![Coverage Status](https://coveralls.io/repos/omichelsen/compare-versions/badge.svg?branch=master&service=github)](https://coveralls.io/github/omichelsen/compare-versions?branch=master) +[![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/compare-versions.svg)](https://bundlephobia.com/result?p=compare-versions) + +Compare [semver](https://semver.org/) version strings to find greater, equal or lesser. Runs in the browser as well as Node.js/React Native etc. Has no dependencies and is tiny. + +Supports the full semver specification including versions with different number of digits like `1.0.0`, `1.0`, `1` and pre-releases like `1.0.0-alpha`. Additionally supports the following variations: + +- Wildcards for minor and patch version like `1.0.x` or `1.0.*`. +- [Chromium version numbers](https://www.chromium.org/developers/version-numbers) with 4 parts, e.g. version `25.0.1364.126`. +- Any leading `v` is ignored, e.g. `v1.0` is interpreted as `1.0`. +- Leading zero is ignored, e.g. `1.01.1` is interpreted as `1.1.1`. + +## Install + +```bash +$ npm install compare-versions +``` + +__Note__: Starting from v5 the main export is now _named_ like so: `import { compareVersions } from 'compare-versions'`. + +__Note__: Starting from v4 this library includes a ESM version which will automatically be selected by your bundler (webpack, parcel etc). The CJS/UMD version is `lib/umd/index.js` and the new ESM version is `lib/esm/index.js`. + +## Usage + +Will return `1` if first version is greater, `0` if versions are equal, and `-1` if the second version is greater: + +```js +import { compareVersions } from 'compare-versions'; + +compareVersions('11.1.1', '10.0.0'); // 1 +compareVersions('10.0.0', '10.0.0'); // 0 +compareVersions('10.0.0', '11.1.1'); // -1 +``` + +Can also be used for sorting: + +```js +const versions = [ + '1.5.19', + '1.2.3', + '1.5.5' +] +const sorted = versions.sort(compareVersions); +/* +[ + '1.2.3', + '1.5.5', + '1.5.19' +] +*/ +``` + +### "Human Readable" Compare + +The alternative `compare` function accepts an operator which will be more familiar to humans: + +```js +import { compare } from 'compare-versions'; + +compare('10.1.8', '10.0.4', '>'); // true +compare('10.0.1', '10.0.1', '='); // true +compare('10.1.1', '10.2.2', '<'); // true +compare('10.1.1', '10.2.2', '<='); // true +compare('10.1.1', '10.2.2', '>='); // false +``` + +### Version ranges + +The `satisfies` function accepts a range to compare, compatible with [npm package versioning](https://docs.npmjs.com/cli/v6/using-npm/semver): + +```js +import { satisfies } from 'compare-versions'; + +satisfies('10.0.1', '~10.0.0'); // true +satisfies('10.1.0', '~10.0.0'); // false +satisfies('10.1.2', '^10.0.0'); // true +satisfies('11.0.0', '^10.0.0'); // false +satisfies('10.1.8', '>10.0.4'); // true +satisfies('10.0.1', '=10.0.1'); // true +satisfies('10.1.1', '<10.2.2'); // true +satisfies('10.1.1', '<=10.2.2'); // true +satisfies('10.1.1', '>=10.2.2'); // false +``` + +### Validate version numbers + +Applies the same rules used comparing version numbers and returns a boolean: + +```js +import { validate } from 'compare-versions'; + +validate('1.0.0-rc.1'); // true +validate('1.0-rc.1'); // false +validate('foo'); // false +``` + +### Browser + +If included directly in the browser, the functions above are available on the global window under the `compareVersions` object: + +```html + + +``` diff --git a/node_modules/compare-versions/lib/esm/index.d.ts b/node_modules/compare-versions/lib/esm/index.d.ts new file mode 100644 index 0000000..d7d5b77 --- /dev/null +++ b/node_modules/compare-versions/lib/esm/index.d.ts @@ -0,0 +1,58 @@ +/** + * Compare [semver](https://semver.org/) version strings to find greater, equal or lesser. + * This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`. + * @param v1 - First version to compare + * @param v2 - Second version to compare + * @returns Numeric value compatible with the [Array.sort(fn) interface](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters). + */ +export declare const compareVersions: (v1: string, v2: string) => 0 | 1 | -1; +/** + * Validate [semver](https://semver.org/) version strings. + * + * @param version Version number to validate + * @returns `true` if the version number is a valid semver version number, `false` otherwise. + * + * @example + * ``` + * validate('1.0.0-rc.1'); // return true + * validate('1.0-rc.1'); // return false + * validate('foo'); // return false + * ``` + */ +export declare const validate: (version: string) => boolean; +/** + * Allowed arithmetic operators + */ +export type CompareOperator = '>' | '>=' | '=' | '<' | '<='; +/** + * Compare [semver](https://semver.org/) version strings using the specified operator. + * + * @param v1 First version to compare + * @param v2 Second version to compare + * @param operator Allowed arithmetic operator to use + * @returns `true` if the comparison between the firstVersion and the secondVersion satisfies the operator, `false` otherwise. + * + * @example + * ``` + * compare('10.1.8', '10.0.4', '>'); // return true + * compare('10.0.1', '10.0.1', '='); // return true + * compare('10.1.1', '10.2.2', '<'); // return true + * compare('10.1.1', '10.2.2', '<='); // return true + * compare('10.1.1', '10.2.2', '>='); // return false + * ``` + */ +export declare const compare: (v1: string, v2: string, operator: CompareOperator) => boolean; +/** + * Match [npm semver](https://docs.npmjs.com/cli/v6/using-npm/semver) version range. + * + * @param version Version number to match + * @param range Range pattern for version + * @returns `true` if the version number is within the range, `false` otherwise. + * + * @example + * ``` + * satisfies('1.1.0', '^1.0.0'); // return true + * satisfies('1.1.0', '~1.0.0'); // return false + * ``` + */ +export declare const satisfies: (version: string, range: string) => boolean; diff --git a/node_modules/compare-versions/lib/esm/index.js b/node_modules/compare-versions/lib/esm/index.js new file mode 100644 index 0000000..5222806 --- /dev/null +++ b/node_modules/compare-versions/lib/esm/index.js @@ -0,0 +1,165 @@ +/** + * Compare [semver](https://semver.org/) version strings to find greater, equal or lesser. + * This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`. + * @param v1 - First version to compare + * @param v2 - Second version to compare + * @returns Numeric value compatible with the [Array.sort(fn) interface](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters). + */ +export const compareVersions = (v1, v2) => { + // validate input and split into segments + const n1 = validateAndParse(v1); + const n2 = validateAndParse(v2); + // pop off the patch + const p1 = n1.pop(); + const p2 = n2.pop(); + // validate numbers + const r = compareSegments(n1, n2); + if (r !== 0) + return r; + // validate pre-release + if (p1 && p2) { + return compareSegments(p1.split('.'), p2.split('.')); + } + else if (p1 || p2) { + return p1 ? -1 : 1; + } + return 0; +}; +/** + * Validate [semver](https://semver.org/) version strings. + * + * @param version Version number to validate + * @returns `true` if the version number is a valid semver version number, `false` otherwise. + * + * @example + * ``` + * validate('1.0.0-rc.1'); // return true + * validate('1.0-rc.1'); // return false + * validate('foo'); // return false + * ``` + */ +export const validate = (version) => typeof version === 'string' && /^[v\d]/.test(version) && semver.test(version); +/** + * Compare [semver](https://semver.org/) version strings using the specified operator. + * + * @param v1 First version to compare + * @param v2 Second version to compare + * @param operator Allowed arithmetic operator to use + * @returns `true` if the comparison between the firstVersion and the secondVersion satisfies the operator, `false` otherwise. + * + * @example + * ``` + * compare('10.1.8', '10.0.4', '>'); // return true + * compare('10.0.1', '10.0.1', '='); // return true + * compare('10.1.1', '10.2.2', '<'); // return true + * compare('10.1.1', '10.2.2', '<='); // return true + * compare('10.1.1', '10.2.2', '>='); // return false + * ``` + */ +export const compare = (v1, v2, operator) => { + // validate input operator + assertValidOperator(operator); + // since result of compareVersions can only be -1 or 0 or 1 + // a simple map can be used to replace switch + const res = compareVersions(v1, v2); + return operatorResMap[operator].includes(res); +}; +/** + * Match [npm semver](https://docs.npmjs.com/cli/v6/using-npm/semver) version range. + * + * @param version Version number to match + * @param range Range pattern for version + * @returns `true` if the version number is within the range, `false` otherwise. + * + * @example + * ``` + * satisfies('1.1.0', '^1.0.0'); // return true + * satisfies('1.1.0', '~1.0.0'); // return false + * ``` + */ +export const satisfies = (version, range) => { + // if no range operator then "=" + const m = range.match(/^([<>=~^]+)/); + const op = m ? m[1] : '='; + // if gt/lt/eq then operator compare + if (op !== '^' && op !== '~') + return compare(version, range, op); + // else range of either "~" or "^" is assumed + const [v1, v2, v3, , vp] = validateAndParse(version); + const [r1, r2, r3, , rp] = validateAndParse(range); + const v = [v1, v2, v3]; + const r = [r1, r2 !== null && r2 !== void 0 ? r2 : 'x', r3 !== null && r3 !== void 0 ? r3 : 'x']; + // validate pre-release + if (rp) { + if (!vp) + return false; + if (compareSegments(v, r) !== 0) + return false; + if (compareSegments(vp.split('.'), rp.split('.')) === -1) + return false; + } + // first non-zero number + const nonZero = r.findIndex((v) => v !== '0') + 1; + // pointer to where segments can be >= + const i = op === '~' ? 2 : nonZero > 1 ? nonZero : 1; + // before pointer must be equal + if (compareSegments(v.slice(0, i), r.slice(0, i)) !== 0) + return false; + // after pointer must be >= + if (compareSegments(v.slice(i), r.slice(i)) === -1) + return false; + return true; +}; +const semver = /^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i; +const validateAndParse = (version) => { + if (typeof version !== 'string') { + throw new TypeError('Invalid argument expected string'); + } + const match = version.match(semver); + if (!match) { + throw new Error(`Invalid argument not valid semver ('${version}' received)`); + } + match.shift(); + return match; +}; +const isWildcard = (s) => s === '*' || s === 'x' || s === 'X'; +const tryParse = (v) => { + const n = parseInt(v, 10); + return isNaN(n) ? v : n; +}; +const forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b]; +const compareStrings = (a, b) => { + if (isWildcard(a) || isWildcard(b)) + return 0; + const [ap, bp] = forceType(tryParse(a), tryParse(b)); + if (ap > bp) + return 1; + if (ap < bp) + return -1; + return 0; +}; +const compareSegments = (a, b) => { + for (let i = 0; i < Math.max(a.length, b.length); i++) { + const r = compareStrings(a[i] || '0', b[i] || '0'); + if (r !== 0) + return r; + } + return 0; +}; +const operatorResMap = { + '>': [1], + '>=': [0, 1], + '=': [0], + '<=': [-1, 0], + '<': [-1], +}; +const allowedOperators = Object.keys(operatorResMap); +const assertValidOperator = (op) => { + if (typeof op !== 'string') { + throw new TypeError(`Invalid operator type, expected string but got ${typeof op}`); + } + if (allowedOperators.indexOf(op) === -1) { + throw new Error(`Invalid operator, expected one of ${allowedOperators.join('|')}`); + } +}; +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/node_modules/compare-versions/lib/esm/index.js.map b/node_modules/compare-versions/lib/esm/index.js.map new file mode 100644 index 0000000..e9bed01 --- /dev/null +++ b/node_modules/compare-versions/lib/esm/index.js.map @@ -0,0 +1 @@ +{"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/compare-versions/lib/umd/index.js b/node_modules/compare-versions/lib/umd/index.js new file mode 100644 index 0000000..7cfa7db --- /dev/null +++ b/node_modules/compare-versions/lib/umd/index.js @@ -0,0 +1,178 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.compareVersions = {})); +})(this, (function (exports) { 'use strict'; + + /** + * Compare [semver](https://semver.org/) version strings to find greater, equal or lesser. + * This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`. + * @param v1 - First version to compare + * @param v2 - Second version to compare + * @returns Numeric value compatible with the [Array.sort(fn) interface](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters). + */ + const compareVersions = (v1, v2) => { + // validate input and split into segments + const n1 = validateAndParse(v1); + const n2 = validateAndParse(v2); + // pop off the patch + const p1 = n1.pop(); + const p2 = n2.pop(); + // validate numbers + const r = compareSegments(n1, n2); + if (r !== 0) + return r; + // validate pre-release + if (p1 && p2) { + return compareSegments(p1.split('.'), p2.split('.')); + } + else if (p1 || p2) { + return p1 ? -1 : 1; + } + return 0; + }; + /** + * Validate [semver](https://semver.org/) version strings. + * + * @param version Version number to validate + * @returns `true` if the version number is a valid semver version number, `false` otherwise. + * + * @example + * ``` + * validate('1.0.0-rc.1'); // return true + * validate('1.0-rc.1'); // return false + * validate('foo'); // return false + * ``` + */ + const validate = (version) => typeof version === 'string' && /^[v\d]/.test(version) && semver.test(version); + /** + * Compare [semver](https://semver.org/) version strings using the specified operator. + * + * @param v1 First version to compare + * @param v2 Second version to compare + * @param operator Allowed arithmetic operator to use + * @returns `true` if the comparison between the firstVersion and the secondVersion satisfies the operator, `false` otherwise. + * + * @example + * ``` + * compare('10.1.8', '10.0.4', '>'); // return true + * compare('10.0.1', '10.0.1', '='); // return true + * compare('10.1.1', '10.2.2', '<'); // return true + * compare('10.1.1', '10.2.2', '<='); // return true + * compare('10.1.1', '10.2.2', '>='); // return false + * ``` + */ + const compare = (v1, v2, operator) => { + // validate input operator + assertValidOperator(operator); + // since result of compareVersions can only be -1 or 0 or 1 + // a simple map can be used to replace switch + const res = compareVersions(v1, v2); + return operatorResMap[operator].includes(res); + }; + /** + * Match [npm semver](https://docs.npmjs.com/cli/v6/using-npm/semver) version range. + * + * @param version Version number to match + * @param range Range pattern for version + * @returns `true` if the version number is within the range, `false` otherwise. + * + * @example + * ``` + * satisfies('1.1.0', '^1.0.0'); // return true + * satisfies('1.1.0', '~1.0.0'); // return false + * ``` + */ + const satisfies = (version, range) => { + // if no range operator then "=" + const m = range.match(/^([<>=~^]+)/); + const op = m ? m[1] : '='; + // if gt/lt/eq then operator compare + if (op !== '^' && op !== '~') + return compare(version, range, op); + // else range of either "~" or "^" is assumed + const [v1, v2, v3, , vp] = validateAndParse(version); + const [r1, r2, r3, , rp] = validateAndParse(range); + const v = [v1, v2, v3]; + const r = [r1, r2 !== null && r2 !== void 0 ? r2 : 'x', r3 !== null && r3 !== void 0 ? r3 : 'x']; + // validate pre-release + if (rp) { + if (!vp) + return false; + if (compareSegments(v, r) !== 0) + return false; + if (compareSegments(vp.split('.'), rp.split('.')) === -1) + return false; + } + // first non-zero number + const nonZero = r.findIndex((v) => v !== '0') + 1; + // pointer to where segments can be >= + const i = op === '~' ? 2 : nonZero > 1 ? nonZero : 1; + // before pointer must be equal + if (compareSegments(v.slice(0, i), r.slice(0, i)) !== 0) + return false; + // after pointer must be >= + if (compareSegments(v.slice(i), r.slice(i)) === -1) + return false; + return true; + }; + const semver = /^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i; + const validateAndParse = (version) => { + if (typeof version !== 'string') { + throw new TypeError('Invalid argument expected string'); + } + const match = version.match(semver); + if (!match) { + throw new Error(`Invalid argument not valid semver ('${version}' received)`); + } + match.shift(); + return match; + }; + const isWildcard = (s) => s === '*' || s === 'x' || s === 'X'; + const tryParse = (v) => { + const n = parseInt(v, 10); + return isNaN(n) ? v : n; + }; + const forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b]; + const compareStrings = (a, b) => { + if (isWildcard(a) || isWildcard(b)) + return 0; + const [ap, bp] = forceType(tryParse(a), tryParse(b)); + if (ap > bp) + return 1; + if (ap < bp) + return -1; + return 0; + }; + const compareSegments = (a, b) => { + for (let i = 0; i < Math.max(a.length, b.length); i++) { + const r = compareStrings(a[i] || '0', b[i] || '0'); + if (r !== 0) + return r; + } + return 0; + }; + const operatorResMap = { + '>': [1], + '>=': [0, 1], + '=': [0], + '<=': [-1, 0], + '<': [-1], + }; + const allowedOperators = Object.keys(operatorResMap); + const assertValidOperator = (op) => { + if (typeof op !== 'string') { + throw new TypeError(`Invalid operator type, expected string but got ${typeof op}`); + } + if (allowedOperators.indexOf(op) === -1) { + throw new Error(`Invalid operator, expected one of ${allowedOperators.join('|')}`); + } + }; + + exports.compare = compare; + exports.compareVersions = compareVersions; + exports.satisfies = satisfies; + exports.validate = validate; + +})); +//# sourceMappingURL=index.js.map diff --git a/node_modules/compare-versions/lib/umd/index.js.map b/node_modules/compare-versions/lib/umd/index.js.map new file mode 100644 index 0000000..8c9f2d3 --- /dev/null +++ b/node_modules/compare-versions/lib/umd/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../esm/index.js"],"sourcesContent":["/**\n * Compare [semver](https://semver.org/) version strings to find greater, equal or lesser.\n * This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`.\n * @param v1 - First version to compare\n * @param v2 - Second version to compare\n * @returns Numeric value compatible with the [Array.sort(fn) interface](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters).\n */\nexport const compareVersions = (v1, v2) => {\n // validate input and split into segments\n const n1 = validateAndParse(v1);\n const n2 = validateAndParse(v2);\n // pop off the patch\n const p1 = n1.pop();\n const p2 = n2.pop();\n // validate numbers\n const r = compareSegments(n1, n2);\n if (r !== 0)\n return r;\n // validate pre-release\n if (p1 && p2) {\n return compareSegments(p1.split('.'), p2.split('.'));\n }\n else if (p1 || p2) {\n return p1 ? -1 : 1;\n }\n return 0;\n};\n/**\n * Validate [semver](https://semver.org/) version strings.\n *\n * @param version Version number to validate\n * @returns `true` if the version number is a valid semver version number, `false` otherwise.\n *\n * @example\n * ```\n * validate('1.0.0-rc.1'); // return true\n * validate('1.0-rc.1'); // return false\n * validate('foo'); // return false\n * ```\n */\nexport const validate = (version) => typeof version === 'string' && /^[v\\d]/.test(version) && semver.test(version);\n/**\n * Compare [semver](https://semver.org/) version strings using the specified operator.\n *\n * @param v1 First version to compare\n * @param v2 Second version to compare\n * @param operator Allowed arithmetic operator to use\n * @returns `true` if the comparison between the firstVersion and the secondVersion satisfies the operator, `false` otherwise.\n *\n * @example\n * ```\n * compare('10.1.8', '10.0.4', '>'); // return true\n * compare('10.0.1', '10.0.1', '='); // return true\n * compare('10.1.1', '10.2.2', '<'); // return true\n * compare('10.1.1', '10.2.2', '<='); // return true\n * compare('10.1.1', '10.2.2', '>='); // return false\n * ```\n */\nexport const compare = (v1, v2, operator) => {\n // validate input operator\n assertValidOperator(operator);\n // since result of compareVersions can only be -1 or 0 or 1\n // a simple map can be used to replace switch\n const res = compareVersions(v1, v2);\n return operatorResMap[operator].includes(res);\n};\n/**\n * Match [npm semver](https://docs.npmjs.com/cli/v6/using-npm/semver) version range.\n *\n * @param version Version number to match\n * @param range Range pattern for version\n * @returns `true` if the version number is within the range, `false` otherwise.\n *\n * @example\n * ```\n * satisfies('1.1.0', '^1.0.0'); // return true\n * satisfies('1.1.0', '~1.0.0'); // return false\n * ```\n */\nexport const satisfies = (version, range) => {\n // if no range operator then \"=\"\n const m = range.match(/^([<>=~^]+)/);\n const op = m ? m[1] : '=';\n // if gt/lt/eq then operator compare\n if (op !== '^' && op !== '~')\n return compare(version, range, op);\n // else range of either \"~\" or \"^\" is assumed\n const [v1, v2, v3, , vp] = validateAndParse(version);\n const [r1, r2, r3, , rp] = validateAndParse(range);\n const v = [v1, v2, v3];\n const r = [r1, r2 !== null && r2 !== void 0 ? r2 : 'x', r3 !== null && r3 !== void 0 ? r3 : 'x'];\n // validate pre-release\n if (rp) {\n if (!vp)\n return false;\n if (compareSegments(v, r) !== 0)\n return false;\n if (compareSegments(vp.split('.'), rp.split('.')) === -1)\n return false;\n }\n // first non-zero number\n const nonZero = r.findIndex((v) => v !== '0') + 1;\n // pointer to where segments can be >=\n const i = op === '~' ? 2 : nonZero > 1 ? nonZero : 1;\n // before pointer must be equal\n if (compareSegments(v.slice(0, i), r.slice(0, i)) !== 0)\n return false;\n // after pointer must be >=\n if (compareSegments(v.slice(i), r.slice(i)) === -1)\n return false;\n return true;\n};\nconst semver = /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\nconst validateAndParse = (version) => {\n if (typeof version !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n const match = version.match(semver);\n if (!match) {\n throw new Error(`Invalid argument not valid semver ('${version}' received)`);\n }\n match.shift();\n return match;\n};\nconst isWildcard = (s) => s === '*' || s === 'x' || s === 'X';\nconst tryParse = (v) => {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n};\nconst forceType = (a, b) => typeof a !== typeof b ? [String(a), String(b)] : [a, b];\nconst compareStrings = (a, b) => {\n if (isWildcard(a) || isWildcard(b))\n return 0;\n const [ap, bp] = forceType(tryParse(a), tryParse(b));\n if (ap > bp)\n return 1;\n if (ap < bp)\n return -1;\n return 0;\n};\nconst compareSegments = (a, b) => {\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const r = compareStrings(a[i] || '0', b[i] || '0');\n if (r !== 0)\n return r;\n }\n return 0;\n};\nconst operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1],\n};\nconst allowedOperators = Object.keys(operatorResMap);\nconst assertValidOperator = (op) => {\n if (typeof op !== 'string') {\n throw new TypeError(`Invalid operator type, expected string but got ${typeof op}`);\n }\n if (allowedOperators.indexOf(op) === -1) {\n throw new Error(`Invalid operator, expected one of ${allowedOperators.join('|')}`);\n }\n};\n//# sourceMappingURL=index.js.map"],"names":[],"mappings":";;;;;;IAAA;IACA;IACA;IACA;IACA;IACA;IACA;AACY,UAAC,eAAe,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK;IAC3C;IACA,IAAI,MAAM,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACpC,IAAI,MAAM,EAAE,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACpC;IACA,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IACxB,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;IACxB;IACA,IAAI,MAAM,CAAC,GAAG,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,KAAK,CAAC;IACf,QAAQ,OAAO,CAAC,CAAC;IACjB;IACA,IAAI,IAAI,EAAE,IAAI,EAAE,EAAE;IAClB,QAAQ,OAAO,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7D,KAAK;IACL,SAAS,IAAI,EAAE,IAAI,EAAE,EAAE;IACvB,QAAQ,OAAO,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3B,KAAK;IACL,IAAI,OAAO,CAAC,CAAC;IACb,EAAE;IACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACY,UAAC,QAAQ,GAAG,CAAC,OAAO,KAAK,OAAO,OAAO,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE;IACnH;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACY,UAAC,OAAO,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,KAAK;IAC7C;IACA,IAAI,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAClC;IACA;IACA,IAAI,MAAM,GAAG,GAAG,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACxC,IAAI,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IAClD,EAAE;IACF;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;AACY,UAAC,SAAS,GAAG,CAAC,OAAO,EAAE,KAAK,KAAK;IAC7C;IACA,IAAI,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACzC,IAAI,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B;IACA,IAAI,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG;IAChC,QAAQ,OAAO,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAC3C;IACA,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzD,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACvD,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3B,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;IACrG;IACA,IAAI,IAAI,EAAE,EAAE;IACZ,QAAQ,IAAI,CAAC,EAAE;IACf,YAAY,OAAO,KAAK,CAAC;IACzB,QAAQ,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;IACvC,YAAY,OAAO,KAAK,CAAC;IACzB,QAAQ,IAAI,eAAe,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAChE,YAAY,OAAO,KAAK,CAAC;IACzB,KAAK;IACL;IACA,IAAI,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;IACtD;IACA,IAAI,MAAM,CAAC,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IACzD;IACA,IAAI,IAAI,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3D,QAAQ,OAAO,KAAK,CAAC;IACrB;IACA,IAAI,IAAI,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACtD,QAAQ,OAAO,KAAK,CAAC;IACrB,IAAI,OAAO,IAAI,CAAC;IAChB,EAAE;IACF,MAAM,MAAM,GAAG,4IAA4I,CAAC;IAC5J,MAAM,gBAAgB,GAAG,CAAC,OAAO,KAAK;IACtC,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;IACrC,QAAQ,MAAM,IAAI,SAAS,CAAC,kCAAkC,CAAC,CAAC;IAChE,KAAK;IACL,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,IAAI,CAAC,KAAK,EAAE;IAChB,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,oCAAoC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IACrF,KAAK;IACL,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;IAClB,IAAI,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;IAC9D,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK;IACxB,IAAI,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9B,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC,CAAC;IACF,MAAM,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpF,MAAM,cAAc,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;IACjC,IAAI,IAAI,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC;IACtC,QAAQ,OAAO,CAAC,CAAC;IACjB,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,IAAI,IAAI,EAAE,GAAG,EAAE;IACf,QAAQ,OAAO,CAAC,CAAC;IACjB,IAAI,IAAI,EAAE,GAAG,EAAE;IACf,QAAQ,OAAO,CAAC,CAAC,CAAC;IAClB,IAAI,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;IACF,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK;IAClC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE;IAC3D,QAAQ,MAAM,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;IAC3D,QAAQ,IAAI,CAAC,KAAK,CAAC;IACnB,YAAY,OAAO,CAAC,CAAC;IACrB,KAAK;IACL,IAAI,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;IACF,MAAM,cAAc,GAAG;IACvB,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;IACZ,IAAI,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAChB,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;IACZ,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjB,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IACb,CAAC,CAAC;IACF,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACrD,MAAM,mBAAmB,GAAG,CAAC,EAAE,KAAK;IACpC,IAAI,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;IAChC,QAAQ,MAAM,IAAI,SAAS,CAAC,CAAC,+CAA+C,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3F,KAAK;IACL,IAAI,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;IAC7C,QAAQ,MAAM,IAAI,KAAK,CAAC,CAAC,kCAAkC,EAAE,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,KAAK;IACL,CAAC;;;;;;;;;;;"} \ No newline at end of file diff --git a/node_modules/compare-versions/package.json b/node_modules/compare-versions/package.json new file mode 100644 index 0000000..b4b8393 --- /dev/null +++ b/node_modules/compare-versions/package.json @@ -0,0 +1,44 @@ +{ + "name": "compare-versions", + "version": "5.0.3", + "description": "Compare semver version strings to find greater, equal or lesser.", + "repository": { + "type": "git", + "url": "git+https://github.com/omichelsen/compare-versions.git" + }, + "author": "Ole Michelsen", + "license": "MIT", + "bugs": { + "url": "https://github.com/omichelsen/compare-versions/issues" + }, + "homepage": "https://github.com/omichelsen/compare-versions#readme", + "keywords": [ + "semver", + "version", + "compare", + "browser", + "node" + ], + "scripts": { + "build": "npm run build:esm && npm run build:umd", + "build:esm": "tsc --module esnext --target es2017 --outDir lib/esm", + "build:umd": "rollup lib/esm/index.js --format umd --name compareVersions --sourcemap -o lib/umd/index.js", + "test": "c8 --reporter=lcov mocha -r ts-node/register test/**/*.ts" + }, + "main": "./lib/umd/index.js", + "module": "./lib/esm/index.js", + "types": "./lib/esm/index.d.ts", + "sideEffects": false, + "files": [ + "lib", + "src" + ], + "devDependencies": { + "@types/mocha": "^10.0.1", + "c8": "^7.10.0", + "mocha": "^10.0.0", + "rollup": "^3.7.4", + "ts-node": "^10.7.0", + "typescript": "^4.6.3" + } +} diff --git a/node_modules/compare-versions/src/index.ts b/node_modules/compare-versions/src/index.ts new file mode 100644 index 0000000..f813b44 --- /dev/null +++ b/node_modules/compare-versions/src/index.ts @@ -0,0 +1,197 @@ +/** + * Compare [semver](https://semver.org/) version strings to find greater, equal or lesser. + * This library supports the full semver specification, including comparing versions with different number of digits like `1.0.0`, `1.0`, `1`, and pre-release versions like `1.0.0-alpha`. + * @param v1 - First version to compare + * @param v2 - Second version to compare + * @returns Numeric value compatible with the [Array.sort(fn) interface](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#Parameters). + */ +export const compareVersions = (v1: string, v2: string) => { + // validate input and split into segments + const n1 = validateAndParse(v1); + const n2 = validateAndParse(v2); + + // pop off the patch + const p1 = n1.pop(); + const p2 = n2.pop(); + + // validate numbers + const r = compareSegments(n1, n2); + if (r !== 0) return r; + + // validate pre-release + if (p1 && p2) { + return compareSegments(p1.split('.'), p2.split('.')); + } else if (p1 || p2) { + return p1 ? -1 : 1; + } + + return 0; +}; + +/** + * Validate [semver](https://semver.org/) version strings. + * + * @param version Version number to validate + * @returns `true` if the version number is a valid semver version number, `false` otherwise. + * + * @example + * ``` + * validate('1.0.0-rc.1'); // return true + * validate('1.0-rc.1'); // return false + * validate('foo'); // return false + * ``` + */ +export const validate = (version: string) => + typeof version === 'string' && /^[v\d]/.test(version) && semver.test(version); + +/** + * Allowed arithmetic operators + */ +export type CompareOperator = '>' | '>=' | '=' | '<' | '<='; + +/** + * Compare [semver](https://semver.org/) version strings using the specified operator. + * + * @param v1 First version to compare + * @param v2 Second version to compare + * @param operator Allowed arithmetic operator to use + * @returns `true` if the comparison between the firstVersion and the secondVersion satisfies the operator, `false` otherwise. + * + * @example + * ``` + * compare('10.1.8', '10.0.4', '>'); // return true + * compare('10.0.1', '10.0.1', '='); // return true + * compare('10.1.1', '10.2.2', '<'); // return true + * compare('10.1.1', '10.2.2', '<='); // return true + * compare('10.1.1', '10.2.2', '>='); // return false + * ``` + */ +export const compare = (v1: string, v2: string, operator: CompareOperator) => { + // validate input operator + assertValidOperator(operator); + + // since result of compareVersions can only be -1 or 0 or 1 + // a simple map can be used to replace switch + const res = compareVersions(v1, v2); + + return operatorResMap[operator].includes(res); +}; + +/** + * Match [npm semver](https://docs.npmjs.com/cli/v6/using-npm/semver) version range. + * + * @param version Version number to match + * @param range Range pattern for version + * @returns `true` if the version number is within the range, `false` otherwise. + * + * @example + * ``` + * satisfies('1.1.0', '^1.0.0'); // return true + * satisfies('1.1.0', '~1.0.0'); // return false + * ``` + */ +export const satisfies = (version: string, range: string) => { + // if no range operator then "=" + const m = range.match(/^([<>=~^]+)/); + const op = m ? m[1] : '='; + + // if gt/lt/eq then operator compare + if (op !== '^' && op !== '~') + return compare(version, range, op as CompareOperator); + + // else range of either "~" or "^" is assumed + const [v1, v2, v3, , vp] = validateAndParse(version); + const [r1, r2, r3, , rp] = validateAndParse(range); + const v = [v1, v2, v3]; + const r = [r1, r2 ?? 'x', r3 ?? 'x']; + + // validate pre-release + if (rp) { + if (!vp) return false; + if (compareSegments(v, r) !== 0) return false; + if (compareSegments(vp.split('.'), rp.split('.')) === -1) return false; + } + + // first non-zero number + const nonZero = r.findIndex((v) => v !== '0') + 1; + + // pointer to where segments can be >= + const i = op === '~' ? 2 : nonZero > 1 ? nonZero : 1; + + // before pointer must be equal + if (compareSegments(v.slice(0, i), r.slice(0, i)) !== 0) return false; + + // after pointer must be >= + if (compareSegments(v.slice(i), r.slice(i)) === -1) return false; + + return true; +}; + +const semver = + /^[v^~<>=]*?(\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+)(?:\.([x*]|\d+))?(?:-([\da-z\-]+(?:\.[\da-z\-]+)*))?(?:\+[\da-z\-]+(?:\.[\da-z\-]+)*)?)?)?$/i; + +const validateAndParse = (version: string) => { + if (typeof version !== 'string') { + throw new TypeError('Invalid argument expected string'); + } + const match = version.match(semver); + if (!match) { + throw new Error( + `Invalid argument not valid semver ('${version}' received)` + ); + } + match.shift(); + return match; +}; + +const isWildcard = (s: string) => s === '*' || s === 'x' || s === 'X'; + +const tryParse = (v: string) => { + const n = parseInt(v, 10); + return isNaN(n) ? v : n; +}; + +const forceType = (a: string | number, b: string | number) => + typeof a !== typeof b ? [String(a), String(b)] : [a, b]; + +const compareStrings = (a: string, b: string) => { + if (isWildcard(a) || isWildcard(b)) return 0; + const [ap, bp] = forceType(tryParse(a), tryParse(b)); + if (ap > bp) return 1; + if (ap < bp) return -1; + return 0; +}; + +const compareSegments = ( + a: string | string[] | RegExpMatchArray, + b: string | string[] | RegExpMatchArray +) => { + for (let i = 0; i < Math.max(a.length, b.length); i++) { + const r = compareStrings(a[i] || '0', b[i] || '0'); + if (r !== 0) return r; + } + return 0; +}; + +const operatorResMap = { + '>': [1], + '>=': [0, 1], + '=': [0], + '<=': [-1, 0], + '<': [-1], +}; + +const allowedOperators = Object.keys(operatorResMap); + +const assertValidOperator = (op: string) => { + if (typeof op !== 'string') { + throw new TypeError( + `Invalid operator type, expected string but got ${typeof op}` + ); + } + if (allowedOperators.indexOf(op) === -1) { + throw new Error( + `Invalid operator, expected one of ${allowedOperators.join('|')}` + ); + } +}; diff --git a/node_modules/concat-map/.travis.yml b/node_modules/concat-map/.travis.yml new file mode 100644 index 0000000..f1d0f13 --- /dev/null +++ b/node_modules/concat-map/.travis.yml @@ -0,0 +1,4 @@ +language: node_js +node_js: + - 0.4 + - 0.6 diff --git a/node_modules/concat-map/LICENSE b/node_modules/concat-map/LICENSE new file mode 100644 index 0000000..ee27ba4 --- /dev/null +++ b/node_modules/concat-map/LICENSE @@ -0,0 +1,18 @@ +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 new file mode 100644 index 0000000..408f70a --- /dev/null +++ b/node_modules/concat-map/README.markdown @@ -0,0 +1,62 @@ +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 new file mode 100644 index 0000000..3365621 --- /dev/null +++ b/node_modules/concat-map/example/map.js @@ -0,0 +1,6 @@ +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 new file mode 100644 index 0000000..b29a781 --- /dev/null +++ b/node_modules/concat-map/index.js @@ -0,0 +1,13 @@ +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 new file mode 100644 index 0000000..d3640e6 --- /dev/null +++ b/node_modules/concat-map/package.json @@ -0,0 +1,43 @@ +{ + "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 new file mode 100644 index 0000000..fdbd702 --- /dev/null +++ b/node_modules/concat-map/test/map.js @@ -0,0 +1,39 @@ +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/core-util-is/LICENSE b/node_modules/core-util-is/LICENSE new file mode 100644 index 0000000..d8d7f94 --- /dev/null +++ b/node_modules/core-util-is/LICENSE @@ -0,0 +1,19 @@ +Copyright Node.js contributors. All rights reserved. + +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/core-util-is/README.md b/node_modules/core-util-is/README.md new file mode 100644 index 0000000..5a76b41 --- /dev/null +++ b/node_modules/core-util-is/README.md @@ -0,0 +1,3 @@ +# core-util-is + +The `util.is*` functions introduced in Node v0.12. diff --git a/node_modules/core-util-is/lib/util.js b/node_modules/core-util-is/lib/util.js new file mode 100644 index 0000000..6e5a20d --- /dev/null +++ b/node_modules/core-util-is/lib/util.js @@ -0,0 +1,107 @@ +// Copyright Joyent, Inc. and other Node 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. + +// NOTE: These type checking functions intentionally don't use `instanceof` +// because it is fragile and can be easily faked with `Object.create()`. + +function isArray(arg) { + if (Array.isArray) { + return Array.isArray(arg); + } + return objectToString(arg) === '[object Array]'; +} +exports.isArray = isArray; + +function isBoolean(arg) { + return typeof arg === 'boolean'; +} +exports.isBoolean = isBoolean; + +function isNull(arg) { + return arg === null; +} +exports.isNull = isNull; + +function isNullOrUndefined(arg) { + return arg == null; +} +exports.isNullOrUndefined = isNullOrUndefined; + +function isNumber(arg) { + return typeof arg === 'number'; +} +exports.isNumber = isNumber; + +function isString(arg) { + return typeof arg === 'string'; +} +exports.isString = isString; + +function isSymbol(arg) { + return typeof arg === 'symbol'; +} +exports.isSymbol = isSymbol; + +function isUndefined(arg) { + return arg === void 0; +} +exports.isUndefined = isUndefined; + +function isRegExp(re) { + return objectToString(re) === '[object RegExp]'; +} +exports.isRegExp = isRegExp; + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} +exports.isObject = isObject; + +function isDate(d) { + return objectToString(d) === '[object Date]'; +} +exports.isDate = isDate; + +function isError(e) { + return (objectToString(e) === '[object Error]' || e instanceof Error); +} +exports.isError = isError; + +function isFunction(arg) { + return typeof arg === 'function'; +} +exports.isFunction = isFunction; + +function isPrimitive(arg) { + return arg === null || + typeof arg === 'boolean' || + typeof arg === 'number' || + typeof arg === 'string' || + typeof arg === 'symbol' || // ES6 symbol + typeof arg === 'undefined'; +} +exports.isPrimitive = isPrimitive; + +exports.isBuffer = require('buffer').Buffer.isBuffer; + +function objectToString(o) { + return Object.prototype.toString.call(o); +} diff --git a/node_modules/core-util-is/package.json b/node_modules/core-util-is/package.json new file mode 100644 index 0000000..b0c51f5 --- /dev/null +++ b/node_modules/core-util-is/package.json @@ -0,0 +1,38 @@ +{ + "name": "core-util-is", + "version": "1.0.3", + "description": "The `util.is*` functions introduced in Node v0.12.", + "main": "lib/util.js", + "files": [ + "lib" + ], + "repository": { + "type": "git", + "url": "git://github.com/isaacs/core-util-is" + }, + "keywords": [ + "util", + "isBuffer", + "isArray", + "isNumber", + "isString", + "isRegExp", + "isThis", + "isThat", + "polyfill" + ], + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "license": "MIT", + "bugs": { + "url": "https://github.com/isaacs/core-util-is/issues" + }, + "scripts": { + "test": "tap test.js", + "preversion": "npm test", + "postversion": "npm publish", + "prepublishOnly": "git push origin --follow-tags" + }, + "devDependencies": { + "tap": "^15.0.9" + } +} diff --git a/node_modules/debug/LICENSE b/node_modules/debug/LICENSE new file mode 100644 index 0000000..1a9820e --- /dev/null +++ b/node_modules/debug/LICENSE @@ -0,0 +1,20 @@ +(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 new file mode 100644 index 0000000..e9c3e04 --- /dev/null +++ b/node_modules/debug/README.md @@ -0,0 +1,481 @@ +# debug +[![Build Status](https://travis-ci.org/debug-js/debug.svg?branch=master)](https://travis-ci.org/debug-js/debug) [![Coverage Status](https://coveralls.io/repos/github/debug-js/debug/badge.svg?branch=master)](https://coveralls.io/github/debug-js/debug?branch=master) [![Slack](https://visionmedia-community-slackin.now.sh/badge.svg)](https://visionmedia-community-slackin.now.sh/) [![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 new file mode 100644 index 0000000..3bcdc24 --- /dev/null +++ b/node_modules/debug/package.json @@ -0,0 +1,59 @@ +{ + "name": "debug", + "version": "4.3.4", + "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 ", + "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": "istanbul cover _mocha -- test.js", + "test:browser": "karma start --single-run", + "test:coverage": "cat ./coverage/lcov.info | coveralls" + }, + "dependencies": { + "ms": "2.1.2" + }, + "devDependencies": { + "brfs": "^2.0.1", + "browserify": "^16.2.3", + "coveralls": "^3.0.2", + "istanbul": "^0.4.5", + "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", + "xo": "^0.23.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + }, + "main": "./src/index.js", + "browser": "./src/browser.js", + "engines": { + "node": ">=6.0" + } +} diff --git a/node_modules/debug/src/browser.js b/node_modules/debug/src/browser.js new file mode 100644 index 0000000..cd0fc35 --- /dev/null +++ b/node_modules/debug/src/browser.js @@ -0,0 +1,269 @@ +/* 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; + } + + // Is webkit? http://stackoverflow.com/a/16459606/376773 + // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 + 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 && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$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'); + } 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 new file mode 100644 index 0000000..e3291b2 --- /dev/null +++ b/node_modules/debug/src/common.js @@ -0,0 +1,274 @@ + +/** + * 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 = []; + + let i; + const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); + const len = split.length; + + for (i = 0; i < len; i++) { + if (!split[i]) { + // ignore empty strings + continue; + } + + namespaces = split[i].replace(/\*/g, '.*?'); + + if (namespaces[0] === '-') { + createDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$')); + } else { + createDebug.names.push(new RegExp('^' + namespaces + '$')); + } + } + } + + /** + * Disable debug output. + * + * @return {String} namespaces + * @api public + */ + function disable() { + const namespaces = [ + ...createDebug.names.map(toNamespace), + ...createDebug.skips.map(toNamespace).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) { + if (name[name.length - 1] === '*') { + return true; + } + + let i; + let len; + + for (i = 0, len = createDebug.skips.length; i < len; i++) { + if (createDebug.skips[i].test(name)) { + return false; + } + } + + for (i = 0, len = createDebug.names.length; i < len; i++) { + if (createDebug.names[i].test(name)) { + return true; + } + } + + return false; + } + + /** + * Convert regexp to namespace + * + * @param {RegExp} regxep + * @return {String} namespace + * @api private + */ + function toNamespace(regexp) { + return regexp.toString() + .substring(2, regexp.toString().length - 2) + .replace(/\.\*\?$/, '*'); + } + + /** + * 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 new file mode 100644 index 0000000..bf4c57f --- /dev/null +++ b/node_modules/debug/src/index.js @@ -0,0 +1,10 @@ +/** + * 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 new file mode 100644 index 0000000..79bc085 --- /dev/null +++ b/node_modules/debug/src/node.js @@ -0,0 +1,263 @@ +/** + * 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.format()` with the specified arguments and writes to stderr. + */ + +function log(...args) { + return process.stderr.write(util.format(...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/decompress-response/index.d.ts b/node_modules/decompress-response/index.d.ts new file mode 100644 index 0000000..c0be175 --- /dev/null +++ b/node_modules/decompress-response/index.d.ts @@ -0,0 +1,22 @@ +/// +import {IncomingMessage} from 'http'; + +/** +Decompress a HTTP response if needed. + +@param response - The HTTP incoming stream with compressed data. +@returns The decompressed HTTP response stream. + +@example +``` +import {http} from 'http'; +import decompressResponse = require('decompress-response'); + +http.get('https://sindresorhus.com', response => { + response = decompressResponse(response); +}); +``` +*/ +declare function decompressResponse(response: IncomingMessage): IncomingMessage; + +export = decompressResponse; diff --git a/node_modules/decompress-response/index.js b/node_modules/decompress-response/index.js new file mode 100644 index 0000000..c861036 --- /dev/null +++ b/node_modules/decompress-response/index.js @@ -0,0 +1,58 @@ +'use strict'; +const {Transform, PassThrough} = require('stream'); +const zlib = require('zlib'); +const mimicResponse = require('mimic-response'); + +module.exports = response => { + const contentEncoding = (response.headers['content-encoding'] || '').toLowerCase(); + + if (!['gzip', 'deflate', 'br'].includes(contentEncoding)) { + return response; + } + + // TODO: Remove this when targeting Node.js 12. + const isBrotli = contentEncoding === 'br'; + if (isBrotli && typeof zlib.createBrotliDecompress !== 'function') { + response.destroy(new Error('Brotli is not supported on Node.js < 12')); + return response; + } + + let isEmpty = true; + + const checker = new Transform({ + transform(data, _encoding, callback) { + isEmpty = false; + + callback(null, data); + }, + + flush(callback) { + callback(); + } + }); + + const finalStream = new PassThrough({ + autoDestroy: false, + destroy(error, callback) { + response.destroy(); + + callback(error); + } + }); + + const decompressStream = isBrotli ? zlib.createBrotliDecompress() : zlib.createUnzip(); + + decompressStream.once('error', error => { + if (isEmpty && !response.readable) { + finalStream.end(); + return; + } + + finalStream.destroy(error); + }); + + mimicResponse(response, finalStream); + response.pipe(checker).pipe(decompressStream).pipe(finalStream); + + return finalStream; +}; diff --git a/node_modules/decompress-response/license b/node_modules/decompress-response/license new file mode 100644 index 0000000..fa7ceba --- /dev/null +++ b/node_modules/decompress-response/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://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/decompress-response/node_modules/mimic-response/index.d.ts b/node_modules/decompress-response/node_modules/mimic-response/index.d.ts new file mode 100644 index 0000000..65a51e9 --- /dev/null +++ b/node_modules/decompress-response/node_modules/mimic-response/index.d.ts @@ -0,0 +1,17 @@ +import {IncomingMessage} from 'http'; + +/** +Mimic a [Node.js HTTP response stream](https://nodejs.org/api/http.html#http_class_http_incomingmessage) + +Makes `toStream` include the properties from `fromStream`. + +@param fromStream - The stream to copy the properties from. +@param toStream - The stream to copy the properties to. +@return The same object as `toStream`. +*/ +declare function mimicResponse( + fromStream: IncomingMessage, // eslint-disable-line @typescript-eslint/prefer-readonly-parameter-types + toStream: T, +): T & IncomingMessage; + +export = mimicResponse; diff --git a/node_modules/decompress-response/node_modules/mimic-response/index.js b/node_modules/decompress-response/node_modules/mimic-response/index.js new file mode 100644 index 0000000..404e111 --- /dev/null +++ b/node_modules/decompress-response/node_modules/mimic-response/index.js @@ -0,0 +1,77 @@ +'use strict'; + +// We define these manually to ensure they're always copied +// even if they would move up the prototype chain +// https://nodejs.org/api/http.html#http_class_http_incomingmessage +const knownProperties = [ + 'aborted', + 'complete', + 'headers', + 'httpVersion', + 'httpVersionMinor', + 'httpVersionMajor', + 'method', + 'rawHeaders', + 'rawTrailers', + 'setTimeout', + 'socket', + 'statusCode', + 'statusMessage', + 'trailers', + 'url' +]; + +module.exports = (fromStream, toStream) => { + if (toStream._readableState.autoDestroy) { + throw new Error('The second stream must have the `autoDestroy` option set to `false`'); + } + + const fromProperties = new Set(Object.keys(fromStream).concat(knownProperties)); + + const properties = {}; + + for (const property of fromProperties) { + // Don't overwrite existing properties. + if (property in toStream) { + continue; + } + + properties[property] = { + get() { + const value = fromStream[property]; + const isFunction = typeof value === 'function'; + + return isFunction ? value.bind(fromStream) : value; + }, + set(value) { + fromStream[property] = value; + }, + enumerable: true, + configurable: false + }; + } + + Object.defineProperties(toStream, properties); + + fromStream.once('aborted', () => { + toStream.destroy(); + + toStream.emit('aborted'); + }); + + fromStream.once('close', () => { + if (fromStream.complete) { + if (toStream.readable) { + toStream.once('end', () => { + toStream.emit('close'); + }); + } else { + toStream.emit('close'); + } + } else { + toStream.emit('close'); + } + }); + + return toStream; +}; diff --git a/node_modules/decompress-response/node_modules/mimic-response/license b/node_modules/decompress-response/node_modules/mimic-response/license new file mode 100644 index 0000000..fa7ceba --- /dev/null +++ b/node_modules/decompress-response/node_modules/mimic-response/license @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) Sindre Sorhus (https://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/decompress-response/node_modules/mimic-response/package.json b/node_modules/decompress-response/node_modules/mimic-response/package.json new file mode 100644 index 0000000..d478b0f --- /dev/null +++ b/node_modules/decompress-response/node_modules/mimic-response/package.json @@ -0,0 +1,42 @@ +{ + "name": "mimic-response", + "version": "3.1.0", + "description": "Mimic a Node.js HTTP response stream", + "license": "MIT", + "repository": "sindresorhus/mimic-response", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "engines": { + "node": ">=10" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.d.ts", + "index.js" + ], + "keywords": [ + "mimic", + "response", + "stream", + "http", + "https", + "request", + "get", + "core" + ], + "devDependencies": { + "@types/node": "^14.0.1", + "ava": "^2.4.0", + "create-test-server": "^2.4.0", + "p-event": "^4.1.0", + "pify": "^5.0.0", + "tsd": "^0.11.0", + "xo": "^0.30.0" + } +} diff --git a/node_modules/decompress-response/node_modules/mimic-response/readme.md b/node_modules/decompress-response/node_modules/mimic-response/readme.md new file mode 100644 index 0000000..e968620 --- /dev/null +++ b/node_modules/decompress-response/node_modules/mimic-response/readme.md @@ -0,0 +1,78 @@ +# mimic-response [![Build Status](https://travis-ci.com/sindresorhus/mimic-response.svg?branch=master)](https://travis-ci.com/sindresorhus/mimic-response) + +> Mimic a [Node.js HTTP response stream](https://nodejs.org/api/http.html#http_class_http_incomingmessage) + +## Install + +``` +$ npm install mimic-response +``` + +## Usage + +```js +const stream = require('stream'); +const mimicResponse = require('mimic-response'); + +const responseStream = getHttpResponseStream(); +const myStream = new stream.PassThrough(); + +mimicResponse(responseStream, myStream); + +console.log(myStream.statusCode); +//=> 200 +``` + +## API + +### mimicResponse(from, to) + +**Note #1:** The `from.destroy(error)` function is not proxied. You have to call it manually: + +```js +const stream = require('stream'); +const mimicResponse = require('mimic-response'); + +const responseStream = getHttpResponseStream(); + +const myStream = new stream.PassThrough({ + destroy(error, callback) { + responseStream.destroy(); + + callback(error); + } +}); + +myStream.destroy(); +``` + +Please note that `myStream` and `responseStream` never throws. The error is passed to the request instead. + +#### from + +Type: `Stream` + +[Node.js HTTP response stream.](https://nodejs.org/api/http.html#http_class_http_incomingmessage) + +#### to + +Type: `Stream` + +Any stream. + +## Related + +- [mimic-fn](https://github.com/sindresorhus/mimic-fn) - Make a function mimic another one +- [clone-response](https://github.com/lukechilds/clone-response) - Clone a Node.js response stream + +--- + +

      + + 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/decompress-response/package.json b/node_modules/decompress-response/package.json new file mode 100644 index 0000000..57df889 --- /dev/null +++ b/node_modules/decompress-response/package.json @@ -0,0 +1,56 @@ +{ + "name": "decompress-response", + "version": "6.0.0", + "description": "Decompress a HTTP response if needed", + "license": "MIT", + "repository": "sindresorhus/decompress-response", + "funding": "https://github.com/sponsors/sindresorhus", + "author": { + "name": "Sindre Sorhus", + "email": "sindresorhus@gmail.com", + "url": "https://sindresorhus.com" + }, + "engines": { + "node": ">=10" + }, + "scripts": { + "test": "xo && ava && tsd" + }, + "files": [ + "index.js", + "index.d.ts" + ], + "keywords": [ + "decompress", + "response", + "http", + "https", + "zlib", + "gzip", + "zip", + "deflate", + "unzip", + "ungzip", + "incoming", + "message", + "stream", + "compressed", + "brotli" + ], + "dependencies": { + "mimic-response": "^3.1.0" + }, + "devDependencies": { + "@types/node": "^14.0.1", + "ava": "^2.2.0", + "get-stream": "^5.0.0", + "pify": "^5.0.0", + "tsd": "^0.11.0", + "xo": "^0.30.0" + }, + "xo": { + "rules": { + "@typescript-eslint/prefer-readonly-parameter-types": "off" + } + } +} diff --git a/node_modules/decompress-response/readme.md b/node_modules/decompress-response/readme.md new file mode 100644 index 0000000..58523ef --- /dev/null +++ b/node_modules/decompress-response/readme.md @@ -0,0 +1,48 @@ +# decompress-response [![Build Status](https://travis-ci.com/sindresorhus/decompress-response.svg?branch=master)](https://travis-ci.com/sindresorhus/decompress-response) + +> Decompress a HTTP response if needed + +Decompresses the [response](https://nodejs.org/api/http.html#http_class_http_incomingmessage) from [`http.request`](https://nodejs.org/api/http.html#http_http_request_options_callback) if it's gzipped, deflated or compressed with Brotli, otherwise just passes it through. + +Used by [`got`](https://github.com/sindresorhus/got). + +## Install + +``` +$ npm install decompress-response +``` + +## Usage + +```js +const http = require('http'); +const decompressResponse = require('decompress-response'); + +http.get('https://sindresorhus.com', response => { + response = decompressResponse(response); +}); +``` + +## API + +### decompressResponse(response) + +Returns the decompressed HTTP response stream. + +#### response + +Type: [`http.IncomingMessage`](https://nodejs.org/api/http.html#http_class_http_incomingmessage) + +The HTTP incoming stream with compressed data. + +--- + +
      + + 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/deep-is/.travis.yml b/node_modules/deep-is/.travis.yml new file mode 100644 index 0000000..58f2371 --- /dev/null +++ b/node_modules/deep-is/.travis.yml @@ -0,0 +1,5 @@ +language: node_js +node_js: + - 0.6 + - 0.8 + - 0.10 diff --git a/node_modules/deep-is/LICENSE b/node_modules/deep-is/LICENSE new file mode 100644 index 0000000..c38f840 --- /dev/null +++ b/node_modules/deep-is/LICENSE @@ -0,0 +1,22 @@ +Copyright (c) 2012, 2013 Thorsten Lorenz +Copyright (c) 2012 James Halliday +Copyright (c) 2009 Thomas Robinson <280north.com> + +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/deep-is/README.markdown b/node_modules/deep-is/README.markdown new file mode 100644 index 0000000..eb69a83 --- /dev/null +++ b/node_modules/deep-is/README.markdown @@ -0,0 +1,70 @@ +deep-is +========== + +Node's `assert.deepEqual() algorithm` as a standalone module. Exactly like +[deep-equal](https://github.com/substack/node-deep-equal) except for the fact that `deepEqual(NaN, NaN) === true`. + +This module is around [5 times faster](https://gist.github.com/2790507) +than wrapping `assert.deepEqual()` in a `try/catch`. + +[![browser support](http://ci.testling.com/thlorenz/deep-is.png)](http://ci.testling.com/thlorenz/deep-is) + +[![build status](https://secure.travis-ci.org/thlorenz/deep-is.png)](http://travis-ci.org/thlorenz/deep-is) + +example +======= + +``` js +var equal = require('deep-is'); +console.dir([ + equal( + { a : [ 2, 3 ], b : [ 4 ] }, + { a : [ 2, 3 ], b : [ 4 ] } + ), + equal( + { x : 5, y : [6] }, + { x : 5, y : 6 } + ) +]); +``` + +methods +======= + +var deepIs = require('deep-is') + +deepIs(a, b) +--------------- + +Compare objects `a` and `b`, returning whether they are equal according to a +recursive equality algorithm. + +install +======= + +With [npm](http://npmjs.org) do: + +``` +npm install deep-is +``` + +test +==== + +With [npm](http://npmjs.org) do: + +``` +npm test +``` + +license +======= + +Copyright (c) 2012, 2013 Thorsten Lorenz +Copyright (c) 2012 James Halliday + +Derived largely from node's assert module, which has the copyright statement: + +Copyright (c) 2009 Thomas Robinson <280north.com> + +Released under the MIT license, see LICENSE for details. diff --git a/node_modules/deep-is/example/cmp.js b/node_modules/deep-is/example/cmp.js new file mode 100644 index 0000000..67014b8 --- /dev/null +++ b/node_modules/deep-is/example/cmp.js @@ -0,0 +1,11 @@ +var equal = require('../'); +console.dir([ + equal( + { a : [ 2, 3 ], b : [ 4 ] }, + { a : [ 2, 3 ], b : [ 4 ] } + ), + equal( + { x : 5, y : [6] }, + { x : 5, y : 6 } + ) +]); diff --git a/node_modules/deep-is/index.js b/node_modules/deep-is/index.js new file mode 100644 index 0000000..506fe27 --- /dev/null +++ b/node_modules/deep-is/index.js @@ -0,0 +1,102 @@ +var pSlice = Array.prototype.slice; +var Object_keys = typeof Object.keys === 'function' + ? Object.keys + : function (obj) { + var keys = []; + for (var key in obj) keys.push(key); + return keys; + } +; + +var deepEqual = module.exports = function (actual, expected) { + // enforce Object.is +0 !== -0 + if (actual === 0 && expected === 0) { + return areZerosEqual(actual, expected); + + // 7.1. All identical values are equivalent, as determined by ===. + } else if (actual === expected) { + return true; + + } else if (actual instanceof Date && expected instanceof Date) { + return actual.getTime() === expected.getTime(); + + } else if (isNumberNaN(actual)) { + return isNumberNaN(expected); + + // 7.3. Other pairs that do not both pass typeof value == 'object', + // equivalence is determined by ==. + } else if (typeof actual != 'object' && typeof expected != 'object') { + return actual == expected; + + // 7.4. For all other Object pairs, including Array objects, equivalence is + // determined by having the same number of owned properties (as verified + // with Object.prototype.hasOwnProperty.call), the same set of keys + // (although not necessarily the same order), equivalent values for every + // corresponding key, and an identical 'prototype' property. Note: this + // accounts for both named and indexed properties on Arrays. + } else { + return objEquiv(actual, expected); + } +}; + +function isUndefinedOrNull(value) { + return value === null || value === undefined; +} + +function isArguments(object) { + return Object.prototype.toString.call(object) == '[object Arguments]'; +} + +function isNumberNaN(value) { + // NaN === NaN -> false + return typeof value == 'number' && value !== value; +} + +function areZerosEqual(zeroA, zeroB) { + // (1 / +0|0) -> Infinity, but (1 / -0) -> -Infinity and (Infinity !== -Infinity) + return (1 / zeroA) === (1 / zeroB); +} + +function objEquiv(a, b) { + if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) + return false; + + // an identical 'prototype' property. + if (a.prototype !== b.prototype) return false; + //~~~I've managed to break Object.keys through screwy arguments passing. + // Converting to array solves the problem. + if (isArguments(a)) { + if (!isArguments(b)) { + return false; + } + a = pSlice.call(a); + b = pSlice.call(b); + return deepEqual(a, b); + } + try { + var ka = Object_keys(a), + kb = Object_keys(b), + key, i; + } catch (e) {//happens when one is a string literal and the other isn't + return false; + } + // having the same number of owned properties (keys incorporates + // hasOwnProperty) + if (ka.length != kb.length) + return false; + //the same set of keys (although not necessarily the same order), + ka.sort(); + kb.sort(); + //~~~cheap key test + for (i = ka.length - 1; i >= 0; i--) { + if (ka[i] != kb[i]) + return false; + } + //equivalent values for every corresponding key, and + //~~~possibly expensive deep test + for (i = ka.length - 1; i >= 0; i--) { + key = ka[i]; + if (!deepEqual(a[key], b[key])) return false; + } + return true; +} diff --git a/node_modules/deep-is/package.json b/node_modules/deep-is/package.json new file mode 100644 index 0000000..dae72d7 --- /dev/null +++ b/node_modules/deep-is/package.json @@ -0,0 +1,58 @@ +{ + "name": "deep-is", + "version": "0.1.4", + "description": "node's assert.deepEqual algorithm except for NaN being equal to NaN", + "main": "index.js", + "directories": { + "lib": ".", + "example": "example", + "test": "test" + }, + "scripts": { + "test": "tape test/*.js" + }, + "devDependencies": { + "tape": "~1.0.2" + }, + "repository": { + "type": "git", + "url": "http://github.com/thlorenz/deep-is.git" + }, + "keywords": [ + "equality", + "equal", + "compare" + ], + "author": { + "name": "Thorsten Lorenz", + "email": "thlorenz@gmx.de", + "url": "http://thlorenz.com" + }, + "license": "MIT", + "testling": { + "files": "test/*.js", + "browsers": { + "ie": [ + 6, + 7, + 8, + 9 + ], + "ff": [ + 3.5, + 10, + 15 + ], + "chrome": [ + 10, + 22 + ], + "safari": [ + 5.1 + ], + "opera": [ + 12 + ] + } + } +} diff --git a/node_modules/deep-is/test/NaN.js b/node_modules/deep-is/test/NaN.js new file mode 100644 index 0000000..ddaa5a7 --- /dev/null +++ b/node_modules/deep-is/test/NaN.js @@ -0,0 +1,16 @@ +var test = require('tape'); +var equal = require('../'); + +test('NaN and 0 values', function (t) { + t.ok(equal(NaN, NaN)); + t.notOk(equal(0, NaN)); + t.ok(equal(0, 0)); + t.notOk(equal(0, 1)); + t.end(); +}); + + +test('nested NaN values', function (t) { + t.ok(equal([ NaN, 1, NaN ], [ NaN, 1, NaN ])); + t.end(); +}); diff --git a/node_modules/deep-is/test/cmp.js b/node_modules/deep-is/test/cmp.js new file mode 100644 index 0000000..3071013 --- /dev/null +++ b/node_modules/deep-is/test/cmp.js @@ -0,0 +1,23 @@ +var test = require('tape'); +var equal = require('../'); + +test('equal', function (t) { + t.ok(equal( + { a : [ 2, 3 ], b : [ 4 ] }, + { a : [ 2, 3 ], b : [ 4 ] } + )); + t.end(); +}); + +test('not equal', function (t) { + t.notOk(equal( + { x : 5, y : [6] }, + { x : 5, y : 6 } + )); + t.end(); +}); + +test('nested nulls', function (t) { + t.ok(equal([ null, null, null ], [ null, null, null ])); + t.end(); +}); diff --git a/node_modules/deep-is/test/neg-vs-pos-0.js b/node_modules/deep-is/test/neg-vs-pos-0.js new file mode 100644 index 0000000..ac26130 --- /dev/null +++ b/node_modules/deep-is/test/neg-vs-pos-0.js @@ -0,0 +1,15 @@ +var test = require('tape'); +var equal = require('../'); + +test('0 values', function (t) { + t.ok(equal( 0, 0), ' 0 === 0'); + t.ok(equal( 0, +0), ' 0 === +0'); + t.ok(equal(+0, +0), '+0 === +0'); + t.ok(equal(-0, -0), '-0 === -0'); + + t.notOk(equal(-0, 0), '-0 !== 0'); + t.notOk(equal(-0, +0), '-0 !== +0'); + + t.end(); +}); + diff --git a/node_modules/defer-to-connect/LICENSE b/node_modules/defer-to-connect/LICENSE new file mode 100644 index 0000000..15ad2e8 --- /dev/null +++ b/node_modules/defer-to-connect/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Szymon Marczak + +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/defer-to-connect/README.md b/node_modules/defer-to-connect/README.md new file mode 100644 index 0000000..4dd36c2 --- /dev/null +++ b/node_modules/defer-to-connect/README.md @@ -0,0 +1,38 @@ +# defer-to-connect + +> The safe way to handle the `connect` socket event + +[![Coverage Status](https://coveralls.io/repos/github/szmarczak/defer-to-connect/badge.svg?branch=master)](https://coveralls.io/github/szmarczak/defer-to-connect?branch=master) + +Once you receive the socket, it may be already connected (or disconnected).
      +To avoid checking that, use `defer-to-connect`. It'll do that for you. + +## Usage + +```js +const deferToConnect = require('defer-to-connect'); + +deferToConnect(socket, () => { + console.log('Connected!'); +}); +``` + +## API + +### deferToConnect(socket, connectListener) + +Calls `connectListener()` when connected. + +### deferToConnect(socket, listeners) + +#### listeners + +An object representing `connect`, `secureConnect` and `close` properties. + +Calls `connect()` when the socket is connected.
      +Calls `secureConnect()` when the socket is securely connected.
      +Calls `close()` when the socket is destroyed. + +## License + +MIT diff --git a/node_modules/defer-to-connect/dist/source/index.d.ts b/node_modules/defer-to-connect/dist/source/index.d.ts new file mode 100644 index 0000000..8db8dbb --- /dev/null +++ b/node_modules/defer-to-connect/dist/source/index.d.ts @@ -0,0 +1,10 @@ +/// +import { Socket } from 'net'; +import { TLSSocket } from 'tls'; +interface Listeners { + connect?: () => void; + secureConnect?: () => void; + close?: (hadError: boolean) => void; +} +declare const deferToConnect: (socket: TLSSocket | Socket, fn: Listeners | (() => void)) => void; +export default deferToConnect; diff --git a/node_modules/defer-to-connect/dist/source/index.js b/node_modules/defer-to-connect/dist/source/index.js new file mode 100644 index 0000000..f26c4fa --- /dev/null +++ b/node_modules/defer-to-connect/dist/source/index.js @@ -0,0 +1,47 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +function isTLSSocket(socket) { + return socket.encrypted; +} +const deferToConnect = (socket, fn) => { + let listeners; + if (typeof fn === 'function') { + const connect = fn; + listeners = { connect }; + } + else { + listeners = fn; + } + const hasConnectListener = typeof listeners.connect === 'function'; + const hasSecureConnectListener = typeof listeners.secureConnect === 'function'; + const hasCloseListener = typeof listeners.close === 'function'; + const onConnect = () => { + if (hasConnectListener) { + listeners.connect(); + } + if (isTLSSocket(socket) && hasSecureConnectListener) { + if (socket.authorized) { + listeners.secureConnect(); + } + else if (!socket.authorizationError) { + socket.once('secureConnect', listeners.secureConnect); + } + } + if (hasCloseListener) { + socket.once('close', listeners.close); + } + }; + if (socket.writable && !socket.connecting) { + onConnect(); + } + else if (socket.connecting) { + socket.once('connect', onConnect); + } + else if (socket.destroyed && hasCloseListener) { + listeners.close(socket._hadError); + } +}; +exports.default = deferToConnect; +// For CommonJS default export support +module.exports = deferToConnect; +module.exports.default = deferToConnect; diff --git a/node_modules/defer-to-connect/package.json b/node_modules/defer-to-connect/package.json new file mode 100644 index 0000000..4dbd1c6 --- /dev/null +++ b/node_modules/defer-to-connect/package.json @@ -0,0 +1,71 @@ +{ + "name": "defer-to-connect", + "version": "2.0.1", + "description": "The safe way to handle the `connect` socket event", + "main": "dist/source", + "files": [ + "dist/source" + ], + "engines": { + "node": ">=10" + }, + "scripts": { + "build": "del-cli dist && tsc", + "prepare": "npm run build", + "test": "xo && tsc --noEmit && nyc ava", + "coveralls": "nyc report --reporter=text-lcov | coveralls" + }, + "keywords": [ + "socket", + "connect", + "event" + ], + "author": "Szymon Marczak", + "license": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/szmarczak/defer-to-connect.git" + }, + "bugs": { + "url": "https://github.com/szmarczak/defer-to-connect/issues" + }, + "homepage": "https://github.com/szmarczak/defer-to-connect#readme", + "xo": { + "extends": "xo-typescript", + "extensions": [ + "ts" + ] + }, + "devDependencies": { + "@ava/typescript": "^1.1.0", + "@sindresorhus/tsconfig": "^0.7.0", + "@types/node": "^13.5.0", + "@typescript-eslint/eslint-plugin": "^2.18.0", + "@typescript-eslint/parser": "^2.18.0", + "ava": "^3.2.0", + "coveralls": "^3.0.9", + "create-cert": "^1.0.6", + "del-cli": "^3.0.0", + "eslint-config-xo-typescript": "^0.24.1", + "nyc": "^15.0.0", + "p-event": "^4.1.0", + "typescript": "^3.7.5", + "xo": "^0.25.3" + }, + "nyc": { + "include": [ + "dist/source" + ], + "extension": [ + ".ts" + ] + }, + "ava": { + "typescript": { + "rewritePaths": { + "tests/": "dist/tests/" + } + } + }, + "types": "dist/source/index.d.ts" +} diff --git a/node_modules/delayed-stream/.npmignore b/node_modules/delayed-stream/.npmignore new file mode 100644 index 0000000..9daeafb --- /dev/null +++ b/node_modules/delayed-stream/.npmignore @@ -0,0 +1 @@ +test diff --git a/node_modules/delayed-stream/License b/node_modules/delayed-stream/License new file mode 100644 index 0000000..4804b7a --- /dev/null +++ b/node_modules/delayed-stream/License @@ -0,0 +1,19 @@ +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 new file mode 100644 index 0000000..b4ff85a --- /dev/null +++ b/node_modules/delayed-stream/Makefile @@ -0,0 +1,7 @@ +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 new file mode 100644 index 0000000..aca36f9 --- /dev/null +++ b/node_modules/delayed-stream/Readme.md @@ -0,0 +1,141 @@ +# 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 new file mode 100644 index 0000000..b38fc85 --- /dev/null +++ b/node_modules/delayed-stream/lib/delayed_stream.js @@ -0,0 +1,107 @@ +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 new file mode 100644 index 0000000..eea3291 --- /dev/null +++ b/node_modules/delayed-stream/package.json @@ -0,0 +1,27 @@ +{ + "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/end-of-stream/LICENSE b/node_modules/end-of-stream/LICENSE new file mode 100644 index 0000000..757562e --- /dev/null +++ b/node_modules/end-of-stream/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Mathias Buus + +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/end-of-stream/README.md b/node_modules/end-of-stream/README.md new file mode 100644 index 0000000..857b14b --- /dev/null +++ b/node_modules/end-of-stream/README.md @@ -0,0 +1,54 @@ +# end-of-stream + +A node module that calls a callback when a readable/writable/duplex stream has completed or failed. + + npm install end-of-stream + +[![Build status](https://travis-ci.org/mafintosh/end-of-stream.svg?branch=master)](https://travis-ci.org/mafintosh/end-of-stream) + +## Usage + +Simply pass a stream and a callback to the `eos`. +Both legacy streams, streams2 and stream3 are supported. + +``` js +var eos = require('end-of-stream'); + +eos(readableStream, function(err) { + // this will be set to the stream instance + if (err) return console.log('stream had an error or closed early'); + console.log('stream has ended', this === readableStream); +}); + +eos(writableStream, function(err) { + if (err) return console.log('stream had an error or closed early'); + console.log('stream has finished', this === writableStream); +}); + +eos(duplexStream, function(err) { + if (err) return console.log('stream had an error or closed early'); + console.log('stream has ended and finished', this === duplexStream); +}); + +eos(duplexStream, {readable:false}, function(err) { + if (err) return console.log('stream had an error or closed early'); + console.log('stream has finished but might still be readable'); +}); + +eos(duplexStream, {writable:false}, function(err) { + if (err) return console.log('stream had an error or closed early'); + console.log('stream has ended but might still be writable'); +}); + +eos(readableStream, {error:false}, function(err) { + // do not treat emit('error', err) as a end-of-stream +}); +``` + +## License + +MIT + +## Related + +`end-of-stream` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one. diff --git a/node_modules/end-of-stream/index.js b/node_modules/end-of-stream/index.js new file mode 100644 index 0000000..c77f0d5 --- /dev/null +++ b/node_modules/end-of-stream/index.js @@ -0,0 +1,94 @@ +var once = require('once'); + +var noop = function() {}; + +var isRequest = function(stream) { + return stream.setHeader && typeof stream.abort === 'function'; +}; + +var isChildProcess = function(stream) { + return stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3 +}; + +var eos = function(stream, opts, callback) { + if (typeof opts === 'function') return eos(stream, null, opts); + if (!opts) opts = {}; + + callback = once(callback || noop); + + var ws = stream._writableState; + var rs = stream._readableState; + var readable = opts.readable || (opts.readable !== false && stream.readable); + var writable = opts.writable || (opts.writable !== false && stream.writable); + var cancelled = false; + + var onlegacyfinish = function() { + if (!stream.writable) onfinish(); + }; + + var onfinish = function() { + writable = false; + if (!readable) callback.call(stream); + }; + + var onend = function() { + readable = false; + if (!writable) callback.call(stream); + }; + + var onexit = function(exitCode) { + callback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null); + }; + + var onerror = function(err) { + callback.call(stream, err); + }; + + var onclose = function() { + process.nextTick(onclosenexttick); + }; + + var onclosenexttick = function() { + if (cancelled) return; + if (readable && !(rs && (rs.ended && !rs.destroyed))) return callback.call(stream, new Error('premature close')); + if (writable && !(ws && (ws.ended && !ws.destroyed))) return callback.call(stream, new Error('premature close')); + }; + + var onrequest = function() { + stream.req.on('finish', onfinish); + }; + + if (isRequest(stream)) { + stream.on('complete', onfinish); + stream.on('abort', onclose); + if (stream.req) onrequest(); + else stream.on('request', onrequest); + } else if (writable && !ws) { // legacy streams + stream.on('end', onlegacyfinish); + stream.on('close', onlegacyfinish); + } + + if (isChildProcess(stream)) stream.on('exit', onexit); + + stream.on('end', onend); + stream.on('finish', onfinish); + if (opts.error !== false) stream.on('error', onerror); + stream.on('close', onclose); + + return function() { + cancelled = true; + stream.removeListener('complete', onfinish); + stream.removeListener('abort', onclose); + stream.removeListener('request', onrequest); + if (stream.req) stream.req.removeListener('finish', onfinish); + stream.removeListener('end', onlegacyfinish); + stream.removeListener('close', onlegacyfinish); + stream.removeListener('finish', onfinish); + stream.removeListener('exit', onexit); + stream.removeListener('end', onend); + stream.removeListener('error', onerror); + stream.removeListener('close', onclose); + }; +}; + +module.exports = eos; diff --git a/node_modules/end-of-stream/package.json b/node_modules/end-of-stream/package.json new file mode 100644 index 0000000..b75bbf0 --- /dev/null +++ b/node_modules/end-of-stream/package.json @@ -0,0 +1,37 @@ +{ + "name": "end-of-stream", + "version": "1.4.4", + "description": "Call a callback when a readable/writable/duplex stream has completed or failed.", + "repository": { + "type": "git", + "url": "git://github.com/mafintosh/end-of-stream.git" + }, + "dependencies": { + "once": "^1.4.0" + }, + "scripts": { + "test": "node test.js" + }, + "files": [ + "index.js" + ], + "keywords": [ + "stream", + "streams", + "callback", + "finish", + "close", + "end", + "wait" + ], + "bugs": { + "url": "https://github.com/mafintosh/end-of-stream/issues" + }, + "homepage": "https://github.com/mafintosh/end-of-stream", + "main": "index.js", + "author": "Mathias Buus ", + "license": "MIT", + "devDependencies": { + "tape": "^4.11.0" + } +} diff --git a/node_modules/extract-zip/LICENSE b/node_modules/extract-zip/LICENSE new file mode 100644 index 0000000..2921069 --- /dev/null +++ b/node_modules/extract-zip/LICENSE @@ -0,0 +1,23 @@ +Copyright (c) 2014 Max Ogden and other contributors +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. + +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 HOLDER 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/extract-zip/cli.js b/node_modules/extract-zip/cli.js new file mode 100644 index 0000000..b594016 --- /dev/null +++ b/node_modules/extract-zip/cli.js @@ -0,0 +1,19 @@ +#!/usr/bin/env node + +/* eslint-disable no-process-exit */ + +var extract = require('./') + +var args = process.argv.slice(2) +var source = args[0] +var dest = args[1] || process.cwd() +if (!source) { + console.error('Usage: extract-zip foo.zip ') + process.exit(1) +} + +extract(source, { dir: dest }) + .catch(function (err) { + console.error('error!', err) + process.exit(1) + }) diff --git a/node_modules/extract-zip/index.d.ts b/node_modules/extract-zip/index.d.ts new file mode 100644 index 0000000..6dbcc80 --- /dev/null +++ b/node_modules/extract-zip/index.d.ts @@ -0,0 +1,21 @@ +// Based on the type definitions for extract-zip 1.6 +// Definitions by: Mizunashi Mana +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/e69b58e/types/extract-zip/index.d.ts + +import { Entry, ZipFile } from 'yauzl'; + +declare namespace extract { + interface Options { + dir: string; + defaultDirMode?: number; + defaultFileMode?: number; + onEntry?: (entry: Entry, zipfile: ZipFile) => void; + } +} + +declare function extract( + zipPath: string, + opts: extract.Options, +): Promise; + +export = extract; diff --git a/node_modules/extract-zip/index.js b/node_modules/extract-zip/index.js new file mode 100644 index 0000000..23384ea --- /dev/null +++ b/node_modules/extract-zip/index.js @@ -0,0 +1,173 @@ +const debug = require('debug')('extract-zip') +// eslint-disable-next-line node/no-unsupported-features/node-builtins +const { createWriteStream, promises: fs } = require('fs') +const getStream = require('get-stream') +const path = require('path') +const { promisify } = require('util') +const stream = require('stream') +const yauzl = require('yauzl') + +const openZip = promisify(yauzl.open) +const pipeline = promisify(stream.pipeline) + +class Extractor { + constructor (zipPath, opts) { + this.zipPath = zipPath + this.opts = opts + } + + async extract () { + debug('opening', this.zipPath, 'with opts', this.opts) + + this.zipfile = await openZip(this.zipPath, { lazyEntries: true }) + this.canceled = false + + return new Promise((resolve, reject) => { + this.zipfile.on('error', err => { + this.canceled = true + reject(err) + }) + this.zipfile.readEntry() + + this.zipfile.on('close', () => { + if (!this.canceled) { + debug('zip extraction complete') + resolve() + } + }) + + this.zipfile.on('entry', async entry => { + /* istanbul ignore if */ + if (this.canceled) { + debug('skipping entry', entry.fileName, { cancelled: this.canceled }) + return + } + + debug('zipfile entry', entry.fileName) + + if (entry.fileName.startsWith('__MACOSX/')) { + this.zipfile.readEntry() + return + } + + const destDir = path.dirname(path.join(this.opts.dir, entry.fileName)) + + try { + await fs.mkdir(destDir, { recursive: true }) + + const canonicalDestDir = await fs.realpath(destDir) + const relativeDestDir = path.relative(this.opts.dir, canonicalDestDir) + + if (relativeDestDir.split(path.sep).includes('..')) { + throw new Error(`Out of bound path "${canonicalDestDir}" found while processing file ${entry.fileName}`) + } + + await this.extractEntry(entry) + debug('finished processing', entry.fileName) + this.zipfile.readEntry() + } catch (err) { + this.canceled = true + this.zipfile.close() + reject(err) + } + }) + }) + } + + async extractEntry (entry) { + /* istanbul ignore if */ + if (this.canceled) { + debug('skipping entry extraction', entry.fileName, { cancelled: this.canceled }) + return + } + + if (this.opts.onEntry) { + this.opts.onEntry(entry, this.zipfile) + } + + const dest = path.join(this.opts.dir, entry.fileName) + + // convert external file attr int into a fs stat mode int + const mode = (entry.externalFileAttributes >> 16) & 0xFFFF + // check if it's a symlink or dir (using stat mode constants) + const IFMT = 61440 + const IFDIR = 16384 + const IFLNK = 40960 + const symlink = (mode & IFMT) === IFLNK + let isDir = (mode & IFMT) === IFDIR + + // Failsafe, borrowed from jsZip + if (!isDir && entry.fileName.endsWith('/')) { + isDir = true + } + + // check for windows weird way of specifying a directory + // https://github.com/maxogden/extract-zip/issues/13#issuecomment-154494566 + const madeBy = entry.versionMadeBy >> 8 + if (!isDir) isDir = (madeBy === 0 && entry.externalFileAttributes === 16) + + debug('extracting entry', { filename: entry.fileName, isDir: isDir, isSymlink: symlink }) + + const procMode = this.getExtractedMode(mode, isDir) & 0o777 + + // always ensure folders are created + const destDir = isDir ? dest : path.dirname(dest) + + const mkdirOptions = { recursive: true } + if (isDir) { + mkdirOptions.mode = procMode + } + debug('mkdir', { dir: destDir, ...mkdirOptions }) + await fs.mkdir(destDir, mkdirOptions) + if (isDir) return + + debug('opening read stream', dest) + const readStream = await promisify(this.zipfile.openReadStream.bind(this.zipfile))(entry) + + if (symlink) { + const link = await getStream(readStream) + debug('creating symlink', link, dest) + await fs.symlink(link, dest) + } else { + await pipeline(readStream, createWriteStream(dest, { mode: procMode })) + } + } + + getExtractedMode (entryMode, isDir) { + let mode = entryMode + // Set defaults, if necessary + if (mode === 0) { + if (isDir) { + if (this.opts.defaultDirMode) { + mode = parseInt(this.opts.defaultDirMode, 10) + } + + if (!mode) { + mode = 0o755 + } + } else { + if (this.opts.defaultFileMode) { + mode = parseInt(this.opts.defaultFileMode, 10) + } + + if (!mode) { + mode = 0o644 + } + } + } + + return mode + } +} + +module.exports = async function (zipPath, opts) { + debug('creating target directory', opts.dir) + + if (!path.isAbsolute(opts.dir)) { + throw new Error('Target directory is expected to be absolute') + } + + await fs.mkdir(opts.dir, { recursive: true }) + opts.dir = await fs.realpath(opts.dir) + return new Extractor(zipPath, opts).extract() +} diff --git a/node_modules/extract-zip/package.json b/node_modules/extract-zip/package.json new file mode 100644 index 0000000..f59a35a --- /dev/null +++ b/node_modules/extract-zip/package.json @@ -0,0 +1,80 @@ +{ + "name": "extract-zip", + "version": "2.0.1", + "description": "unzip a zip file into a directory using 100% javascript", + "main": "index.js", + "types": "index.d.ts", + "bin": { + "extract-zip": "cli.js" + }, + "scripts": { + "ava": "ava", + "coverage": "nyc ava", + "lint": "yarn lint:js && yarn lint:ts && yarn tsd", + "lint:js": "eslint .", + "lint:ts": "eslint --config .eslintrc.typescript.js --ext .ts .", + "test": "yarn lint && ava", + "tsd": "tsd" + }, + "files": [ + "cli.js", + "index.d.ts" + ], + "author": "max ogden", + "license": "BSD-2-Clause", + "repository": "maxogden/extract-zip", + "keywords": [ + "unzip", + "zip", + "extract" + ], + "engines": { + "node": ">= 10.17.0" + }, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + }, + "devDependencies": { + "@typescript-eslint/eslint-plugin": "^3.2.0", + "@typescript-eslint/parser": "^3.2.0", + "ava": "^3.5.1", + "eslint": "^7.2.0", + "eslint-config-standard": "^14.1.1", + "eslint-plugin-ava": "^10.2.0", + "eslint-plugin-import": "^2.20.1", + "eslint-plugin-node": "^11.0.0", + "eslint-plugin-promise": "^4.2.1", + "eslint-plugin-standard": "^4.0.1", + "fs-extra": "^9.0.0", + "husky": "^4.2.3", + "lint-staged": "^10.0.9", + "nyc": "^15.0.0", + "tsd": "^0.11.0", + "typescript": "^3.8.3" + }, + "eslintConfig": { + "extends": [ + "eslint:recommended", + "plugin:ava/recommended", + "plugin:import/errors", + "plugin:import/warnings", + "plugin:node/recommended", + "plugin:promise/recommended", + "standard" + ] + }, + "husky": { + "hooks": { + "pre-commit": "lint-staged" + } + }, + "lint-staged": { + "*.js": "yarn lint:js --fix", + "*.ts": "yarn lint:ts --fix" + } +} diff --git a/node_modules/extract-zip/readme.md b/node_modules/extract-zip/readme.md new file mode 100644 index 0000000..4ee7108 --- /dev/null +++ b/node_modules/extract-zip/readme.md @@ -0,0 +1,57 @@ +# extract-zip + +Unzip written in pure JavaScript. Extracts a zip into a directory. Available as a library or a command line program. + +Uses the [`yauzl`](http://npmjs.org/yauzl) ZIP parser. + +[![NPM](https://nodei.co/npm/extract-zip.png?global=true)](https://npm.im/extract-zip) +[![Uses JS Standard Style](https://cdn.jsdelivr.net/gh/standard/standard/badge.svg)](https://github.com/standard/standard) +[![Build Status](https://github.com/maxogden/extract-zip/workflows/CI/badge.svg)](https://github.com/maxogden/extract-zip/actions?query=workflow%3ACI) + +## Installation + +Make sure you have Node 10 or greater installed. + +Get the library: + +``` +npm install extract-zip --save +``` + +Install the command line program: + +``` +npm install extract-zip -g +``` + +## JS API + +```javascript +const extract = require('extract-zip') + +async function main () { + try { + await extract(source, { dir: target }) + console.log('Extraction complete') + } catch (err) { + // handle any errors + } +} +``` + +### Options + +- `dir` (required) - the path to the directory where the extracted files are written +- `defaultDirMode` - integer - Directory Mode (permissions), defaults to `0o755` +- `defaultFileMode` - integer - File Mode (permissions), defaults to `0o644` +- `onEntry` - function - if present, will be called with `(entry, zipfile)`, entry is every entry from the zip file forwarded from the `entry` event from yauzl. `zipfile` is the `yauzl` instance + +Default modes are only used if no permissions are set in the zip file. + +## CLI Usage + +``` +extract-zip foo.zip +``` + +If not specified, `targetDirectory` will default to `process.cwd()`. diff --git a/node_modules/fd-slicer/.npmignore b/node_modules/fd-slicer/.npmignore new file mode 100644 index 0000000..ccc2930 --- /dev/null +++ b/node_modules/fd-slicer/.npmignore @@ -0,0 +1,2 @@ +/coverage +/node_modules diff --git a/node_modules/fd-slicer/.travis.yml b/node_modules/fd-slicer/.travis.yml new file mode 100644 index 0000000..77b7202 --- /dev/null +++ b/node_modules/fd-slicer/.travis.yml @@ -0,0 +1,7 @@ +language: node_js +node_js: + - "0.10" +script: + - "npm run test-travis" +after_script: + - "npm install coveralls@2 && cat ./coverage/lcov.info | ./node_modules/.bin/coveralls" diff --git a/node_modules/fd-slicer/CHANGELOG.md b/node_modules/fd-slicer/CHANGELOG.md new file mode 100644 index 0000000..783042f --- /dev/null +++ b/node_modules/fd-slicer/CHANGELOG.md @@ -0,0 +1,49 @@ +### 1.0.1 + + * use `setImmediate` instead of `nextTick` + +### 1.0.0 + + * `new FdSlicer(fd, options)` must now be `fdSlicer.createFromFd(fd, options)` + * fix behavior when `end` is 0. + * fix `createWriteStream` when using `createFromBuffer` + +### 0.4.0 + + * add ability to create an FdSlicer instance from a Buffer + +### 0.3.2 + + * fix write stream and read stream destroy behavior + +### 0.3.1 + + * write stream: fix end option behavior + +### 0.3.0 + + * write stream emits 'progress' events + * write stream supports 'end' option which causes the stream to emit an error + if a maximum size is exceeded + * improve documentation + +### 0.2.1 + + * Update pend dependency to latest bugfix version. + +### 0.2.0 + + * Add read and write functions + +### 0.1.0 + + * Add `autoClose` option and `ref()` and `unref()`. + +### 0.0.2 + + * Add API documentation + * read stream: create buffer at last possible moment + +### 0.0.1 + + * Initial release diff --git a/node_modules/fd-slicer/LICENSE b/node_modules/fd-slicer/LICENSE new file mode 100644 index 0000000..e57596d --- /dev/null +++ b/node_modules/fd-slicer/LICENSE @@ -0,0 +1,21 @@ +Copyright (c) 2014 Andrew Kelley + +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/fd-slicer/README.md b/node_modules/fd-slicer/README.md new file mode 100644 index 0000000..ad7f0ec --- /dev/null +++ b/node_modules/fd-slicer/README.md @@ -0,0 +1,199 @@ +# fd-slicer + +[![Build Status](https://travis-ci.org/andrewrk/node-fd-slicer.svg?branch=master)](https://travis-ci.org/andrewrk/node-fd-slicer) + +Safe `fs.ReadStream` and `fs.WriteStream` using the same fd. + +Let's say that you want to perform a parallel upload of a file to a remote +server. To do this, we want to create multiple read streams. The first thing +you might think of is to use the `{start: 0, end: 0}` API of +`fs.createReadStream`. This gives you two choices: + + 0. Use the same file descriptor for all `fs.ReadStream` objects. + 0. Open the file multiple times, resulting in a separate file descriptor + for each read stream. + +Neither of these are acceptable options. The first one is a severe bug, +because the API docs for `fs.write` state: + +> Note that it is unsafe to use `fs.write` multiple times on the same file +> without waiting for the callback. For this scenario, `fs.createWriteStream` +> is strongly recommended. + +`fs.createWriteStream` will solve the problem if you only create one of them +for the file descriptor, but it will exhibit this unsafety if you create +multiple write streams per file descriptor. + +The second option suffers from a race condition. For each additional time the +file is opened after the first, it is possible that the file is modified. So +in our parallel uploading example, we might upload a corrupt file that never +existed on the client's computer. + +This module solves this problem by providing `createReadStream` and +`createWriteStream` that operate on a shared file descriptor and provides +the convenient stream API while still allowing slicing and dicing. + +This module also gives you some additional power that the builtin +`fs.createWriteStream` do not give you. These features are: + + * Emitting a 'progress' event on write. + * Ability to set a maximum size and emit an error if this size is exceeded. + * Ability to create an `FdSlicer` instance from a `Buffer`. This enables you + to provide API for handling files as well as buffers using the same API. + +## Usage + +```js +var fdSlicer = require('fd-slicer'); +var fs = require('fs'); + +fs.open("file.txt", 'r', function(err, fd) { + if (err) throw err; + var slicer = fdSlicer.createFromFd(fd); + var firstPart = slicer.createReadStream({start: 0, end: 100}); + var secondPart = slicer.createReadStream({start: 100}); + var firstOut = fs.createWriteStream("first.txt"); + var secondOut = fs.createWriteStream("second.txt"); + firstPart.pipe(firstOut); + secondPart.pipe(secondOut); +}); +``` + +You can also create from a buffer: + +```js +var fdSlicer = require('fd-slicer'); +var slicer = FdSlicer.createFromBuffer(someBuffer); +var firstPart = slicer.createReadStream({start: 0, end: 100}); +var secondPart = slicer.createReadStream({start: 100}); +var firstOut = fs.createWriteStream("first.txt"); +var secondOut = fs.createWriteStream("second.txt"); +firstPart.pipe(firstOut); +secondPart.pipe(secondOut); +``` + +## API Documentation + +### fdSlicer.createFromFd(fd, [options]) + +```js +var fdSlicer = require('fd-slicer'); +fs.open("file.txt", 'r', function(err, fd) { + if (err) throw err; + var slicer = fdSlicer.createFromFd(fd); + // ... +}); +``` + +Make sure `fd` is a properly initialized file descriptor. If you want to +use `createReadStream` make sure you open it for reading and if you want +to use `createWriteStream` make sure you open it for writing. + +`options` is an optional object which can contain: + + * `autoClose` - if set to `true`, the file descriptor will be automatically + closed once the last stream that references it is closed. Defaults to + `false`. `ref()` and `unref()` can be used to increase or decrease the + reference count, respectively. + +### fdSlicer.createFromBuffer(buffer, [options]) + +```js +var fdSlicer = require('fd-slicer'); +var slicer = fdSlicer.createFromBuffer(someBuffer); +// ... +``` + +`options` is an optional object which can contain: + + * `maxChunkSize` - A `Number` of bytes. see `createReadStream()`. + If falsey, defaults to unlimited. + +#### Properties + +##### fd + +The file descriptor passed in. `undefined` if created from a buffer. + +#### Methods + +##### createReadStream(options) + +Available `options`: + + * `start` - Number. The offset into the file to start reading from. Defaults + to 0. + * `end` - Number. Exclusive upper bound offset into the file to stop reading + from. + * `highWaterMark` - Number. The maximum number of bytes to store in the + internal buffer before ceasing to read from the underlying resource. + Defaults to 16 KB. + * `encoding` - String. If specified, then buffers will be decoded to strings + using the specified encoding. Defaults to `null`. + +The ReadableStream that this returns has these additional methods: + + * `destroy(err)` - stop streaming. `err` is optional and is the error that + will be emitted in order to cause the streaming to stop. Defaults to + `new Error("stream destroyed")`. + +If `maxChunkSize` was specified (see `createFromBuffer()`), the read stream +will provide chunks of at most that size. Normally, the read stream provides +the entire range requested in a single chunk, but this can cause performance +problems in some circumstances. +See [thejoshwolfe/yauzl#87](https://github.com/thejoshwolfe/yauzl/issues/87). + +##### createWriteStream(options) + +Available `options`: + + * `start` - Number. The offset into the file to start writing to. Defaults to + 0. + * `end` - Number. Exclusive upper bound offset into the file. If this offset + is reached, the write stream will emit an 'error' event and stop functioning. + In this situation, `err.code === 'ETOOBIG'`. Defaults to `Infinity`. + * `highWaterMark` - Number. Buffer level when `write()` starts returning + false. Defaults to 16KB. + * `decodeStrings` - Boolean. Whether or not to decode strings into Buffers + before passing them to` _write()`. Defaults to `true`. + +The WritableStream that this returns has these additional methods: + + * `destroy()` - stop streaming + +And these additional properties: + + * `bytesWritten` - number of bytes written to the stream + +And these additional events: + + * 'progress' - emitted when `bytesWritten` changes. + +##### read(buffer, offset, length, position, callback) + +Equivalent to `fs.read`, but with concurrency protection. +`callback` must be defined. + +##### write(buffer, offset, length, position, callback) + +Equivalent to `fs.write`, but with concurrency protection. +`callback` must be defined. + +##### ref() + +Increase the `autoClose` reference count by 1. + +##### unref() + +Decrease the `autoClose` reference count by 1. + +#### Events + +##### 'error' + +Emitted if `fs.close` returns an error when auto closing. + +##### 'close' + +Emitted when fd-slicer closes the file descriptor due to `autoClose`. Never +emitted if created from a buffer. diff --git a/node_modules/fd-slicer/index.js b/node_modules/fd-slicer/index.js new file mode 100644 index 0000000..65d32a3 --- /dev/null +++ b/node_modules/fd-slicer/index.js @@ -0,0 +1,296 @@ +var fs = require('fs'); +var util = require('util'); +var stream = require('stream'); +var Readable = stream.Readable; +var Writable = stream.Writable; +var PassThrough = stream.PassThrough; +var Pend = require('pend'); +var EventEmitter = require('events').EventEmitter; + +exports.createFromBuffer = createFromBuffer; +exports.createFromFd = createFromFd; +exports.BufferSlicer = BufferSlicer; +exports.FdSlicer = FdSlicer; + +util.inherits(FdSlicer, EventEmitter); +function FdSlicer(fd, options) { + options = options || {}; + EventEmitter.call(this); + + this.fd = fd; + this.pend = new Pend(); + this.pend.max = 1; + this.refCount = 0; + this.autoClose = !!options.autoClose; +} + +FdSlicer.prototype.read = function(buffer, offset, length, position, callback) { + var self = this; + self.pend.go(function(cb) { + fs.read(self.fd, buffer, offset, length, position, function(err, bytesRead, buffer) { + cb(); + callback(err, bytesRead, buffer); + }); + }); +}; + +FdSlicer.prototype.write = function(buffer, offset, length, position, callback) { + var self = this; + self.pend.go(function(cb) { + fs.write(self.fd, buffer, offset, length, position, function(err, written, buffer) { + cb(); + callback(err, written, buffer); + }); + }); +}; + +FdSlicer.prototype.createReadStream = function(options) { + return new ReadStream(this, options); +}; + +FdSlicer.prototype.createWriteStream = function(options) { + return new WriteStream(this, options); +}; + +FdSlicer.prototype.ref = function() { + this.refCount += 1; +}; + +FdSlicer.prototype.unref = function() { + var self = this; + self.refCount -= 1; + + if (self.refCount > 0) return; + if (self.refCount < 0) throw new Error("invalid unref"); + + if (self.autoClose) { + fs.close(self.fd, onCloseDone); + } + + function onCloseDone(err) { + if (err) { + self.emit('error', err); + } else { + self.emit('close'); + } + } +}; + +util.inherits(ReadStream, Readable); +function ReadStream(context, options) { + options = options || {}; + Readable.call(this, options); + + this.context = context; + this.context.ref(); + + this.start = options.start || 0; + this.endOffset = options.end; + this.pos = this.start; + this.destroyed = false; +} + +ReadStream.prototype._read = function(n) { + var self = this; + if (self.destroyed) return; + + var toRead = Math.min(self._readableState.highWaterMark, n); + if (self.endOffset != null) { + toRead = Math.min(toRead, self.endOffset - self.pos); + } + if (toRead <= 0) { + self.destroyed = true; + self.push(null); + self.context.unref(); + return; + } + self.context.pend.go(function(cb) { + if (self.destroyed) return cb(); + var buffer = new Buffer(toRead); + fs.read(self.context.fd, buffer, 0, toRead, self.pos, function(err, bytesRead) { + if (err) { + self.destroy(err); + } else if (bytesRead === 0) { + self.destroyed = true; + self.push(null); + self.context.unref(); + } else { + self.pos += bytesRead; + self.push(buffer.slice(0, bytesRead)); + } + cb(); + }); + }); +}; + +ReadStream.prototype.destroy = function(err) { + if (this.destroyed) return; + err = err || new Error("stream destroyed"); + this.destroyed = true; + this.emit('error', err); + this.context.unref(); +}; + +util.inherits(WriteStream, Writable); +function WriteStream(context, options) { + options = options || {}; + Writable.call(this, options); + + this.context = context; + this.context.ref(); + + this.start = options.start || 0; + this.endOffset = (options.end == null) ? Infinity : +options.end; + this.bytesWritten = 0; + this.pos = this.start; + this.destroyed = false; + + this.on('finish', this.destroy.bind(this)); +} + +WriteStream.prototype._write = function(buffer, encoding, callback) { + var self = this; + if (self.destroyed) return; + + if (self.pos + buffer.length > self.endOffset) { + var err = new Error("maximum file length exceeded"); + err.code = 'ETOOBIG'; + self.destroy(); + callback(err); + return; + } + self.context.pend.go(function(cb) { + if (self.destroyed) return cb(); + fs.write(self.context.fd, buffer, 0, buffer.length, self.pos, function(err, bytes) { + if (err) { + self.destroy(); + cb(); + callback(err); + } else { + self.bytesWritten += bytes; + self.pos += bytes; + self.emit('progress'); + cb(); + callback(); + } + }); + }); +}; + +WriteStream.prototype.destroy = function() { + if (this.destroyed) return; + this.destroyed = true; + this.context.unref(); +}; + +util.inherits(BufferSlicer, EventEmitter); +function BufferSlicer(buffer, options) { + EventEmitter.call(this); + + options = options || {}; + this.refCount = 0; + this.buffer = buffer; + this.maxChunkSize = options.maxChunkSize || Number.MAX_SAFE_INTEGER; +} + +BufferSlicer.prototype.read = function(buffer, offset, length, position, callback) { + var end = position + length; + var delta = end - this.buffer.length; + var written = (delta > 0) ? delta : length; + this.buffer.copy(buffer, offset, position, end); + setImmediate(function() { + callback(null, written); + }); +}; + +BufferSlicer.prototype.write = function(buffer, offset, length, position, callback) { + buffer.copy(this.buffer, position, offset, offset + length); + setImmediate(function() { + callback(null, length, buffer); + }); +}; + +BufferSlicer.prototype.createReadStream = function(options) { + options = options || {}; + var readStream = new PassThrough(options); + readStream.destroyed = false; + readStream.start = options.start || 0; + readStream.endOffset = options.end; + // by the time this function returns, we'll be done. + readStream.pos = readStream.endOffset || this.buffer.length; + + // respect the maxChunkSize option to slice up the chunk into smaller pieces. + var entireSlice = this.buffer.slice(readStream.start, readStream.pos); + var offset = 0; + while (true) { + var nextOffset = offset + this.maxChunkSize; + if (nextOffset >= entireSlice.length) { + // last chunk + if (offset < entireSlice.length) { + readStream.write(entireSlice.slice(offset, entireSlice.length)); + } + break; + } + readStream.write(entireSlice.slice(offset, nextOffset)); + offset = nextOffset; + } + + readStream.end(); + readStream.destroy = function() { + readStream.destroyed = true; + }; + return readStream; +}; + +BufferSlicer.prototype.createWriteStream = function(options) { + var bufferSlicer = this; + options = options || {}; + var writeStream = new Writable(options); + writeStream.start = options.start || 0; + writeStream.endOffset = (options.end == null) ? this.buffer.length : +options.end; + writeStream.bytesWritten = 0; + writeStream.pos = writeStream.start; + writeStream.destroyed = false; + writeStream._write = function(buffer, encoding, callback) { + if (writeStream.destroyed) return; + + var end = writeStream.pos + buffer.length; + if (end > writeStream.endOffset) { + var err = new Error("maximum file length exceeded"); + err.code = 'ETOOBIG'; + writeStream.destroyed = true; + callback(err); + return; + } + buffer.copy(bufferSlicer.buffer, writeStream.pos, 0, buffer.length); + + writeStream.bytesWritten += buffer.length; + writeStream.pos = end; + writeStream.emit('progress'); + callback(); + }; + writeStream.destroy = function() { + writeStream.destroyed = true; + }; + return writeStream; +}; + +BufferSlicer.prototype.ref = function() { + this.refCount += 1; +}; + +BufferSlicer.prototype.unref = function() { + this.refCount -= 1; + + if (this.refCount < 0) { + throw new Error("invalid unref"); + } +}; + +function createFromBuffer(buffer, options) { + return new BufferSlicer(buffer, options); +} + +function createFromFd(fd, options) { + return new FdSlicer(fd, options); +} diff --git a/node_modules/fd-slicer/package.json b/node_modules/fd-slicer/package.json new file mode 100644 index 0000000..407f677 --- /dev/null +++ b/node_modules/fd-slicer/package.json @@ -0,0 +1,36 @@ +{ + "name": "fd-slicer", + "version": "1.1.0", + "description": "safely create multiple ReadStream or WriteStream objects from the same file descriptor", + "main": "index.js", + "scripts": { + "test": "mocha --reporter spec --check-leaks", + "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot --check-leaks test/test.js", + "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --timeout 10000 --reporter spec --check-leaks test/test.js" + }, + "author": "Andrew Kelley ", + "license": "MIT", + "devDependencies": { + "istanbul": "~0.3.3", + "mocha": "~2.0.1", + "stream-equal": "~0.1.5", + "streamsink": "~1.2.0" + }, + "dependencies": { + "pend": "~1.2.0" + }, + "directories": { + "test": "test" + }, + "repository": { + "type": "git", + "url": "git://github.com/andrewrk/node-fd-slicer.git" + }, + "bugs": { + "url": "https://github.com/andrewrk/node-fd-slicer/issues" + }, + "keywords": [ + "createReadStream", + "createWriteStream" + ] +} diff --git a/node_modules/fd-slicer/test/test.js b/node_modules/fd-slicer/test/test.js new file mode 100644 index 0000000..d05ab00 --- /dev/null +++ b/node_modules/fd-slicer/test/test.js @@ -0,0 +1,350 @@ +var fdSlicer = require('../'); +var fs = require('fs'); +var crypto = require('crypto'); +var path = require('path'); +var streamEqual = require('stream-equal'); +var assert = require('assert'); +var Pend = require('pend'); +var StreamSink = require('streamsink'); + +var describe = global.describe; +var it = global.it; +var before = global.before; +var beforeEach = global.beforeEach; +var after = global.after; + +var testBlobFile = path.join(__dirname, "test-blob.bin"); +var testBlobFileSize = 20 * 1024 * 1024; +var testOutBlobFile = path.join(__dirname, "test-blob-out.bin"); + +describe("FdSlicer", function() { + before(function(done) { + var out = fs.createWriteStream(testBlobFile); + for (var i = 0; i < testBlobFileSize / 1024; i += 1) { + out.write(crypto.pseudoRandomBytes(1024)); + } + out.end(); + out.on('close', done); + }); + beforeEach(function() { + try { + fs.unlinkSync(testOutBlobFile); + } catch (err) { + } + }); + after(function() { + try { + fs.unlinkSync(testBlobFile); + fs.unlinkSync(testOutBlobFile); + } catch (err) { + } + }); + it("reads a 20MB file (autoClose on)", function(done) { + fs.open(testBlobFile, 'r', function(err, fd) { + if (err) return done(err); + var slicer = fdSlicer.createFromFd(fd, {autoClose: true}); + var actualStream = slicer.createReadStream(); + var expectedStream = fs.createReadStream(testBlobFile); + + var pend = new Pend(); + pend.go(function(cb) { + slicer.on('close', cb); + }); + pend.go(function(cb) { + streamEqual(expectedStream, actualStream, function(err, equal) { + if (err) return done(err); + assert.ok(equal); + cb(); + }); + }); + pend.wait(done); + }); + }); + it("reads 4 chunks simultaneously", function(done) { + fs.open(testBlobFile, 'r', function(err, fd) { + if (err) return done(err); + var slicer = fdSlicer.createFromFd(fd); + var actualPart1 = slicer.createReadStream({start: testBlobFileSize * 0/4, end: testBlobFileSize * 1/4}); + var actualPart2 = slicer.createReadStream({start: testBlobFileSize * 1/4, end: testBlobFileSize * 2/4}); + var actualPart3 = slicer.createReadStream({start: testBlobFileSize * 2/4, end: testBlobFileSize * 3/4}); + var actualPart4 = slicer.createReadStream({start: testBlobFileSize * 3/4, end: testBlobFileSize * 4/4}); + var expectedPart1 = slicer.createReadStream({start: testBlobFileSize * 0/4, end: testBlobFileSize * 1/4}); + var expectedPart2 = slicer.createReadStream({start: testBlobFileSize * 1/4, end: testBlobFileSize * 2/4}); + var expectedPart3 = slicer.createReadStream({start: testBlobFileSize * 2/4, end: testBlobFileSize * 3/4}); + var expectedPart4 = slicer.createReadStream({start: testBlobFileSize * 3/4, end: testBlobFileSize * 4/4}); + var pend = new Pend(); + pend.go(function(cb) { + streamEqual(expectedPart1, actualPart1, function(err, equal) { + assert.ok(equal); + cb(err); + }); + }); + pend.go(function(cb) { + streamEqual(expectedPart2, actualPart2, function(err, equal) { + assert.ok(equal); + cb(err); + }); + }); + pend.go(function(cb) { + streamEqual(expectedPart3, actualPart3, function(err, equal) { + assert.ok(equal); + cb(err); + }); + }); + pend.go(function(cb) { + streamEqual(expectedPart4, actualPart4, function(err, equal) { + assert.ok(equal); + cb(err); + }); + }); + pend.wait(function(err) { + if (err) return done(err); + fs.close(fd, done); + }); + }); + }); + + it("writes a 20MB file (autoClose on)", function(done) { + fs.open(testOutBlobFile, 'w', function(err, fd) { + if (err) return done(err); + var slicer = fdSlicer.createFromFd(fd, {autoClose: true}); + var actualStream = slicer.createWriteStream(); + var inStream = fs.createReadStream(testBlobFile); + + slicer.on('close', function() { + var expected = fs.createReadStream(testBlobFile); + var actual = fs.createReadStream(testOutBlobFile); + + streamEqual(expected, actual, function(err, equal) { + if (err) return done(err); + assert.ok(equal); + done(); + }); + }); + inStream.pipe(actualStream); + }); + }); + + it("writes 4 chunks simultaneously", function(done) { + fs.open(testOutBlobFile, 'w', function(err, fd) { + if (err) return done(err); + var slicer = fdSlicer.createFromFd(fd); + var actualPart1 = slicer.createWriteStream({start: testBlobFileSize * 0/4}); + var actualPart2 = slicer.createWriteStream({start: testBlobFileSize * 1/4}); + var actualPart3 = slicer.createWriteStream({start: testBlobFileSize * 2/4}); + var actualPart4 = slicer.createWriteStream({start: testBlobFileSize * 3/4}); + var in1 = fs.createReadStream(testBlobFile, {start: testBlobFileSize * 0/4, end: testBlobFileSize * 1/4}); + var in2 = fs.createReadStream(testBlobFile, {start: testBlobFileSize * 1/4, end: testBlobFileSize * 2/4}); + var in3 = fs.createReadStream(testBlobFile, {start: testBlobFileSize * 2/4, end: testBlobFileSize * 3/4}); + var in4 = fs.createReadStream(testBlobFile, {start: testBlobFileSize * 3/4, end: testBlobFileSize * 4/4}); + var pend = new Pend(); + pend.go(function(cb) { + actualPart1.on('finish', cb); + }); + pend.go(function(cb) { + actualPart2.on('finish', cb); + }); + pend.go(function(cb) { + actualPart3.on('finish', cb); + }); + pend.go(function(cb) { + actualPart4.on('finish', cb); + }); + in1.pipe(actualPart1); + in2.pipe(actualPart2); + in3.pipe(actualPart3); + in4.pipe(actualPart4); + pend.wait(function() { + fs.close(fd, function(err) { + if (err) return done(err); + var expected = fs.createReadStream(testBlobFile); + var actual = fs.createReadStream(testOutBlobFile); + streamEqual(expected, actual, function(err, equal) { + if (err) return done(err); + assert.ok(equal); + done(); + }); + }); + }); + }); + }); + + it("throws on invalid ref", function(done) { + fs.open(testOutBlobFile, 'w', function(err, fd) { + if (err) return done(err); + var slicer = fdSlicer.createFromFd(fd, {autoClose: true}); + assert.throws(function() { + slicer.unref(); + }, /invalid unref/); + fs.close(fd, done); + }); + }); + + it("write stream emits error when max size exceeded", function(done) { + fs.open(testOutBlobFile, 'w', function(err, fd) { + if (err) return done(err); + var slicer = fdSlicer.createFromFd(fd, {autoClose: true}); + var ws = slicer.createWriteStream({start: 0, end: 1000}); + ws.on('error', function(err) { + assert.strictEqual(err.code, 'ETOOBIG'); + slicer.on('close', done); + }); + ws.end(new Buffer(1001)); + }); + }); + + it("write stream does not emit error when max size not exceeded", function(done) { + fs.open(testOutBlobFile, 'w', function(err, fd) { + if (err) return done(err); + var slicer = fdSlicer.createFromFd(fd, {autoClose: true}); + var ws = slicer.createWriteStream({end: 1000}); + slicer.on('close', done); + ws.end(new Buffer(1000)); + }); + }); + + it("write stream start and end work together", function(done) { + fs.open(testOutBlobFile, 'w', function(err, fd) { + if (err) return done(err); + var slicer = fdSlicer.createFromFd(fd, {autoClose: true}); + var ws = slicer.createWriteStream({start: 1, end: 1000}); + ws.on('error', function(err) { + assert.strictEqual(err.code, 'ETOOBIG'); + slicer.on('close', done); + }); + ws.end(new Buffer(1000)); + }); + }); + + it("write stream emits progress events", function(done) { + fs.open(testOutBlobFile, 'w', function(err, fd) { + if (err) return done(err); + var slicer = fdSlicer.createFromFd(fd, {autoClose: true}); + var ws = slicer.createWriteStream(); + var progressEventCount = 0; + var prevBytesWritten = 0; + ws.on('progress', function() { + progressEventCount += 1; + assert.ok(ws.bytesWritten > prevBytesWritten); + prevBytesWritten = ws.bytesWritten; + }); + slicer.on('close', function() { + assert.ok(progressEventCount > 5); + done(); + }); + for (var i = 0; i < 10; i += 1) { + ws.write(new Buffer(16 * 1024 * 2)); + } + ws.end(); + }); + }); + + it("write stream unrefs when destroyed", function(done) { + fs.open(testOutBlobFile, 'w', function(err, fd) { + if (err) return done(err); + var slicer = fdSlicer.createFromFd(fd, {autoClose: true}); + var ws = slicer.createWriteStream(); + slicer.on('close', done); + ws.write(new Buffer(1000)); + ws.destroy(); + }); + }); + + it("read stream unrefs when destroyed", function(done) { + fs.open(testBlobFile, 'r', function(err, fd) { + if (err) return done(err); + var slicer = fdSlicer.createFromFd(fd, {autoClose: true}); + var rs = slicer.createReadStream(); + rs.on('error', function(err) { + assert.strictEqual(err.message, "stream destroyed"); + slicer.on('close', done); + }); + rs.destroy(); + }); + }); + + it("fdSlicer.read", function(done) { + fs.open(testBlobFile, 'r', function(err, fd) { + if (err) return done(err); + var slicer = fdSlicer.createFromFd(fd); + var outBuf = new Buffer(1024); + slicer.read(outBuf, 0, 10, 0, function(err, bytesRead, buf) { + assert.strictEqual(bytesRead, 10); + fs.close(fd, done); + }); + }); + }); + + it("fdSlicer.write", function(done) { + fs.open(testOutBlobFile, 'w', function(err, fd) { + if (err) return done(err); + var slicer = fdSlicer.createFromFd(fd); + slicer.write(new Buffer("blah\n"), 0, 5, 0, function() { + if (err) return done(err); + fs.close(fd, done); + }); + }); + }); +}); + +describe("BufferSlicer", function() { + it("invalid ref", function() { + var slicer = fdSlicer.createFromBuffer(new Buffer(16)); + slicer.ref(); + slicer.unref(); + assert.throws(function() { + slicer.unref(); + }, /invalid unref/); + }); + it("read and write", function(done) { + var buf = new Buffer("through the tangled thread the needle finds its way"); + var slicer = fdSlicer.createFromBuffer(buf); + var outBuf = new Buffer(1024); + slicer.read(outBuf, 10, 11, 8, function(err) { + if (err) return done(err); + assert.strictEqual(outBuf.toString('utf8', 10, 21), "the tangled"); + slicer.write(new Buffer("derp"), 0, 4, 7, function(err) { + if (err) return done(err); + assert.strictEqual(buf.toString('utf8', 7, 19), "derp tangled"); + done(); + }); + }); + }); + it("createReadStream", function(done) { + var str = "I never conquered rarely came, 16 just held such better days"; + var buf = new Buffer(str); + var slicer = fdSlicer.createFromBuffer(buf); + var inStream = slicer.createReadStream(); + var sink = new StreamSink(); + inStream.pipe(sink); + sink.on('finish', function() { + assert.strictEqual(sink.toString(), str); + inStream.destroy(); + done(); + }); + }); + it("createWriteStream exceed buffer size", function(done) { + var slicer = fdSlicer.createFromBuffer(new Buffer(4)); + var outStream = slicer.createWriteStream(); + outStream.on('error', function(err) { + assert.strictEqual(err.code, 'ETOOBIG'); + done(); + }); + outStream.write("hi!\n"); + outStream.write("it warked\n"); + outStream.end(); + }); + it("createWriteStream ok", function(done) { + var buf = new Buffer(1024); + var slicer = fdSlicer.createFromBuffer(buf); + var outStream = slicer.createWriteStream(); + outStream.on('finish', function() { + assert.strictEqual(buf.toString('utf8', 0, "hi!\nit warked\n".length), "hi!\nit warked\n"); + outStream.destroy(); + done(); + }); + outStream.write("hi!\n"); + outStream.write("it warked\n"); + outStream.end(); + }); +}); diff --git a/node_modules/follow-redirects/LICENSE b/node_modules/follow-redirects/LICENSE new file mode 100644 index 0000000..742cbad --- /dev/null +++ b/node_modules/follow-redirects/LICENSE @@ -0,0 +1,18 @@ +Copyright 2014–present Olivier Lalonde , James Talmage , Ruben Verborgh + +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/follow-redirects/README.md b/node_modules/follow-redirects/README.md new file mode 100644 index 0000000..eb869a6 --- /dev/null +++ b/node_modules/follow-redirects/README.md @@ -0,0 +1,155 @@ +## Follow Redirects + +Drop-in replacement for Node's `http` and `https` modules that automatically follows redirects. + +[![npm version](https://img.shields.io/npm/v/follow-redirects.svg)](https://www.npmjs.com/package/follow-redirects) +[![Build Status](https://github.com/follow-redirects/follow-redirects/workflows/CI/badge.svg)](https://github.com/follow-redirects/follow-redirects/actions) +[![Coverage Status](https://coveralls.io/repos/follow-redirects/follow-redirects/badge.svg?branch=master)](https://coveralls.io/r/follow-redirects/follow-redirects?branch=master) +[![npm downloads](https://img.shields.io/npm/dm/follow-redirects.svg)](https://www.npmjs.com/package/follow-redirects) +[![Sponsor on GitHub](https://img.shields.io/static/v1?label=Sponsor&message=%F0%9F%92%96&logo=GitHub)](https://github.com/sponsors/RubenVerborgh) + +`follow-redirects` provides [request](https://nodejs.org/api/http.html#http_http_request_options_callback) and [get](https://nodejs.org/api/http.html#http_http_get_options_callback) + methods that behave identically to those found on the native [http](https://nodejs.org/api/http.html#http_http_request_options_callback) and [https](https://nodejs.org/api/https.html#https_https_request_options_callback) + modules, with the exception that they will seamlessly follow redirects. + +```javascript +const { http, https } = require('follow-redirects'); + +http.get('http://bit.ly/900913', response => { + response.on('data', chunk => { + console.log(chunk); + }); +}).on('error', err => { + console.error(err); +}); +``` + +You can inspect the final redirected URL through the `responseUrl` property on the `response`. +If no redirection happened, `responseUrl` is the original request URL. + +```javascript +const request = https.request({ + host: 'bitly.com', + path: '/UHfDGO', +}, response => { + console.log(response.responseUrl); + // 'http://duckduckgo.com/robots.txt' +}); +request.end(); +``` + +## Options +### Global options +Global options are set directly on the `follow-redirects` module: + +```javascript +const followRedirects = require('follow-redirects'); +followRedirects.maxRedirects = 10; +followRedirects.maxBodyLength = 20 * 1024 * 1024; // 20 MB +``` + +The following global options are supported: + +- `maxRedirects` (default: `21`) – sets the maximum number of allowed redirects; if exceeded, an error will be emitted. + +- `maxBodyLength` (default: 10MB) – sets the maximum size of the request body; if exceeded, an error will be emitted. + +### Per-request options +Per-request options are set by passing an `options` object: + +```javascript +const url = require('url'); +const { http, https } = require('follow-redirects'); + +const options = url.parse('http://bit.ly/900913'); +options.maxRedirects = 10; +options.beforeRedirect = (options, response, request) => { + // Use this to adjust the request options upon redirecting, + // to inspect the latest response headers, + // or to cancel the request by throwing an error + + // response.headers = the redirect response headers + // response.statusCode = the redirect response code (eg. 301, 307, etc.) + + // request.url = the requested URL that resulted in a redirect + // request.headers = the headers in the request that resulted in a redirect + // request.method = the method of the request that resulted in a redirect + if (options.hostname === "example.com") { + options.auth = "user:password"; + } +}; +http.request(options); +``` + +In addition to the [standard HTTP](https://nodejs.org/api/http.html#http_http_request_options_callback) and [HTTPS options](https://nodejs.org/api/https.html#https_https_request_options_callback), +the following per-request options are supported: +- `followRedirects` (default: `true`) – whether redirects should be followed. + +- `maxRedirects` (default: `21`) – sets the maximum number of allowed redirects; if exceeded, an error will be emitted. + +- `maxBodyLength` (default: 10MB) – sets the maximum size of the request body; if exceeded, an error will be emitted. + +- `beforeRedirect` (default: `undefined`) – optionally change the request `options` on redirects, or abort the request by throwing an error. + +- `agents` (default: `undefined`) – sets the `agent` option per protocol, since HTTP and HTTPS use different agents. Example value: `{ http: new http.Agent(), https: new https.Agent() }` + +- `trackRedirects` (default: `false`) – whether to store the redirected response details into the `redirects` array on the response object. + + +### Advanced usage +By default, `follow-redirects` will use the Node.js default implementations +of [`http`](https://nodejs.org/api/http.html) +and [`https`](https://nodejs.org/api/https.html). +To enable features such as caching and/or intermediate request tracking, +you might instead want to wrap `follow-redirects` around custom protocol implementations: + +```javascript +const { http, https } = require('follow-redirects').wrap({ + http: require('your-custom-http'), + https: require('your-custom-https'), +}); +``` + +Such custom protocols only need an implementation of the `request` method. + +## Browser Usage + +Due to the way the browser works, +the `http` and `https` browser equivalents perform redirects by default. + +By requiring `follow-redirects` this way: +```javascript +const http = require('follow-redirects/http'); +const https = require('follow-redirects/https'); +``` +you can easily tell webpack and friends to replace +`follow-redirect` by the built-in versions: + +```json +{ + "follow-redirects/http" : "http", + "follow-redirects/https" : "https" +} +``` + +## Contributing + +Pull Requests are always welcome. Please [file an issue](https://github.com/follow-redirects/follow-redirects/issues) + detailing your proposal before you invest your valuable time. Additional features and bug fixes should be accompanied + by tests. You can run the test suite locally with a simple `npm test` command. + +## Debug Logging + +`follow-redirects` uses the excellent [debug](https://www.npmjs.com/package/debug) for logging. To turn on logging + set the environment variable `DEBUG=follow-redirects` for debug output from just this module. When running the test + suite it is sometimes advantageous to set `DEBUG=*` to see output from the express server as well. + +## Authors + +- [Ruben Verborgh](https://ruben.verborgh.org/) +- [Olivier Lalonde](mailto:olalonde@gmail.com) +- [James Talmage](mailto:james@talmage.io) + +## License + +[MIT License](https://github.com/follow-redirects/follow-redirects/blob/master/LICENSE) diff --git a/node_modules/follow-redirects/debug.js b/node_modules/follow-redirects/debug.js new file mode 100644 index 0000000..decb77d --- /dev/null +++ b/node_modules/follow-redirects/debug.js @@ -0,0 +1,15 @@ +var debug; + +module.exports = function () { + if (!debug) { + try { + /* eslint global-require: off */ + debug = require("debug")("follow-redirects"); + } + catch (error) { /* */ } + if (typeof debug !== "function") { + debug = function () { /* */ }; + } + } + debug.apply(null, arguments); +}; diff --git a/node_modules/follow-redirects/http.js b/node_modules/follow-redirects/http.js new file mode 100644 index 0000000..695e356 --- /dev/null +++ b/node_modules/follow-redirects/http.js @@ -0,0 +1 @@ +module.exports = require("./").http; diff --git a/node_modules/follow-redirects/https.js b/node_modules/follow-redirects/https.js new file mode 100644 index 0000000..d21c921 --- /dev/null +++ b/node_modules/follow-redirects/https.js @@ -0,0 +1 @@ +module.exports = require("./").https; diff --git a/node_modules/follow-redirects/index.js b/node_modules/follow-redirects/index.js new file mode 100644 index 0000000..3e199c1 --- /dev/null +++ b/node_modules/follow-redirects/index.js @@ -0,0 +1,621 @@ +var url = require("url"); +var URL = url.URL; +var http = require("http"); +var https = require("https"); +var Writable = require("stream").Writable; +var assert = require("assert"); +var debug = require("./debug"); + +// Create handlers that pass events from native requests +var events = ["abort", "aborted", "connect", "error", "socket", "timeout"]; +var eventHandlers = Object.create(null); +events.forEach(function (event) { + eventHandlers[event] = function (arg1, arg2, arg3) { + this._redirectable.emit(event, arg1, arg2, arg3); + }; +}); + +var InvalidUrlError = createErrorType( + "ERR_INVALID_URL", + "Invalid URL", + TypeError +); +// Error types with codes +var RedirectionError = createErrorType( + "ERR_FR_REDIRECTION_FAILURE", + "Redirected request failed" +); +var TooManyRedirectsError = createErrorType( + "ERR_FR_TOO_MANY_REDIRECTS", + "Maximum number of redirects exceeded" +); +var MaxBodyLengthExceededError = createErrorType( + "ERR_FR_MAX_BODY_LENGTH_EXCEEDED", + "Request body larger than maxBodyLength limit" +); +var WriteAfterEndError = createErrorType( + "ERR_STREAM_WRITE_AFTER_END", + "write after end" +); + +// An HTTP(S) request that can be redirected +function RedirectableRequest(options, responseCallback) { + // Initialize the request + Writable.call(this); + this._sanitizeOptions(options); + this._options = options; + this._ended = false; + this._ending = false; + this._redirectCount = 0; + this._redirects = []; + this._requestBodyLength = 0; + this._requestBodyBuffers = []; + + // Attach a callback if passed + if (responseCallback) { + this.on("response", responseCallback); + } + + // React to responses of native requests + var self = this; + this._onNativeResponse = function (response) { + self._processResponse(response); + }; + + // Perform the first request + this._performRequest(); +} +RedirectableRequest.prototype = Object.create(Writable.prototype); + +RedirectableRequest.prototype.abort = function () { + abortRequest(this._currentRequest); + this.emit("abort"); +}; + +// Writes buffered data to the current native request +RedirectableRequest.prototype.write = function (data, encoding, callback) { + // Writing is not allowed if end has been called + if (this._ending) { + throw new WriteAfterEndError(); + } + + // Validate input and shift parameters if necessary + if (!isString(data) && !isBuffer(data)) { + throw new TypeError("data should be a string, Buffer or Uint8Array"); + } + if (isFunction(encoding)) { + callback = encoding; + encoding = null; + } + + // Ignore empty buffers, since writing them doesn't invoke the callback + // https://github.com/nodejs/node/issues/22066 + if (data.length === 0) { + if (callback) { + callback(); + } + return; + } + // Only write when we don't exceed the maximum body length + if (this._requestBodyLength + data.length <= this._options.maxBodyLength) { + this._requestBodyLength += data.length; + this._requestBodyBuffers.push({ data: data, encoding: encoding }); + this._currentRequest.write(data, encoding, callback); + } + // Error when we exceed the maximum body length + else { + this.emit("error", new MaxBodyLengthExceededError()); + this.abort(); + } +}; + +// Ends the current native request +RedirectableRequest.prototype.end = function (data, encoding, callback) { + // Shift parameters if necessary + if (isFunction(data)) { + callback = data; + data = encoding = null; + } + else if (isFunction(encoding)) { + callback = encoding; + encoding = null; + } + + // Write data if needed and end + if (!data) { + this._ended = this._ending = true; + this._currentRequest.end(null, null, callback); + } + else { + var self = this; + var currentRequest = this._currentRequest; + this.write(data, encoding, function () { + self._ended = true; + currentRequest.end(null, null, callback); + }); + this._ending = true; + } +}; + +// Sets a header value on the current native request +RedirectableRequest.prototype.setHeader = function (name, value) { + this._options.headers[name] = value; + this._currentRequest.setHeader(name, value); +}; + +// Clears a header value on the current native request +RedirectableRequest.prototype.removeHeader = function (name) { + delete this._options.headers[name]; + this._currentRequest.removeHeader(name); +}; + +// Global timeout for all underlying requests +RedirectableRequest.prototype.setTimeout = function (msecs, callback) { + var self = this; + + // Destroys the socket on timeout + function destroyOnTimeout(socket) { + socket.setTimeout(msecs); + socket.removeListener("timeout", socket.destroy); + socket.addListener("timeout", socket.destroy); + } + + // Sets up a timer to trigger a timeout event + function startTimer(socket) { + if (self._timeout) { + clearTimeout(self._timeout); + } + self._timeout = setTimeout(function () { + self.emit("timeout"); + clearTimer(); + }, msecs); + destroyOnTimeout(socket); + } + + // Stops a timeout from triggering + function clearTimer() { + // Clear the timeout + if (self._timeout) { + clearTimeout(self._timeout); + self._timeout = null; + } + + // Clean up all attached listeners + self.removeListener("abort", clearTimer); + self.removeListener("error", clearTimer); + self.removeListener("response", clearTimer); + if (callback) { + self.removeListener("timeout", callback); + } + if (!self.socket) { + self._currentRequest.removeListener("socket", startTimer); + } + } + + // Attach callback if passed + if (callback) { + this.on("timeout", callback); + } + + // Start the timer if or when the socket is opened + if (this.socket) { + startTimer(this.socket); + } + else { + this._currentRequest.once("socket", startTimer); + } + + // Clean up on events + this.on("socket", destroyOnTimeout); + this.on("abort", clearTimer); + this.on("error", clearTimer); + this.on("response", clearTimer); + + return this; +}; + +// Proxy all other public ClientRequest methods +[ + "flushHeaders", "getHeader", + "setNoDelay", "setSocketKeepAlive", +].forEach(function (method) { + RedirectableRequest.prototype[method] = function (a, b) { + return this._currentRequest[method](a, b); + }; +}); + +// Proxy all public ClientRequest properties +["aborted", "connection", "socket"].forEach(function (property) { + Object.defineProperty(RedirectableRequest.prototype, property, { + get: function () { return this._currentRequest[property]; }, + }); +}); + +RedirectableRequest.prototype._sanitizeOptions = function (options) { + // Ensure headers are always present + if (!options.headers) { + options.headers = {}; + } + + // Since http.request treats host as an alias of hostname, + // but the url module interprets host as hostname plus port, + // eliminate the host property to avoid confusion. + if (options.host) { + // Use hostname if set, because it has precedence + if (!options.hostname) { + options.hostname = options.host; + } + delete options.host; + } + + // Complete the URL object when necessary + if (!options.pathname && options.path) { + var searchPos = options.path.indexOf("?"); + if (searchPos < 0) { + options.pathname = options.path; + } + else { + options.pathname = options.path.substring(0, searchPos); + options.search = options.path.substring(searchPos); + } + } +}; + + +// Executes the next native request (initial or redirect) +RedirectableRequest.prototype._performRequest = function () { + // Load the native protocol + var protocol = this._options.protocol; + var nativeProtocol = this._options.nativeProtocols[protocol]; + if (!nativeProtocol) { + this.emit("error", new TypeError("Unsupported protocol " + protocol)); + return; + } + + // If specified, use the agent corresponding to the protocol + // (HTTP and HTTPS use different types of agents) + if (this._options.agents) { + var scheme = protocol.slice(0, -1); + this._options.agent = this._options.agents[scheme]; + } + + // Create the native request and set up its event handlers + var request = this._currentRequest = + nativeProtocol.request(this._options, this._onNativeResponse); + request._redirectable = this; + for (var event of events) { + request.on(event, eventHandlers[event]); + } + + // RFC7230§5.3.1: When making a request directly to an origin server, […] + // a client MUST send only the absolute path […] as the request-target. + this._currentUrl = /^\//.test(this._options.path) ? + url.format(this._options) : + // When making a request to a proxy, […] + // a client MUST send the target URI in absolute-form […]. + this._options.path; + + // End a redirected request + // (The first request must be ended explicitly with RedirectableRequest#end) + if (this._isRedirect) { + // Write the request entity and end + var i = 0; + var self = this; + var buffers = this._requestBodyBuffers; + (function writeNext(error) { + // Only write if this request has not been redirected yet + /* istanbul ignore else */ + if (request === self._currentRequest) { + // Report any write errors + /* istanbul ignore if */ + if (error) { + self.emit("error", error); + } + // Write the next buffer if there are still left + else if (i < buffers.length) { + var buffer = buffers[i++]; + /* istanbul ignore else */ + if (!request.finished) { + request.write(buffer.data, buffer.encoding, writeNext); + } + } + // End the request if `end` has been called on us + else if (self._ended) { + request.end(); + } + } + }()); + } +}; + +// Processes a response from the current native request +RedirectableRequest.prototype._processResponse = function (response) { + // Store the redirected response + var statusCode = response.statusCode; + if (this._options.trackRedirects) { + this._redirects.push({ + url: this._currentUrl, + headers: response.headers, + statusCode: statusCode, + }); + } + + // RFC7231§6.4: The 3xx (Redirection) class of status code indicates + // that further action needs to be taken by the user agent in order to + // fulfill the request. If a Location header field is provided, + // the user agent MAY automatically redirect its request to the URI + // referenced by the Location field value, + // even if the specific status code is not understood. + + // If the response is not a redirect; return it as-is + var location = response.headers.location; + if (!location || this._options.followRedirects === false || + statusCode < 300 || statusCode >= 400) { + response.responseUrl = this._currentUrl; + response.redirects = this._redirects; + this.emit("response", response); + + // Clean up + this._requestBodyBuffers = []; + return; + } + + // The response is a redirect, so abort the current request + abortRequest(this._currentRequest); + // Discard the remainder of the response to avoid waiting for data + response.destroy(); + + // RFC7231§6.4: A client SHOULD detect and intervene + // in cyclical redirections (i.e., "infinite" redirection loops). + if (++this._redirectCount > this._options.maxRedirects) { + this.emit("error", new TooManyRedirectsError()); + return; + } + + // Store the request headers if applicable + var requestHeaders; + var beforeRedirect = this._options.beforeRedirect; + if (beforeRedirect) { + requestHeaders = Object.assign({ + // The Host header was set by nativeProtocol.request + Host: response.req.getHeader("host"), + }, this._options.headers); + } + + // RFC7231§6.4: Automatic redirection needs to done with + // care for methods not known to be safe, […] + // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change + // the request method from POST to GET for the subsequent request. + var method = this._options.method; + if ((statusCode === 301 || statusCode === 302) && this._options.method === "POST" || + // RFC7231§6.4.4: The 303 (See Other) status code indicates that + // the server is redirecting the user agent to a different resource […] + // A user agent can perform a retrieval request targeting that URI + // (a GET or HEAD request if using HTTP) […] + (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) { + this._options.method = "GET"; + // Drop a possible entity and headers related to it + this._requestBodyBuffers = []; + removeMatchingHeaders(/^content-/i, this._options.headers); + } + + // Drop the Host header, as the redirect might lead to a different host + var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers); + + // If the redirect is relative, carry over the host of the last request + var currentUrlParts = url.parse(this._currentUrl); + var currentHost = currentHostHeader || currentUrlParts.host; + var currentUrl = /^\w+:/.test(location) ? this._currentUrl : + url.format(Object.assign(currentUrlParts, { host: currentHost })); + + // Determine the URL of the redirection + var redirectUrl; + try { + redirectUrl = url.resolve(currentUrl, location); + } + catch (cause) { + this.emit("error", new RedirectionError({ cause: cause })); + return; + } + + // Create the redirected request + debug("redirecting to", redirectUrl); + this._isRedirect = true; + var redirectUrlParts = url.parse(redirectUrl); + Object.assign(this._options, redirectUrlParts); + + // Drop confidential headers when redirecting to a less secure protocol + // or to a different domain that is not a superdomain + if (redirectUrlParts.protocol !== currentUrlParts.protocol && + redirectUrlParts.protocol !== "https:" || + redirectUrlParts.host !== currentHost && + !isSubdomain(redirectUrlParts.host, currentHost)) { + removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers); + } + + // Evaluate the beforeRedirect callback + if (isFunction(beforeRedirect)) { + var responseDetails = { + headers: response.headers, + statusCode: statusCode, + }; + var requestDetails = { + url: currentUrl, + method: method, + headers: requestHeaders, + }; + try { + beforeRedirect(this._options, responseDetails, requestDetails); + } + catch (err) { + this.emit("error", err); + return; + } + this._sanitizeOptions(this._options); + } + + // Perform the redirected request + try { + this._performRequest(); + } + catch (cause) { + this.emit("error", new RedirectionError({ cause: cause })); + } +}; + +// Wraps the key/value object of protocols with redirect functionality +function wrap(protocols) { + // Default settings + var exports = { + maxRedirects: 21, + maxBodyLength: 10 * 1024 * 1024, + }; + + // Wrap each protocol + var nativeProtocols = {}; + Object.keys(protocols).forEach(function (scheme) { + var protocol = scheme + ":"; + var nativeProtocol = nativeProtocols[protocol] = protocols[scheme]; + var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol); + + // Executes a request, following redirects + function request(input, options, callback) { + // Parse parameters + if (isString(input)) { + var parsed; + try { + parsed = urlToOptions(new URL(input)); + } + catch (err) { + /* istanbul ignore next */ + parsed = url.parse(input); + } + if (!isString(parsed.protocol)) { + throw new InvalidUrlError({ input }); + } + input = parsed; + } + else if (URL && (input instanceof URL)) { + input = urlToOptions(input); + } + else { + callback = options; + options = input; + input = { protocol: protocol }; + } + if (isFunction(options)) { + callback = options; + options = null; + } + + // Set defaults + options = Object.assign({ + maxRedirects: exports.maxRedirects, + maxBodyLength: exports.maxBodyLength, + }, input, options); + options.nativeProtocols = nativeProtocols; + if (!isString(options.host) && !isString(options.hostname)) { + options.hostname = "::1"; + } + + assert.equal(options.protocol, protocol, "protocol mismatch"); + debug("options", options); + return new RedirectableRequest(options, callback); + } + + // Executes a GET request, following redirects + function get(input, options, callback) { + var wrappedRequest = wrappedProtocol.request(input, options, callback); + wrappedRequest.end(); + return wrappedRequest; + } + + // Expose the properties on the wrapped protocol + Object.defineProperties(wrappedProtocol, { + request: { value: request, configurable: true, enumerable: true, writable: true }, + get: { value: get, configurable: true, enumerable: true, writable: true }, + }); + }); + return exports; +} + +/* istanbul ignore next */ +function noop() { /* empty */ } + +// from https://github.com/nodejs/node/blob/master/lib/internal/url.js +function urlToOptions(urlObject) { + var options = { + protocol: urlObject.protocol, + hostname: urlObject.hostname.startsWith("[") ? + /* istanbul ignore next */ + urlObject.hostname.slice(1, -1) : + urlObject.hostname, + hash: urlObject.hash, + search: urlObject.search, + pathname: urlObject.pathname, + path: urlObject.pathname + urlObject.search, + href: urlObject.href, + }; + if (urlObject.port !== "") { + options.port = Number(urlObject.port); + } + return options; +} + +function removeMatchingHeaders(regex, headers) { + var lastValue; + for (var header in headers) { + if (regex.test(header)) { + lastValue = headers[header]; + delete headers[header]; + } + } + return (lastValue === null || typeof lastValue === "undefined") ? + undefined : String(lastValue).trim(); +} + +function createErrorType(code, message, baseClass) { + // Create constructor + function CustomError(properties) { + Error.captureStackTrace(this, this.constructor); + Object.assign(this, properties || {}); + this.code = code; + this.message = this.cause ? message + ": " + this.cause.message : message; + } + + // Attach constructor and set default properties + CustomError.prototype = new (baseClass || Error)(); + CustomError.prototype.constructor = CustomError; + CustomError.prototype.name = "Error [" + code + "]"; + return CustomError; +} + +function abortRequest(request) { + for (var event of events) { + request.removeListener(event, eventHandlers[event]); + } + request.on("error", noop); + request.abort(); +} + +function isSubdomain(subdomain, domain) { + assert(isString(subdomain) && isString(domain)); + var dot = subdomain.length - domain.length - 1; + return dot > 0 && subdomain[dot] === "." && subdomain.endsWith(domain); +} + +function isString(value) { + return typeof value === "string" || value instanceof String; +} + +function isFunction(value) { + return typeof value === "function"; +} + +function isBuffer(value) { + return typeof value === "object" && ("length" in value); +} + +// Exports +module.exports = wrap({ http: http, https: https }); +module.exports.wrap = wrap; diff --git a/node_modules/follow-redirects/package.json b/node_modules/follow-redirects/package.json new file mode 100644 index 0000000..97717c5 --- /dev/null +++ b/node_modules/follow-redirects/package.json @@ -0,0 +1,59 @@ +{ + "name": "follow-redirects", + "version": "1.15.2", + "description": "HTTP and HTTPS modules that follow redirects.", + "license": "MIT", + "main": "index.js", + "files": [ + "*.js" + ], + "engines": { + "node": ">=4.0" + }, + "scripts": { + "test": "npm run lint && npm run mocha", + "lint": "eslint *.js test", + "mocha": "nyc mocha" + }, + "repository": { + "type": "git", + "url": "git@github.com:follow-redirects/follow-redirects.git" + }, + "homepage": "https://github.com/follow-redirects/follow-redirects", + "bugs": { + "url": "https://github.com/follow-redirects/follow-redirects/issues" + }, + "keywords": [ + "http", + "https", + "url", + "redirect", + "client", + "location", + "utility" + ], + "author": "Ruben Verborgh (https://ruben.verborgh.org/)", + "contributors": [ + "Olivier Lalonde (http://www.syskall.com)", + "James Talmage " + ], + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "peerDependenciesMeta": { + "debug": { + "optional": true + } + }, + "devDependencies": { + "concat-stream": "^2.0.0", + "eslint": "^5.16.0", + "express": "^4.16.4", + "lolex": "^3.1.0", + "mocha": "^6.0.2", + "nyc": "^14.1.1" + } +} diff --git a/node_modules/form-data/License b/node_modules/form-data/License new file mode 100644 index 0000000..c7ff12a --- /dev/null +++ b/node_modules/form-data/License @@ -0,0 +1,19 @@ +Copyright (c) 2012 Felix Geisendörfer (felix@debuggable.com) and 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/form-data/README.md.bak b/node_modules/form-data/README.md.bak new file mode 100644 index 0000000..298a1a2 --- /dev/null +++ b/node_modules/form-data/README.md.bak @@ -0,0 +1,358 @@ +# Form-Data [![NPM Module](https://img.shields.io/npm/v/form-data.svg)](https://www.npmjs.com/package/form-data) [![Join the chat at https://gitter.im/form-data/form-data](http://form-data.github.io/images/gitterbadge.svg)](https://gitter.im/form-data/form-data) + +A library to create readable ```"multipart/form-data"``` streams. Can be used to submit forms and file uploads to other web applications. + +The API of this library is inspired by the [XMLHttpRequest-2 FormData Interface][xhr2-fd]. + +[xhr2-fd]: http://dev.w3.org/2006/webapi/XMLHttpRequest-2/Overview.html#the-formdata-interface + +[![Linux Build](https://img.shields.io/travis/form-data/form-data/v4.0.0.svg?label=linux:6.x-12.x)](https://travis-ci.org/form-data/form-data) +[![MacOS Build](https://img.shields.io/travis/form-data/form-data/v4.0.0.svg?label=macos:6.x-12.x)](https://travis-ci.org/form-data/form-data) +[![Windows Build](https://img.shields.io/travis/form-data/form-data/v4.0.0.svg?label=windows:6.x-12.x)](https://travis-ci.org/form-data/form-data) + +[![Coverage Status](https://img.shields.io/coveralls/form-data/form-data/v4.0.0.svg?label=code+coverage)](https://coveralls.io/github/form-data/form-data?branch=master) +[![Dependency Status](https://img.shields.io/david/form-data/form-data.svg)](https://david-dm.org/form-data/form-data) + +## Install + +``` +npm install --save form-data +``` + +## Usage + +In this example we are constructing a form with 3 fields that contain a string, +a buffer and a file stream. + +``` javascript +var FormData = require('form-data'); +var fs = require('fs'); + +var form = new FormData(); +form.append('my_field', 'my value'); +form.append('my_buffer', new Buffer(10)); +form.append('my_file', fs.createReadStream('/foo/bar.jpg')); +``` + +Also you can use http-response stream: + +``` javascript +var FormData = require('form-data'); +var http = require('http'); + +var form = new FormData(); + +http.request('http://nodejs.org/images/logo.png', function(response) { + form.append('my_field', 'my value'); + form.append('my_buffer', new Buffer(10)); + form.append('my_logo', response); +}); +``` + +Or @mikeal's [request](https://github.com/request/request) stream: + +``` javascript +var FormData = require('form-data'); +var request = require('request'); + +var form = new FormData(); + +form.append('my_field', 'my value'); +form.append('my_buffer', new Buffer(10)); +form.append('my_logo', request('http://nodejs.org/images/logo.png')); +``` + +In order to submit this form to a web application, call ```submit(url, [callback])``` method: + +``` javascript +form.submit('http://example.org/', function(err, res) { + // res – response object (http.IncomingMessage) // + res.resume(); +}); + +``` + +For more advanced request manipulations ```submit()``` method returns ```http.ClientRequest``` object, or you can choose from one of the alternative submission methods. + +### Custom options + +You can provide custom options, such as `maxDataSize`: + +``` javascript +var FormData = require('form-data'); + +var form = new FormData({ maxDataSize: 20971520 }); +form.append('my_field', 'my value'); +form.append('my_buffer', /* something big */); +``` + +List of available options could be found in [combined-stream](https://github.com/felixge/node-combined-stream/blob/master/lib/combined_stream.js#L7-L15) + +### Alternative submission methods + +You can use node's http client interface: + +``` javascript +var http = require('http'); + +var request = http.request({ + method: 'post', + host: 'example.org', + path: '/upload', + headers: form.getHeaders() +}); + +form.pipe(request); + +request.on('response', function(res) { + console.log(res.statusCode); +}); +``` + +Or if you would prefer the `'Content-Length'` header to be set for you: + +``` javascript +form.submit('example.org/upload', function(err, res) { + console.log(res.statusCode); +}); +``` + +To use custom headers and pre-known length in parts: + +``` javascript +var CRLF = '\r\n'; +var form = new FormData(); + +var options = { + header: CRLF + '--' + form.getBoundary() + CRLF + 'X-Custom-Header: 123' + CRLF + CRLF, + knownLength: 1 +}; + +form.append('my_buffer', buffer, options); + +form.submit('http://example.com/', function(err, res) { + if (err) throw err; + console.log('Done'); +}); +``` + +Form-Data can recognize and fetch all the required information from common types of streams (```fs.readStream```, ```http.response``` and ```mikeal's request```), for some other types of streams you'd need to provide "file"-related information manually: + +``` javascript +someModule.stream(function(err, stdout, stderr) { + if (err) throw err; + + var form = new FormData(); + + form.append('file', stdout, { + filename: 'unicycle.jpg', // ... or: + filepath: 'photos/toys/unicycle.jpg', + contentType: 'image/jpeg', + knownLength: 19806 + }); + + form.submit('http://example.com/', function(err, res) { + if (err) throw err; + console.log('Done'); + }); +}); +``` + +The `filepath` property overrides `filename` and may contain a relative path. This is typically used when uploading [multiple files from a directory](https://wicg.github.io/entries-api/#dom-htmlinputelement-webkitdirectory). + +For edge cases, like POST request to URL with query string or to pass HTTP auth credentials, object can be passed to `form.submit()` as first parameter: + +``` javascript +form.submit({ + host: 'example.com', + path: '/probably.php?extra=params', + auth: 'username:password' +}, function(err, res) { + console.log(res.statusCode); +}); +``` + +In case you need to also send custom HTTP headers with the POST request, you can use the `headers` key in first parameter of `form.submit()`: + +``` javascript +form.submit({ + host: 'example.com', + path: '/surelynot.php', + headers: {'x-test-header': 'test-header-value'} +}, function(err, res) { + console.log(res.statusCode); +}); +``` + +### Methods + +- [_Void_ append( **String** _field_, **Mixed** _value_ [, **Mixed** _options_] )](https://github.com/form-data/form-data#void-append-string-field-mixed-value--mixed-options-). +- [_Headers_ getHeaders( [**Headers** _userHeaders_] )](https://github.com/form-data/form-data#array-getheaders-array-userheaders-) +- [_String_ getBoundary()](https://github.com/form-data/form-data#string-getboundary) +- [_Void_ setBoundary()](https://github.com/form-data/form-data#void-setboundary) +- [_Buffer_ getBuffer()](https://github.com/form-data/form-data#buffer-getbuffer) +- [_Integer_ getLengthSync()](https://github.com/form-data/form-data#integer-getlengthsync) +- [_Integer_ getLength( **function** _callback_ )](https://github.com/form-data/form-data#integer-getlength-function-callback-) +- [_Boolean_ hasKnownLength()](https://github.com/form-data/form-data#boolean-hasknownlength) +- [_Request_ submit( _params_, **function** _callback_ )](https://github.com/form-data/form-data#request-submit-params-function-callback-) +- [_String_ toString()](https://github.com/form-data/form-data#string-tostring) + +#### _Void_ append( **String** _field_, **Mixed** _value_ [, **Mixed** _options_] ) +Append data to the form. You can submit about any format (string, integer, boolean, buffer, etc.). However, Arrays are not supported and need to be turned into strings by the user. +```javascript +var form = new FormData(); +form.append( 'my_string', 'my value' ); +form.append( 'my_integer', 1 ); +form.append( 'my_boolean', true ); +form.append( 'my_buffer', new Buffer(10) ); +form.append( 'my_array_as_json', JSON.stringify( ['bird','cute'] ) ) +``` + +You may provide a string for options, or an object. +```javascript +// Set filename by providing a string for options +form.append( 'my_file', fs.createReadStream('/foo/bar.jpg'), 'bar.jpg' ); + +// provide an object. +form.append( 'my_file', fs.createReadStream('/foo/bar.jpg'), {filename: 'bar.jpg', contentType: 'image/jpeg', knownLength: 19806} ); +``` + +#### _Headers_ getHeaders( [**Headers** _userHeaders_] ) +This method adds the correct `content-type` header to the provided array of `userHeaders`. + +#### _String_ getBoundary() +Return the boundary of the formData. By default, the boundary consists of 26 `-` followed by 24 numbers +for example: +```javascript +--------------------------515890814546601021194782 +``` + +#### _Void_ setBoundary(String _boundary_) +Set the boundary string, overriding the default behavior described above. + +_Note: The boundary must be unique and may not appear in the data._ + +#### _Buffer_ getBuffer() +Return the full formdata request package, as a Buffer. You can insert this Buffer in e.g. Axios to send multipart data. +```javascript +var form = new FormData(); +form.append( 'my_buffer', Buffer.from([0x4a,0x42,0x20,0x52,0x6f,0x63,0x6b,0x73]) ); +form.append( 'my_file', fs.readFileSync('/foo/bar.jpg') ); + +axios.post( 'https://example.com/path/to/api', + form.getBuffer(), + form.getHeaders() + ) +``` +**Note:** Because the output is of type Buffer, you can only append types that are accepted by Buffer: *string, Buffer, ArrayBuffer, Array, or Array-like Object*. A ReadStream for example will result in an error. + +#### _Integer_ getLengthSync() +Same as `getLength` but synchronous. + +_Note: getLengthSync __doesn't__ calculate streams length._ + +#### _Integer_ getLength( **function** _callback_ ) +Returns the `Content-Length` async. The callback is used to handle errors and continue once the length has been calculated +```javascript +this.getLength(function(err, length) { + if (err) { + this._error(err); + return; + } + + // add content length + request.setHeader('Content-Length', length); + + ... +}.bind(this)); +``` + +#### _Boolean_ hasKnownLength() +Checks if the length of added values is known. + +#### _Request_ submit( _params_, **function** _callback_ ) +Submit the form to a web application. +```javascript +var form = new FormData(); +form.append( 'my_string', 'Hello World' ); + +form.submit( 'http://example.com/', function(err, res) { + // res – response object (http.IncomingMessage) // + res.resume(); +} ); +``` + +#### _String_ toString() +Returns the form data as a string. Don't use this if you are sending files or buffers, use `getBuffer()` instead. + +### Integration with other libraries + +#### Request + +Form submission using [request](https://github.com/request/request): + +```javascript +var formData = { + my_field: 'my_value', + my_file: fs.createReadStream(__dirname + '/unicycle.jpg'), +}; + +request.post({url:'http://service.com/upload', formData: formData}, function(err, httpResponse, body) { + if (err) { + return console.error('upload failed:', err); + } + console.log('Upload successful! Server responded with:', body); +}); +``` + +For more details see [request readme](https://github.com/request/request#multipartform-data-multipart-form-uploads). + +#### node-fetch + +You can also submit a form using [node-fetch](https://github.com/bitinn/node-fetch): + +```javascript +var form = new FormData(); + +form.append('a', 1); + +fetch('http://example.com', { method: 'POST', body: form }) + .then(function(res) { + return res.json(); + }).then(function(json) { + console.log(json); + }); +``` + +#### axios + +In Node.js you can post a file using [axios](https://github.com/axios/axios): +```javascript +const form = new FormData(); +const stream = fs.createReadStream(PATH_TO_FILE); + +form.append('image', stream); + +// In Node.js environment you need to set boundary in the header field 'Content-Type' by calling method `getHeaders` +const formHeaders = form.getHeaders(); + +axios.post('http://example.com', form, { + headers: { + ...formHeaders, + }, +}) +.then(response => response) +.catch(error => error) +``` + +## Notes + +- ```getLengthSync()``` method DOESN'T calculate length for streams, use ```knownLength``` options as workaround. +- ```getLength(cb)``` will send an error as first parameter of callback if stream length cannot be calculated (e.g. send in custom streams w/o using ```knownLength```). +- ```submit``` will not add `content-length` if form length is unknown or not calculable. +- Starting version `2.x` FormData has dropped support for `node@0.10.x`. +- Starting version `3.x` FormData has dropped support for `node@4.x`. + +## License + +Form-Data is released under the [MIT](License) license. diff --git a/node_modules/form-data/Readme.md b/node_modules/form-data/Readme.md new file mode 100644 index 0000000..298a1a2 --- /dev/null +++ b/node_modules/form-data/Readme.md @@ -0,0 +1,358 @@ +# Form-Data [![NPM Module](https://img.shields.io/npm/v/form-data.svg)](https://www.npmjs.com/package/form-data) [![Join the chat at https://gitter.im/form-data/form-data](http://form-data.github.io/images/gitterbadge.svg)](https://gitter.im/form-data/form-data) + +A library to create readable ```"multipart/form-data"``` streams. Can be used to submit forms and file uploads to other web applications. + +The API of this library is inspired by the [XMLHttpRequest-2 FormData Interface][xhr2-fd]. + +[xhr2-fd]: http://dev.w3.org/2006/webapi/XMLHttpRequest-2/Overview.html#the-formdata-interface + +[![Linux Build](https://img.shields.io/travis/form-data/form-data/v4.0.0.svg?label=linux:6.x-12.x)](https://travis-ci.org/form-data/form-data) +[![MacOS Build](https://img.shields.io/travis/form-data/form-data/v4.0.0.svg?label=macos:6.x-12.x)](https://travis-ci.org/form-data/form-data) +[![Windows Build](https://img.shields.io/travis/form-data/form-data/v4.0.0.svg?label=windows:6.x-12.x)](https://travis-ci.org/form-data/form-data) + +[![Coverage Status](https://img.shields.io/coveralls/form-data/form-data/v4.0.0.svg?label=code+coverage)](https://coveralls.io/github/form-data/form-data?branch=master) +[![Dependency Status](https://img.shields.io/david/form-data/form-data.svg)](https://david-dm.org/form-data/form-data) + +## Install + +``` +npm install --save form-data +``` + +## Usage + +In this example we are constructing a form with 3 fields that contain a string, +a buffer and a file stream. + +``` javascript +var FormData = require('form-data'); +var fs = require('fs'); + +var form = new FormData(); +form.append('my_field', 'my value'); +form.append('my_buffer', new Buffer(10)); +form.append('my_file', fs.createReadStream('/foo/bar.jpg')); +``` + +Also you can use http-response stream: + +``` javascript +var FormData = require('form-data'); +var http = require('http'); + +var form = new FormData(); + +http.request('http://nodejs.org/images/logo.png', function(response) { + form.append('my_field', 'my value'); + form.append('my_buffer', new Buffer(10)); + form.append('my_logo', response); +}); +``` + +Or @mikeal's [request](https://github.com/request/request) stream: + +``` javascript +var FormData = require('form-data'); +var request = require('request'); + +var form = new FormData(); + +form.append('my_field', 'my value'); +form.append('my_buffer', new Buffer(10)); +form.append('my_logo', request('http://nodejs.org/images/logo.png')); +``` + +In order to submit this form to a web application, call ```submit(url, [callback])``` method: + +``` javascript +form.submit('http://example.org/', function(err, res) { + // res – response object (http.IncomingMessage) // + res.resume(); +}); + +``` + +For more advanced request manipulations ```submit()``` method returns ```http.ClientRequest``` object, or you can choose from one of the alternative submission methods. + +### Custom options + +You can provide custom options, such as `maxDataSize`: + +``` javascript +var FormData = require('form-data'); + +var form = new FormData({ maxDataSize: 20971520 }); +form.append('my_field', 'my value'); +form.append('my_buffer', /* something big */); +``` + +List of available options could be found in [combined-stream](https://github.com/felixge/node-combined-stream/blob/master/lib/combined_stream.js#L7-L15) + +### Alternative submission methods + +You can use node's http client interface: + +``` javascript +var http = require('http'); + +var request = http.request({ + method: 'post', + host: 'example.org', + path: '/upload', + headers: form.getHeaders() +}); + +form.pipe(request); + +request.on('response', function(res) { + console.log(res.statusCode); +}); +``` + +Or if you would prefer the `'Content-Length'` header to be set for you: + +``` javascript +form.submit('example.org/upload', function(err, res) { + console.log(res.statusCode); +}); +``` + +To use custom headers and pre-known length in parts: + +``` javascript +var CRLF = '\r\n'; +var form = new FormData(); + +var options = { + header: CRLF + '--' + form.getBoundary() + CRLF + 'X-Custom-Header: 123' + CRLF + CRLF, + knownLength: 1 +}; + +form.append('my_buffer', buffer, options); + +form.submit('http://example.com/', function(err, res) { + if (err) throw err; + console.log('Done'); +}); +``` + +Form-Data can recognize and fetch all the required information from common types of streams (```fs.readStream```, ```http.response``` and ```mikeal's request```), for some other types of streams you'd need to provide "file"-related information manually: + +``` javascript +someModule.stream(function(err, stdout, stderr) { + if (err) throw err; + + var form = new FormData(); + + form.append('file', stdout, { + filename: 'unicycle.jpg', // ... or: + filepath: 'photos/toys/unicycle.jpg', + contentType: 'image/jpeg', + knownLength: 19806 + }); + + form.submit('http://example.com/', function(err, res) { + if (err) throw err; + console.log('Done'); + }); +}); +``` + +The `filepath` property overrides `filename` and may contain a relative path. This is typically used when uploading [multiple files from a directory](https://wicg.github.io/entries-api/#dom-htmlinputelement-webkitdirectory). + +For edge cases, like POST request to URL with query string or to pass HTTP auth credentials, object can be passed to `form.submit()` as first parameter: + +``` javascript +form.submit({ + host: 'example.com', + path: '/probably.php?extra=params', + auth: 'username:password' +}, function(err, res) { + console.log(res.statusCode); +}); +``` + +In case you need to also send custom HTTP headers with the POST request, you can use the `headers` key in first parameter of `form.submit()`: + +``` javascript +form.submit({ + host: 'example.com', + path: '/surelynot.php', + headers: {'x-test-header': 'test-header-value'} +}, function(err, res) { + console.log(res.statusCode); +}); +``` + +### Methods + +- [_Void_ append( **String** _field_, **Mixed** _value_ [, **Mixed** _options_] )](https://github.com/form-data/form-data#void-append-string-field-mixed-value--mixed-options-). +- [_Headers_ getHeaders( [**Headers** _userHeaders_] )](https://github.com/form-data/form-data#array-getheaders-array-userheaders-) +- [_String_ getBoundary()](https://github.com/form-data/form-data#string-getboundary) +- [_Void_ setBoundary()](https://github.com/form-data/form-data#void-setboundary) +- [_Buffer_ getBuffer()](https://github.com/form-data/form-data#buffer-getbuffer) +- [_Integer_ getLengthSync()](https://github.com/form-data/form-data#integer-getlengthsync) +- [_Integer_ getLength( **function** _callback_ )](https://github.com/form-data/form-data#integer-getlength-function-callback-) +- [_Boolean_ hasKnownLength()](https://github.com/form-data/form-data#boolean-hasknownlength) +- [_Request_ submit( _params_, **function** _callback_ )](https://github.com/form-data/form-data#request-submit-params-function-callback-) +- [_String_ toString()](https://github.com/form-data/form-data#string-tostring) + +#### _Void_ append( **String** _field_, **Mixed** _value_ [, **Mixed** _options_] ) +Append data to the form. You can submit about any format (string, integer, boolean, buffer, etc.). However, Arrays are not supported and need to be turned into strings by the user. +```javascript +var form = new FormData(); +form.append( 'my_string', 'my value' ); +form.append( 'my_integer', 1 ); +form.append( 'my_boolean', true ); +form.append( 'my_buffer', new Buffer(10) ); +form.append( 'my_array_as_json', JSON.stringify( ['bird','cute'] ) ) +``` + +You may provide a string for options, or an object. +```javascript +// Set filename by providing a string for options +form.append( 'my_file', fs.createReadStream('/foo/bar.jpg'), 'bar.jpg' ); + +// provide an object. +form.append( 'my_file', fs.createReadStream('/foo/bar.jpg'), {filename: 'bar.jpg', contentType: 'image/jpeg', knownLength: 19806} ); +``` + +#### _Headers_ getHeaders( [**Headers** _userHeaders_] ) +This method adds the correct `content-type` header to the provided array of `userHeaders`. + +#### _String_ getBoundary() +Return the boundary of the formData. By default, the boundary consists of 26 `-` followed by 24 numbers +for example: +```javascript +--------------------------515890814546601021194782 +``` + +#### _Void_ setBoundary(String _boundary_) +Set the boundary string, overriding the default behavior described above. + +_Note: The boundary must be unique and may not appear in the data._ + +#### _Buffer_ getBuffer() +Return the full formdata request package, as a Buffer. You can insert this Buffer in e.g. Axios to send multipart data. +```javascript +var form = new FormData(); +form.append( 'my_buffer', Buffer.from([0x4a,0x42,0x20,0x52,0x6f,0x63,0x6b,0x73]) ); +form.append( 'my_file', fs.readFileSync('/foo/bar.jpg') ); + +axios.post( 'https://example.com/path/to/api', + form.getBuffer(), + form.getHeaders() + ) +``` +**Note:** Because the output is of type Buffer, you can only append types that are accepted by Buffer: *string, Buffer, ArrayBuffer, Array, or Array-like Object*. A ReadStream for example will result in an error. + +#### _Integer_ getLengthSync() +Same as `getLength` but synchronous. + +_Note: getLengthSync __doesn't__ calculate streams length._ + +#### _Integer_ getLength( **function** _callback_ ) +Returns the `Content-Length` async. The callback is used to handle errors and continue once the length has been calculated +```javascript +this.getLength(function(err, length) { + if (err) { + this._error(err); + return; + } + + // add content length + request.setHeader('Content-Length', length); + + ... +}.bind(this)); +``` + +#### _Boolean_ hasKnownLength() +Checks if the length of added values is known. + +#### _Request_ submit( _params_, **function** _callback_ ) +Submit the form to a web application. +```javascript +var form = new FormData(); +form.append( 'my_string', 'Hello World' ); + +form.submit( 'http://example.com/', function(err, res) { + // res – response object (http.IncomingMessage) // + res.resume(); +} ); +``` + +#### _String_ toString() +Returns the form data as a string. Don't use this if you are sending files or buffers, use `getBuffer()` instead. + +### Integration with other libraries + +#### Request + +Form submission using [request](https://github.com/request/request): + +```javascript +var formData = { + my_field: 'my_value', + my_file: fs.createReadStream(__dirname + '/unicycle.jpg'), +}; + +request.post({url:'http://service.com/upload', formData: formData}, function(err, httpResponse, body) { + if (err) { + return console.error('upload failed:', err); + } + console.log('Upload successful! Server responded with:', body); +}); +``` + +For more details see [request readme](https://github.com/request/request#multipartform-data-multipart-form-uploads). + +#### node-fetch + +You can also submit a form using [node-fetch](https://github.com/bitinn/node-fetch): + +```javascript +var form = new FormData(); + +form.append('a', 1); + +fetch('http://example.com', { method: 'POST', body: form }) + .then(function(res) { + return res.json(); + }).then(function(json) { + console.log(json); + }); +``` + +#### axios + +In Node.js you can post a file using [axios](https://github.com/axios/axios): +```javascript +const form = new FormData(); +const stream = fs.createReadStream(PATH_TO_FILE); + +form.append('image', stream); + +// In Node.js environment you need to set boundary in the header field 'Content-Type' by calling method `getHeaders` +const formHeaders = form.getHeaders(); + +axios.post('http://example.com', form, { + headers: { + ...formHeaders, + }, +}) +.then(response => response) +.catch(error => error) +``` + +## Notes + +- ```getLengthSync()``` method DOESN'T calculate length for streams, use ```knownLength``` options as workaround. +- ```getLength(cb)``` will send an error as first parameter of callback if stream length cannot be calculated (e.g. send in custom streams w/o using ```knownLength```). +- ```submit``` will not add `content-length` if form length is unknown or not calculable. +- Starting version `2.x` FormData has dropped support for `node@0.10.x`. +- Starting version `3.x` FormData has dropped support for `node@4.x`. + +## License + +Form-Data is released under the [MIT](License) license. diff --git a/node_modules/form-data/index.d.ts b/node_modules/form-data/index.d.ts new file mode 100644 index 0000000..295e9e9 --- /dev/null +++ b/node_modules/form-data/index.d.ts @@ -0,0 +1,62 @@ +// Definitions by: Carlos Ballesteros Velasco +// Leon Yu +// BendingBender +// Maple Miao + +/// +import * as stream from 'stream'; +import * as http from 'http'; + +export = FormData; + +// Extracted because @types/node doesn't export interfaces. +interface ReadableOptions { + highWaterMark?: number; + encoding?: string; + objectMode?: boolean; + read?(this: stream.Readable, size: number): void; + destroy?(this: stream.Readable, error: Error | null, callback: (error: Error | null) => void): void; + autoDestroy?: boolean; +} + +interface Options extends ReadableOptions { + writable?: boolean; + readable?: boolean; + dataSize?: number; + maxDataSize?: number; + pauseStreams?: boolean; +} + +declare class FormData extends stream.Readable { + constructor(options?: Options); + append(key: string, value: any, options?: FormData.AppendOptions | string): void; + getHeaders(userHeaders?: FormData.Headers): FormData.Headers; + submit( + params: string | FormData.SubmitOptions, + callback?: (error: Error | null, response: http.IncomingMessage) => void + ): http.ClientRequest; + getBuffer(): Buffer; + setBoundary(boundary: string): void; + getBoundary(): string; + getLength(callback: (err: Error | null, length: number) => void): void; + getLengthSync(): number; + hasKnownLength(): boolean; +} + +declare namespace FormData { + interface Headers { + [key: string]: any; + } + + interface AppendOptions { + header?: string | Headers; + knownLength?: number; + filename?: string; + filepath?: string; + contentType?: string; + } + + interface SubmitOptions extends http.RequestOptions { + protocol?: 'https:' | 'http:'; + } +} diff --git a/node_modules/form-data/lib/browser.js b/node_modules/form-data/lib/browser.js new file mode 100644 index 0000000..09e7c70 --- /dev/null +++ b/node_modules/form-data/lib/browser.js @@ -0,0 +1,2 @@ +/* eslint-env browser */ +module.exports = typeof self == 'object' ? self.FormData : window.FormData; diff --git a/node_modules/form-data/lib/form_data.js b/node_modules/form-data/lib/form_data.js new file mode 100644 index 0000000..18dc819 --- /dev/null +++ b/node_modules/form-data/lib/form_data.js @@ -0,0 +1,501 @@ +var CombinedStream = require('combined-stream'); +var util = require('util'); +var path = require('path'); +var http = require('http'); +var https = require('https'); +var parseUrl = require('url').parse; +var fs = require('fs'); +var Stream = require('stream').Stream; +var mime = require('mime-types'); +var asynckit = require('asynckit'); +var populate = require('./populate.js'); + +// Public API +module.exports = FormData; + +// make it a Stream +util.inherits(FormData, CombinedStream); + +/** + * Create readable "multipart/form-data" streams. + * Can be used to submit forms + * and file uploads to other web applications. + * + * @constructor + * @param {Object} options - Properties to be added/overriden for FormData and CombinedStream + */ +function FormData(options) { + if (!(this instanceof FormData)) { + return new FormData(options); + } + + this._overheadLength = 0; + this._valueLength = 0; + this._valuesToMeasure = []; + + CombinedStream.call(this); + + options = options || {}; + for (var option in options) { + this[option] = options[option]; + } +} + +FormData.LINE_BREAK = '\r\n'; +FormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream'; + +FormData.prototype.append = function(field, value, options) { + + options = options || {}; + + // allow filename as single option + if (typeof options == 'string') { + options = {filename: options}; + } + + var append = CombinedStream.prototype.append.bind(this); + + // all that streamy business can't handle numbers + if (typeof value == 'number') { + value = '' + value; + } + + // https://github.com/felixge/node-form-data/issues/38 + if (util.isArray(value)) { + // Please convert your array into string + // the way web server expects it + this._error(new Error('Arrays are not supported.')); + return; + } + + var header = this._multiPartHeader(field, value, options); + var footer = this._multiPartFooter(); + + append(header); + append(value); + append(footer); + + // pass along options.knownLength + this._trackLength(header, value, options); +}; + +FormData.prototype._trackLength = function(header, value, options) { + var valueLength = 0; + + // used w/ getLengthSync(), when length is known. + // e.g. for streaming directly from a remote server, + // w/ a known file a size, and not wanting to wait for + // incoming file to finish to get its size. + if (options.knownLength != null) { + valueLength += +options.knownLength; + } else if (Buffer.isBuffer(value)) { + valueLength = value.length; + } else if (typeof value === 'string') { + valueLength = Buffer.byteLength(value); + } + + this._valueLength += valueLength; + + // @check why add CRLF? does this account for custom/multiple CRLFs? + this._overheadLength += + Buffer.byteLength(header) + + FormData.LINE_BREAK.length; + + // empty or either doesn't have path or not an http response or not a stream + if (!value || ( !value.path && !(value.readable && value.hasOwnProperty('httpVersion')) && !(value instanceof Stream))) { + return; + } + + // no need to bother with the length + if (!options.knownLength) { + this._valuesToMeasure.push(value); + } +}; + +FormData.prototype._lengthRetriever = function(value, callback) { + + if (value.hasOwnProperty('fd')) { + + // take read range into a account + // `end` = Infinity –> read file till the end + // + // TODO: Looks like there is bug in Node fs.createReadStream + // it doesn't respect `end` options without `start` options + // Fix it when node fixes it. + // https://github.com/joyent/node/issues/7819 + if (value.end != undefined && value.end != Infinity && value.start != undefined) { + + // when end specified + // no need to calculate range + // inclusive, starts with 0 + callback(null, value.end + 1 - (value.start ? value.start : 0)); + + // not that fast snoopy + } else { + // still need to fetch file size from fs + fs.stat(value.path, function(err, stat) { + + var fileSize; + + if (err) { + callback(err); + return; + } + + // update final size based on the range options + fileSize = stat.size - (value.start ? value.start : 0); + callback(null, fileSize); + }); + } + + // or http response + } else if (value.hasOwnProperty('httpVersion')) { + callback(null, +value.headers['content-length']); + + // or request stream http://github.com/mikeal/request + } else if (value.hasOwnProperty('httpModule')) { + // wait till response come back + value.on('response', function(response) { + value.pause(); + callback(null, +response.headers['content-length']); + }); + value.resume(); + + // something else + } else { + callback('Unknown stream'); + } +}; + +FormData.prototype._multiPartHeader = function(field, value, options) { + // custom header specified (as string)? + // it becomes responsible for boundary + // (e.g. to handle extra CRLFs on .NET servers) + if (typeof options.header == 'string') { + return options.header; + } + + var contentDisposition = this._getContentDisposition(value, options); + var contentType = this._getContentType(value, options); + + var contents = ''; + var headers = { + // add custom disposition as third element or keep it two elements if not + 'Content-Disposition': ['form-data', 'name="' + field + '"'].concat(contentDisposition || []), + // if no content type. allow it to be empty array + 'Content-Type': [].concat(contentType || []) + }; + + // allow custom headers. + if (typeof options.header == 'object') { + populate(headers, options.header); + } + + var header; + for (var prop in headers) { + if (!headers.hasOwnProperty(prop)) continue; + header = headers[prop]; + + // skip nullish headers. + if (header == null) { + continue; + } + + // convert all headers to arrays. + if (!Array.isArray(header)) { + header = [header]; + } + + // add non-empty headers. + if (header.length) { + contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK; + } + } + + return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK; +}; + +FormData.prototype._getContentDisposition = function(value, options) { + + var filename + , contentDisposition + ; + + if (typeof options.filepath === 'string') { + // custom filepath for relative paths + filename = path.normalize(options.filepath).replace(/\\/g, '/'); + } else if (options.filename || value.name || value.path) { + // custom filename take precedence + // formidable and the browser add a name property + // fs- and request- streams have path property + filename = path.basename(options.filename || value.name || value.path); + } else if (value.readable && value.hasOwnProperty('httpVersion')) { + // or try http response + filename = path.basename(value.client._httpMessage.path || ''); + } + + if (filename) { + contentDisposition = 'filename="' + filename + '"'; + } + + return contentDisposition; +}; + +FormData.prototype._getContentType = function(value, options) { + + // use custom content-type above all + var contentType = options.contentType; + + // or try `name` from formidable, browser + if (!contentType && value.name) { + contentType = mime.lookup(value.name); + } + + // or try `path` from fs-, request- streams + if (!contentType && value.path) { + contentType = mime.lookup(value.path); + } + + // or if it's http-reponse + if (!contentType && value.readable && value.hasOwnProperty('httpVersion')) { + contentType = value.headers['content-type']; + } + + // or guess it from the filepath or filename + if (!contentType && (options.filepath || options.filename)) { + contentType = mime.lookup(options.filepath || options.filename); + } + + // fallback to the default content type if `value` is not simple value + if (!contentType && typeof value == 'object') { + contentType = FormData.DEFAULT_CONTENT_TYPE; + } + + return contentType; +}; + +FormData.prototype._multiPartFooter = function() { + return function(next) { + var footer = FormData.LINE_BREAK; + + var lastPart = (this._streams.length === 0); + if (lastPart) { + footer += this._lastBoundary(); + } + + next(footer); + }.bind(this); +}; + +FormData.prototype._lastBoundary = function() { + return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK; +}; + +FormData.prototype.getHeaders = function(userHeaders) { + var header; + var formHeaders = { + 'content-type': 'multipart/form-data; boundary=' + this.getBoundary() + }; + + for (header in userHeaders) { + if (userHeaders.hasOwnProperty(header)) { + formHeaders[header.toLowerCase()] = userHeaders[header]; + } + } + + return formHeaders; +}; + +FormData.prototype.setBoundary = function(boundary) { + this._boundary = boundary; +}; + +FormData.prototype.getBoundary = function() { + if (!this._boundary) { + this._generateBoundary(); + } + + return this._boundary; +}; + +FormData.prototype.getBuffer = function() { + var dataBuffer = new Buffer.alloc( 0 ); + var boundary = this.getBoundary(); + + // Create the form content. Add Line breaks to the end of data. + for (var i = 0, len = this._streams.length; i < len; i++) { + if (typeof this._streams[i] !== 'function') { + + // Add content to the buffer. + if(Buffer.isBuffer(this._streams[i])) { + dataBuffer = Buffer.concat( [dataBuffer, this._streams[i]]); + }else { + dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(this._streams[i])]); + } + + // Add break after content. + if (typeof this._streams[i] !== 'string' || this._streams[i].substring( 2, boundary.length + 2 ) !== boundary) { + dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(FormData.LINE_BREAK)] ); + } + } + } + + // Add the footer and return the Buffer object. + return Buffer.concat( [dataBuffer, Buffer.from(this._lastBoundary())] ); +}; + +FormData.prototype._generateBoundary = function() { + // This generates a 50 character boundary similar to those used by Firefox. + // They are optimized for boyer-moore parsing. + var boundary = '--------------------------'; + for (var i = 0; i < 24; i++) { + boundary += Math.floor(Math.random() * 10).toString(16); + } + + this._boundary = boundary; +}; + +// Note: getLengthSync DOESN'T calculate streams length +// As workaround one can calculate file size manually +// and add it as knownLength option +FormData.prototype.getLengthSync = function() { + var knownLength = this._overheadLength + this._valueLength; + + // Don't get confused, there are 3 "internal" streams for each keyval pair + // so it basically checks if there is any value added to the form + if (this._streams.length) { + knownLength += this._lastBoundary().length; + } + + // https://github.com/form-data/form-data/issues/40 + if (!this.hasKnownLength()) { + // Some async length retrievers are present + // therefore synchronous length calculation is false. + // Please use getLength(callback) to get proper length + this._error(new Error('Cannot calculate proper length in synchronous way.')); + } + + return knownLength; +}; + +// Public API to check if length of added values is known +// https://github.com/form-data/form-data/issues/196 +// https://github.com/form-data/form-data/issues/262 +FormData.prototype.hasKnownLength = function() { + var hasKnownLength = true; + + if (this._valuesToMeasure.length) { + hasKnownLength = false; + } + + return hasKnownLength; +}; + +FormData.prototype.getLength = function(cb) { + var knownLength = this._overheadLength + this._valueLength; + + if (this._streams.length) { + knownLength += this._lastBoundary().length; + } + + if (!this._valuesToMeasure.length) { + process.nextTick(cb.bind(this, null, knownLength)); + return; + } + + asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function(err, values) { + if (err) { + cb(err); + return; + } + + values.forEach(function(length) { + knownLength += length; + }); + + cb(null, knownLength); + }); +}; + +FormData.prototype.submit = function(params, cb) { + var request + , options + , defaults = {method: 'post'} + ; + + // parse provided url if it's string + // or treat it as options object + if (typeof params == 'string') { + + params = parseUrl(params); + options = populate({ + port: params.port, + path: params.pathname, + host: params.hostname, + protocol: params.protocol + }, defaults); + + // use custom params + } else { + + options = populate(params, defaults); + // if no port provided use default one + if (!options.port) { + options.port = options.protocol == 'https:' ? 443 : 80; + } + } + + // put that good code in getHeaders to some use + options.headers = this.getHeaders(params.headers); + + // https if specified, fallback to http in any other case + if (options.protocol == 'https:') { + request = https.request(options); + } else { + request = http.request(options); + } + + // get content length and fire away + this.getLength(function(err, length) { + if (err && err !== 'Unknown stream') { + this._error(err); + return; + } + + // add content length + if (length) { + request.setHeader('Content-Length', length); + } + + this.pipe(request); + if (cb) { + var onResponse; + + var callback = function (error, responce) { + request.removeListener('error', callback); + request.removeListener('response', onResponse); + + return cb.call(this, error, responce); + }; + + onResponse = callback.bind(this, null); + + request.on('error', callback); + request.on('response', onResponse); + } + }.bind(this)); + + return request; +}; + +FormData.prototype._error = function(err) { + if (!this.error) { + this.error = err; + this.pause(); + this.emit('error', err); + } +}; + +FormData.prototype.toString = function () { + return '[object FormData]'; +}; diff --git a/node_modules/form-data/lib/populate.js b/node_modules/form-data/lib/populate.js new file mode 100644 index 0000000..4d35738 --- /dev/null +++ b/node_modules/form-data/lib/populate.js @@ -0,0 +1,10 @@ +// populates missing values +module.exports = function(dst, src) { + + Object.keys(src).forEach(function(prop) + { + dst[prop] = dst[prop] || src[prop]; + }); + + return dst; +}; diff --git a/node_modules/form-data/package.json b/node_modules/form-data/package.json new file mode 100644 index 0000000..0f20240 --- /dev/null +++ b/node_modules/form-data/package.json @@ -0,0 +1,68 @@ +{ + "author": "Felix Geisendörfer (http://debuggable.com/)", + "name": "form-data", + "description": "A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.", + "version": "4.0.0", + "repository": { + "type": "git", + "url": "git://github.com/form-data/form-data.git" + }, + "main": "./lib/form_data", + "browser": "./lib/browser", + "typings": "./index.d.ts", + "scripts": { + "pretest": "rimraf coverage test/tmp", + "test": "istanbul cover test/run.js", + "posttest": "istanbul report lcov text", + "lint": "eslint lib/*.js test/*.js test/integration/*.js", + "report": "istanbul report lcov text", + "ci-lint": "is-node-modern 8 && npm run lint || is-node-not-modern 8", + "ci-test": "npm run test && npm run browser && npm run report", + "predebug": "rimraf coverage test/tmp", + "debug": "verbose=1 ./test/run.js", + "browser": "browserify -t browserify-istanbul test/run-browser.js | obake --coverage", + "check": "istanbul check-coverage coverage/coverage*.json", + "files": "pkgfiles --sort=name", + "get-version": "node -e \"console.log(require('./package.json').version)\"", + "update-readme": "sed -i.bak 's/\\/master\\.svg/\\/v'$(npm --silent run get-version)'.svg/g' README.md", + "restore-readme": "mv README.md.bak README.md", + "prepublish": "in-publish && npm run update-readme || not-in-publish", + "postpublish": "npm run restore-readme" + }, + "pre-commit": [ + "lint", + "ci-test", + "check" + ], + "engines": { + "node": ">= 6" + }, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "devDependencies": { + "@types/node": "^12.0.10", + "browserify": "^13.1.1", + "browserify-istanbul": "^2.0.0", + "coveralls": "^3.0.4", + "cross-spawn": "^6.0.5", + "eslint": "^6.0.1", + "fake": "^0.2.2", + "far": "^0.0.7", + "formidable": "^1.0.17", + "in-publish": "^2.0.0", + "is-node-modern": "^1.0.0", + "istanbul": "^0.4.5", + "obake": "^0.1.2", + "puppeteer": "^1.19.0", + "pkgfiles": "^2.3.0", + "pre-commit": "^1.1.3", + "request": "^2.88.0", + "rimraf": "^2.7.1", + "tape": "^4.6.2", + "typescript": "^3.5.2" + }, + "license": "MIT" +} diff --git a/node_modules/fs-minipass/LICENSE b/node_modules/fs-minipass/LICENSE new file mode 100644 index 0000000..19129e3 --- /dev/null +++ b/node_modules/fs-minipass/LICENSE @@ -0,0 +1,15 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and 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/fs-minipass/README.md b/node_modules/fs-minipass/README.md new file mode 100644 index 0000000..1e61241 --- /dev/null +++ b/node_modules/fs-minipass/README.md @@ -0,0 +1,70 @@ +# fs-minipass + +Filesystem streams based on [minipass](http://npm.im/minipass). + +4 classes are exported: + +- ReadStream +- ReadStreamSync +- WriteStream +- WriteStreamSync + +When using `ReadStreamSync`, all of the data is made available +immediately upon consuming the stream. Nothing is buffered in memory +when the stream is constructed. If the stream is piped to a writer, +then it will synchronously `read()` and emit data into the writer as +fast as the writer can consume it. (That is, it will respect +backpressure.) If you call `stream.read()` then it will read the +entire file and return the contents. + +When using `WriteStreamSync`, every write is flushed to the file +synchronously. If your writes all come in a single tick, then it'll +write it all out in a single tick. It's as synchronous as you are. + +The async versions work much like their node builtin counterparts, +with the exception of introducing significantly less Stream machinery +overhead. + +## USAGE + +It's just streams, you pipe them or read() them or write() to them. + +```js +const fsm = require('fs-minipass') +const readStream = new fsm.ReadStream('file.txt') +const writeStream = new fsm.WriteStream('output.txt') +writeStream.write('some file header or whatever\n') +readStream.pipe(writeStream) +``` + +## ReadStream(path, options) + +Path string is required, but somewhat irrelevant if an open file +descriptor is passed in as an option. + +Options: + +- `fd` Pass in a numeric file descriptor, if the file is already open. +- `readSize` The size of reads to do, defaults to 16MB +- `size` The size of the file, if known. Prevents zero-byte read() + call at the end. +- `autoClose` Set to `false` to prevent the file descriptor from being + closed when the file is done being read. + +## WriteStream(path, options) + +Path string is required, but somewhat irrelevant if an open file +descriptor is passed in as an option. + +Options: + +- `fd` Pass in a numeric file descriptor, if the file is already open. +- `mode` The mode to create the file with. Defaults to `0o666`. +- `start` The position in the file to start reading. If not + specified, then the file will start writing at position zero, and be + truncated by default. +- `autoClose` Set to `false` to prevent the file descriptor from being + closed when the stream is ended. +- `flags` Flags to use when opening the file. Irrelevant if `fd` is + passed in, since file won't be opened in that case. Defaults to + `'a'` if a `pos` is specified, or `'w'` otherwise. diff --git a/node_modules/fs-minipass/index.js b/node_modules/fs-minipass/index.js new file mode 100644 index 0000000..9b0779c --- /dev/null +++ b/node_modules/fs-minipass/index.js @@ -0,0 +1,422 @@ +'use strict' +const MiniPass = require('minipass') +const EE = require('events').EventEmitter +const fs = require('fs') + +let writev = fs.writev +/* istanbul ignore next */ +if (!writev) { + // This entire block can be removed if support for earlier than Node.js + // 12.9.0 is not needed. + const binding = process.binding('fs') + const FSReqWrap = binding.FSReqWrap || binding.FSReqCallback + + writev = (fd, iovec, pos, cb) => { + const done = (er, bw) => cb(er, bw, iovec) + const req = new FSReqWrap() + req.oncomplete = done + binding.writeBuffers(fd, iovec, pos, req) + } +} + +const _autoClose = Symbol('_autoClose') +const _close = Symbol('_close') +const _ended = Symbol('_ended') +const _fd = Symbol('_fd') +const _finished = Symbol('_finished') +const _flags = Symbol('_flags') +const _flush = Symbol('_flush') +const _handleChunk = Symbol('_handleChunk') +const _makeBuf = Symbol('_makeBuf') +const _mode = Symbol('_mode') +const _needDrain = Symbol('_needDrain') +const _onerror = Symbol('_onerror') +const _onopen = Symbol('_onopen') +const _onread = Symbol('_onread') +const _onwrite = Symbol('_onwrite') +const _open = Symbol('_open') +const _path = Symbol('_path') +const _pos = Symbol('_pos') +const _queue = Symbol('_queue') +const _read = Symbol('_read') +const _readSize = Symbol('_readSize') +const _reading = Symbol('_reading') +const _remain = Symbol('_remain') +const _size = Symbol('_size') +const _write = Symbol('_write') +const _writing = Symbol('_writing') +const _defaultFlag = Symbol('_defaultFlag') +const _errored = Symbol('_errored') + +class ReadStream extends MiniPass { + constructor (path, opt) { + opt = opt || {} + super(opt) + + this.readable = true + this.writable = false + + if (typeof path !== 'string') + throw new TypeError('path must be a string') + + this[_errored] = false + this[_fd] = typeof opt.fd === 'number' ? opt.fd : null + this[_path] = path + this[_readSize] = opt.readSize || 16*1024*1024 + this[_reading] = false + this[_size] = typeof opt.size === 'number' ? opt.size : Infinity + this[_remain] = this[_size] + this[_autoClose] = typeof opt.autoClose === 'boolean' ? + opt.autoClose : true + + if (typeof this[_fd] === 'number') + this[_read]() + else + this[_open]() + } + + get fd () { return this[_fd] } + get path () { return this[_path] } + + write () { + throw new TypeError('this is a readable stream') + } + + end () { + throw new TypeError('this is a readable stream') + } + + [_open] () { + fs.open(this[_path], 'r', (er, fd) => this[_onopen](er, fd)) + } + + [_onopen] (er, fd) { + if (er) + this[_onerror](er) + else { + this[_fd] = fd + this.emit('open', fd) + this[_read]() + } + } + + [_makeBuf] () { + return Buffer.allocUnsafe(Math.min(this[_readSize], this[_remain])) + } + + [_read] () { + if (!this[_reading]) { + this[_reading] = true + const buf = this[_makeBuf]() + /* istanbul ignore if */ + if (buf.length === 0) + return process.nextTick(() => this[_onread](null, 0, buf)) + fs.read(this[_fd], buf, 0, buf.length, null, (er, br, buf) => + this[_onread](er, br, buf)) + } + } + + [_onread] (er, br, buf) { + this[_reading] = false + if (er) + this[_onerror](er) + else if (this[_handleChunk](br, buf)) + this[_read]() + } + + [_close] () { + if (this[_autoClose] && typeof this[_fd] === 'number') { + const fd = this[_fd] + this[_fd] = null + fs.close(fd, er => er ? this.emit('error', er) : this.emit('close')) + } + } + + [_onerror] (er) { + this[_reading] = true + this[_close]() + this.emit('error', er) + } + + [_handleChunk] (br, buf) { + let ret = false + // no effect if infinite + this[_remain] -= br + if (br > 0) + ret = super.write(br < buf.length ? buf.slice(0, br) : buf) + + if (br === 0 || this[_remain] <= 0) { + ret = false + this[_close]() + super.end() + } + + return ret + } + + emit (ev, data) { + switch (ev) { + case 'prefinish': + case 'finish': + break + + case 'drain': + if (typeof this[_fd] === 'number') + this[_read]() + break + + case 'error': + if (this[_errored]) + return + this[_errored] = true + return super.emit(ev, data) + + default: + return super.emit(ev, data) + } + } +} + +class ReadStreamSync extends ReadStream { + [_open] () { + let threw = true + try { + this[_onopen](null, fs.openSync(this[_path], 'r')) + threw = false + } finally { + if (threw) + this[_close]() + } + } + + [_read] () { + let threw = true + try { + if (!this[_reading]) { + this[_reading] = true + do { + const buf = this[_makeBuf]() + /* istanbul ignore next */ + const br = buf.length === 0 ? 0 + : fs.readSync(this[_fd], buf, 0, buf.length, null) + if (!this[_handleChunk](br, buf)) + break + } while (true) + this[_reading] = false + } + threw = false + } finally { + if (threw) + this[_close]() + } + } + + [_close] () { + if (this[_autoClose] && typeof this[_fd] === 'number') { + const fd = this[_fd] + this[_fd] = null + fs.closeSync(fd) + this.emit('close') + } + } +} + +class WriteStream extends EE { + constructor (path, opt) { + opt = opt || {} + super(opt) + this.readable = false + this.writable = true + this[_errored] = false + this[_writing] = false + this[_ended] = false + this[_needDrain] = false + this[_queue] = [] + this[_path] = path + this[_fd] = typeof opt.fd === 'number' ? opt.fd : null + this[_mode] = opt.mode === undefined ? 0o666 : opt.mode + this[_pos] = typeof opt.start === 'number' ? opt.start : null + this[_autoClose] = typeof opt.autoClose === 'boolean' ? + opt.autoClose : true + + // truncating makes no sense when writing into the middle + const defaultFlag = this[_pos] !== null ? 'r+' : 'w' + this[_defaultFlag] = opt.flags === undefined + this[_flags] = this[_defaultFlag] ? defaultFlag : opt.flags + + if (this[_fd] === null) + this[_open]() + } + + emit (ev, data) { + if (ev === 'error') { + if (this[_errored]) + return + this[_errored] = true + } + return super.emit(ev, data) + } + + + get fd () { return this[_fd] } + get path () { return this[_path] } + + [_onerror] (er) { + this[_close]() + this[_writing] = true + this.emit('error', er) + } + + [_open] () { + fs.open(this[_path], this[_flags], this[_mode], + (er, fd) => this[_onopen](er, fd)) + } + + [_onopen] (er, fd) { + if (this[_defaultFlag] && + this[_flags] === 'r+' && + er && er.code === 'ENOENT') { + this[_flags] = 'w' + this[_open]() + } else if (er) + this[_onerror](er) + else { + this[_fd] = fd + this.emit('open', fd) + this[_flush]() + } + } + + end (buf, enc) { + if (buf) + this.write(buf, enc) + + this[_ended] = true + + // synthetic after-write logic, where drain/finish live + if (!this[_writing] && !this[_queue].length && + typeof this[_fd] === 'number') + this[_onwrite](null, 0) + return this + } + + write (buf, enc) { + if (typeof buf === 'string') + buf = Buffer.from(buf, enc) + + if (this[_ended]) { + this.emit('error', new Error('write() after end()')) + return false + } + + if (this[_fd] === null || this[_writing] || this[_queue].length) { + this[_queue].push(buf) + this[_needDrain] = true + return false + } + + this[_writing] = true + this[_write](buf) + return true + } + + [_write] (buf) { + fs.write(this[_fd], buf, 0, buf.length, this[_pos], (er, bw) => + this[_onwrite](er, bw)) + } + + [_onwrite] (er, bw) { + if (er) + this[_onerror](er) + else { + if (this[_pos] !== null) + this[_pos] += bw + if (this[_queue].length) + this[_flush]() + else { + this[_writing] = false + + if (this[_ended] && !this[_finished]) { + this[_finished] = true + this[_close]() + this.emit('finish') + } else if (this[_needDrain]) { + this[_needDrain] = false + this.emit('drain') + } + } + } + } + + [_flush] () { + if (this[_queue].length === 0) { + if (this[_ended]) + this[_onwrite](null, 0) + } else if (this[_queue].length === 1) + this[_write](this[_queue].pop()) + else { + const iovec = this[_queue] + this[_queue] = [] + writev(this[_fd], iovec, this[_pos], + (er, bw) => this[_onwrite](er, bw)) + } + } + + [_close] () { + if (this[_autoClose] && typeof this[_fd] === 'number') { + const fd = this[_fd] + this[_fd] = null + fs.close(fd, er => er ? this.emit('error', er) : this.emit('close')) + } + } +} + +class WriteStreamSync extends WriteStream { + [_open] () { + let fd + // only wrap in a try{} block if we know we'll retry, to avoid + // the rethrow obscuring the error's source frame in most cases. + if (this[_defaultFlag] && this[_flags] === 'r+') { + try { + fd = fs.openSync(this[_path], this[_flags], this[_mode]) + } catch (er) { + if (er.code === 'ENOENT') { + this[_flags] = 'w' + return this[_open]() + } else + throw er + } + } else + fd = fs.openSync(this[_path], this[_flags], this[_mode]) + + this[_onopen](null, fd) + } + + [_close] () { + if (this[_autoClose] && typeof this[_fd] === 'number') { + const fd = this[_fd] + this[_fd] = null + fs.closeSync(fd) + this.emit('close') + } + } + + [_write] (buf) { + // throw the original, but try to close if it fails + let threw = true + try { + this[_onwrite](null, + fs.writeSync(this[_fd], buf, 0, buf.length, this[_pos])) + threw = false + } finally { + if (threw) + try { this[_close]() } catch (_) {} + } + } +} + +exports.ReadStream = ReadStream +exports.ReadStreamSync = ReadStreamSync + +exports.WriteStream = WriteStream +exports.WriteStreamSync = WriteStreamSync diff --git a/node_modules/fs-minipass/package.json b/node_modules/fs-minipass/package.json new file mode 100644 index 0000000..2f2436c --- /dev/null +++ b/node_modules/fs-minipass/package.json @@ -0,0 +1,39 @@ +{ + "name": "fs-minipass", + "version": "2.1.0", + "main": "index.js", + "scripts": { + "test": "tap", + "preversion": "npm test", + "postversion": "npm publish", + "postpublish": "git push origin --follow-tags" + }, + "keywords": [], + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "license": "ISC", + "repository": { + "type": "git", + "url": "git+https://github.com/npm/fs-minipass.git" + }, + "bugs": { + "url": "https://github.com/npm/fs-minipass/issues" + }, + "homepage": "https://github.com/npm/fs-minipass#readme", + "description": "fs read and write streams based on minipass", + "dependencies": { + "minipass": "^3.0.0" + }, + "devDependencies": { + "mutate-fs": "^2.0.1", + "tap": "^14.6.4" + }, + "files": [ + "index.js" + ], + "tap": { + "check-coverage": true + }, + "engines": { + "node": ">= 8" + } +} diff --git a/node_modules/fs.realpath/LICENSE b/node_modules/fs.realpath/LICENSE new file mode 100644 index 0000000..5bd884c --- /dev/null +++ b/node_modules/fs.realpath/LICENSE @@ -0,0 +1,43 @@ +The ISC License + +Copyright (c) Isaac Z. Schlueter and 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. + +---- + +This library bundles a version of the `fs.realpath` and `fs.realpathSync` +methods from Node.js v0.10 under the terms of the Node.js MIT license. + +Node's license follows, also included at the header of `old.js` which contains +the licensed code: + + Copyright Joyent, Inc. and other Node 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/fs.realpath/README.md b/node_modules/fs.realpath/README.md new file mode 100644 index 0000000..a42ceac --- /dev/null +++ b/node_modules/fs.realpath/README.md @@ -0,0 +1,33 @@ +# fs.realpath + +A backwards-compatible fs.realpath for Node v6 and above + +In Node v6, the JavaScript implementation of fs.realpath was replaced +with a faster (but less resilient) native implementation. That raises +new and platform-specific errors and cannot handle long or excessively +symlink-looping paths. + +This module handles those cases by detecting the new errors and +falling back to the JavaScript implementation. On versions of Node +prior to v6, it has no effect. + +## USAGE + +```js +var rp = require('fs.realpath') + +// async version +rp.realpath(someLongAndLoopingPath, function (er, real) { + // the ELOOP was handled, but it was a bit slower +}) + +// sync version +var real = rp.realpathSync(someLongAndLoopingPath) + +// monkeypatch at your own risk! +// This replaces the fs.realpath/fs.realpathSync builtins +rp.monkeypatch() + +// un-do the monkeypatching +rp.unmonkeypatch() +``` diff --git a/node_modules/fs.realpath/index.js b/node_modules/fs.realpath/index.js new file mode 100644 index 0000000..b09c7c7 --- /dev/null +++ b/node_modules/fs.realpath/index.js @@ -0,0 +1,66 @@ +module.exports = realpath +realpath.realpath = realpath +realpath.sync = realpathSync +realpath.realpathSync = realpathSync +realpath.monkeypatch = monkeypatch +realpath.unmonkeypatch = unmonkeypatch + +var fs = require('fs') +var origRealpath = fs.realpath +var origRealpathSync = fs.realpathSync + +var version = process.version +var ok = /^v[0-5]\./.test(version) +var old = require('./old.js') + +function newError (er) { + return er && er.syscall === 'realpath' && ( + er.code === 'ELOOP' || + er.code === 'ENOMEM' || + er.code === 'ENAMETOOLONG' + ) +} + +function realpath (p, cache, cb) { + if (ok) { + return origRealpath(p, cache, cb) + } + + if (typeof cache === 'function') { + cb = cache + cache = null + } + origRealpath(p, cache, function (er, result) { + if (newError(er)) { + old.realpath(p, cache, cb) + } else { + cb(er, result) + } + }) +} + +function realpathSync (p, cache) { + if (ok) { + return origRealpathSync(p, cache) + } + + try { + return origRealpathSync(p, cache) + } catch (er) { + if (newError(er)) { + return old.realpathSync(p, cache) + } else { + throw er + } + } +} + +function monkeypatch () { + fs.realpath = realpath + fs.realpathSync = realpathSync +} + +function unmonkeypatch () { + fs.realpath = origRealpath + fs.realpathSync = origRealpathSync +} diff --git a/node_modules/fs.realpath/old.js b/node_modules/fs.realpath/old.js new file mode 100644 index 0000000..b40305e --- /dev/null +++ b/node_modules/fs.realpath/old.js @@ -0,0 +1,303 @@ +// Copyright Joyent, Inc. and other Node 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. + +var pathModule = require('path'); +var isWindows = process.platform === 'win32'; +var fs = require('fs'); + +// JavaScript implementation of realpath, ported from node pre-v6 + +var DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG); + +function rethrow() { + // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and + // is fairly slow to generate. + var callback; + if (DEBUG) { + var backtrace = new Error; + callback = debugCallback; + } else + callback = missingCallback; + + return callback; + + function debugCallback(err) { + if (err) { + backtrace.message = err.message; + err = backtrace; + missingCallback(err); + } + } + + function missingCallback(err) { + if (err) { + if (process.throwDeprecation) + throw err; // Forgot a callback but don't know where? Use NODE_DEBUG=fs + else if (!process.noDeprecation) { + var msg = 'fs: missing callback ' + (err.stack || err.message); + if (process.traceDeprecation) + console.trace(msg); + else + console.error(msg); + } + } + } +} + +function maybeCallback(cb) { + return typeof cb === 'function' ? cb : rethrow(); +} + +var normalize = pathModule.normalize; + +// Regexp that finds the next partion of a (partial) path +// result is [base_with_slash, base], e.g. ['somedir/', 'somedir'] +if (isWindows) { + var nextPartRe = /(.*?)(?:[\/\\]+|$)/g; +} else { + var nextPartRe = /(.*?)(?:[\/]+|$)/g; +} + +// Regex to find the device root, including trailing slash. E.g. 'c:\\'. +if (isWindows) { + var splitRootRe = /^(?:[a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/][^\\\/]+)?[\\\/]*/; +} else { + var splitRootRe = /^[\/]*/; +} + +exports.realpathSync = function realpathSync(p, cache) { + // make p is absolute + p = pathModule.resolve(p); + + if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { + return cache[p]; + } + + var original = p, + seenLinks = {}, + knownHard = {}; + + // current character position in p + var pos; + // the partial path so far, including a trailing slash if any + var current; + // the partial path without a trailing slash (except when pointing at a root) + var base; + // the partial path scanned in the previous round, with slash + var previous; + + start(); + + function start() { + // Skip over roots + var m = splitRootRe.exec(p); + pos = m[0].length; + current = m[0]; + base = m[0]; + previous = ''; + + // On windows, check that the root exists. On unix there is no need. + if (isWindows && !knownHard[base]) { + fs.lstatSync(base); + knownHard[base] = true; + } + } + + // walk down the path, swapping out linked pathparts for their real + // values + // NB: p.length changes. + while (pos < p.length) { + // find the next part + nextPartRe.lastIndex = pos; + var result = nextPartRe.exec(p); + previous = current; + current += result[0]; + base = previous + result[1]; + pos = nextPartRe.lastIndex; + + // continue if not a symlink + if (knownHard[base] || (cache && cache[base] === base)) { + continue; + } + + var resolvedLink; + if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { + // some known symbolic link. no need to stat again. + resolvedLink = cache[base]; + } else { + var stat = fs.lstatSync(base); + if (!stat.isSymbolicLink()) { + knownHard[base] = true; + if (cache) cache[base] = base; + continue; + } + + // read the link if it wasn't read before + // dev/ino always return 0 on windows, so skip the check. + var linkTarget = null; + if (!isWindows) { + var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); + if (seenLinks.hasOwnProperty(id)) { + linkTarget = seenLinks[id]; + } + } + if (linkTarget === null) { + fs.statSync(base); + linkTarget = fs.readlinkSync(base); + } + resolvedLink = pathModule.resolve(previous, linkTarget); + // track this, if given a cache. + if (cache) cache[base] = resolvedLink; + if (!isWindows) seenLinks[id] = linkTarget; + } + + // resolve the link, then start over + p = pathModule.resolve(resolvedLink, p.slice(pos)); + start(); + } + + if (cache) cache[original] = p; + + return p; +}; + + +exports.realpath = function realpath(p, cache, cb) { + if (typeof cb !== 'function') { + cb = maybeCallback(cache); + cache = null; + } + + // make p is absolute + p = pathModule.resolve(p); + + if (cache && Object.prototype.hasOwnProperty.call(cache, p)) { + return process.nextTick(cb.bind(null, null, cache[p])); + } + + var original = p, + seenLinks = {}, + knownHard = {}; + + // current character position in p + var pos; + // the partial path so far, including a trailing slash if any + var current; + // the partial path without a trailing slash (except when pointing at a root) + var base; + // the partial path scanned in the previous round, with slash + var previous; + + start(); + + function start() { + // Skip over roots + var m = splitRootRe.exec(p); + pos = m[0].length; + current = m[0]; + base = m[0]; + previous = ''; + + // On windows, check that the root exists. On unix there is no need. + if (isWindows && !knownHard[base]) { + fs.lstat(base, function(err) { + if (err) return cb(err); + knownHard[base] = true; + LOOP(); + }); + } else { + process.nextTick(LOOP); + } + } + + // walk down the path, swapping out linked pathparts for their real + // values + function LOOP() { + // stop if scanned past end of path + if (pos >= p.length) { + if (cache) cache[original] = p; + return cb(null, p); + } + + // find the next part + nextPartRe.lastIndex = pos; + var result = nextPartRe.exec(p); + previous = current; + current += result[0]; + base = previous + result[1]; + pos = nextPartRe.lastIndex; + + // continue if not a symlink + if (knownHard[base] || (cache && cache[base] === base)) { + return process.nextTick(LOOP); + } + + if (cache && Object.prototype.hasOwnProperty.call(cache, base)) { + // known symbolic link. no need to stat again. + return gotResolvedLink(cache[base]); + } + + return fs.lstat(base, gotStat); + } + + function gotStat(err, stat) { + if (err) return cb(err); + + // if not a symlink, skip to the next path part + if (!stat.isSymbolicLink()) { + knownHard[base] = true; + if (cache) cache[base] = base; + return process.nextTick(LOOP); + } + + // stat & read the link if not read before + // call gotTarget as soon as the link target is known + // dev/ino always return 0 on windows, so skip the check. + if (!isWindows) { + var id = stat.dev.toString(32) + ':' + stat.ino.toString(32); + if (seenLinks.hasOwnProperty(id)) { + return gotTarget(null, seenLinks[id], base); + } + } + fs.stat(base, function(err) { + if (err) return cb(err); + + fs.readlink(base, function(err, target) { + if (!isWindows) seenLinks[id] = target; + gotTarget(err, target); + }); + }); + } + + function gotTarget(err, target, base) { + if (err) return cb(err); + + var resolvedLink = pathModule.resolve(previous, target); + if (cache) cache[base] = resolvedLink; + gotResolvedLink(resolvedLink); + } + + function gotResolvedLink(resolvedLink) { + // resolve the link, then start over + p = pathModule.resolve(resolvedLink, p.slice(pos)); + start(); + } +}; diff --git a/node_modules/fs.realpath/package.json b/node_modules/fs.realpath/package.json new file mode 100644 index 0000000..3edc57d --- /dev/null +++ b/node_modules/fs.realpath/package.json @@ -0,0 +1,26 @@ +{ + "name": "fs.realpath", + "version": "1.0.0", + "description": "Use node's fs.realpath, but fall back to the JS implementation if the native one fails", + "main": "index.js", + "dependencies": {}, + "devDependencies": {}, + "scripts": { + "test": "tap test/*.js --cov" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/isaacs/fs.realpath.git" + }, + "keywords": [ + "realpath", + "fs", + "polyfill" + ], + "author": "Isaac Z. Schlueter (http://blog.izs.me/)", + "license": "ISC", + "files": [ + "old.js", + "index.js" + ] +} diff --git a/node_modules/geckodriver/AUTHORS b/node_modules/geckodriver/AUTHORS new file mode 100644 index 0000000..8c115f0 --- /dev/null +++ b/node_modules/geckodriver/AUTHORS @@ -0,0 +1,26 @@ +Amumu +Andrew Herron +Andrew Yurisich +Dave Haeffner +Dmitry +Dmitry Lemeshko +Fredrik Wollsén +FrittenToni +Gcaufy +Ivan Akulov +James Mountain +Joe Becher +Maciej Adwent +Martin Frys +Myk Melez +Spencer +Tango_Wu +Thomas Huang +Thomas Watson +Vlad Filippov +dependabot[bot] +martineez +pillsilly +vladikoff +w-ku +Марат Абдулин diff --git a/node_modules/geckodriver/LICENSE b/node_modules/geckodriver/LICENSE new file mode 100644 index 0000000..14e2f77 --- /dev/null +++ b/node_modules/geckodriver/LICENSE @@ -0,0 +1,373 @@ +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/node_modules/geckodriver/README.md b/node_modules/geckodriver/README.md new file mode 100644 index 0000000..498b860 --- /dev/null +++ b/node_modules/geckodriver/README.md @@ -0,0 +1,151 @@ +## node-geckodriver [![Build Status](https://github.com/vladikoff/node-geckodriver/workflows/Tests/badge.svg)](https://github.com/vladikoff/node-geckodriver/actions?workflow=Tests) [![npm package](https://img.shields.io/npm/v/geckodriver.svg)](https://www.npmjs.com/package/geckodriver) + +> Downloader for [github.com/mozilla/geckodriver/releases](https://github.com/mozilla/geckodriver/releases) + +This puts `geckodriver` or `geckodriver.exe` into root of this module. + +## Install + +``` +npm install geckodriver +``` + +## Usage + +There are several ways to use this module: + +### Use the provided `geckodriver` from `bin` directory. + +``` +bin/geckodriver [args] +``` + +### Use it by requiring: + +``` +require('geckodriver'); +``` + +### Use it by setting WebDriver capabilities: + +``` +profile.setPreference('marionette', true); +// Add log level if needed: +// profile.setPreference('marionette.logging', 'TRACE'); +``` + +### Use it globally: + +``` +npm install -g geckodriver +geckodriver [args] +``` + +Note: This installs a `geckodriver` shell script that runs the executable, but on Windows, selenium-webdriver looks for `geckodriver.exe`. To use a global installation of this package with selenium-webdriver on Windows, copy or link `geckodriver.exe` to a location on your PATH (such as the NPM bin directory) after installing this package: + +``` +mklink %USERPROFILE%\AppData\Roaming\npm\geckodriver.exe %USERPROFILE%\AppData\Roaming\npm\node_modules\geckodriver\geckodriver.exe +``` + +## Setting a CDN URL for binary download + +To set an alternate CDN location for geckodriver binaries, set the `GECKODRIVER_CDNURL` like this: + +``` +GECKODRIVER_CDNURL=https://INTERNAL_CDN/geckodriver/download +``` + +Binaries on your CDN should be located in a subdirectory of the above base URL. For example, `/vxx.xx.xx/*.tar.gz` should be located under `/geckodriver/download` above. + +Alternatively, you can add the same property to your `.npmrc` file. + +Default location is set to https://github.com/mozilla/geckodriver/releases/download + +## Setting a PROXY URL + +Use `HTTPS_PROXY` or `HTTP_PROXY` to set your proxy url. + +## Setting a specific version + +Use `GECKODRIVER_VERSION` if you require a specific version of gecko driver for your browser version. + +## Using a cached download + +Use `GECKODRIVER_FILEPATH` to point to a pre-downloaded geckodriver archive that should be extracted during installation. + +## Skipping geckodriver download + +Use `GECKODRIVER_SKIP_DOWNLOAD` to skip the download of the geckodriver file. + + +## Related Projects + +* [node-chromedriver](https://github.com/giggio/node-chromedriver) + +## Versions + +* [npm module version] - [geckodriver version] +* 3.2.0 - geckodriver 0.32.0, arm64 support. +* 3.1.0 - geckodriver 0.31.0 +* 3.0.x - geckodriver 0.30.0, refactored logic, dependency updates. +* 2.00.x - geckodriver 0.29.1, support changed to node v12+ +* 1.22.x - geckodriver 0.29.0 +* 1.21.x - geckodriver 0.28.0 +* 1.20.x - geckodriver 0.27.0 +* 1.19.x - geckodriver 0.26.0 +* 1.18.x - geckodriver 0.26.0 +* 1.17.x - geckodriver 0.25.0 +* 1.16.x - geckodriver 0.24.0 and `GECKODRIVER_VERSION` env support +* 1.15.x - geckodriver 0.24.0 +* 1.14.x - geckodriver 0.23.0 +* 1.13.x - geckodriver 0.22.0 +* 1.12.x - geckodriver 0.21.0 +* 1.11.x - geckodriver 0.20.0 +* 1.10.x - geckodriver 0.19.1 +* 1.9.x - geckodriver 0.19.0 +* 1.8.x - geckodriver 0.18.0 +* 1.7.x - geckodriver 0.17.0 +* 1.6.x - geckodriver 0.16.1 +* 1.5.x - geckodriver 0.15.0 +* 1.4.x - geckodriver 0.14.0 +* 1.3.x - geckodriver 0.13.0 +* 1.2.x - geckodriver 0.11.1 +* 1.1.x - geckodriver 0.10 + +## Changelog + +* 3.2.0 - geckodriver 0.32.0, arm64 support for Mac, Linux and Windows, added `GECKODRIVER_ARCH` for custom arch downloads. +* 3.1.0 - geckodriver 0.31.0 +* 2.0.1 - fixed proxy download behaviour. +* 1.20.0 - geckodriver 27. Requires node 8 and higher. Support `HTTPS_PROXY` env and npm_config_geckodriver_version variables. +* 1.19.0 - geckodriver 26. Dependency updates. +* 1.18.0 - geckodriver 26. +* 1.17.0 - geckodriver 25. +* 1.16.2 - fix issue with 'tar' dependency. +* 1.16.1 - added support for `GECKODRIVER_FILEPATH` env variable. +* 1.16.0 - added support for `GECKODRIVER_VERSION` env variable. Set it to `'0.24.0'` to fetch that version. +* 1.15.1 - fix for the new `.npmignore` pattern matching +* 1.15.0 - geckodriver 0.24.0 +* 1.14.0 - geckodriver 0.23.0 +* 1.13.0 - geckodriver 0.22.0 +* 1.12.2 - add proxy settings +* 1.12.1 - adm-zip security fix +* 1.12.0 - geckodriver 0.21.0 +* 1.11.0 - geckodriver 0.20.0 +* 1.10.0 - geckodriver 0.19.1, switch tar package, enable Win32 builds again, process.env.npm_config_geckodriver_cdnurl support +* 1.9.0 - updated to geckodriver 0.19.0 32-bit windows support removed. +* 1.8.1 - added geckodriver.exe bin for Windows +* 1.8.0 - updated to geckodriver 0.18.0 +* 1.7.1 - 'GECKODRIVER_CDNURL' support added. +* 1.7.0 - updated to geckodriver 0.17.0 32-bit linux support added. +* 1.6.1 - updated to geckodriver 0.16.1 +* 1.6.0 - updated to geckodriver 0.16.0. 32-bit linux support removed. +* 1.5.0 - updated to geckodriver 0.15.0. +* 1.4.0 - updated to geckodriver 0.14.0. +* 1.3.0 - updated to geckodriver 0.13.0. +* 1.2.1 - added support for Linux 32-bit. +* 1.2.0 - updated to geckodriver 0.11.1. +* 1.1.3 - adds Windows support, fixes Windows tests. +* 1.1.2 - fixed `require` by pointing `package.json main` property to the `lib` file. +* 1.1.0 - programmatic usage, added `bin` support. +* 1.0.0 - init release diff --git a/node_modules/geckodriver/bin/geckodriver b/node_modules/geckodriver/bin/geckodriver new file mode 100644 index 0000000..2069739 --- /dev/null +++ b/node_modules/geckodriver/bin/geckodriver @@ -0,0 +1,10 @@ +#!/usr/bin/env node + +var path = require('path') +var execPath = require(path.join(__dirname, '..', 'lib', 'geckodriver')).path +var cp = require('child_process').spawn(execPath, process.argv.slice(2), {stdio: 'inherit'}) +cp.on('exit', process.exit) +process.on('SIGTERM', function() { + cp.kill('SIGTERM') + process.exit(1) +}) diff --git a/node_modules/geckodriver/geckodriver.exe b/node_modules/geckodriver/geckodriver.exe new file mode 100644 index 0000000000000000000000000000000000000000..fec8b519279f648d5e66e378a07edffcc222cca9 GIT binary patch literal 3877704 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⁡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≪ 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

      -6nL3~Gr$=6g?&Ek~Q3oaOpw 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%0D~*vYW%>d9yM8XZ{;bX~ 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 z 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%0D#+FHBaE?(P$SStxj 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%0DkfubPqA~ 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

      2M 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�$j3zbql#nqfld*_{G^(kAOzjDNwO#HnAnq@h8dA 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%0APoNw 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�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

      OKj!^Yru*YO2L* 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

      IkWwL_Os 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Ð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