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,540 @@
1
+ 'use strict'
2
+
3
+ const { RequestAbortedError } = require('../core/errors')
4
+
5
+ /**
6
+ * @typedef {import('../../types/dispatcher.d.ts').default.DispatchHandler} DispatchHandler
7
+ */
8
+
9
+ const DEFAULT_MAX_BUFFER_SIZE = 5 * 1024 * 1024
10
+
11
+ /**
12
+ * @typedef {Object} WaitingHandler
13
+ * @property {DispatchHandler} handler
14
+ * @property {import('../../types/dispatcher.d.ts').default.DispatchController} controller
15
+ * @property {Buffer[]} bufferedChunks
16
+ * @property {number} bufferedBytes
17
+ * @property {object | null} pendingTrailers
18
+ * @property {boolean} done
19
+ * @property {boolean} [pendingStart] onRequestStart deferred until the primary request's context is known
20
+ */
21
+
22
+ /**
23
+ * Handler that forwards response events to multiple waiting handlers.
24
+ * Used for request deduplication.
25
+ *
26
+ * @implements {DispatchHandler}
27
+ */
28
+ class DeduplicationHandler {
29
+ /**
30
+ * @type {DispatchHandler}
31
+ */
32
+ #primaryHandler
33
+
34
+ /**
35
+ * Whether the primary request has started (onRequestStart received). Until
36
+ * then the request context is unknown and cannot be given to waiting handlers.
37
+ * @type {boolean}
38
+ */
39
+ #requestStarted = false
40
+
41
+ /**
42
+ * The primary request context, replayed to waiting handlers so they observe
43
+ * the same redirect history as the primary.
44
+ * @type {any}
45
+ */
46
+ #context = null
47
+
48
+ /**
49
+ * @type {WaitingHandler[]}
50
+ */
51
+ #waitingHandlers = []
52
+
53
+ /**
54
+ * @type {number}
55
+ */
56
+ #maxBufferSize = DEFAULT_MAX_BUFFER_SIZE
57
+
58
+ /**
59
+ * @type {number}
60
+ */
61
+ #statusCode = 0
62
+
63
+ /**
64
+ * @type {Record<string, string | string[]>}
65
+ */
66
+ #headers = {}
67
+
68
+ /**
69
+ * @type {string}
70
+ */
71
+ #statusMessage = ''
72
+
73
+ /**
74
+ * @type {boolean}
75
+ */
76
+ #aborted = false
77
+
78
+ /**
79
+ * @type {boolean}
80
+ */
81
+ #responseStarted = false
82
+
83
+ /**
84
+ * @type {boolean}
85
+ */
86
+ #responseDataStarted = false
87
+
88
+ /**
89
+ * @type {boolean}
90
+ */
91
+ #completed = false
92
+
93
+ /**
94
+ * @type {import('../../types/dispatcher.d.ts').default.DispatchController | null}
95
+ */
96
+ #controller = null
97
+
98
+ /**
99
+ * @type {(() => void) | null}
100
+ */
101
+ #onComplete = null
102
+
103
+ /**
104
+ * @param {DispatchHandler} primaryHandler The primary handler
105
+ * @param {() => void} onComplete Callback when request completes
106
+ * @param {number} [maxBufferSize] Maximum paused buffer size per waiting handler
107
+ */
108
+ constructor (primaryHandler, onComplete, maxBufferSize = DEFAULT_MAX_BUFFER_SIZE) {
109
+ this.#primaryHandler = primaryHandler
110
+ this.#onComplete = onComplete
111
+ this.#maxBufferSize = maxBufferSize
112
+ }
113
+
114
+ /**
115
+ * Add a waiting handler that will receive response events.
116
+ * Returns false if deduplication can no longer safely attach this handler.
117
+ *
118
+ * @param {DispatchHandler} handler
119
+ * @returns {boolean}
120
+ */
121
+ addWaitingHandler (handler) {
122
+ if (this.#completed || this.#responseDataStarted) {
123
+ return false
124
+ }
125
+
126
+ const waitingHandler = this.#createWaitingHandler(handler)
127
+ const waitingController = waitingHandler.controller
128
+
129
+ try {
130
+ if (this.#requestStarted) {
131
+ // The primary request has started, so its context (including the
132
+ // redirect history) is known and can be delivered immediately.
133
+ handler.onRequestStart?.(waitingController, this.#context)
134
+
135
+ if (waitingController.aborted) {
136
+ waitingHandler.done = true
137
+ return true
138
+ }
139
+
140
+ if (this.#responseStarted) {
141
+ handler.onResponseStart?.(
142
+ waitingController,
143
+ this.#statusCode,
144
+ this.#headers,
145
+ this.#statusMessage
146
+ )
147
+ }
148
+ } else {
149
+ // The primary request has not started yet. Defer onRequestStart until
150
+ // its context is known, so the waiting handler observes the same
151
+ // redirect history as the primary (a cache handler relies on it to
152
+ // reject cross-origin redirect responses).
153
+ waitingHandler.pendingStart = true
154
+ }
155
+ } catch {
156
+ // Ignore errors from waiting handlers
157
+ waitingHandler.done = true
158
+ return true
159
+ }
160
+
161
+ if (!waitingController.aborted) {
162
+ this.#waitingHandlers.push(waitingHandler)
163
+ }
164
+
165
+ return true
166
+ }
167
+
168
+ /**
169
+ * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller
170
+ * @param {any} context
171
+ */
172
+ onRequestStart (controller, context) {
173
+ this.#controller = controller
174
+ if (!this.#requestStarted) {
175
+ this.#requestStarted = true
176
+ this.#context = context
177
+ // Deliver the now-known context to handlers that joined before the
178
+ // primary request started.
179
+ for (const waitingHandler of this.#waitingHandlers) {
180
+ if (waitingHandler.pendingStart && !waitingHandler.done && !waitingHandler.controller.aborted) {
181
+ waitingHandler.pendingStart = false
182
+ try {
183
+ waitingHandler.handler.onRequestStart?.(waitingHandler.controller, context)
184
+ } catch {
185
+ // Ignore errors from waiting handlers
186
+ waitingHandler.done = true
187
+ }
188
+ }
189
+ }
190
+ this.#pruneDoneWaitingHandlers()
191
+ }
192
+ this.#primaryHandler.onRequestStart?.(controller, context)
193
+ }
194
+
195
+ /**
196
+ * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller
197
+ * @param {number} statusCode
198
+ * @param {import('../../types/header.d.ts').IncomingHttpHeaders} headers
199
+ * @param {Socket} socket
200
+ */
201
+ onRequestUpgrade (controller, statusCode, headers, socket) {
202
+ this.#primaryHandler.onRequestUpgrade?.(controller, statusCode, headers, socket)
203
+ }
204
+
205
+ /**
206
+ * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller
207
+ * @param {number} statusCode
208
+ * @param {Record<string, string | string[]>} headers
209
+ * @param {string} statusMessage
210
+ */
211
+ onResponseStart (controller, statusCode, headers, statusMessage) {
212
+ this.#responseStarted = true
213
+ this.#statusCode = statusCode
214
+ this.#headers = headers
215
+ this.#statusMessage = statusMessage
216
+
217
+ this.#primaryHandler.onResponseStart?.(controller, statusCode, headers, statusMessage)
218
+
219
+ for (const waitingHandler of this.#waitingHandlers) {
220
+ const { handler, controller: waitingController } = waitingHandler
221
+
222
+ if (waitingHandler.done || waitingController.aborted) {
223
+ waitingHandler.done = true
224
+ continue
225
+ }
226
+
227
+ try {
228
+ handler.onResponseStart?.(
229
+ waitingController,
230
+ statusCode,
231
+ headers,
232
+ statusMessage
233
+ )
234
+ } catch {
235
+ // Ignore errors from waiting handlers
236
+ }
237
+
238
+ if (waitingController.aborted) {
239
+ waitingHandler.done = true
240
+ }
241
+ }
242
+
243
+ this.#pruneDoneWaitingHandlers()
244
+ }
245
+
246
+ /**
247
+ * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller
248
+ * @param {Buffer} chunk
249
+ */
250
+ onResponseData (controller, chunk) {
251
+ if (this.#aborted || this.#completed) {
252
+ return
253
+ }
254
+
255
+ this.#responseDataStarted = true
256
+
257
+ this.#primaryHandler.onResponseData?.(controller, chunk)
258
+
259
+ for (const waitingHandler of this.#waitingHandlers) {
260
+ const { handler, controller: waitingController } = waitingHandler
261
+
262
+ if (waitingHandler.done || waitingController.aborted) {
263
+ waitingHandler.done = true
264
+ continue
265
+ }
266
+
267
+ if (waitingController.paused) {
268
+ this.#bufferWaitingChunk(waitingHandler, chunk)
269
+ continue
270
+ }
271
+
272
+ try {
273
+ handler.onResponseData?.(waitingController, chunk)
274
+ } catch {
275
+ // Ignore errors from waiting handlers
276
+ }
277
+
278
+ if (waitingController.aborted) {
279
+ waitingHandler.done = true
280
+ waitingHandler.bufferedChunks = []
281
+ waitingHandler.bufferedBytes = 0
282
+ }
283
+ }
284
+
285
+ this.#pruneDoneWaitingHandlers()
286
+ }
287
+
288
+ /**
289
+ * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller
290
+ * @param {object} trailers
291
+ */
292
+ onResponseEnd (controller, trailers) {
293
+ if (this.#aborted || this.#completed) {
294
+ return
295
+ }
296
+
297
+ this.#completed = true
298
+ // Remove the completed request before callbacks can redispatch into this
299
+ // interceptor. Cleanup must not depend on downstream handlers succeeding.
300
+ this.#cleanup()
301
+
302
+ try {
303
+ this.#primaryHandler.onResponseEnd?.(controller, trailers)
304
+ } catch (err) {
305
+ // Completion callbacks may throw to initiate a retry. The transport's
306
+ // error callback would be ignored now that this handler is completed.
307
+ this.#primaryHandler.onResponseError?.(controller, err)
308
+ } finally {
309
+ for (const waitingHandler of this.#waitingHandlers) {
310
+ if (waitingHandler.done || waitingHandler.controller.aborted) {
311
+ waitingHandler.done = true
312
+ continue
313
+ }
314
+
315
+ this.#flushWaitingHandler(waitingHandler)
316
+
317
+ if (waitingHandler.done || waitingHandler.controller.aborted) {
318
+ waitingHandler.done = true
319
+ continue
320
+ }
321
+
322
+ if (waitingHandler.controller.paused) {
323
+ waitingHandler.pendingTrailers = trailers
324
+ continue
325
+ }
326
+
327
+ this.#endWaitingHandler(waitingHandler, trailers)
328
+ }
329
+
330
+ this.#pruneDoneWaitingHandlers()
331
+ }
332
+ }
333
+
334
+ /**
335
+ * @param {import('../../types/dispatcher.d.ts').default.DispatchController} controller
336
+ * @param {Error} err
337
+ */
338
+ onResponseError (controller, err) {
339
+ if (this.#completed) {
340
+ return
341
+ }
342
+
343
+ this.#aborted = true
344
+ this.#completed = true
345
+ this.#cleanup()
346
+
347
+ try {
348
+ this.#primaryHandler.onResponseError?.(controller, err)
349
+ } finally {
350
+ for (const waitingHandler of this.#waitingHandlers) {
351
+ this.#errorWaitingHandler(waitingHandler, err)
352
+ }
353
+
354
+ this.#waitingHandlers = []
355
+ }
356
+ }
357
+
358
+ #cleanup () {
359
+ const onComplete = this.#onComplete
360
+ this.#onComplete = null
361
+ onComplete?.()
362
+ }
363
+
364
+ /**
365
+ * @param {DispatchHandler} handler
366
+ * @returns {WaitingHandler}
367
+ */
368
+ #createWaitingHandler (handler) {
369
+ /** @type {WaitingHandler} */
370
+ const waitingHandler = {
371
+ handler,
372
+ controller: null,
373
+ bufferedChunks: [],
374
+ bufferedBytes: 0,
375
+ pendingTrailers: null,
376
+ done: false,
377
+ pendingStart: false
378
+ }
379
+
380
+ const state = {
381
+ aborted: false,
382
+ paused: false,
383
+ reason: null
384
+ }
385
+
386
+ waitingHandler.controller = {
387
+ resume: () => {
388
+ if (state.aborted) {
389
+ return
390
+ }
391
+
392
+ state.paused = false
393
+ this.#flushWaitingHandler(waitingHandler)
394
+
395
+ if (
396
+ this.#completed &&
397
+ waitingHandler.pendingTrailers &&
398
+ waitingHandler.bufferedChunks.length === 0 &&
399
+ !state.paused &&
400
+ !state.aborted
401
+ ) {
402
+ this.#endWaitingHandler(waitingHandler, waitingHandler.pendingTrailers)
403
+ }
404
+
405
+ this.#pruneDoneWaitingHandlers()
406
+ },
407
+ pause: () => {
408
+ if (!state.aborted) {
409
+ state.paused = true
410
+ }
411
+ },
412
+ get paused () { return state.paused },
413
+ get aborted () { return state.aborted },
414
+ get reason () { return state.reason },
415
+ abort: (reason) => {
416
+ if (state.aborted) {
417
+ return
418
+ }
419
+
420
+ state.aborted = true
421
+ state.reason = reason ?? null
422
+ waitingHandler.done = true
423
+ waitingHandler.pendingTrailers = null
424
+ waitingHandler.bufferedChunks = []
425
+ waitingHandler.bufferedBytes = 0
426
+
427
+ try {
428
+ handler.onResponseError?.(waitingHandler.controller, state.reason ?? new RequestAbortedError())
429
+ } catch {
430
+ // Ignore errors from waiting handlers
431
+ }
432
+ }
433
+ }
434
+
435
+ return waitingHandler
436
+ }
437
+
438
+ /**
439
+ * @param {WaitingHandler} waitingHandler
440
+ * @param {Buffer} chunk
441
+ */
442
+ #bufferWaitingChunk (waitingHandler, chunk) {
443
+ if (waitingHandler.done || waitingHandler.controller.aborted) {
444
+ waitingHandler.done = true
445
+ waitingHandler.bufferedChunks = []
446
+ waitingHandler.bufferedBytes = 0
447
+ return
448
+ }
449
+
450
+ const bufferedChunk = Buffer.from(chunk)
451
+ waitingHandler.bufferedChunks.push(bufferedChunk)
452
+ waitingHandler.bufferedBytes += bufferedChunk.length
453
+
454
+ if (waitingHandler.bufferedBytes > this.#maxBufferSize) {
455
+ const err = new RequestAbortedError(`Deduplicated waiting handler exceeded maxBufferSize (${this.#maxBufferSize} bytes) while paused`)
456
+ waitingHandler.controller.abort(err)
457
+ }
458
+ }
459
+
460
+ /**
461
+ * @param {WaitingHandler} waitingHandler
462
+ */
463
+ #flushWaitingHandler (waitingHandler) {
464
+ const { handler, controller } = waitingHandler
465
+
466
+ while (
467
+ !waitingHandler.done &&
468
+ !controller.aborted &&
469
+ !controller.paused &&
470
+ waitingHandler.bufferedChunks.length > 0
471
+ ) {
472
+ const bufferedChunk = waitingHandler.bufferedChunks.shift()
473
+ waitingHandler.bufferedBytes -= bufferedChunk.length
474
+
475
+ try {
476
+ handler.onResponseData?.(controller, bufferedChunk)
477
+ } catch {
478
+ // Ignore errors from waiting handlers
479
+ }
480
+
481
+ if (controller.aborted) {
482
+ waitingHandler.done = true
483
+ waitingHandler.pendingTrailers = null
484
+ waitingHandler.bufferedChunks = []
485
+ waitingHandler.bufferedBytes = 0
486
+ break
487
+ }
488
+ }
489
+ }
490
+
491
+ /**
492
+ * @param {WaitingHandler} waitingHandler
493
+ * @param {object} trailers
494
+ */
495
+ #endWaitingHandler (waitingHandler, trailers) {
496
+ waitingHandler.done = true
497
+ waitingHandler.pendingTrailers = null
498
+
499
+ try {
500
+ waitingHandler.handler.onResponseEnd?.(waitingHandler.controller, trailers)
501
+ } catch (err) {
502
+ // This is a response failure, not a consumer abort. Aborting the waiting
503
+ // controller here would prevent downstream handlers from retrying.
504
+ try {
505
+ waitingHandler.handler.onResponseError?.(waitingHandler.controller, err)
506
+ } catch {
507
+ // An error callback must not prevent other waiting handlers completing.
508
+ }
509
+ }
510
+ }
511
+
512
+ /**
513
+ * @param {WaitingHandler} waitingHandler
514
+ * @param {Error} err
515
+ */
516
+ #errorWaitingHandler (waitingHandler, err) {
517
+ if (waitingHandler.done) {
518
+ return
519
+ }
520
+
521
+ waitingHandler.done = true
522
+ waitingHandler.pendingTrailers = null
523
+ waitingHandler.bufferedChunks = []
524
+ waitingHandler.bufferedBytes = 0
525
+
526
+ // A response failure is not a consumer abort: retry handlers must be able
527
+ // to retry it just as they would a failure of the primary request.
528
+ try {
529
+ waitingHandler.handler.onResponseError?.(waitingHandler.controller, err)
530
+ } catch {
531
+ // Ignore errors from waiting handlers
532
+ }
533
+ }
534
+
535
+ #pruneDoneWaitingHandlers () {
536
+ this.#waitingHandlers = this.#waitingHandlers.filter(waitingHandler => waitingHandler.done === false)
537
+ }
538
+ }
539
+
540
+ module.exports = DeduplicationHandler