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,278 @@
|
|
|
1
|
+
# Pool
|
|
2
|
+
|
|
3
|
+
<!--introduced_in=v1.0.0-->
|
|
4
|
+
|
|
5
|
+
<!--type=module-->
|
|
6
|
+
|
|
7
|
+
<!-- source_link=lib/dispatcher/pool.js -->
|
|
8
|
+
|
|
9
|
+
> Stability: 2 - Stable
|
|
10
|
+
|
|
11
|
+
A pool of [`Client`][] instances connected to the same upstream origin. A `Pool`
|
|
12
|
+
spreads requests across several connections to the same host, which allows more
|
|
13
|
+
than one request to be in flight at a time without enabling pipelining on a
|
|
14
|
+
single connection.
|
|
15
|
+
|
|
16
|
+
`Pool` extends [`Dispatcher`][]. Each [`Client`][] in the pool is created lazily
|
|
17
|
+
through a configurable `factory` and shares the same options. Requests are not
|
|
18
|
+
guaranteed to be dispatched in the order in which they are invoked.
|
|
19
|
+
|
|
20
|
+
```mjs
|
|
21
|
+
import { Pool } from 'undici'
|
|
22
|
+
|
|
23
|
+
const pool = new Pool('http://localhost:3000', { connections: 10 })
|
|
24
|
+
const { statusCode, body } = await pool.request({ path: '/', method: 'GET' })
|
|
25
|
+
console.log(statusCode, await body.text())
|
|
26
|
+
await pool.close()
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Class: `Pool`
|
|
30
|
+
|
|
31
|
+
<!-- YAML
|
|
32
|
+
added: v1.0.0
|
|
33
|
+
changes:
|
|
34
|
+
- version: v4.10.4
|
|
35
|
+
pr-url: https://github.com/nodejs/undici/pull/1114
|
|
36
|
+
description: Reworked as part of the balanced pool implementation.
|
|
37
|
+
-->
|
|
38
|
+
|
|
39
|
+
* Extends: {Dispatcher}
|
|
40
|
+
|
|
41
|
+
### `new Pool(url[, options])`
|
|
42
|
+
|
|
43
|
+
<!-- YAML
|
|
44
|
+
added: v1.0.0
|
|
45
|
+
-->
|
|
46
|
+
|
|
47
|
+
* `url` {URL|string} The upstream origin. It should only include the protocol,
|
|
48
|
+
hostname, and port.
|
|
49
|
+
* `options` {PoolOptions} (optional) Extends {ClientOptions}, so every
|
|
50
|
+
[`Client`][] option is also accepted and forwarded to each pooled client.
|
|
51
|
+
* `factory` {Function} Creates the [`Client`][] (or other [`Dispatcher`][])
|
|
52
|
+
instances used by the pool.
|
|
53
|
+
**Default:** `(origin, opts) => new Client(origin, opts)`.
|
|
54
|
+
* `origin` {URL} The parsed upstream origin.
|
|
55
|
+
* `opts` {Object} The resolved client options.
|
|
56
|
+
* Returns: {Dispatcher}
|
|
57
|
+
* `connections` {number|null} The maximum number of [`Client`][] instances the
|
|
58
|
+
pool may create. When set to `null` the pool creates an unlimited number of
|
|
59
|
+
clients. **Default:** `null`.
|
|
60
|
+
* `clientTtl` {number|null} The amount of time, in milliseconds, before an idle
|
|
61
|
+
[`Client`][] is removed from the pool and closed. When set to `null` clients
|
|
62
|
+
are never removed based on age. **Default:** `null`.
|
|
63
|
+
|
|
64
|
+
Creates a new `Pool` against `url`. If `connections` is provided it must be a
|
|
65
|
+
finite, non-negative number, otherwise an [`InvalidArgumentError`][] is thrown.
|
|
66
|
+
The `factory` must be a function, and `connect` (inherited from {ClientOptions})
|
|
67
|
+
must be a function or an object when provided.
|
|
68
|
+
|
|
69
|
+
The connection-related {ClientOptions} (`connect`, `connectTimeout`, `tls`,
|
|
70
|
+
`maxCachedSessions`, `socketPath`, `autoSelectFamily`,
|
|
71
|
+
`autoSelectFamilyAttemptTimeout`, `allowH2`, and `useH2c`) are used to build the
|
|
72
|
+
connector shared by every pooled client.
|
|
73
|
+
|
|
74
|
+
> [!NOTE]
|
|
75
|
+
> `Pool` inherits all {ClientOptions}, including `allowH2` and
|
|
76
|
+
> `maxConcurrentStreams`. For an h2-capable HTTPS origin, the pool waits for
|
|
77
|
+
> the first TLS connection to finish ALPN negotiation before opening more
|
|
78
|
+
> clients. If the server selects h2, concurrent requests share that session up
|
|
79
|
+
> to `maxConcurrentStreams`. If it selects HTTP/1.1, the pool resumes normal
|
|
80
|
+
> connection fan-out up to `connections`.
|
|
81
|
+
|
|
82
|
+
```mjs
|
|
83
|
+
import { Pool } from 'undici'
|
|
84
|
+
|
|
85
|
+
const pool = new Pool('http://localhost:3000', {
|
|
86
|
+
connections: 128,
|
|
87
|
+
pipelining: 1
|
|
88
|
+
})
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### `pool.closed`
|
|
92
|
+
|
|
93
|
+
<!-- YAML
|
|
94
|
+
added: v1.0.0
|
|
95
|
+
-->
|
|
96
|
+
|
|
97
|
+
* Type: {boolean}
|
|
98
|
+
|
|
99
|
+
`true` after [`pool.close()`][] has been called.
|
|
100
|
+
|
|
101
|
+
### `pool.destroyed`
|
|
102
|
+
|
|
103
|
+
<!-- YAML
|
|
104
|
+
added: v1.0.0
|
|
105
|
+
changes:
|
|
106
|
+
- version: v2.0.0
|
|
107
|
+
pr-url: https://github.com/nodejs/undici/pull/384
|
|
108
|
+
description: Reflects the state set by `pool.close()`.
|
|
109
|
+
- version: v4.10.4
|
|
110
|
+
pr-url: https://github.com/nodejs/undici/pull/1114
|
|
111
|
+
description: Reworked as part of the balanced pool implementation.
|
|
112
|
+
-->
|
|
113
|
+
|
|
114
|
+
* Type: {boolean}
|
|
115
|
+
|
|
116
|
+
`true` after [`pool.destroy()`][] has been called, or after [`pool.close()`][]
|
|
117
|
+
has been called and the pool shutdown has completed.
|
|
118
|
+
|
|
119
|
+
### `pool.stats`
|
|
120
|
+
|
|
121
|
+
<!-- YAML
|
|
122
|
+
added: v1.0.0
|
|
123
|
+
-->
|
|
124
|
+
|
|
125
|
+
* Type: {PoolStats}
|
|
126
|
+
|
|
127
|
+
Aggregate statistics for the pool. See [`PoolStats`][].
|
|
128
|
+
|
|
129
|
+
### `pool.close([callback])`
|
|
130
|
+
|
|
131
|
+
<!-- YAML
|
|
132
|
+
added: v1.0.0
|
|
133
|
+
-->
|
|
134
|
+
|
|
135
|
+
Implements [`dispatcher.close([callback])`][]. Gracefully closes the pool and
|
|
136
|
+
all of its clients, waiting for in-flight requests to complete. Resolves once
|
|
137
|
+
every pooled client has closed.
|
|
138
|
+
|
|
139
|
+
### `pool.destroy([error[, callback]])`
|
|
140
|
+
|
|
141
|
+
<!-- YAML
|
|
142
|
+
added: v1.0.0
|
|
143
|
+
-->
|
|
144
|
+
|
|
145
|
+
Implements [`dispatcher.destroy([error[, callback]])`][]. Forcefully destroys
|
|
146
|
+
the pool and all of its clients, aborting any in-flight requests with `error`.
|
|
147
|
+
|
|
148
|
+
### `pool.connect(options[, callback])`
|
|
149
|
+
|
|
150
|
+
<!-- YAML
|
|
151
|
+
added: v1.0.0
|
|
152
|
+
-->
|
|
153
|
+
|
|
154
|
+
See [`dispatcher.connect(options[, callback])`][]. Performs an HTTP `CONNECT`
|
|
155
|
+
request through one of the pooled clients.
|
|
156
|
+
|
|
157
|
+
### `pool.dispatch(options, handler)`
|
|
158
|
+
|
|
159
|
+
<!-- YAML
|
|
160
|
+
added: v1.3.0
|
|
161
|
+
changes:
|
|
162
|
+
- version: v4.10.4
|
|
163
|
+
pr-url: https://github.com/nodejs/undici/pull/1114
|
|
164
|
+
description: Reworked as part of the balanced pool implementation.
|
|
165
|
+
-->
|
|
166
|
+
|
|
167
|
+
Implements [`dispatcher.dispatch(options, handler)`][]. Selects an available
|
|
168
|
+
client - creating a new one through `factory` when none is free and the
|
|
169
|
+
`connections` limit has not been reached - and dispatches the request to it.
|
|
170
|
+
|
|
171
|
+
### `pool.pipeline(options, handler)`
|
|
172
|
+
|
|
173
|
+
<!-- YAML
|
|
174
|
+
added: v1.0.0
|
|
175
|
+
-->
|
|
176
|
+
|
|
177
|
+
See [`dispatcher.pipeline(options, handler)`][]. Sends a request and returns a
|
|
178
|
+
{Duplex} stream that pipes the request body to the response body through
|
|
179
|
+
`handler`.
|
|
180
|
+
|
|
181
|
+
### `pool.request(options[, callback])`
|
|
182
|
+
|
|
183
|
+
<!-- YAML
|
|
184
|
+
added: v1.0.0
|
|
185
|
+
-->
|
|
186
|
+
|
|
187
|
+
See [`dispatcher.request(options[, callback])`][]. Performs a request through one
|
|
188
|
+
of the pooled clients.
|
|
189
|
+
|
|
190
|
+
```mjs
|
|
191
|
+
import { Pool } from 'undici'
|
|
192
|
+
|
|
193
|
+
const pool = new Pool('http://localhost:3000', { connections: 10 })
|
|
194
|
+
const { statusCode, headers, body } = await pool.request({
|
|
195
|
+
path: '/',
|
|
196
|
+
method: 'GET'
|
|
197
|
+
})
|
|
198
|
+
console.log(statusCode, headers)
|
|
199
|
+
console.log(await body.text())
|
|
200
|
+
await pool.close()
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### `pool.stream(options, factory[, callback])`
|
|
204
|
+
|
|
205
|
+
<!-- YAML
|
|
206
|
+
added: v1.0.0
|
|
207
|
+
-->
|
|
208
|
+
|
|
209
|
+
See [`dispatcher.stream(options, factory[, callback])`][]. Performs a request and
|
|
210
|
+
writes the response body into the {Writable} stream returned by `factory`.
|
|
211
|
+
|
|
212
|
+
### `pool.upgrade(options[, callback])`
|
|
213
|
+
|
|
214
|
+
<!-- YAML
|
|
215
|
+
added: v1.0.0
|
|
216
|
+
-->
|
|
217
|
+
|
|
218
|
+
See [`dispatcher.upgrade(options[, callback])`][]. Upgrades a connection
|
|
219
|
+
(for example to a WebSocket) through one of the pooled clients.
|
|
220
|
+
|
|
221
|
+
### Event: `'connect'`
|
|
222
|
+
|
|
223
|
+
<!-- YAML
|
|
224
|
+
added: v1.0.0
|
|
225
|
+
-->
|
|
226
|
+
|
|
227
|
+
* `origin` {URL}
|
|
228
|
+
* `targets` {Array} The pool followed by the client that connected,
|
|
229
|
+
`[pool, ...targets]`.
|
|
230
|
+
|
|
231
|
+
Emitted by a pooled client when a socket has connected. See
|
|
232
|
+
[`Dispatcher` Event: `'connect'`][]. When `clientTtl` is set, the connecting
|
|
233
|
+
client's time-to-live timer starts on this event.
|
|
234
|
+
|
|
235
|
+
### Event: `'disconnect'`
|
|
236
|
+
|
|
237
|
+
<!-- YAML
|
|
238
|
+
added: v1.0.0
|
|
239
|
+
-->
|
|
240
|
+
|
|
241
|
+
* `origin` {URL}
|
|
242
|
+
* `targets` {Array} The pool followed by the client that disconnected,
|
|
243
|
+
`[pool, ...targets]`.
|
|
244
|
+
* `error` {Error}
|
|
245
|
+
|
|
246
|
+
Emitted by a pooled client when a socket has disconnected. See
|
|
247
|
+
[`Dispatcher` Event: `'disconnect'`][].
|
|
248
|
+
|
|
249
|
+
### Event: `'drain'`
|
|
250
|
+
|
|
251
|
+
<!-- YAML
|
|
252
|
+
added: v1.0.0
|
|
253
|
+
-->
|
|
254
|
+
|
|
255
|
+
* `origin` {URL}
|
|
256
|
+
* `targets` {Array} The pool followed by the client that drained,
|
|
257
|
+
`[pool, ...targets]`.
|
|
258
|
+
|
|
259
|
+
Emitted when a pooled client is no longer busy and can accept more requests. See
|
|
260
|
+
[`Dispatcher` Event: `'drain'`][].
|
|
261
|
+
|
|
262
|
+
[`Client`]: Client.md#class-client
|
|
263
|
+
[`Dispatcher` Event: `'connect'`]: Dispatcher.md#event-connect
|
|
264
|
+
[`Dispatcher` Event: `'disconnect'`]: Dispatcher.md#event-disconnect
|
|
265
|
+
[`Dispatcher` Event: `'drain'`]: Dispatcher.md#event-drain
|
|
266
|
+
[`Dispatcher`]: Dispatcher.md#class-dispatcher
|
|
267
|
+
[`InvalidArgumentError`]: Errors.md#class-invalidargumenterror
|
|
268
|
+
[`PoolStats`]: PoolStats.md
|
|
269
|
+
[`dispatcher.close([callback])`]: Dispatcher.md#dispatcherclosecallback
|
|
270
|
+
[`dispatcher.connect(options[, callback])`]: Dispatcher.md#dispatcherconnectoptions-callback
|
|
271
|
+
[`dispatcher.destroy([error[, callback]])`]: Dispatcher.md#dispatcherdestroyerror-callback
|
|
272
|
+
[`dispatcher.dispatch(options, handler)`]: Dispatcher.md#dispatcherdispatchoptions-handler
|
|
273
|
+
[`dispatcher.pipeline(options, handler)`]: Dispatcher.md#dispatcherpipelineoptions-handler
|
|
274
|
+
[`dispatcher.request(options[, callback])`]: Dispatcher.md#dispatcherrequestoptions-callback
|
|
275
|
+
[`dispatcher.stream(options, factory[, callback])`]: Dispatcher.md#dispatcherstreamoptions-factory-callback
|
|
276
|
+
[`dispatcher.upgrade(options[, callback])`]: Dispatcher.md#dispatcherupgradeoptions-callback
|
|
277
|
+
[`pool.close()`]: #poolclosecallback
|
|
278
|
+
[`pool.destroy()`]: #pooldestroyerror-callback
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# PoolStats
|
|
2
|
+
|
|
3
|
+
<!--introduced_in=v4.15.0-->
|
|
4
|
+
<!--type=module-->
|
|
5
|
+
<!-- source_link=lib/util/stats.js -->
|
|
6
|
+
|
|
7
|
+
> Stability: 2 - Stable
|
|
8
|
+
|
|
9
|
+
`PoolStats` exposes a read-only snapshot of the aggregate connection and request
|
|
10
|
+
counters for a [`Pool`][] or [`BalancedPool`][]. An instance is created lazily
|
|
11
|
+
each time the `pool.stats` getter is accessed, so the values reflect the state of
|
|
12
|
+
the pool at the moment of access.
|
|
13
|
+
|
|
14
|
+
`PoolStats` is not constructed directly in normal use; obtain an instance from
|
|
15
|
+
the `stats` property of a pool:
|
|
16
|
+
|
|
17
|
+
```mjs
|
|
18
|
+
import { Pool } from 'undici'
|
|
19
|
+
|
|
20
|
+
const pool = new Pool('http://localhost:3000')
|
|
21
|
+
const { stats } = pool
|
|
22
|
+
|
|
23
|
+
console.log(stats.connected, stats.running, stats.size)
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Class: `PoolStats`
|
|
27
|
+
|
|
28
|
+
<!-- YAML
|
|
29
|
+
added: v4.15.0
|
|
30
|
+
changes:
|
|
31
|
+
- version: v7.9.0
|
|
32
|
+
pr-url: https://github.com/nodejs/undici/pull/4157
|
|
33
|
+
description: Pool and client stats are exposed through `Agent`.
|
|
34
|
+
-->
|
|
35
|
+
|
|
36
|
+
Each property is a plain number computed from the pool's internal state when the
|
|
37
|
+
instance is created. The instance is a snapshot; read `pool.stats` again to
|
|
38
|
+
observe later changes.
|
|
39
|
+
|
|
40
|
+
### `new PoolStats(pool)`
|
|
41
|
+
|
|
42
|
+
<!-- YAML
|
|
43
|
+
added: v4.15.0
|
|
44
|
+
changes:
|
|
45
|
+
- version: v7.9.0
|
|
46
|
+
pr-url: https://github.com/nodejs/undici/pull/4157
|
|
47
|
+
description: Pool and client stats are exposed through `Agent`.
|
|
48
|
+
-->
|
|
49
|
+
|
|
50
|
+
* `pool` {Pool|BalancedPool} The pool to read counters from.
|
|
51
|
+
|
|
52
|
+
Creates a new `PoolStats` instance from the current state of `pool`. Prefer the
|
|
53
|
+
`pool.stats` getter, which returns a fresh `PoolStats` on each access.
|
|
54
|
+
|
|
55
|
+
### `poolStats.connected`
|
|
56
|
+
|
|
57
|
+
<!-- YAML
|
|
58
|
+
added: v4.15.0
|
|
59
|
+
changes:
|
|
60
|
+
- version: v7.9.0
|
|
61
|
+
pr-url: https://github.com/nodejs/undici/pull/4157
|
|
62
|
+
description: Pool and client stats are exposed through `Agent`.
|
|
63
|
+
-->
|
|
64
|
+
|
|
65
|
+
* Type: {number}
|
|
66
|
+
|
|
67
|
+
Number of open socket connections in this pool.
|
|
68
|
+
|
|
69
|
+
### `poolStats.free`
|
|
70
|
+
|
|
71
|
+
<!-- YAML
|
|
72
|
+
added: v4.15.0
|
|
73
|
+
changes:
|
|
74
|
+
- version: v7.9.0
|
|
75
|
+
pr-url: https://github.com/nodejs/undici/pull/4157
|
|
76
|
+
description: Pool and client stats are exposed through `Agent`.
|
|
77
|
+
-->
|
|
78
|
+
|
|
79
|
+
* Type: {number}
|
|
80
|
+
|
|
81
|
+
Number of open socket connections in this pool that do not have an active
|
|
82
|
+
request.
|
|
83
|
+
|
|
84
|
+
### `poolStats.pending`
|
|
85
|
+
|
|
86
|
+
<!-- YAML
|
|
87
|
+
added: v4.15.0
|
|
88
|
+
changes:
|
|
89
|
+
- version: v7.9.0
|
|
90
|
+
pr-url: https://github.com/nodejs/undici/pull/4157
|
|
91
|
+
description: Pool and client stats are exposed through `Agent`.
|
|
92
|
+
-->
|
|
93
|
+
|
|
94
|
+
* Type: {number}
|
|
95
|
+
|
|
96
|
+
Number of pending requests across all clients in this pool.
|
|
97
|
+
|
|
98
|
+
### `poolStats.queued`
|
|
99
|
+
|
|
100
|
+
<!-- YAML
|
|
101
|
+
added: v4.15.0
|
|
102
|
+
changes:
|
|
103
|
+
- version: v7.9.0
|
|
104
|
+
pr-url: https://github.com/nodejs/undici/pull/4157
|
|
105
|
+
description: Pool and client stats are exposed through `Agent`.
|
|
106
|
+
-->
|
|
107
|
+
|
|
108
|
+
* Type: {number}
|
|
109
|
+
|
|
110
|
+
Number of queued requests across all clients in this pool.
|
|
111
|
+
|
|
112
|
+
### `poolStats.running`
|
|
113
|
+
|
|
114
|
+
<!-- YAML
|
|
115
|
+
added: v4.15.0
|
|
116
|
+
changes:
|
|
117
|
+
- version: v7.9.0
|
|
118
|
+
pr-url: https://github.com/nodejs/undici/pull/4157
|
|
119
|
+
description: Pool and client stats are exposed through `Agent`.
|
|
120
|
+
-->
|
|
121
|
+
|
|
122
|
+
* Type: {number}
|
|
123
|
+
|
|
124
|
+
Number of currently active requests across all clients in this pool.
|
|
125
|
+
|
|
126
|
+
### `poolStats.size`
|
|
127
|
+
|
|
128
|
+
<!-- YAML
|
|
129
|
+
added: v4.15.0
|
|
130
|
+
changes:
|
|
131
|
+
- version: v7.9.0
|
|
132
|
+
pr-url: https://github.com/nodejs/undici/pull/4157
|
|
133
|
+
description: Pool and client stats are exposed through `Agent`.
|
|
134
|
+
-->
|
|
135
|
+
|
|
136
|
+
* Type: {number}
|
|
137
|
+
|
|
138
|
+
Number of active, pending, or queued requests across all clients in this pool.
|
|
139
|
+
|
|
140
|
+
[`BalancedPool`]: BalancedPool.md#class-balancedpool
|
|
141
|
+
[`Pool`]: Pool.md#class-pool
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
# ProxyAgent
|
|
2
|
+
|
|
3
|
+
<!--introduced_in=v4.8.2-->
|
|
4
|
+
<!--type=module-->
|
|
5
|
+
<!-- source_link=lib/dispatcher/proxy-agent.js -->
|
|
6
|
+
|
|
7
|
+
> Stability: 2 - Stable
|
|
8
|
+
|
|
9
|
+
A `ProxyAgent` routes every request through an HTTP, HTTPS, or SOCKS5 proxy
|
|
10
|
+
server. It implements the [`Agent`][] API, so it can be used wherever a
|
|
11
|
+
dispatcher is accepted, for example with [`request`][] or [`fetch`][], or
|
|
12
|
+
installed globally with [`setGlobalDispatcher`][].
|
|
13
|
+
|
|
14
|
+
For secure (`https:`) endpoints the proxy connection is established through an
|
|
15
|
+
HTTP `CONNECT` tunnel. SOCKS5 proxies (`socks5:` or `socks:` URIs) are handled
|
|
16
|
+
by delegating to a [`Socks5ProxyAgent`][].
|
|
17
|
+
|
|
18
|
+
```mjs
|
|
19
|
+
import { ProxyAgent, setGlobalDispatcher } from 'undici'
|
|
20
|
+
|
|
21
|
+
const proxyAgent = new ProxyAgent('http://localhost:8000')
|
|
22
|
+
setGlobalDispatcher(proxyAgent)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Class: `ProxyAgent`
|
|
26
|
+
|
|
27
|
+
<!-- YAML
|
|
28
|
+
added: v4.8.2
|
|
29
|
+
-->
|
|
30
|
+
|
|
31
|
+
* Extends: {Dispatcher}
|
|
32
|
+
|
|
33
|
+
`ProxyAgent` keeps an internal [`Agent`][] that creates per-origin dispatchers
|
|
34
|
+
on demand. The proxy connection is set up lazily when the first request to an
|
|
35
|
+
origin is dispatched, then reused for subsequent requests to the same origin.
|
|
36
|
+
|
|
37
|
+
### `new ProxyAgent(options)`
|
|
38
|
+
|
|
39
|
+
<!-- YAML
|
|
40
|
+
added: v4.8.2
|
|
41
|
+
-->
|
|
42
|
+
|
|
43
|
+
* `options` {ProxyAgentOptions|string|URL} The proxy URI, or an options object.
|
|
44
|
+
Required. When a `string` or {URL} is passed it is used as the proxy `uri`.
|
|
45
|
+
The options object extends {AgentOptions} (omitting `connect`).
|
|
46
|
+
* `uri` {string} The URI of the proxy server. Required when `options` is an
|
|
47
|
+
object. Parsed into a {URL} according to the
|
|
48
|
+
[WHATWG URL Specification][].
|
|
49
|
+
* `token` {string} A pre-formatted `proxy-authorization` header value sent to
|
|
50
|
+
the proxy on every request, for example `` `Bearer ${apiKey}` ``.
|
|
51
|
+
* `auth` {string} A base64-encoded `username:password` credential sent as a
|
|
52
|
+
`Basic` `proxy-authorization` header. Cannot be combined with `token`.
|
|
53
|
+
* `headers` {Object} Additional headers sent to the proxy server on the
|
|
54
|
+
`CONNECT` request (or on every request for an untunneled HTTP proxy).
|
|
55
|
+
**Default:** `{}`.
|
|
56
|
+
* `requestTls` {BuildOptions} TLS options for the connection to the request
|
|
57
|
+
endpoint, passed to the connector builder.
|
|
58
|
+
* `proxyTls` {BuildOptions} TLS options for the connection to the proxy
|
|
59
|
+
server, passed to the connector builder.
|
|
60
|
+
* `clientFactory` {Function} Builds the {Dispatcher} used to talk to the proxy
|
|
61
|
+
server itself. **Default:** `(origin, opts) => new Pool(origin, opts)`.
|
|
62
|
+
* `origin` {URL} The proxy origin.
|
|
63
|
+
* `opts` {Object} The resolved options for the dispatcher.
|
|
64
|
+
* Returns: {Dispatcher}
|
|
65
|
+
* `proxyTunnel` {boolean} Forces tunneling through the proxy. By default,
|
|
66
|
+
Undici detects tunneling based on the request protocol. If the target
|
|
67
|
+
endpoint uses HTTPS, Undici establishes a `CONNECT` tunnel through the proxy
|
|
68
|
+
(after the TLS handshake to the proxy itself when the proxy URL is HTTPS).
|
|
69
|
+
If the target endpoint uses plain HTTP, Undici forwards the request to the
|
|
70
|
+
proxy using an HTTP/1.1 absolute-form request target (over TLS when the
|
|
71
|
+
proxy URL is HTTPS), as required by
|
|
72
|
+
[RFC 9112 §3.2.2](https://www.rfc-editor.org/rfc/rfc9112.html#name-absolute-form).
|
|
73
|
+
This non-tunneled forwarding path does not negotiate HTTP/2 with the proxy.
|
|
74
|
+
Set `proxyTunnel` to `true` to force tunneling for plain HTTP requests as
|
|
75
|
+
well. Currently, there is no way to facilitate HTTP/1.1 IP tunneling as
|
|
76
|
+
described in
|
|
77
|
+
[RFC 9484](https://www.rfc-editor.org/rfc/rfc9484.html#name-http-11-request).
|
|
78
|
+
|
|
79
|
+
Throws an {InvalidArgumentError} when no proxy URI is provided, when
|
|
80
|
+
`clientFactory` is not a function, or when both `auth` and `token` are supplied.
|
|
81
|
+
|
|
82
|
+
The `proxy-authorization` header is derived, in order of precedence, from
|
|
83
|
+
`token`, then `auth`, then the `username` and `password` embedded in the proxy
|
|
84
|
+
`uri`. Credentials in the URI are URL-decoded before being base64-encoded.
|
|
85
|
+
|
|
86
|
+
> [!NOTE]
|
|
87
|
+
> Unless {AgentOptions} `connections` is set to `0`, the non-standard
|
|
88
|
+
> `proxy-connection: keep-alive` header is added to the tunnel `CONNECT`
|
|
89
|
+
> request. This includes the default case where `connections` is unset.
|
|
90
|
+
|
|
91
|
+
The `auth` option is deprecated; use `token` instead.
|
|
92
|
+
|
|
93
|
+
```mjs
|
|
94
|
+
import { ProxyAgent } from 'undici'
|
|
95
|
+
|
|
96
|
+
// A string or URL is treated as the proxy uri.
|
|
97
|
+
const a = new ProxyAgent('http://localhost:8000')
|
|
98
|
+
const b = new ProxyAgent(new URL('http://localhost:8000'))
|
|
99
|
+
|
|
100
|
+
// An options object requires a `uri`.
|
|
101
|
+
const c = new ProxyAgent({ uri: 'http://localhost:8000' })
|
|
102
|
+
|
|
103
|
+
// With proxy TLS settings.
|
|
104
|
+
const d = new ProxyAgent({
|
|
105
|
+
uri: 'https://secure.proxy.server',
|
|
106
|
+
proxyTls: {
|
|
107
|
+
signal: AbortSignal.timeout(1000),
|
|
108
|
+
},
|
|
109
|
+
})
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
#### Example - proxy request with the global dispatcher
|
|
113
|
+
|
|
114
|
+
```mjs
|
|
115
|
+
import { setGlobalDispatcher, request, ProxyAgent } from 'undici'
|
|
116
|
+
|
|
117
|
+
const proxyAgent = new ProxyAgent('http://localhost:8000')
|
|
118
|
+
setGlobalDispatcher(proxyAgent)
|
|
119
|
+
|
|
120
|
+
const { statusCode, body } = await request('http://localhost:3000/foo')
|
|
121
|
+
|
|
122
|
+
console.log('response received', statusCode)
|
|
123
|
+
console.log('data', await body.text())
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
#### Example - proxy request with a local dispatcher
|
|
127
|
+
|
|
128
|
+
```mjs
|
|
129
|
+
import { ProxyAgent, request } from 'undici'
|
|
130
|
+
|
|
131
|
+
const proxyAgent = new ProxyAgent('http://localhost:8000')
|
|
132
|
+
|
|
133
|
+
const { statusCode, body } = await request('http://localhost:3000/foo', {
|
|
134
|
+
dispatcher: proxyAgent,
|
|
135
|
+
})
|
|
136
|
+
|
|
137
|
+
console.log('response received', statusCode)
|
|
138
|
+
console.log('data', await body.text())
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
#### Example - proxy request with authentication
|
|
142
|
+
|
|
143
|
+
```mjs
|
|
144
|
+
import { setGlobalDispatcher, request, ProxyAgent } from 'undici'
|
|
145
|
+
|
|
146
|
+
const proxyAgent = new ProxyAgent({
|
|
147
|
+
uri: 'http://localhost:8000',
|
|
148
|
+
token: `Basic ${Buffer.from('username:password').toString('base64')}`,
|
|
149
|
+
})
|
|
150
|
+
setGlobalDispatcher(proxyAgent)
|
|
151
|
+
|
|
152
|
+
const { statusCode } = await request('http://localhost:3000/foo')
|
|
153
|
+
|
|
154
|
+
console.log('response received', statusCode)
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### `proxyAgent.dispatch(options, handler)`
|
|
158
|
+
|
|
159
|
+
<!-- YAML
|
|
160
|
+
added: v4.8.2
|
|
161
|
+
-->
|
|
162
|
+
|
|
163
|
+
* `options` {AgentDispatchOptions} Extends {DispatchOptions}.
|
|
164
|
+
* `origin` {string|URL} The origin to dispatch the request against. Required.
|
|
165
|
+
* `handler` {DispatchHandler}
|
|
166
|
+
* Returns: {boolean} `false` if the dispatcher is busy and the caller should
|
|
167
|
+
wait for the [`'drain'`][] event before dispatching again.
|
|
168
|
+
|
|
169
|
+
Dispatches the request through the proxy. Throws an {InvalidArgumentError} if
|
|
170
|
+
the request headers contain a `proxy-authorization` header, which must instead
|
|
171
|
+
be supplied through the constructor's `token` or `auth` option. A `host` header
|
|
172
|
+
is derived from `options.origin` when one is not already present. Implements
|
|
173
|
+
[`Dispatcher.dispatch()`][].
|
|
174
|
+
|
|
175
|
+
### `proxyAgent.close()`
|
|
176
|
+
|
|
177
|
+
<!-- YAML
|
|
178
|
+
added: v4.8.2
|
|
179
|
+
changes:
|
|
180
|
+
- version: v7.10.0
|
|
181
|
+
pr-url: https://github.com/nodejs/undici/pull/4180
|
|
182
|
+
description: Untunneled HTTP-to-HTTP proxy connections match `curl` behavior.
|
|
183
|
+
-->
|
|
184
|
+
|
|
185
|
+
* Returns: {Promise<void>}
|
|
186
|
+
|
|
187
|
+
Closes the proxy agent and waits for its internal agent and proxy client (when
|
|
188
|
+
present) to close before resolving. Implements [`Dispatcher.close()`][].
|
|
189
|
+
|
|
190
|
+
```mjs
|
|
191
|
+
import { ProxyAgent, setGlobalDispatcher } from 'undici'
|
|
192
|
+
|
|
193
|
+
const proxyAgent = new ProxyAgent('http://localhost:8000')
|
|
194
|
+
setGlobalDispatcher(proxyAgent)
|
|
195
|
+
|
|
196
|
+
await proxyAgent.close()
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### `proxyAgent.request(options[, callback])`
|
|
200
|
+
|
|
201
|
+
<!-- YAML
|
|
202
|
+
added: v5.0.0
|
|
203
|
+
-->
|
|
204
|
+
|
|
205
|
+
See [`Dispatcher.request()`][]. The request is routed through the proxy.
|
|
206
|
+
|
|
207
|
+
#### Example - proxy request with `fetch`
|
|
208
|
+
|
|
209
|
+
```mjs
|
|
210
|
+
import { ProxyAgent, fetch } from 'undici'
|
|
211
|
+
|
|
212
|
+
const proxyAgent = new ProxyAgent('http://localhost:8000')
|
|
213
|
+
|
|
214
|
+
const response = await fetch('http://localhost:3000/foo', {
|
|
215
|
+
dispatcher: proxyAgent,
|
|
216
|
+
method: 'GET',
|
|
217
|
+
})
|
|
218
|
+
|
|
219
|
+
console.log('response status', response.status)
|
|
220
|
+
console.log('response data', await response.text())
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
#### Example - HTTPS tunneling
|
|
224
|
+
|
|
225
|
+
```mjs
|
|
226
|
+
import { ProxyAgent, fetch } from 'undici'
|
|
227
|
+
|
|
228
|
+
const proxyAgent = new ProxyAgent('https://secure.proxy.server')
|
|
229
|
+
|
|
230
|
+
const response = await fetch('https://secure.endpoint.com/api/data', {
|
|
231
|
+
dispatcher: proxyAgent,
|
|
232
|
+
method: 'GET',
|
|
233
|
+
})
|
|
234
|
+
|
|
235
|
+
console.log('response status', response.status)
|
|
236
|
+
console.log('response data', await response.json())
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
[WHATWG URL Specification]: https://url.spec.whatwg.org
|
|
240
|
+
[`'drain'`]: Dispatcher.md#event-drain
|
|
241
|
+
[`Agent`]: Agent.md#class-agent
|
|
242
|
+
[`Dispatcher.close()`]: Dispatcher.md#dispatcherclosecallback-promise
|
|
243
|
+
[`Dispatcher.dispatch()`]: Dispatcher.md#dispatcherdispatchoptions-handler
|
|
244
|
+
[`Dispatcher.request()`]: Dispatcher.md#dispatcherrequestoptions-callback
|
|
245
|
+
[`Socks5ProxyAgent`]: Socks5ProxyAgent.md#class-socks5proxyagent
|
|
246
|
+
[`fetch`]: Fetch.md
|
|
247
|
+
[`request`]: Dispatcher.md#dispatcherrequestoptions-callback
|
|
248
|
+
[`setGlobalDispatcher`]: Dispatcher.md#setglobaldispatcherdispatcher
|