monitor-transfer-dsh 0.0.0-stage → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/README.md +51 -2
- package/cordis.patch.yml +4 -0
- package/lib/client.js +381 -0
- package/lib/index.js +267 -0
- package/package.json +67 -3
- package/skill/SKILL.md +48 -0
- package/skill/tools/node_modules/.package-lock.json +163 -0
- package/skill/tools/node_modules/pg/LICENSE +21 -0
- package/skill/tools/node_modules/pg/README.md +96 -0
- package/skill/tools/node_modules/pg/esm/index.mjs +20 -0
- package/skill/tools/node_modules/pg/lib/client.js +846 -0
- package/skill/tools/node_modules/pg/lib/connection-parameters.js +184 -0
- package/skill/tools/node_modules/pg/lib/connection.js +250 -0
- package/skill/tools/node_modules/pg/lib/crypto/cert-signatures.js +122 -0
- package/skill/tools/node_modules/pg/lib/crypto/sasl.js +262 -0
- package/skill/tools/node_modules/pg/lib/crypto/utils.js +89 -0
- package/skill/tools/node_modules/pg/lib/defaults.js +94 -0
- package/skill/tools/node_modules/pg/lib/index.js +73 -0
- package/skill/tools/node_modules/pg/lib/native/client.js +428 -0
- package/skill/tools/node_modules/pg/lib/native/index.js +2 -0
- package/skill/tools/node_modules/pg/lib/native/query.js +167 -0
- package/skill/tools/node_modules/pg/lib/query.js +263 -0
- package/skill/tools/node_modules/pg/lib/result.js +109 -0
- package/skill/tools/node_modules/pg/lib/stream.js +83 -0
- package/skill/tools/node_modules/pg/lib/type-overrides.js +35 -0
- package/skill/tools/node_modules/pg/lib/utils.js +225 -0
- package/skill/tools/node_modules/pg/package.json +76 -0
- package/skill/tools/node_modules/pg-cloudflare/LICENSE +21 -0
- package/skill/tools/node_modules/pg-cloudflare/README.md +112 -0
- package/skill/tools/node_modules/pg-cloudflare/dist/empty.d.ts +2 -0
- package/skill/tools/node_modules/pg-cloudflare/dist/empty.js +6 -0
- package/skill/tools/node_modules/pg-cloudflare/dist/empty.js.map +1 -0
- package/skill/tools/node_modules/pg-cloudflare/dist/index.d.ts +29 -0
- package/skill/tools/node_modules/pg-cloudflare/dist/index.js +171 -0
- package/skill/tools/node_modules/pg-cloudflare/dist/index.js.map +1 -0
- package/skill/tools/node_modules/pg-cloudflare/esm/index.mjs +3 -0
- package/skill/tools/node_modules/pg-cloudflare/package.json +39 -0
- package/skill/tools/node_modules/pg-cloudflare/src/empty.ts +3 -0
- package/skill/tools/node_modules/pg-cloudflare/src/index.ts +187 -0
- package/skill/tools/node_modules/pg-cloudflare/src/types.d.ts +25 -0
- package/skill/tools/node_modules/pg-connection-string/LICENSE +21 -0
- package/skill/tools/node_modules/pg-connection-string/README.md +105 -0
- package/skill/tools/node_modules/pg-connection-string/esm/index.mjs +8 -0
- package/skill/tools/node_modules/pg-connection-string/index.d.ts +37 -0
- package/skill/tools/node_modules/pg-connection-string/index.js +237 -0
- package/skill/tools/node_modules/pg-connection-string/package.json +51 -0
- package/skill/tools/node_modules/pg-int8/LICENSE +13 -0
- package/skill/tools/node_modules/pg-int8/README.md +16 -0
- package/skill/tools/node_modules/pg-int8/index.js +100 -0
- package/skill/tools/node_modules/pg-int8/package.json +24 -0
- package/skill/tools/node_modules/pg-pool/LICENSE +21 -0
- package/skill/tools/node_modules/pg-pool/README.md +357 -0
- package/skill/tools/node_modules/pg-pool/esm/index.mjs +5 -0
- package/skill/tools/node_modules/pg-pool/index.js +517 -0
- package/skill/tools/node_modules/pg-pool/package.json +51 -0
- package/skill/tools/node_modules/pg-protocol/LICENSE +21 -0
- package/skill/tools/node_modules/pg-protocol/README.md +3 -0
- package/skill/tools/node_modules/pg-protocol/dist/b.d.ts +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/b.js +23 -0
- package/skill/tools/node_modules/pg-protocol/dist/b.js.map +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/buffer-reader.d.ts +14 -0
- package/skill/tools/node_modules/pg-protocol/dist/buffer-reader.js +55 -0
- package/skill/tools/node_modules/pg-protocol/dist/buffer-reader.js.map +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/buffer-writer.d.ts +21 -0
- package/skill/tools/node_modules/pg-protocol/dist/buffer-writer.js +113 -0
- package/skill/tools/node_modules/pg-protocol/dist/buffer-writer.js.map +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/inbound-parser.test.d.ts +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/inbound-parser.test.js +538 -0
- package/skill/tools/node_modules/pg-protocol/dist/inbound-parser.test.js.map +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/index.d.ts +5 -0
- package/skill/tools/node_modules/pg-protocol/dist/index.js +15 -0
- package/skill/tools/node_modules/pg-protocol/dist/index.js.map +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/messages.d.ts +161 -0
- package/skill/tools/node_modules/pg-protocol/dist/messages.js +160 -0
- package/skill/tools/node_modules/pg-protocol/dist/messages.js.map +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/outbound-serializer.test.d.ts +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/outbound-serializer.test.js +325 -0
- package/skill/tools/node_modules/pg-protocol/dist/outbound-serializer.test.js.map +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/parser.d.ts +22 -0
- package/skill/tools/node_modules/pg-protocol/dist/parser.js +325 -0
- package/skill/tools/node_modules/pg-protocol/dist/parser.js.map +1 -0
- package/skill/tools/node_modules/pg-protocol/dist/serializer.d.ts +42 -0
- package/skill/tools/node_modules/pg-protocol/dist/serializer.js +198 -0
- package/skill/tools/node_modules/pg-protocol/dist/serializer.js.map +1 -0
- package/skill/tools/node_modules/pg-protocol/esm/index.js +11 -0
- package/skill/tools/node_modules/pg-protocol/package.json +44 -0
- package/skill/tools/node_modules/pg-protocol/src/b.ts +25 -0
- package/skill/tools/node_modules/pg-protocol/src/buffer-reader.ts +58 -0
- package/skill/tools/node_modules/pg-protocol/src/buffer-writer.ts +120 -0
- package/skill/tools/node_modules/pg-protocol/src/inbound-parser.test.ts +585 -0
- package/skill/tools/node_modules/pg-protocol/src/index.ts +11 -0
- package/skill/tools/node_modules/pg-protocol/src/messages.ts +262 -0
- package/skill/tools/node_modules/pg-protocol/src/outbound-serializer.test.ts +356 -0
- package/skill/tools/node_modules/pg-protocol/src/parser.ts +414 -0
- package/skill/tools/node_modules/pg-protocol/src/serializer.ts +286 -0
- package/skill/tools/node_modules/pg-protocol/src/testing/buffer-list.ts +67 -0
- package/skill/tools/node_modules/pg-protocol/src/testing/test-buffers.ts +166 -0
- package/skill/tools/node_modules/pg-types/.travis.yml +7 -0
- package/skill/tools/node_modules/pg-types/Makefile +14 -0
- package/skill/tools/node_modules/pg-types/README.md +75 -0
- package/skill/tools/node_modules/pg-types/index.d.ts +137 -0
- package/skill/tools/node_modules/pg-types/index.js +47 -0
- package/skill/tools/node_modules/pg-types/index.test-d.ts +21 -0
- package/skill/tools/node_modules/pg-types/lib/arrayParser.js +11 -0
- package/skill/tools/node_modules/pg-types/lib/binaryParsers.js +257 -0
- package/skill/tools/node_modules/pg-types/lib/builtins.js +73 -0
- package/skill/tools/node_modules/pg-types/lib/textParsers.js +215 -0
- package/skill/tools/node_modules/pg-types/package.json +42 -0
- package/skill/tools/node_modules/pg-types/test/index.js +24 -0
- package/skill/tools/node_modules/pg-types/test/types.js +597 -0
- package/skill/tools/node_modules/pgpass/README.md +74 -0
- package/skill/tools/node_modules/pgpass/lib/helper.js +233 -0
- package/skill/tools/node_modules/pgpass/lib/index.js +23 -0
- package/skill/tools/node_modules/pgpass/package.json +41 -0
- package/skill/tools/node_modules/postgres-array/index.d.ts +4 -0
- package/skill/tools/node_modules/postgres-array/index.js +97 -0
- package/skill/tools/node_modules/postgres-array/license +21 -0
- package/skill/tools/node_modules/postgres-array/package.json +35 -0
- package/skill/tools/node_modules/postgres-array/readme.md +43 -0
- package/skill/tools/node_modules/postgres-bytea/index.js +33 -0
- package/skill/tools/node_modules/postgres-bytea/license +21 -0
- package/skill/tools/node_modules/postgres-bytea/package.json +34 -0
- package/skill/tools/node_modules/postgres-bytea/readme.md +34 -0
- package/skill/tools/node_modules/postgres-date/index.js +116 -0
- package/skill/tools/node_modules/postgres-date/license +21 -0
- package/skill/tools/node_modules/postgres-date/package.json +33 -0
- package/skill/tools/node_modules/postgres-date/readme.md +49 -0
- package/skill/tools/node_modules/postgres-interval/index.d.ts +20 -0
- package/skill/tools/node_modules/postgres-interval/index.js +125 -0
- package/skill/tools/node_modules/postgres-interval/license +21 -0
- package/skill/tools/node_modules/postgres-interval/package.json +36 -0
- package/skill/tools/node_modules/postgres-interval/readme.md +48 -0
- package/skill/tools/node_modules/split2/LICENSE +13 -0
- package/skill/tools/node_modules/split2/README.md +85 -0
- package/skill/tools/node_modules/split2/bench.js +27 -0
- package/skill/tools/node_modules/split2/index.js +141 -0
- package/skill/tools/node_modules/split2/package.json +39 -0
- package/skill/tools/node_modules/split2/test.js +409 -0
- package/skill/tools/node_modules/undici/LICENSE +21 -0
- package/skill/tools/node_modules/undici/README.md +828 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Agent.md +291 -0
- package/skill/tools/node_modules/undici/docs/docs/api/BalancedPool.md +297 -0
- package/skill/tools/node_modules/undici/docs/docs/api/CacheStorage.md +188 -0
- package/skill/tools/node_modules/undici/docs/docs/api/CacheStore.md +375 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Client.md +538 -0
- package/skill/tools/node_modules/undici/docs/docs/api/ClientStats.md +93 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Connector.md +198 -0
- package/skill/tools/node_modules/undici/docs/docs/api/ContentType.md +97 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Cookies.md +179 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Debug.md +78 -0
- package/skill/tools/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +518 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Dispatcher.md +842 -0
- package/skill/tools/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +171 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Errors.md +624 -0
- package/skill/tools/node_modules/undici/docs/docs/api/EventSource.md +358 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Fetch.md +721 -0
- package/skill/tools/node_modules/undici/docs/docs/api/GlobalInstallation.md +121 -0
- package/skill/tools/node_modules/undici/docs/docs/api/H2CClient.md +386 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Interceptors.md +439 -0
- package/skill/tools/node_modules/undici/docs/docs/api/MockAgent.md +622 -0
- package/skill/tools/node_modules/undici/docs/docs/api/MockCallHistory.md +371 -0
- package/skill/tools/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +206 -0
- package/skill/tools/node_modules/undici/docs/docs/api/MockClient.md +199 -0
- package/skill/tools/node_modules/undici/docs/docs/api/MockErrors.md +63 -0
- package/skill/tools/node_modules/undici/docs/docs/api/MockPool.md +618 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Pool.md +278 -0
- package/skill/tools/node_modules/undici/docs/docs/api/PoolStats.md +141 -0
- package/skill/tools/node_modules/undici/docs/docs/api/ProxyAgent.md +248 -0
- package/skill/tools/node_modules/undici/docs/docs/api/RedirectHandler.md +279 -0
- package/skill/tools/node_modules/undici/docs/docs/api/RetryAgent.md +136 -0
- package/skill/tools/node_modules/undici/docs/docs/api/RetryHandler.md +200 -0
- package/skill/tools/node_modules/undici/docs/docs/api/RoundRobinPool.md +239 -0
- package/skill/tools/node_modules/undici/docs/docs/api/SnapshotAgent.md +361 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +256 -0
- package/skill/tools/node_modules/undici/docs/docs/api/Util.md +82 -0
- package/skill/tools/node_modules/undici/docs/docs/api/WebSocket.md +536 -0
- package/skill/tools/node_modules/undici/docs/docs/api/api-lifecycle.md +159 -0
- package/skill/tools/node_modules/undici/docs/docs/best-practices/client-certificate.md +66 -0
- package/skill/tools/node_modules/undici/docs/docs/best-practices/crawling.md +60 -0
- package/skill/tools/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +233 -0
- package/skill/tools/node_modules/undici/docs/docs/best-practices/mocking-request.md +192 -0
- package/skill/tools/node_modules/undici/docs/docs/best-practices/proxy.md +129 -0
- package/skill/tools/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +226 -0
- package/skill/tools/node_modules/undici/docs/docs/best-practices/writing-tests.md +65 -0
- package/skill/tools/node_modules/undici/docs/docs/getting-started.md +281 -0
- package/skill/tools/node_modules/undici/docs/docs/index.md +793 -0
- package/skill/tools/node_modules/undici/docs/docs/site.json +125 -0
- package/skill/tools/node_modules/undici/docs/docs/type-map.json +79 -0
- package/skill/tools/node_modules/undici/index-fetch.js +65 -0
- package/skill/tools/node_modules/undici/index.d.ts +3 -0
- package/skill/tools/node_modules/undici/index.js +236 -0
- package/skill/tools/node_modules/undici/lib/api/abort-signal.js +59 -0
- package/skill/tools/node_modules/undici/lib/api/api-connect.js +112 -0
- package/skill/tools/node_modules/undici/lib/api/api-pipeline.js +265 -0
- package/skill/tools/node_modules/undici/lib/api/api-request.js +244 -0
- package/skill/tools/node_modules/undici/lib/api/api-stream.js +270 -0
- package/skill/tools/node_modules/undici/lib/api/api-upgrade.js +121 -0
- package/skill/tools/node_modules/undici/lib/api/index.js +7 -0
- package/skill/tools/node_modules/undici/lib/api/readable.js +615 -0
- package/skill/tools/node_modules/undici/lib/cache/memory-cache-store.js +314 -0
- package/skill/tools/node_modules/undici/lib/cache/sqlite-cache-store.js +593 -0
- package/skill/tools/node_modules/undici/lib/core/connect.js +198 -0
- package/skill/tools/node_modules/undici/lib/core/constants.js +131 -0
- package/skill/tools/node_modules/undici/lib/core/diagnostics.js +227 -0
- package/skill/tools/node_modules/undici/lib/core/errors.js +534 -0
- package/skill/tools/node_modules/undici/lib/core/request.js +582 -0
- package/skill/tools/node_modules/undici/lib/core/socks5-client.js +422 -0
- package/skill/tools/node_modules/undici/lib/core/socks5-utils.js +212 -0
- package/skill/tools/node_modules/undici/lib/core/symbols.js +81 -0
- package/skill/tools/node_modules/undici/lib/core/tree.js +160 -0
- package/skill/tools/node_modules/undici/lib/core/util.js +1035 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/agent.js +181 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/balanced-pool.js +217 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/client-h1.js +1846 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/client-h2.js +1989 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/client.js +749 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/dispatcher-base.js +198 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/dispatcher.js +58 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +127 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +190 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/fixed-queue.js +135 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/h2c-client.js +51 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/parser-h1.js +1065 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/pool-base.js +347 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/pool.js +229 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/proxy-agent.js +418 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/retry-agent.js +48 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/round-robin-pool.js +169 -0
- package/skill/tools/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +350 -0
- package/skill/tools/node_modules/undici/lib/encoding/index.js +33 -0
- package/skill/tools/node_modules/undici/lib/global.js +82 -0
- package/skill/tools/node_modules/undici/lib/handler/cache-handler.js +1222 -0
- package/skill/tools/node_modules/undici/lib/handler/cache-revalidation-handler.js +134 -0
- package/skill/tools/node_modules/undici/lib/handler/decorator-handler.js +76 -0
- package/skill/tools/node_modules/undici/lib/handler/deduplication-handler.js +540 -0
- package/skill/tools/node_modules/undici/lib/handler/redirect-handler.js +284 -0
- package/skill/tools/node_modules/undici/lib/handler/retry-handler.js +686 -0
- package/skill/tools/node_modules/undici/lib/interceptor/cache.js +771 -0
- package/skill/tools/node_modules/undici/lib/interceptor/decompress.js +574 -0
- package/skill/tools/node_modules/undici/lib/interceptor/deduplicate.js +118 -0
- package/skill/tools/node_modules/undici/lib/interceptor/dns.js +593 -0
- package/skill/tools/node_modules/undici/lib/interceptor/dump.js +99 -0
- package/skill/tools/node_modules/undici/lib/interceptor/redirect.js +21 -0
- package/skill/tools/node_modules/undici/lib/interceptor/response-error.js +139 -0
- package/skill/tools/node_modules/undici/lib/interceptor/retry.js +19 -0
- package/skill/tools/node_modules/undici/lib/llhttp/constants.d.ts +195 -0
- package/skill/tools/node_modules/undici/lib/llhttp/constants.js +531 -0
- package/skill/tools/node_modules/undici/lib/llhttp/llhttp-wasm.js +15 -0
- package/skill/tools/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +15 -0
- package/skill/tools/node_modules/undici/lib/llhttp/utils.d.ts +2 -0
- package/skill/tools/node_modules/undici/lib/llhttp/utils.js +12 -0
- package/skill/tools/node_modules/undici/lib/milo/LICENSE.md +7 -0
- package/skill/tools/node_modules/undici/lib/milo/no-simd.js +1002 -0
- package/skill/tools/node_modules/undici/lib/milo/simd.js +1002 -0
- package/skill/tools/node_modules/undici/lib/mock/mock-agent.js +255 -0
- package/skill/tools/node_modules/undici/lib/mock/mock-call-history.js +248 -0
- package/skill/tools/node_modules/undici/lib/mock/mock-client.js +68 -0
- package/skill/tools/node_modules/undici/lib/mock/mock-errors.js +29 -0
- package/skill/tools/node_modules/undici/lib/mock/mock-interceptor.js +227 -0
- package/skill/tools/node_modules/undici/lib/mock/mock-pool.js +68 -0
- package/skill/tools/node_modules/undici/lib/mock/mock-symbols.js +32 -0
- package/skill/tools/node_modules/undici/lib/mock/mock-utils.js +730 -0
- package/skill/tools/node_modules/undici/lib/mock/pending-interceptors-formatter.js +43 -0
- package/skill/tools/node_modules/undici/lib/mock/snapshot-agent.js +371 -0
- package/skill/tools/node_modules/undici/lib/mock/snapshot-recorder.js +624 -0
- package/skill/tools/node_modules/undici/lib/mock/snapshot-utils.js +159 -0
- package/skill/tools/node_modules/undici/lib/util/cache.js +764 -0
- package/skill/tools/node_modules/undici/lib/util/date.js +670 -0
- package/skill/tools/node_modules/undici/lib/util/runtime-features.js +93 -0
- package/skill/tools/node_modules/undici/lib/util/stats.js +32 -0
- package/skill/tools/node_modules/undici/lib/util/timers.js +425 -0
- package/skill/tools/node_modules/undici/lib/web/cache/cache.js +871 -0
- package/skill/tools/node_modules/undici/lib/web/cache/cachestorage.js +158 -0
- package/skill/tools/node_modules/undici/lib/web/cache/util.js +45 -0
- package/skill/tools/node_modules/undici/lib/web/cookies/constants.js +12 -0
- package/skill/tools/node_modules/undici/lib/web/cookies/index.js +211 -0
- package/skill/tools/node_modules/undici/lib/web/cookies/parse.js +318 -0
- package/skill/tools/node_modules/undici/lib/web/cookies/util.js +371 -0
- package/skill/tools/node_modules/undici/lib/web/eventsource/eventsource-stream.js +575 -0
- package/skill/tools/node_modules/undici/lib/web/eventsource/eventsource.js +547 -0
- package/skill/tools/node_modules/undici/lib/web/eventsource/util.js +60 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/LICENSE +21 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/body.js +583 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/constants.js +131 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/data-url.js +596 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/formdata-parser.js +594 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/formdata.js +272 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/global.js +40 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/headers.js +722 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/index.js +2451 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/request.js +1117 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/response.js +638 -0
- package/skill/tools/node_modules/undici/lib/web/fetch/util.js +1530 -0
- package/skill/tools/node_modules/undici/lib/web/infra/index.js +244 -0
- package/skill/tools/node_modules/undici/lib/web/subresource-integrity/Readme.md +9 -0
- package/skill/tools/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +307 -0
- package/skill/tools/node_modules/undici/lib/web/webidl/index.js +992 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/connection.js +350 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/constants.js +126 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/events.js +348 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/frame.js +127 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/permessage-deflate.js +105 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/receiver.js +530 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/sender.js +109 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/stream/websocketerror.js +107 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/stream/websocketstream.js +511 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/util.js +347 -0
- package/skill/tools/node_modules/undici/lib/web/websocket/websocket.js +783 -0
- package/skill/tools/node_modules/undici/package.json +154 -0
- package/skill/tools/node_modules/undici/scripts/strip-comments.js +10 -0
- package/skill/tools/node_modules/undici/types/README.md +6 -0
- package/skill/tools/node_modules/undici/types/agent.d.ts +30 -0
- package/skill/tools/node_modules/undici/types/api.d.ts +43 -0
- package/skill/tools/node_modules/undici/types/balanced-pool.d.ts +30 -0
- package/skill/tools/node_modules/undici/types/cache-interceptor.d.ts +189 -0
- package/skill/tools/node_modules/undici/types/cache.d.ts +36 -0
- package/skill/tools/node_modules/undici/types/client-stats.d.ts +15 -0
- package/skill/tools/node_modules/undici/types/client.d.ts +190 -0
- package/skill/tools/node_modules/undici/types/connector.d.ts +37 -0
- package/skill/tools/node_modules/undici/types/content-type.d.ts +21 -0
- package/skill/tools/node_modules/undici/types/cookies.d.ts +30 -0
- package/skill/tools/node_modules/undici/types/diagnostics-channel.d.ts +75 -0
- package/skill/tools/node_modules/undici/types/dispatcher.d.ts +253 -0
- package/skill/tools/node_modules/undici/types/dispatcher1-wrapper.d.ts +7 -0
- package/skill/tools/node_modules/undici/types/env-http-proxy-agent.d.ts +22 -0
- package/skill/tools/node_modules/undici/types/errors.d.ts +202 -0
- package/skill/tools/node_modules/undici/types/eventsource.d.ts +66 -0
- package/skill/tools/node_modules/undici/types/fetch.d.ts +235 -0
- package/skill/tools/node_modules/undici/types/formdata.d.ts +108 -0
- package/skill/tools/node_modules/undici/types/global-dispatcher.d.ts +9 -0
- package/skill/tools/node_modules/undici/types/global-origin.d.ts +7 -0
- package/skill/tools/node_modules/undici/types/h2c-client.d.ts +73 -0
- package/skill/tools/node_modules/undici/types/handlers.d.ts +16 -0
- package/skill/tools/node_modules/undici/types/header.d.ts +165 -0
- package/skill/tools/node_modules/undici/types/index.d.ts +93 -0
- package/skill/tools/node_modules/undici/types/interceptors.d.ts +87 -0
- package/skill/tools/node_modules/undici/types/mock-agent.d.ts +69 -0
- package/skill/tools/node_modules/undici/types/mock-call-history.d.ts +111 -0
- package/skill/tools/node_modules/undici/types/mock-client.d.ts +27 -0
- package/skill/tools/node_modules/undici/types/mock-errors.d.ts +12 -0
- package/skill/tools/node_modules/undici/types/mock-interceptor.d.ts +98 -0
- package/skill/tools/node_modules/undici/types/mock-pool.d.ts +27 -0
- package/skill/tools/node_modules/undici/types/patch.d.ts +29 -0
- package/skill/tools/node_modules/undici/types/pool-stats.d.ts +19 -0
- package/skill/tools/node_modules/undici/types/pool.d.ts +39 -0
- package/skill/tools/node_modules/undici/types/proxy-agent.d.ts +36 -0
- package/skill/tools/node_modules/undici/types/readable.d.ts +68 -0
- package/skill/tools/node_modules/undici/types/retry-agent.d.ts +8 -0
- package/skill/tools/node_modules/undici/types/retry-handler.d.ts +125 -0
- package/skill/tools/node_modules/undici/types/round-robin-pool.d.ts +39 -0
- package/skill/tools/node_modules/undici/types/snapshot-agent.d.ts +113 -0
- package/skill/tools/node_modules/undici/types/socks5-proxy-agent.d.ts +27 -0
- package/skill/tools/node_modules/undici/types/util.d.ts +18 -0
- package/skill/tools/node_modules/undici/types/utility.d.ts +7 -0
- package/skill/tools/node_modules/undici/types/webidl.d.ts +352 -0
- package/skill/tools/node_modules/undici/types/websocket.d.ts +188 -0
- package/skill/tools/node_modules/xtend/.jshintrc +30 -0
- package/skill/tools/node_modules/xtend/LICENSE +20 -0
- package/skill/tools/node_modules/xtend/README.md +32 -0
- package/skill/tools/node_modules/xtend/immutable.js +19 -0
- package/skill/tools/node_modules/xtend/mutable.js +17 -0
- package/skill/tools/node_modules/xtend/package.json +55 -0
- package/skill/tools/node_modules/xtend/test.js +103 -0
- package/skill/tools/package-lock.json +172 -0
- package/skill/tools/package.json +9 -0
- package/skill/tools/transfer_core.js +414 -0
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
const { URL } = require('node:url')
|
|
4
|
+
|
|
5
|
+
let tls // include tls conditionally since it is not always available
|
|
6
|
+
const DispatcherBase = require('./dispatcher-base')
|
|
7
|
+
const { ConnectTimeoutError, InvalidArgumentError } = require('../core/errors')
|
|
8
|
+
const { Socks5Client, STATES } = require('../core/socks5-client')
|
|
9
|
+
const { kBusy, kConnected, kDispatch, kClose, kDestroy } = require('../core/symbols')
|
|
10
|
+
const Pool = require('./pool')
|
|
11
|
+
const buildConnector = require('../core/connect')
|
|
12
|
+
const { setupConnectTimeout } = require('../core/util')
|
|
13
|
+
const { debuglog } = require('node:util')
|
|
14
|
+
|
|
15
|
+
const debug = debuglog('undici:socks5-proxy')
|
|
16
|
+
|
|
17
|
+
const DEFAULT_SOCKS5_CONNECT_TIMEOUT = 5000
|
|
18
|
+
|
|
19
|
+
const kProxyUrl = Symbol('proxy url')
|
|
20
|
+
const kProxyHeaders = Symbol('proxy headers')
|
|
21
|
+
const kProxyAuth = Symbol('proxy auth')
|
|
22
|
+
const kProxyProtocol = Symbol('proxy protocol')
|
|
23
|
+
const kPools = Symbol('pools')
|
|
24
|
+
const kConnector = Symbol('connector')
|
|
25
|
+
const kConnectTimeout = Symbol('connect timeout')
|
|
26
|
+
const kRequestTls = Symbol('request tls settings')
|
|
27
|
+
const kRequestTlsTimeout = Symbol('request tls timeout')
|
|
28
|
+
|
|
29
|
+
function createConnectTimeoutError (hostname, port, timeout) {
|
|
30
|
+
return new ConnectTimeoutError(
|
|
31
|
+
`Connect Timeout Error (attempted address: ${hostname}:${port}, timeout: ${timeout}ms)`
|
|
32
|
+
)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Static flag to ensure warning is only emitted once per process
|
|
36
|
+
let experimentalWarningEmitted = false
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* SOCKS5 proxy agent for dispatching requests through a SOCKS5 proxy
|
|
40
|
+
*/
|
|
41
|
+
class Socks5ProxyAgent extends DispatcherBase {
|
|
42
|
+
constructor (proxyUrl, options = {}) {
|
|
43
|
+
super(options)
|
|
44
|
+
|
|
45
|
+
// Emit experimental warning only once
|
|
46
|
+
if (!experimentalWarningEmitted) {
|
|
47
|
+
process.emitWarning(
|
|
48
|
+
'SOCKS5 proxy support is experimental and subject to change',
|
|
49
|
+
'ExperimentalWarning'
|
|
50
|
+
)
|
|
51
|
+
experimentalWarningEmitted = true
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (!proxyUrl) {
|
|
55
|
+
throw new InvalidArgumentError('Proxy URL is mandatory')
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Parse proxy URL
|
|
59
|
+
const url = typeof proxyUrl === 'string' ? new URL(proxyUrl) : proxyUrl
|
|
60
|
+
|
|
61
|
+
if (url.protocol !== 'socks5:' && url.protocol !== 'socks:') {
|
|
62
|
+
throw new InvalidArgumentError('Proxy URL must use socks5:// or socks:// protocol')
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
this[kProxyUrl] = url
|
|
66
|
+
this[kProxyHeaders] = options.headers || {}
|
|
67
|
+
this[kProxyProtocol] = options.proxyTls ? 'https:' : 'http:'
|
|
68
|
+
|
|
69
|
+
const connectTimeout = options.connectTimeout ?? DEFAULT_SOCKS5_CONNECT_TIMEOUT
|
|
70
|
+
if (!Number.isFinite(connectTimeout) || connectTimeout < 0) {
|
|
71
|
+
throw new InvalidArgumentError('invalid connectTimeout')
|
|
72
|
+
}
|
|
73
|
+
this[kConnectTimeout] = connectTimeout
|
|
74
|
+
|
|
75
|
+
const { timeout, ...requestTls } = options.requestTls || {}
|
|
76
|
+
const requestTlsTimeout = timeout ?? connectTimeout
|
|
77
|
+
if (!Number.isFinite(requestTlsTimeout) || requestTlsTimeout < 0) {
|
|
78
|
+
throw new InvalidArgumentError('invalid requestTls.timeout')
|
|
79
|
+
}
|
|
80
|
+
this[kRequestTls] = requestTls
|
|
81
|
+
this[kRequestTlsTimeout] = requestTlsTimeout
|
|
82
|
+
|
|
83
|
+
// Extract auth from URL or options
|
|
84
|
+
this[kProxyAuth] = {
|
|
85
|
+
username: options.username || (url.username ? decodeURIComponent(url.username) : null),
|
|
86
|
+
password: options.password || (url.password ? decodeURIComponent(url.password) : null)
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Create connector for proxy connection
|
|
90
|
+
const proxyTlsTimeout = options.proxyTls?.timeout ?? connectTimeout
|
|
91
|
+
if (!Number.isFinite(proxyTlsTimeout) || proxyTlsTimeout < 0) {
|
|
92
|
+
throw new InvalidArgumentError('invalid proxyTls.timeout')
|
|
93
|
+
}
|
|
94
|
+
this[kConnector] = options.connect || buildConnector({
|
|
95
|
+
...options.proxyTls,
|
|
96
|
+
timeout: proxyTlsTimeout,
|
|
97
|
+
servername: options.proxyTls?.servername || url.hostname
|
|
98
|
+
})
|
|
99
|
+
|
|
100
|
+
// Pools for the actual HTTP connections (with SOCKS5 tunnel connect function), keyed by origin
|
|
101
|
+
this[kPools] = new Map()
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Create a SOCKS5 connection to the proxy
|
|
106
|
+
*/
|
|
107
|
+
async createSocks5Connection (targetHost, targetPort) {
|
|
108
|
+
const proxyHost = this[kProxyUrl].hostname
|
|
109
|
+
const proxyPort = parseInt(this[kProxyUrl].port) || 1080
|
|
110
|
+
|
|
111
|
+
debug('creating SOCKS5 connection to', proxyHost, proxyPort)
|
|
112
|
+
|
|
113
|
+
// Connect to the SOCKS5 proxy
|
|
114
|
+
const socketReady = Promise.withResolvers()
|
|
115
|
+
|
|
116
|
+
this[kConnector]({
|
|
117
|
+
hostname: proxyHost,
|
|
118
|
+
host: proxyHost,
|
|
119
|
+
port: proxyPort,
|
|
120
|
+
protocol: this[kProxyProtocol]
|
|
121
|
+
}, (err, socket) => {
|
|
122
|
+
if (err) {
|
|
123
|
+
socketReady.reject(err)
|
|
124
|
+
} else {
|
|
125
|
+
socketReady.resolve(socket)
|
|
126
|
+
}
|
|
127
|
+
})
|
|
128
|
+
|
|
129
|
+
const socket = await socketReady.promise
|
|
130
|
+
|
|
131
|
+
// Create SOCKS5 client
|
|
132
|
+
const socks5Client = new Socks5Client(socket, this[kProxyAuth])
|
|
133
|
+
|
|
134
|
+
// Handle SOCKS5 errors
|
|
135
|
+
socks5Client.on('error', (err) => {
|
|
136
|
+
debug('SOCKS5 error:', err)
|
|
137
|
+
socket.destroy()
|
|
138
|
+
})
|
|
139
|
+
|
|
140
|
+
// Perform SOCKS5 handshake
|
|
141
|
+
await socks5Client.handshake()
|
|
142
|
+
|
|
143
|
+
// Wait for authentication (if required)
|
|
144
|
+
const authenticationReady = Promise.withResolvers()
|
|
145
|
+
const authenticationTimeout = this[kConnectTimeout] === 0
|
|
146
|
+
? null
|
|
147
|
+
: setTimeout(() => {
|
|
148
|
+
cleanupAuthenticationListeners()
|
|
149
|
+
socks5Client.destroy()
|
|
150
|
+
authenticationReady.reject(
|
|
151
|
+
createConnectTimeoutError(proxyHost, proxyPort, this[kConnectTimeout])
|
|
152
|
+
)
|
|
153
|
+
}, this[kConnectTimeout])
|
|
154
|
+
|
|
155
|
+
const cleanupAuthenticationListeners = () => {
|
|
156
|
+
clearTimeout(authenticationTimeout)
|
|
157
|
+
socks5Client.removeListener('authenticated', onAuthenticated)
|
|
158
|
+
socks5Client.removeListener('error', onAuthenticationError)
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
const onAuthenticated = () => {
|
|
162
|
+
cleanupAuthenticationListeners()
|
|
163
|
+
authenticationReady.resolve()
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
const onAuthenticationError = (err) => {
|
|
167
|
+
cleanupAuthenticationListeners()
|
|
168
|
+
authenticationReady.reject(err)
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// Check if already authenticated (for NO_AUTH method)
|
|
172
|
+
if (socks5Client.state === STATES.AUTHENTICATED) {
|
|
173
|
+
clearTimeout(authenticationTimeout)
|
|
174
|
+
authenticationReady.resolve()
|
|
175
|
+
} else {
|
|
176
|
+
socks5Client.once('authenticated', onAuthenticated)
|
|
177
|
+
socks5Client.once('error', onAuthenticationError)
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
await authenticationReady.promise
|
|
181
|
+
|
|
182
|
+
// Send CONNECT command
|
|
183
|
+
await socks5Client.connect(targetHost, targetPort)
|
|
184
|
+
|
|
185
|
+
// Wait for connection
|
|
186
|
+
const connectionReady = Promise.withResolvers()
|
|
187
|
+
const connectionTimeout = this[kConnectTimeout] === 0
|
|
188
|
+
? null
|
|
189
|
+
: setTimeout(() => {
|
|
190
|
+
cleanupConnectionListeners()
|
|
191
|
+
socks5Client.destroy()
|
|
192
|
+
connectionReady.reject(
|
|
193
|
+
createConnectTimeoutError(targetHost, targetPort, this[kConnectTimeout])
|
|
194
|
+
)
|
|
195
|
+
}, this[kConnectTimeout])
|
|
196
|
+
|
|
197
|
+
const cleanupConnectionListeners = () => {
|
|
198
|
+
clearTimeout(connectionTimeout)
|
|
199
|
+
socks5Client.removeListener('connected', onConnected)
|
|
200
|
+
socks5Client.removeListener('error', onConnectionError)
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
const onConnected = (info) => {
|
|
204
|
+
debug('SOCKS5 tunnel established to', targetHost, targetPort, 'via', info)
|
|
205
|
+
cleanupConnectionListeners()
|
|
206
|
+
connectionReady.resolve()
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
const onConnectionError = (err) => {
|
|
210
|
+
cleanupConnectionListeners()
|
|
211
|
+
connectionReady.reject(err)
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
socks5Client.once('connected', onConnected)
|
|
215
|
+
socks5Client.once('error', onConnectionError)
|
|
216
|
+
|
|
217
|
+
await connectionReady.promise
|
|
218
|
+
|
|
219
|
+
return socket
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
/**
|
|
223
|
+
* Dispatch a request through the SOCKS5 proxy
|
|
224
|
+
*/
|
|
225
|
+
[kDispatch] (opts, handler) {
|
|
226
|
+
const { origin } = opts
|
|
227
|
+
|
|
228
|
+
debug('dispatching request to', origin, 'via SOCKS5')
|
|
229
|
+
|
|
230
|
+
try {
|
|
231
|
+
const originKey = String(origin)
|
|
232
|
+
let pool = this[kPools].get(originKey)
|
|
233
|
+
// Create a Pool per origin so requests are not routed to the wrong host
|
|
234
|
+
if (!pool || pool.destroyed || pool.closed) {
|
|
235
|
+
pool = new Pool(origin, {
|
|
236
|
+
pipelining: opts.pipelining,
|
|
237
|
+
connections: opts.connections,
|
|
238
|
+
connect: async (connectOpts, callback) => {
|
|
239
|
+
try {
|
|
240
|
+
const url = new URL(origin)
|
|
241
|
+
const targetHost = url.hostname
|
|
242
|
+
const targetPort = parseInt(url.port) || (url.protocol === 'https:' ? 443 : 80)
|
|
243
|
+
|
|
244
|
+
debug('establishing SOCKS5 connection to', targetHost, targetPort)
|
|
245
|
+
|
|
246
|
+
// Create SOCKS5 tunnel
|
|
247
|
+
const socket = await this.createSocks5Connection(targetHost, targetPort)
|
|
248
|
+
|
|
249
|
+
// Handle TLS if needed
|
|
250
|
+
let finalSocket = socket
|
|
251
|
+
if (url.protocol === 'https:') {
|
|
252
|
+
if (!tls) {
|
|
253
|
+
tls = require('node:tls')
|
|
254
|
+
}
|
|
255
|
+
debug('upgrading to TLS')
|
|
256
|
+
finalSocket = tls.connect({
|
|
257
|
+
...this[kRequestTls],
|
|
258
|
+
socket,
|
|
259
|
+
servername: this[kRequestTls]?.servername || targetHost
|
|
260
|
+
})
|
|
261
|
+
|
|
262
|
+
const tlsReady = Promise.withResolvers()
|
|
263
|
+
|
|
264
|
+
const cleanupTlsListeners = () => {
|
|
265
|
+
queueMicrotask(clearTlsTimeout)
|
|
266
|
+
finalSocket.removeListener('secureConnect', onSecureConnect)
|
|
267
|
+
finalSocket.removeListener('error', onTlsError)
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
const onSecureConnect = () => {
|
|
271
|
+
cleanupTlsListeners()
|
|
272
|
+
tlsReady.resolve()
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
const onTlsError = (err) => {
|
|
276
|
+
cleanupTlsListeners()
|
|
277
|
+
tlsReady.reject(err)
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
const clearTlsTimeout = setupConnectTimeout(new WeakRef(finalSocket), {
|
|
281
|
+
timeout: this[kRequestTlsTimeout],
|
|
282
|
+
hostname: targetHost,
|
|
283
|
+
port: targetPort
|
|
284
|
+
})
|
|
285
|
+
|
|
286
|
+
finalSocket.once('secureConnect', onSecureConnect)
|
|
287
|
+
finalSocket.once('error', onTlsError)
|
|
288
|
+
await tlsReady.promise
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
callback(null, finalSocket)
|
|
292
|
+
} catch (err) {
|
|
293
|
+
debug('SOCKS5 connection error:', err)
|
|
294
|
+
callback(err)
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
})
|
|
298
|
+
this[kPools].set(originKey, pool)
|
|
299
|
+
|
|
300
|
+
const closePoolIfUnused = () => {
|
|
301
|
+
if (this[kPools].get(originKey) !== pool || pool[kConnected] > 0 || pool[kBusy]) {
|
|
302
|
+
return
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
this[kPools].delete(originKey)
|
|
306
|
+
if (!pool.destroyed) {
|
|
307
|
+
pool.close()
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
pool.on('disconnect', closePoolIfUnused)
|
|
312
|
+
pool.on('connectionError', closePoolIfUnused)
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
// Dispatch the request through the per-origin pool
|
|
316
|
+
return pool[kDispatch](opts, handler)
|
|
317
|
+
} catch (err) {
|
|
318
|
+
debug('dispatch error:', err)
|
|
319
|
+
if (typeof handler.onResponseError === 'function') {
|
|
320
|
+
handler.onResponseError(null, err)
|
|
321
|
+
return false
|
|
322
|
+
} else if (typeof handler.onError === 'function') {
|
|
323
|
+
handler.onError(err)
|
|
324
|
+
return false
|
|
325
|
+
} else {
|
|
326
|
+
throw err
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
async [kClose] () {
|
|
332
|
+
const closePromises = []
|
|
333
|
+
for (const pool of this[kPools].values()) {
|
|
334
|
+
closePromises.push(pool.close())
|
|
335
|
+
}
|
|
336
|
+
this[kPools].clear()
|
|
337
|
+
await Promise.all(closePromises)
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
async [kDestroy] (err) {
|
|
341
|
+
const destroyPromises = []
|
|
342
|
+
for (const pool of this[kPools].values()) {
|
|
343
|
+
destroyPromises.push(pool.destroy(err))
|
|
344
|
+
}
|
|
345
|
+
this[kPools].clear()
|
|
346
|
+
await Promise.all(destroyPromises)
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
module.exports = Socks5ProxyAgent
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
const textDecoder = new TextDecoder()
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* @see https://encoding.spec.whatwg.org/#utf-8-decode
|
|
7
|
+
* @param {Uint8Array} buffer
|
|
8
|
+
*/
|
|
9
|
+
function utf8DecodeBytes (buffer) {
|
|
10
|
+
if (buffer.length === 0) {
|
|
11
|
+
return ''
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// 1. Let buffer be the result of peeking three bytes from
|
|
15
|
+
// ioQueue, converted to a byte sequence.
|
|
16
|
+
|
|
17
|
+
// 2. If buffer is 0xEF 0xBB 0xBF, then read three
|
|
18
|
+
// bytes from ioQueue. (Do nothing with those bytes.)
|
|
19
|
+
if (buffer[0] === 0xEF && buffer[1] === 0xBB && buffer[2] === 0xBF) {
|
|
20
|
+
buffer = buffer.subarray(3)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// 3. Process a queue with an instance of UTF-8’s
|
|
24
|
+
// decoder, ioQueue, output, and "replacement".
|
|
25
|
+
const output = textDecoder.decode(buffer)
|
|
26
|
+
|
|
27
|
+
// 4. Return output.
|
|
28
|
+
return output
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
module.exports = {
|
|
32
|
+
utf8DecodeBytes
|
|
33
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
// We include a version number for the Dispatcher API. In case of breaking changes,
|
|
4
|
+
// this version number must be increased to avoid conflicts.
|
|
5
|
+
const globalDispatcher = Symbol.for('undici.globalDispatcher.2')
|
|
6
|
+
const legacyGlobalDispatcher = Symbol.for('undici.globalDispatcher.1')
|
|
7
|
+
const { InvalidArgumentError } = require('./core/errors')
|
|
8
|
+
const Agent = require('./dispatcher/agent')
|
|
9
|
+
const Dispatcher1Wrapper = require('./dispatcher/dispatcher1-wrapper')
|
|
10
|
+
|
|
11
|
+
// Fallback storage for when globalThis is not extensible (e.g. frozen)
|
|
12
|
+
let fallbackDispatcher
|
|
13
|
+
|
|
14
|
+
if (getGlobalDispatcher() === undefined) {
|
|
15
|
+
setGlobalDispatcher(new Agent())
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function setGlobalDispatcher (agent) {
|
|
19
|
+
if (!agent || typeof agent.dispatch !== 'function') {
|
|
20
|
+
throw new InvalidArgumentError('Argument agent must implement Agent')
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
try {
|
|
24
|
+
Object.defineProperty(globalThis, globalDispatcher, {
|
|
25
|
+
value: agent,
|
|
26
|
+
writable: true,
|
|
27
|
+
enumerable: false,
|
|
28
|
+
configurable: false
|
|
29
|
+
})
|
|
30
|
+
} catch (err) {
|
|
31
|
+
// globalThis is not extensible (e.g. Object.freeze(globalThis))
|
|
32
|
+
// Use fallback storage instead
|
|
33
|
+
if (err instanceof TypeError) {
|
|
34
|
+
fallbackDispatcher = agent
|
|
35
|
+
return
|
|
36
|
+
}
|
|
37
|
+
throw err
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
try {
|
|
41
|
+
const legacyAgent = agent instanceof Dispatcher1Wrapper ? agent : new Dispatcher1Wrapper(agent)
|
|
42
|
+
|
|
43
|
+
Object.defineProperty(globalThis, legacyGlobalDispatcher, {
|
|
44
|
+
value: legacyAgent,
|
|
45
|
+
writable: true,
|
|
46
|
+
enumerable: false,
|
|
47
|
+
configurable: false
|
|
48
|
+
})
|
|
49
|
+
} catch (err) {
|
|
50
|
+
// globalThis is not extensible; fallback storage is already set
|
|
51
|
+
if (!(err instanceof TypeError)) {
|
|
52
|
+
throw err
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function getGlobalDispatcher () {
|
|
58
|
+
return globalThis[globalDispatcher] ?? fallbackDispatcher
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// These are the globals that can be installed by undici.install().
|
|
62
|
+
// Not exported by index.js to avoid use outside of this module.
|
|
63
|
+
const installedExports = /** @type {const} */ (
|
|
64
|
+
[
|
|
65
|
+
'fetch',
|
|
66
|
+
'Headers',
|
|
67
|
+
'Response',
|
|
68
|
+
'Request',
|
|
69
|
+
'FormData',
|
|
70
|
+
'WebSocket',
|
|
71
|
+
'CloseEvent',
|
|
72
|
+
'ErrorEvent',
|
|
73
|
+
'MessageEvent',
|
|
74
|
+
'EventSource'
|
|
75
|
+
]
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
module.exports = {
|
|
79
|
+
setGlobalDispatcher,
|
|
80
|
+
getGlobalDispatcher,
|
|
81
|
+
installedExports
|
|
82
|
+
}
|