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.
Files changed (367) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +51 -2
  3. package/cordis.patch.yml +4 -0
  4. package/lib/client.js +381 -0
  5. package/lib/index.js +267 -0
  6. package/package.json +67 -3
  7. package/skill/SKILL.md +48 -0
  8. package/skill/tools/node_modules/.package-lock.json +163 -0
  9. package/skill/tools/node_modules/pg/LICENSE +21 -0
  10. package/skill/tools/node_modules/pg/README.md +96 -0
  11. package/skill/tools/node_modules/pg/esm/index.mjs +20 -0
  12. package/skill/tools/node_modules/pg/lib/client.js +846 -0
  13. package/skill/tools/node_modules/pg/lib/connection-parameters.js +184 -0
  14. package/skill/tools/node_modules/pg/lib/connection.js +250 -0
  15. package/skill/tools/node_modules/pg/lib/crypto/cert-signatures.js +122 -0
  16. package/skill/tools/node_modules/pg/lib/crypto/sasl.js +262 -0
  17. package/skill/tools/node_modules/pg/lib/crypto/utils.js +89 -0
  18. package/skill/tools/node_modules/pg/lib/defaults.js +94 -0
  19. package/skill/tools/node_modules/pg/lib/index.js +73 -0
  20. package/skill/tools/node_modules/pg/lib/native/client.js +428 -0
  21. package/skill/tools/node_modules/pg/lib/native/index.js +2 -0
  22. package/skill/tools/node_modules/pg/lib/native/query.js +167 -0
  23. package/skill/tools/node_modules/pg/lib/query.js +263 -0
  24. package/skill/tools/node_modules/pg/lib/result.js +109 -0
  25. package/skill/tools/node_modules/pg/lib/stream.js +83 -0
  26. package/skill/tools/node_modules/pg/lib/type-overrides.js +35 -0
  27. package/skill/tools/node_modules/pg/lib/utils.js +225 -0
  28. package/skill/tools/node_modules/pg/package.json +76 -0
  29. package/skill/tools/node_modules/pg-cloudflare/LICENSE +21 -0
  30. package/skill/tools/node_modules/pg-cloudflare/README.md +112 -0
  31. package/skill/tools/node_modules/pg-cloudflare/dist/empty.d.ts +2 -0
  32. package/skill/tools/node_modules/pg-cloudflare/dist/empty.js +6 -0
  33. package/skill/tools/node_modules/pg-cloudflare/dist/empty.js.map +1 -0
  34. package/skill/tools/node_modules/pg-cloudflare/dist/index.d.ts +29 -0
  35. package/skill/tools/node_modules/pg-cloudflare/dist/index.js +171 -0
  36. package/skill/tools/node_modules/pg-cloudflare/dist/index.js.map +1 -0
  37. package/skill/tools/node_modules/pg-cloudflare/esm/index.mjs +3 -0
  38. package/skill/tools/node_modules/pg-cloudflare/package.json +39 -0
  39. package/skill/tools/node_modules/pg-cloudflare/src/empty.ts +3 -0
  40. package/skill/tools/node_modules/pg-cloudflare/src/index.ts +187 -0
  41. package/skill/tools/node_modules/pg-cloudflare/src/types.d.ts +25 -0
  42. package/skill/tools/node_modules/pg-connection-string/LICENSE +21 -0
  43. package/skill/tools/node_modules/pg-connection-string/README.md +105 -0
  44. package/skill/tools/node_modules/pg-connection-string/esm/index.mjs +8 -0
  45. package/skill/tools/node_modules/pg-connection-string/index.d.ts +37 -0
  46. package/skill/tools/node_modules/pg-connection-string/index.js +237 -0
  47. package/skill/tools/node_modules/pg-connection-string/package.json +51 -0
  48. package/skill/tools/node_modules/pg-int8/LICENSE +13 -0
  49. package/skill/tools/node_modules/pg-int8/README.md +16 -0
  50. package/skill/tools/node_modules/pg-int8/index.js +100 -0
  51. package/skill/tools/node_modules/pg-int8/package.json +24 -0
  52. package/skill/tools/node_modules/pg-pool/LICENSE +21 -0
  53. package/skill/tools/node_modules/pg-pool/README.md +357 -0
  54. package/skill/tools/node_modules/pg-pool/esm/index.mjs +5 -0
  55. package/skill/tools/node_modules/pg-pool/index.js +517 -0
  56. package/skill/tools/node_modules/pg-pool/package.json +51 -0
  57. package/skill/tools/node_modules/pg-protocol/LICENSE +21 -0
  58. package/skill/tools/node_modules/pg-protocol/README.md +3 -0
  59. package/skill/tools/node_modules/pg-protocol/dist/b.d.ts +1 -0
  60. package/skill/tools/node_modules/pg-protocol/dist/b.js +23 -0
  61. package/skill/tools/node_modules/pg-protocol/dist/b.js.map +1 -0
  62. package/skill/tools/node_modules/pg-protocol/dist/buffer-reader.d.ts +14 -0
  63. package/skill/tools/node_modules/pg-protocol/dist/buffer-reader.js +55 -0
  64. package/skill/tools/node_modules/pg-protocol/dist/buffer-reader.js.map +1 -0
  65. package/skill/tools/node_modules/pg-protocol/dist/buffer-writer.d.ts +21 -0
  66. package/skill/tools/node_modules/pg-protocol/dist/buffer-writer.js +113 -0
  67. package/skill/tools/node_modules/pg-protocol/dist/buffer-writer.js.map +1 -0
  68. package/skill/tools/node_modules/pg-protocol/dist/inbound-parser.test.d.ts +1 -0
  69. package/skill/tools/node_modules/pg-protocol/dist/inbound-parser.test.js +538 -0
  70. package/skill/tools/node_modules/pg-protocol/dist/inbound-parser.test.js.map +1 -0
  71. package/skill/tools/node_modules/pg-protocol/dist/index.d.ts +5 -0
  72. package/skill/tools/node_modules/pg-protocol/dist/index.js +15 -0
  73. package/skill/tools/node_modules/pg-protocol/dist/index.js.map +1 -0
  74. package/skill/tools/node_modules/pg-protocol/dist/messages.d.ts +161 -0
  75. package/skill/tools/node_modules/pg-protocol/dist/messages.js +160 -0
  76. package/skill/tools/node_modules/pg-protocol/dist/messages.js.map +1 -0
  77. package/skill/tools/node_modules/pg-protocol/dist/outbound-serializer.test.d.ts +1 -0
  78. package/skill/tools/node_modules/pg-protocol/dist/outbound-serializer.test.js +325 -0
  79. package/skill/tools/node_modules/pg-protocol/dist/outbound-serializer.test.js.map +1 -0
  80. package/skill/tools/node_modules/pg-protocol/dist/parser.d.ts +22 -0
  81. package/skill/tools/node_modules/pg-protocol/dist/parser.js +325 -0
  82. package/skill/tools/node_modules/pg-protocol/dist/parser.js.map +1 -0
  83. package/skill/tools/node_modules/pg-protocol/dist/serializer.d.ts +42 -0
  84. package/skill/tools/node_modules/pg-protocol/dist/serializer.js +198 -0
  85. package/skill/tools/node_modules/pg-protocol/dist/serializer.js.map +1 -0
  86. package/skill/tools/node_modules/pg-protocol/esm/index.js +11 -0
  87. package/skill/tools/node_modules/pg-protocol/package.json +44 -0
  88. package/skill/tools/node_modules/pg-protocol/src/b.ts +25 -0
  89. package/skill/tools/node_modules/pg-protocol/src/buffer-reader.ts +58 -0
  90. package/skill/tools/node_modules/pg-protocol/src/buffer-writer.ts +120 -0
  91. package/skill/tools/node_modules/pg-protocol/src/inbound-parser.test.ts +585 -0
  92. package/skill/tools/node_modules/pg-protocol/src/index.ts +11 -0
  93. package/skill/tools/node_modules/pg-protocol/src/messages.ts +262 -0
  94. package/skill/tools/node_modules/pg-protocol/src/outbound-serializer.test.ts +356 -0
  95. package/skill/tools/node_modules/pg-protocol/src/parser.ts +414 -0
  96. package/skill/tools/node_modules/pg-protocol/src/serializer.ts +286 -0
  97. package/skill/tools/node_modules/pg-protocol/src/testing/buffer-list.ts +67 -0
  98. package/skill/tools/node_modules/pg-protocol/src/testing/test-buffers.ts +166 -0
  99. package/skill/tools/node_modules/pg-types/.travis.yml +7 -0
  100. package/skill/tools/node_modules/pg-types/Makefile +14 -0
  101. package/skill/tools/node_modules/pg-types/README.md +75 -0
  102. package/skill/tools/node_modules/pg-types/index.d.ts +137 -0
  103. package/skill/tools/node_modules/pg-types/index.js +47 -0
  104. package/skill/tools/node_modules/pg-types/index.test-d.ts +21 -0
  105. package/skill/tools/node_modules/pg-types/lib/arrayParser.js +11 -0
  106. package/skill/tools/node_modules/pg-types/lib/binaryParsers.js +257 -0
  107. package/skill/tools/node_modules/pg-types/lib/builtins.js +73 -0
  108. package/skill/tools/node_modules/pg-types/lib/textParsers.js +215 -0
  109. package/skill/tools/node_modules/pg-types/package.json +42 -0
  110. package/skill/tools/node_modules/pg-types/test/index.js +24 -0
  111. package/skill/tools/node_modules/pg-types/test/types.js +597 -0
  112. package/skill/tools/node_modules/pgpass/README.md +74 -0
  113. package/skill/tools/node_modules/pgpass/lib/helper.js +233 -0
  114. package/skill/tools/node_modules/pgpass/lib/index.js +23 -0
  115. package/skill/tools/node_modules/pgpass/package.json +41 -0
  116. package/skill/tools/node_modules/postgres-array/index.d.ts +4 -0
  117. package/skill/tools/node_modules/postgres-array/index.js +97 -0
  118. package/skill/tools/node_modules/postgres-array/license +21 -0
  119. package/skill/tools/node_modules/postgres-array/package.json +35 -0
  120. package/skill/tools/node_modules/postgres-array/readme.md +43 -0
  121. package/skill/tools/node_modules/postgres-bytea/index.js +33 -0
  122. package/skill/tools/node_modules/postgres-bytea/license +21 -0
  123. package/skill/tools/node_modules/postgres-bytea/package.json +34 -0
  124. package/skill/tools/node_modules/postgres-bytea/readme.md +34 -0
  125. package/skill/tools/node_modules/postgres-date/index.js +116 -0
  126. package/skill/tools/node_modules/postgres-date/license +21 -0
  127. package/skill/tools/node_modules/postgres-date/package.json +33 -0
  128. package/skill/tools/node_modules/postgres-date/readme.md +49 -0
  129. package/skill/tools/node_modules/postgres-interval/index.d.ts +20 -0
  130. package/skill/tools/node_modules/postgres-interval/index.js +125 -0
  131. package/skill/tools/node_modules/postgres-interval/license +21 -0
  132. package/skill/tools/node_modules/postgres-interval/package.json +36 -0
  133. package/skill/tools/node_modules/postgres-interval/readme.md +48 -0
  134. package/skill/tools/node_modules/split2/LICENSE +13 -0
  135. package/skill/tools/node_modules/split2/README.md +85 -0
  136. package/skill/tools/node_modules/split2/bench.js +27 -0
  137. package/skill/tools/node_modules/split2/index.js +141 -0
  138. package/skill/tools/node_modules/split2/package.json +39 -0
  139. package/skill/tools/node_modules/split2/test.js +409 -0
  140. package/skill/tools/node_modules/undici/LICENSE +21 -0
  141. package/skill/tools/node_modules/undici/README.md +828 -0
  142. package/skill/tools/node_modules/undici/docs/docs/api/Agent.md +291 -0
  143. package/skill/tools/node_modules/undici/docs/docs/api/BalancedPool.md +297 -0
  144. package/skill/tools/node_modules/undici/docs/docs/api/CacheStorage.md +188 -0
  145. package/skill/tools/node_modules/undici/docs/docs/api/CacheStore.md +375 -0
  146. package/skill/tools/node_modules/undici/docs/docs/api/Client.md +538 -0
  147. package/skill/tools/node_modules/undici/docs/docs/api/ClientStats.md +93 -0
  148. package/skill/tools/node_modules/undici/docs/docs/api/Connector.md +198 -0
  149. package/skill/tools/node_modules/undici/docs/docs/api/ContentType.md +97 -0
  150. package/skill/tools/node_modules/undici/docs/docs/api/Cookies.md +179 -0
  151. package/skill/tools/node_modules/undici/docs/docs/api/Debug.md +78 -0
  152. package/skill/tools/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +518 -0
  153. package/skill/tools/node_modules/undici/docs/docs/api/Dispatcher.md +842 -0
  154. package/skill/tools/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +171 -0
  155. package/skill/tools/node_modules/undici/docs/docs/api/Errors.md +624 -0
  156. package/skill/tools/node_modules/undici/docs/docs/api/EventSource.md +358 -0
  157. package/skill/tools/node_modules/undici/docs/docs/api/Fetch.md +721 -0
  158. package/skill/tools/node_modules/undici/docs/docs/api/GlobalInstallation.md +121 -0
  159. package/skill/tools/node_modules/undici/docs/docs/api/H2CClient.md +386 -0
  160. package/skill/tools/node_modules/undici/docs/docs/api/Interceptors.md +439 -0
  161. package/skill/tools/node_modules/undici/docs/docs/api/MockAgent.md +622 -0
  162. package/skill/tools/node_modules/undici/docs/docs/api/MockCallHistory.md +371 -0
  163. package/skill/tools/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +206 -0
  164. package/skill/tools/node_modules/undici/docs/docs/api/MockClient.md +199 -0
  165. package/skill/tools/node_modules/undici/docs/docs/api/MockErrors.md +63 -0
  166. package/skill/tools/node_modules/undici/docs/docs/api/MockPool.md +618 -0
  167. package/skill/tools/node_modules/undici/docs/docs/api/Pool.md +278 -0
  168. package/skill/tools/node_modules/undici/docs/docs/api/PoolStats.md +141 -0
  169. package/skill/tools/node_modules/undici/docs/docs/api/ProxyAgent.md +248 -0
  170. package/skill/tools/node_modules/undici/docs/docs/api/RedirectHandler.md +279 -0
  171. package/skill/tools/node_modules/undici/docs/docs/api/RetryAgent.md +136 -0
  172. package/skill/tools/node_modules/undici/docs/docs/api/RetryHandler.md +200 -0
  173. package/skill/tools/node_modules/undici/docs/docs/api/RoundRobinPool.md +239 -0
  174. package/skill/tools/node_modules/undici/docs/docs/api/SnapshotAgent.md +361 -0
  175. package/skill/tools/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +256 -0
  176. package/skill/tools/node_modules/undici/docs/docs/api/Util.md +82 -0
  177. package/skill/tools/node_modules/undici/docs/docs/api/WebSocket.md +536 -0
  178. package/skill/tools/node_modules/undici/docs/docs/api/api-lifecycle.md +159 -0
  179. package/skill/tools/node_modules/undici/docs/docs/best-practices/client-certificate.md +66 -0
  180. package/skill/tools/node_modules/undici/docs/docs/best-practices/crawling.md +60 -0
  181. package/skill/tools/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +233 -0
  182. package/skill/tools/node_modules/undici/docs/docs/best-practices/mocking-request.md +192 -0
  183. package/skill/tools/node_modules/undici/docs/docs/best-practices/proxy.md +129 -0
  184. package/skill/tools/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +226 -0
  185. package/skill/tools/node_modules/undici/docs/docs/best-practices/writing-tests.md +65 -0
  186. package/skill/tools/node_modules/undici/docs/docs/getting-started.md +281 -0
  187. package/skill/tools/node_modules/undici/docs/docs/index.md +793 -0
  188. package/skill/tools/node_modules/undici/docs/docs/site.json +125 -0
  189. package/skill/tools/node_modules/undici/docs/docs/type-map.json +79 -0
  190. package/skill/tools/node_modules/undici/index-fetch.js +65 -0
  191. package/skill/tools/node_modules/undici/index.d.ts +3 -0
  192. package/skill/tools/node_modules/undici/index.js +236 -0
  193. package/skill/tools/node_modules/undici/lib/api/abort-signal.js +59 -0
  194. package/skill/tools/node_modules/undici/lib/api/api-connect.js +112 -0
  195. package/skill/tools/node_modules/undici/lib/api/api-pipeline.js +265 -0
  196. package/skill/tools/node_modules/undici/lib/api/api-request.js +244 -0
  197. package/skill/tools/node_modules/undici/lib/api/api-stream.js +270 -0
  198. package/skill/tools/node_modules/undici/lib/api/api-upgrade.js +121 -0
  199. package/skill/tools/node_modules/undici/lib/api/index.js +7 -0
  200. package/skill/tools/node_modules/undici/lib/api/readable.js +615 -0
  201. package/skill/tools/node_modules/undici/lib/cache/memory-cache-store.js +314 -0
  202. package/skill/tools/node_modules/undici/lib/cache/sqlite-cache-store.js +593 -0
  203. package/skill/tools/node_modules/undici/lib/core/connect.js +198 -0
  204. package/skill/tools/node_modules/undici/lib/core/constants.js +131 -0
  205. package/skill/tools/node_modules/undici/lib/core/diagnostics.js +227 -0
  206. package/skill/tools/node_modules/undici/lib/core/errors.js +534 -0
  207. package/skill/tools/node_modules/undici/lib/core/request.js +582 -0
  208. package/skill/tools/node_modules/undici/lib/core/socks5-client.js +422 -0
  209. package/skill/tools/node_modules/undici/lib/core/socks5-utils.js +212 -0
  210. package/skill/tools/node_modules/undici/lib/core/symbols.js +81 -0
  211. package/skill/tools/node_modules/undici/lib/core/tree.js +160 -0
  212. package/skill/tools/node_modules/undici/lib/core/util.js +1035 -0
  213. package/skill/tools/node_modules/undici/lib/dispatcher/agent.js +181 -0
  214. package/skill/tools/node_modules/undici/lib/dispatcher/balanced-pool.js +217 -0
  215. package/skill/tools/node_modules/undici/lib/dispatcher/client-h1.js +1846 -0
  216. package/skill/tools/node_modules/undici/lib/dispatcher/client-h2.js +1989 -0
  217. package/skill/tools/node_modules/undici/lib/dispatcher/client.js +749 -0
  218. package/skill/tools/node_modules/undici/lib/dispatcher/dispatcher-base.js +198 -0
  219. package/skill/tools/node_modules/undici/lib/dispatcher/dispatcher.js +58 -0
  220. package/skill/tools/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +127 -0
  221. package/skill/tools/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +190 -0
  222. package/skill/tools/node_modules/undici/lib/dispatcher/fixed-queue.js +135 -0
  223. package/skill/tools/node_modules/undici/lib/dispatcher/h2c-client.js +51 -0
  224. package/skill/tools/node_modules/undici/lib/dispatcher/parser-h1.js +1065 -0
  225. package/skill/tools/node_modules/undici/lib/dispatcher/pool-base.js +347 -0
  226. package/skill/tools/node_modules/undici/lib/dispatcher/pool.js +229 -0
  227. package/skill/tools/node_modules/undici/lib/dispatcher/proxy-agent.js +418 -0
  228. package/skill/tools/node_modules/undici/lib/dispatcher/retry-agent.js +48 -0
  229. package/skill/tools/node_modules/undici/lib/dispatcher/round-robin-pool.js +169 -0
  230. package/skill/tools/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +350 -0
  231. package/skill/tools/node_modules/undici/lib/encoding/index.js +33 -0
  232. package/skill/tools/node_modules/undici/lib/global.js +82 -0
  233. package/skill/tools/node_modules/undici/lib/handler/cache-handler.js +1222 -0
  234. package/skill/tools/node_modules/undici/lib/handler/cache-revalidation-handler.js +134 -0
  235. package/skill/tools/node_modules/undici/lib/handler/decorator-handler.js +76 -0
  236. package/skill/tools/node_modules/undici/lib/handler/deduplication-handler.js +540 -0
  237. package/skill/tools/node_modules/undici/lib/handler/redirect-handler.js +284 -0
  238. package/skill/tools/node_modules/undici/lib/handler/retry-handler.js +686 -0
  239. package/skill/tools/node_modules/undici/lib/interceptor/cache.js +771 -0
  240. package/skill/tools/node_modules/undici/lib/interceptor/decompress.js +574 -0
  241. package/skill/tools/node_modules/undici/lib/interceptor/deduplicate.js +118 -0
  242. package/skill/tools/node_modules/undici/lib/interceptor/dns.js +593 -0
  243. package/skill/tools/node_modules/undici/lib/interceptor/dump.js +99 -0
  244. package/skill/tools/node_modules/undici/lib/interceptor/redirect.js +21 -0
  245. package/skill/tools/node_modules/undici/lib/interceptor/response-error.js +139 -0
  246. package/skill/tools/node_modules/undici/lib/interceptor/retry.js +19 -0
  247. package/skill/tools/node_modules/undici/lib/llhttp/constants.d.ts +195 -0
  248. package/skill/tools/node_modules/undici/lib/llhttp/constants.js +531 -0
  249. package/skill/tools/node_modules/undici/lib/llhttp/llhttp-wasm.js +15 -0
  250. package/skill/tools/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +15 -0
  251. package/skill/tools/node_modules/undici/lib/llhttp/utils.d.ts +2 -0
  252. package/skill/tools/node_modules/undici/lib/llhttp/utils.js +12 -0
  253. package/skill/tools/node_modules/undici/lib/milo/LICENSE.md +7 -0
  254. package/skill/tools/node_modules/undici/lib/milo/no-simd.js +1002 -0
  255. package/skill/tools/node_modules/undici/lib/milo/simd.js +1002 -0
  256. package/skill/tools/node_modules/undici/lib/mock/mock-agent.js +255 -0
  257. package/skill/tools/node_modules/undici/lib/mock/mock-call-history.js +248 -0
  258. package/skill/tools/node_modules/undici/lib/mock/mock-client.js +68 -0
  259. package/skill/tools/node_modules/undici/lib/mock/mock-errors.js +29 -0
  260. package/skill/tools/node_modules/undici/lib/mock/mock-interceptor.js +227 -0
  261. package/skill/tools/node_modules/undici/lib/mock/mock-pool.js +68 -0
  262. package/skill/tools/node_modules/undici/lib/mock/mock-symbols.js +32 -0
  263. package/skill/tools/node_modules/undici/lib/mock/mock-utils.js +730 -0
  264. package/skill/tools/node_modules/undici/lib/mock/pending-interceptors-formatter.js +43 -0
  265. package/skill/tools/node_modules/undici/lib/mock/snapshot-agent.js +371 -0
  266. package/skill/tools/node_modules/undici/lib/mock/snapshot-recorder.js +624 -0
  267. package/skill/tools/node_modules/undici/lib/mock/snapshot-utils.js +159 -0
  268. package/skill/tools/node_modules/undici/lib/util/cache.js +764 -0
  269. package/skill/tools/node_modules/undici/lib/util/date.js +670 -0
  270. package/skill/tools/node_modules/undici/lib/util/runtime-features.js +93 -0
  271. package/skill/tools/node_modules/undici/lib/util/stats.js +32 -0
  272. package/skill/tools/node_modules/undici/lib/util/timers.js +425 -0
  273. package/skill/tools/node_modules/undici/lib/web/cache/cache.js +871 -0
  274. package/skill/tools/node_modules/undici/lib/web/cache/cachestorage.js +158 -0
  275. package/skill/tools/node_modules/undici/lib/web/cache/util.js +45 -0
  276. package/skill/tools/node_modules/undici/lib/web/cookies/constants.js +12 -0
  277. package/skill/tools/node_modules/undici/lib/web/cookies/index.js +211 -0
  278. package/skill/tools/node_modules/undici/lib/web/cookies/parse.js +318 -0
  279. package/skill/tools/node_modules/undici/lib/web/cookies/util.js +371 -0
  280. package/skill/tools/node_modules/undici/lib/web/eventsource/eventsource-stream.js +575 -0
  281. package/skill/tools/node_modules/undici/lib/web/eventsource/eventsource.js +547 -0
  282. package/skill/tools/node_modules/undici/lib/web/eventsource/util.js +60 -0
  283. package/skill/tools/node_modules/undici/lib/web/fetch/LICENSE +21 -0
  284. package/skill/tools/node_modules/undici/lib/web/fetch/body.js +583 -0
  285. package/skill/tools/node_modules/undici/lib/web/fetch/constants.js +131 -0
  286. package/skill/tools/node_modules/undici/lib/web/fetch/data-url.js +596 -0
  287. package/skill/tools/node_modules/undici/lib/web/fetch/formdata-parser.js +594 -0
  288. package/skill/tools/node_modules/undici/lib/web/fetch/formdata.js +272 -0
  289. package/skill/tools/node_modules/undici/lib/web/fetch/global.js +40 -0
  290. package/skill/tools/node_modules/undici/lib/web/fetch/headers.js +722 -0
  291. package/skill/tools/node_modules/undici/lib/web/fetch/index.js +2451 -0
  292. package/skill/tools/node_modules/undici/lib/web/fetch/request.js +1117 -0
  293. package/skill/tools/node_modules/undici/lib/web/fetch/response.js +638 -0
  294. package/skill/tools/node_modules/undici/lib/web/fetch/util.js +1530 -0
  295. package/skill/tools/node_modules/undici/lib/web/infra/index.js +244 -0
  296. package/skill/tools/node_modules/undici/lib/web/subresource-integrity/Readme.md +9 -0
  297. package/skill/tools/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +307 -0
  298. package/skill/tools/node_modules/undici/lib/web/webidl/index.js +992 -0
  299. package/skill/tools/node_modules/undici/lib/web/websocket/connection.js +350 -0
  300. package/skill/tools/node_modules/undici/lib/web/websocket/constants.js +126 -0
  301. package/skill/tools/node_modules/undici/lib/web/websocket/events.js +348 -0
  302. package/skill/tools/node_modules/undici/lib/web/websocket/frame.js +127 -0
  303. package/skill/tools/node_modules/undici/lib/web/websocket/permessage-deflate.js +105 -0
  304. package/skill/tools/node_modules/undici/lib/web/websocket/receiver.js +530 -0
  305. package/skill/tools/node_modules/undici/lib/web/websocket/sender.js +109 -0
  306. package/skill/tools/node_modules/undici/lib/web/websocket/stream/websocketerror.js +107 -0
  307. package/skill/tools/node_modules/undici/lib/web/websocket/stream/websocketstream.js +511 -0
  308. package/skill/tools/node_modules/undici/lib/web/websocket/util.js +347 -0
  309. package/skill/tools/node_modules/undici/lib/web/websocket/websocket.js +783 -0
  310. package/skill/tools/node_modules/undici/package.json +154 -0
  311. package/skill/tools/node_modules/undici/scripts/strip-comments.js +10 -0
  312. package/skill/tools/node_modules/undici/types/README.md +6 -0
  313. package/skill/tools/node_modules/undici/types/agent.d.ts +30 -0
  314. package/skill/tools/node_modules/undici/types/api.d.ts +43 -0
  315. package/skill/tools/node_modules/undici/types/balanced-pool.d.ts +30 -0
  316. package/skill/tools/node_modules/undici/types/cache-interceptor.d.ts +189 -0
  317. package/skill/tools/node_modules/undici/types/cache.d.ts +36 -0
  318. package/skill/tools/node_modules/undici/types/client-stats.d.ts +15 -0
  319. package/skill/tools/node_modules/undici/types/client.d.ts +190 -0
  320. package/skill/tools/node_modules/undici/types/connector.d.ts +37 -0
  321. package/skill/tools/node_modules/undici/types/content-type.d.ts +21 -0
  322. package/skill/tools/node_modules/undici/types/cookies.d.ts +30 -0
  323. package/skill/tools/node_modules/undici/types/diagnostics-channel.d.ts +75 -0
  324. package/skill/tools/node_modules/undici/types/dispatcher.d.ts +253 -0
  325. package/skill/tools/node_modules/undici/types/dispatcher1-wrapper.d.ts +7 -0
  326. package/skill/tools/node_modules/undici/types/env-http-proxy-agent.d.ts +22 -0
  327. package/skill/tools/node_modules/undici/types/errors.d.ts +202 -0
  328. package/skill/tools/node_modules/undici/types/eventsource.d.ts +66 -0
  329. package/skill/tools/node_modules/undici/types/fetch.d.ts +235 -0
  330. package/skill/tools/node_modules/undici/types/formdata.d.ts +108 -0
  331. package/skill/tools/node_modules/undici/types/global-dispatcher.d.ts +9 -0
  332. package/skill/tools/node_modules/undici/types/global-origin.d.ts +7 -0
  333. package/skill/tools/node_modules/undici/types/h2c-client.d.ts +73 -0
  334. package/skill/tools/node_modules/undici/types/handlers.d.ts +16 -0
  335. package/skill/tools/node_modules/undici/types/header.d.ts +165 -0
  336. package/skill/tools/node_modules/undici/types/index.d.ts +93 -0
  337. package/skill/tools/node_modules/undici/types/interceptors.d.ts +87 -0
  338. package/skill/tools/node_modules/undici/types/mock-agent.d.ts +69 -0
  339. package/skill/tools/node_modules/undici/types/mock-call-history.d.ts +111 -0
  340. package/skill/tools/node_modules/undici/types/mock-client.d.ts +27 -0
  341. package/skill/tools/node_modules/undici/types/mock-errors.d.ts +12 -0
  342. package/skill/tools/node_modules/undici/types/mock-interceptor.d.ts +98 -0
  343. package/skill/tools/node_modules/undici/types/mock-pool.d.ts +27 -0
  344. package/skill/tools/node_modules/undici/types/patch.d.ts +29 -0
  345. package/skill/tools/node_modules/undici/types/pool-stats.d.ts +19 -0
  346. package/skill/tools/node_modules/undici/types/pool.d.ts +39 -0
  347. package/skill/tools/node_modules/undici/types/proxy-agent.d.ts +36 -0
  348. package/skill/tools/node_modules/undici/types/readable.d.ts +68 -0
  349. package/skill/tools/node_modules/undici/types/retry-agent.d.ts +8 -0
  350. package/skill/tools/node_modules/undici/types/retry-handler.d.ts +125 -0
  351. package/skill/tools/node_modules/undici/types/round-robin-pool.d.ts +39 -0
  352. package/skill/tools/node_modules/undici/types/snapshot-agent.d.ts +113 -0
  353. package/skill/tools/node_modules/undici/types/socks5-proxy-agent.d.ts +27 -0
  354. package/skill/tools/node_modules/undici/types/util.d.ts +18 -0
  355. package/skill/tools/node_modules/undici/types/utility.d.ts +7 -0
  356. package/skill/tools/node_modules/undici/types/webidl.d.ts +352 -0
  357. package/skill/tools/node_modules/undici/types/websocket.d.ts +188 -0
  358. package/skill/tools/node_modules/xtend/.jshintrc +30 -0
  359. package/skill/tools/node_modules/xtend/LICENSE +20 -0
  360. package/skill/tools/node_modules/xtend/README.md +32 -0
  361. package/skill/tools/node_modules/xtend/immutable.js +19 -0
  362. package/skill/tools/node_modules/xtend/mutable.js +17 -0
  363. package/skill/tools/node_modules/xtend/package.json +55 -0
  364. package/skill/tools/node_modules/xtend/test.js +103 -0
  365. package/skill/tools/package-lock.json +172 -0
  366. package/skill/tools/package.json +9 -0
  367. 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