@openclaw/slack 2026.9.6 → 2026.9.7

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 (291) hide show
  1. package/assets/icon.png +0 -0
  2. package/dist/.setup/{account-inspect-DP1Bcwj4.mjs → account-inspect-DWBXpER6.mjs} +1 -1
  3. package/dist/.setup/{accounts-BBHvg0pY.mjs → accounts-D_N9IqNA.mjs} +23 -1
  4. package/dist/.setup/{action-runtime-B01d85zt.mjs → action-runtime-DfWvuiZd.mjs} +26 -41
  5. package/dist/.setup/action-runtime.runtime-Ck4bAWOX.mjs +2 -0
  6. package/dist/.setup/{actions-DKCtBgCI.mjs → actions-Df0CzcDl.mjs} +88 -175
  7. package/dist/.setup/{approval-handler.runtime-DMszKn_7.mjs → approval-handler.runtime-Ed6Sw5VK.mjs} +37 -47
  8. package/dist/.setup/{approval-message-updates-Tb_qRokK.mjs → approval-message-updates-BadvtA7R.mjs} +1 -2
  9. package/dist/.setup/{channel-CErYZ5zw.mjs → channel-C7bgPSTE.mjs} +181 -273
  10. package/dist/.setup/channel-meta-C443t-lI.mjs +27 -0
  11. package/dist/.setup/{channel-type-Dxk8VJUb.mjs → channel-type-ClOttrZ5.mjs} +13 -21
  12. package/dist/.setup/{channel.setup-BVoUtdPn.mjs → channel.setup-Dh2jzAjN.mjs} +35 -42
  13. package/dist/.setup/{config-schema-CyL279e7.mjs → config-schema-BZCxmHKG.mjs} +24 -21
  14. package/dist/.setup/{directory-config-CQTSH45W.mjs → directory-config-BOUWH3hR.mjs} +7 -10
  15. package/dist/.setup/{directory-live-BCcj89QV.mjs → directory-live-B2O4B_Ho.mjs} +9 -21
  16. package/dist/.setup/doctor-contract-CRN1Z_c7.mjs +342 -0
  17. package/dist/.setup/{message-tool-api-C0PTFaNV.mjs → message-tool-api-Cu4lwlGy.mjs} +34 -48
  18. package/dist/.setup/{provider-C-jPaGt2.mjs → monitor-BPVfkumU.mjs} +2181 -2693
  19. package/dist/.setup/{outbound-adapter-A7Wdn8ZT.mjs → outbound-adapter-Bv48XUjq.mjs} +10 -21
  20. package/dist/.setup/{pipeline.runtime-BlPOexmJ.mjs → pipeline.runtime-B1H63Frf.mjs} +311 -457
  21. package/dist/.setup/{plugin-routes-C3X0eVaK.mjs → plugin-routes-B8tooDLj.mjs} +1 -1
  22. package/dist/.setup/{policy-BApW53pI.mjs → policy-D-jfM174.mjs} +5 -5
  23. package/dist/.setup/{probe-DiYIMPJo.mjs → probe-B2Y9qc_z.mjs} +101 -39
  24. package/dist/.setup/{registry-bbjH7IHX.mjs → registry-CIbMfuf8.mjs} +6 -2
  25. package/dist/.setup/{relay-source-DfOnjJTE.mjs → relay-source-BpKdjsll.mjs} +10 -12
  26. package/dist/.setup/{replies-BBAJxUOQ.mjs → replies-BAnUtr2f.mjs} +16 -76
  27. package/dist/.setup/{reply-blocks-Bm8kf6mK.mjs → reply-blocks-SE1kTE3I.mjs} +27 -154
  28. package/dist/.setup/{resolve-channels-BXbMBbJD.mjs → resolve-channels-XXBn8UU_.mjs} +4 -5
  29. package/dist/.setup/{resolve-users-65WqvIqD.mjs → resolve-users-DW0ngD03.mjs} +20 -22
  30. package/dist/.setup/{scopes-h3YB-mMs.mjs → scopes-CasuDvaa.mjs} +6 -17
  31. package/dist/.setup/{secret-contract-DxmvbxBF.mjs → secret-contract-BaZcu6P_.mjs} +15 -20
  32. package/dist/.setup/{secret-contract-api-D9UfYujm.mjs → secret-contract-api-Dp6290Vg.mjs} +1 -1
  33. package/dist/.setup/{security-audit-BypHqcq5.mjs → security-audit-BqDc-6VL.mjs} +1 -1
  34. package/dist/.setup/{send-Cp6omkOg.mjs → send-BOVLQi3n.mjs} +84 -171
  35. package/dist/.setup/{session-status-Cf7AvWOt.mjs → session-status-DscajIsd.mjs} +315 -238
  36. package/dist/.setup/{setup-plugin-api-dLPkL06L.mjs → setup-plugin-api-DTtbTKNk.mjs} +1 -1
  37. package/dist/.setup/{setup-surface-D3DLcCxu.mjs → setup-surface-Dn7QgWRE.mjs} +24 -56
  38. package/dist/.setup/{shared-CJ3arAFL.mjs → shared-qau-uDGl.mjs} +30 -56
  39. package/dist/.setup/{slash-dispatch.runtime-HFy_XvyO.mjs → slash-dispatch.runtime--AEzLVBF.mjs} +1 -1
  40. package/dist/.setup/{streaming-compat-B-e0mqM0.mjs → streaming-compat-C5Wut626.mjs} +31 -8
  41. package/dist/.setup/{target-parsing-DEsPjngB.mjs → target-parsing-FFE26kOV.mjs} +1 -7
  42. package/dist/.setup/{targets-Cku2KCvg.mjs → targets-C6LZQL1Q.mjs} +1 -1
  43. package/dist/.setup/{thread-ts-CukseRVL.mjs → thread-ts-Cvt7WD6B.mjs} +0 -1
  44. package/dist/account-inspect-api.js +1 -1
  45. package/dist/api.js +18 -17
  46. package/dist/channel-config-api.js +1 -1
  47. package/dist/channel-plugin-api.js +1 -1
  48. package/dist/directory-contract-api.js +1 -1
  49. package/dist/doctor-contract-api.js +1 -1
  50. package/dist/http-routes-api.js +1 -1
  51. package/dist/index.js +1 -1
  52. package/dist/message-tool-api.js +1 -1
  53. package/dist/runtime-api.js +11 -12
  54. package/dist/secret-contract-api.js +1 -1
  55. package/dist/security-contract-api.js +1 -1
  56. package/dist/setup-entry.js +2 -2
  57. package/dist/setup-plugin-api.js +1 -1
  58. package/node_modules/@slack/bolt/node_modules/@types/node/README.md +1 -1
  59. package/node_modules/@slack/bolt/node_modules/@types/node/child_process.d.ts +1 -1
  60. package/node_modules/@slack/bolt/node_modules/@types/node/crypto.d.ts +20 -8
  61. package/node_modules/@slack/bolt/node_modules/@types/node/ffi.d.ts +14 -0
  62. package/node_modules/@slack/bolt/node_modules/@types/node/http2.d.ts +3 -2
  63. package/node_modules/@slack/bolt/node_modules/@types/node/net.d.ts +16 -4
  64. package/node_modules/@slack/bolt/node_modules/@types/node/package.json +2 -2
  65. package/node_modules/@slack/bolt/node_modules/@types/node/process.d.ts +1 -0
  66. package/node_modules/@slack/bolt/node_modules/@types/node/quic.d.ts +39 -1
  67. package/node_modules/@slack/bolt/node_modules/@types/node/stream/iter.d.ts +9 -12
  68. package/node_modules/@slack/bolt/node_modules/@types/node/test/reporters.d.ts +1 -0
  69. package/node_modules/@slack/bolt/node_modules/@types/node/test.d.ts +72 -0
  70. package/node_modules/@slack/bolt/node_modules/@types/node/tls.d.ts +14 -10
  71. package/node_modules/@slack/bolt/node_modules/@types/node/vm.d.ts +2 -1
  72. package/node_modules/@slack/bolt/node_modules/@types/node/worker_threads.d.ts +4 -1
  73. package/node_modules/@slack/web-api/node_modules/@types/node/README.md +1 -1
  74. package/node_modules/@slack/web-api/node_modules/@types/node/child_process.d.ts +1 -1
  75. package/node_modules/@slack/web-api/node_modules/@types/node/crypto.d.ts +20 -8
  76. package/node_modules/@slack/web-api/node_modules/@types/node/ffi.d.ts +14 -0
  77. package/node_modules/@slack/web-api/node_modules/@types/node/http2.d.ts +3 -2
  78. package/node_modules/@slack/web-api/node_modules/@types/node/net.d.ts +16 -4
  79. package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -2
  80. package/node_modules/@slack/web-api/node_modules/@types/node/process.d.ts +1 -0
  81. package/node_modules/@slack/web-api/node_modules/@types/node/quic.d.ts +39 -1
  82. package/node_modules/@slack/web-api/node_modules/@types/node/stream/iter.d.ts +9 -12
  83. package/node_modules/@slack/web-api/node_modules/@types/node/test/reporters.d.ts +1 -0
  84. package/node_modules/@slack/web-api/node_modules/@types/node/test.d.ts +72 -0
  85. package/node_modules/@slack/web-api/node_modules/@types/node/tls.d.ts +14 -10
  86. package/node_modules/@slack/web-api/node_modules/@types/node/vm.d.ts +2 -1
  87. package/node_modules/@slack/web-api/node_modules/@types/node/worker_threads.d.ts +4 -1
  88. package/node_modules/get-east-asian-width/index.js +8 -3
  89. package/node_modules/get-east-asian-width/lookup-data.js +1 -1
  90. package/node_modules/get-east-asian-width/lookup.js +4 -4
  91. package/node_modules/get-east-asian-width/package.json +1 -1
  92. package/node_modules/typebox/build/compile/code.mjs +1 -2
  93. package/node_modules/typebox/build/compile/validator.mjs +5 -1
  94. package/node_modules/typebox/build/format/iri.mjs +16 -9
  95. package/node_modules/typebox/build/guard/emit.mjs +2 -2
  96. package/node_modules/typebox/build/guard/guard.d.mts +7 -5
  97. package/node_modules/typebox/build/guard/guard.mjs +14 -9
  98. package/node_modules/typebox/build/guard/index.mjs +6 -0
  99. package/node_modules/typebox/build/guard/unicode/unicode.d.mts +6 -0
  100. package/node_modules/typebox/build/guard/unicode/unicode.mjs +35 -0
  101. package/node_modules/typebox/build/guard/{string.mjs → unicode/unicode_segment.mjs} +16 -19
  102. package/node_modules/typebox/build/schema/build.mjs +2 -3
  103. package/node_modules/typebox/build/schema/engine/_pathing.d.mts +1 -0
  104. package/node_modules/typebox/build/schema/engine/_pathing.mjs +11 -0
  105. package/node_modules/typebox/build/schema/engine/_refine.mjs +13 -5
  106. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +2 -1
  107. package/node_modules/typebox/build/schema/engine/dependencies.mjs +2 -1
  108. package/node_modules/typebox/build/schema/engine/dependentSchemas.mjs +2 -1
  109. package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +1 -1
  110. package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +2 -2
  111. package/node_modules/typebox/build/schema/engine/format.mjs +9 -2
  112. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +3 -2
  113. package/node_modules/typebox/build/schema/engine/properties.mjs +3 -2
  114. package/node_modules/typebox/build/schema/engine/propertyNames.mjs +2 -1
  115. package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +1 -1
  116. package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +2 -2
  117. package/node_modules/typebox/build/schema/engine/ref.d.mts +1 -1
  118. package/node_modules/typebox/build/schema/engine/ref.mjs +2 -2
  119. package/node_modules/typebox/build/schema/engine/schema.mjs +24 -24
  120. package/node_modules/typebox/build/schema/parse.mjs +3 -0
  121. package/node_modules/typebox/build/schema/pointer/pointer.d.mts +1 -6
  122. package/node_modules/typebox/build/schema/pointer/pointer.mjs +47 -64
  123. package/node_modules/typebox/build/system/settings/internal.d.mts +2 -0
  124. package/node_modules/typebox/build/system/settings/internal.mjs +20 -0
  125. package/node_modules/typebox/build/system/settings/settings.d.mts +11 -0
  126. package/node_modules/typebox/build/system/settings/settings.mjs +14 -0
  127. package/node_modules/typebox/build/type/extends/inference.d.mts +1 -1
  128. package/node_modules/typebox/build/type/extends/inference.mjs +15 -2
  129. package/node_modules/typebox/build/type/extends/tuple.d.mts +2 -1
  130. package/node_modules/typebox/build/type/extends/tuple.mjs +21 -1
  131. package/node_modules/typebox/build/value/parse/parse.mjs +10 -4
  132. package/node_modules/typebox/package.json +1 -1
  133. package/node_modules/typebox/readme.md +3 -1
  134. package/node_modules/undici/README.md +81 -25
  135. package/node_modules/undici/docs/docs/api/Agent.md +249 -42
  136. package/node_modules/undici/docs/docs/api/BalancedPool.md +246 -48
  137. package/node_modules/undici/docs/docs/api/CacheStorage.md +171 -13
  138. package/node_modules/undici/docs/docs/api/CacheStore.md +294 -98
  139. package/node_modules/undici/docs/docs/api/Client.md +407 -162
  140. package/node_modules/undici/docs/docs/api/ClientStats.md +80 -14
  141. package/node_modules/undici/docs/docs/api/Connector.md +118 -35
  142. package/node_modules/undici/docs/docs/api/ContentType.md +65 -25
  143. package/node_modules/undici/docs/docs/api/Cookies.md +122 -71
  144. package/node_modules/undici/docs/docs/api/Debug.md +34 -18
  145. package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +364 -164
  146. package/node_modules/undici/docs/docs/api/Dispatcher.md +490 -1055
  147. package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +105 -93
  148. package/node_modules/undici/docs/docs/api/Errors.md +503 -28
  149. package/node_modules/undici/docs/docs/api/EventSource.md +326 -13
  150. package/node_modules/undici/docs/docs/api/Fetch.md +681 -30
  151. package/node_modules/undici/docs/docs/api/GlobalInstallation.md +78 -96
  152. package/node_modules/undici/docs/docs/api/H2CClient.md +298 -176
  153. package/node_modules/undici/docs/docs/api/Interceptors.md +418 -0
  154. package/node_modules/undici/docs/docs/api/MockAgent.md +333 -314
  155. package/node_modules/undici/docs/docs/api/MockCallHistory.md +272 -98
  156. package/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +189 -26
  157. package/node_modules/undici/docs/docs/api/MockClient.md +151 -33
  158. package/node_modules/undici/docs/docs/api/MockErrors.md +56 -5
  159. package/node_modules/undici/docs/docs/api/MockPool.md +321 -258
  160. package/node_modules/undici/docs/docs/api/Pool.md +236 -41
  161. package/node_modules/undici/docs/docs/api/PoolStats.md +119 -13
  162. package/node_modules/undici/docs/docs/api/ProxyAgent.md +179 -160
  163. package/node_modules/undici/docs/docs/api/RedirectHandler.md +238 -55
  164. package/node_modules/undici/docs/docs/api/RetryAgent.md +113 -27
  165. package/node_modules/undici/docs/docs/api/RetryHandler.md +161 -79
  166. package/node_modules/undici/docs/docs/api/RoundRobinPool.md +166 -72
  167. package/node_modules/undici/docs/docs/api/SnapshotAgent.md +262 -517
  168. package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +177 -196
  169. package/node_modules/undici/docs/docs/api/Util.md +68 -11
  170. package/node_modules/undici/docs/docs/api/WebSocket.md +475 -80
  171. package/node_modules/undici/docs/docs/api/api-lifecycle.md +100 -32
  172. package/node_modules/undici/docs/docs/best-practices/client-certificate.md +2 -0
  173. package/node_modules/undici/docs/docs/best-practices/crawling.md +3 -1
  174. package/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +233 -0
  175. package/node_modules/undici/docs/docs/best-practices/mocking-request.md +9 -7
  176. package/node_modules/undici/docs/docs/best-practices/proxy.md +3 -1
  177. package/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +10 -8
  178. package/node_modules/undici/docs/docs/best-practices/writing-tests.md +2 -0
  179. package/node_modules/undici/docs/docs/getting-started.md +281 -0
  180. package/node_modules/undici/docs/docs/index.md +784 -0
  181. package/node_modules/undici/docs/docs/site.json +125 -0
  182. package/node_modules/undici/docs/docs/type-map.json +79 -0
  183. package/node_modules/undici/index.js +4 -2
  184. package/node_modules/undici/lib/api/api-connect.js +13 -11
  185. package/node_modules/undici/lib/api/api-pipeline.js +26 -13
  186. package/node_modules/undici/lib/api/api-request.js +51 -21
  187. package/node_modules/undici/lib/api/api-stream.js +81 -20
  188. package/node_modules/undici/lib/api/api-upgrade.js +21 -11
  189. package/node_modules/undici/lib/api/readable.js +45 -9
  190. package/node_modules/undici/lib/cache/memory-cache-store.js +3 -3
  191. package/node_modules/undici/lib/cache/sqlite-cache-store.js +3 -1
  192. package/node_modules/undici/lib/core/connect.js +46 -7
  193. package/node_modules/undici/lib/core/constants.js +1 -24
  194. package/node_modules/undici/lib/core/errors.js +22 -2
  195. package/node_modules/undici/lib/core/request.js +100 -18
  196. package/node_modules/undici/lib/core/symbols.js +4 -0
  197. package/node_modules/undici/lib/core/util.js +105 -48
  198. package/node_modules/undici/lib/dispatcher/agent.js +51 -32
  199. package/node_modules/undici/lib/dispatcher/balanced-pool.js +23 -27
  200. package/node_modules/undici/lib/dispatcher/client-h1.js +86 -24
  201. package/node_modules/undici/lib/dispatcher/client-h2.js +1091 -361
  202. package/node_modules/undici/lib/dispatcher/client.js +109 -36
  203. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +19 -6
  204. package/node_modules/undici/lib/dispatcher/dispatcher.js +15 -5
  205. package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +110 -0
  206. package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +37 -8
  207. package/node_modules/undici/lib/dispatcher/h2c-client.js +4 -4
  208. package/node_modules/undici/lib/dispatcher/pool-base.js +28 -10
  209. package/node_modules/undici/lib/dispatcher/pool.js +30 -5
  210. package/node_modules/undici/lib/dispatcher/proxy-agent.js +95 -19
  211. package/node_modules/undici/lib/dispatcher/retry-agent.js +3 -0
  212. package/node_modules/undici/lib/dispatcher/round-robin-pool.js +32 -10
  213. package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +153 -63
  214. package/node_modules/undici/lib/global.js +37 -14
  215. package/node_modules/undici/lib/handler/cache-handler.js +49 -7
  216. package/node_modules/undici/lib/handler/cache-revalidation-handler.js +10 -0
  217. package/node_modules/undici/lib/handler/decorator-handler.js +8 -3
  218. package/node_modules/undici/lib/handler/deduplication-handler.js +12 -6
  219. package/node_modules/undici/lib/handler/redirect-handler.js +66 -66
  220. package/node_modules/undici/lib/handler/retry-handler.js +191 -50
  221. package/node_modules/undici/lib/interceptor/cache.js +75 -25
  222. package/node_modules/undici/lib/interceptor/decompress.js +5 -2
  223. package/node_modules/undici/lib/interceptor/deduplicate.js +5 -4
  224. package/node_modules/undici/lib/interceptor/dns.js +12 -1
  225. package/node_modules/undici/lib/interceptor/redirect.js +3 -3
  226. package/node_modules/undici/lib/llhttp/llhttp-wasm.js +1 -1
  227. package/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +1 -1
  228. package/node_modules/undici/lib/mock/mock-agent.js +21 -9
  229. package/node_modules/undici/lib/mock/mock-call-history.js +1 -1
  230. package/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
  231. package/node_modules/undici/lib/mock/mock-utils.js +281 -47
  232. package/node_modules/undici/lib/mock/snapshot-agent.js +25 -7
  233. package/node_modules/undici/lib/mock/snapshot-recorder.js +38 -3
  234. package/node_modules/undici/lib/util/cache.js +92 -10
  235. package/node_modules/undici/lib/util/runtime-features.js +3 -34
  236. package/node_modules/undici/lib/web/cache/cache.js +6 -8
  237. package/node_modules/undici/lib/web/cookies/parse.js +150 -146
  238. package/node_modules/undici/lib/web/cookies/util.js +1 -1
  239. package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +28 -1
  240. package/node_modules/undici/lib/web/eventsource/eventsource.js +20 -21
  241. package/node_modules/undici/lib/web/eventsource/util.js +32 -1
  242. package/node_modules/undici/lib/web/fetch/body.js +48 -10
  243. package/node_modules/undici/lib/web/fetch/constants.js +1 -1
  244. package/node_modules/undici/lib/web/fetch/formdata.js +21 -2
  245. package/node_modules/undici/lib/web/fetch/index.js +242 -223
  246. package/node_modules/undici/lib/web/fetch/request.js +35 -6
  247. package/node_modules/undici/lib/web/fetch/response.js +1 -3
  248. package/node_modules/undici/lib/web/fetch/util.js +10 -2
  249. package/node_modules/undici/lib/web/webidl/index.js +5 -7
  250. package/node_modules/undici/lib/web/websocket/frame.js +1 -7
  251. package/node_modules/undici/lib/web/websocket/receiver.js +1 -1
  252. package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +10 -10
  253. package/node_modules/undici/lib/web/websocket/websocket.js +25 -3
  254. package/node_modules/undici/package.json +10 -10
  255. package/node_modules/undici/types/agent.d.ts +0 -2
  256. package/node_modules/undici/types/client.d.ts +69 -24
  257. package/node_modules/undici/types/connector.d.ts +1 -0
  258. package/node_modules/undici/types/cookies.d.ts +1 -1
  259. package/node_modules/undici/types/dispatcher.d.ts +8 -30
  260. package/node_modules/undici/types/dispatcher1-wrapper.d.ts +7 -0
  261. package/node_modules/undici/types/errors.d.ts +10 -0
  262. package/node_modules/undici/types/fetch.d.ts +5 -1
  263. package/node_modules/undici/types/formdata.d.ts +0 -6
  264. package/node_modules/undici/types/h2c-client.d.ts +6 -6
  265. package/node_modules/undici/types/handlers.d.ts +2 -0
  266. package/node_modules/undici/types/header.d.ts +5 -0
  267. package/node_modules/undici/types/index.d.ts +3 -1
  268. package/node_modules/undici/types/interceptors.d.ts +1 -1
  269. package/node_modules/undici/types/mock-agent.d.ts +11 -10
  270. package/node_modules/undici/types/mock-interceptor.d.ts +5 -1
  271. package/node_modules/undici/types/pool.d.ts +0 -2
  272. package/node_modules/undici/types/proxy-agent.d.ts +9 -2
  273. package/node_modules/undici/types/round-robin-pool.d.ts +0 -2
  274. package/node_modules/undici/types/snapshot-agent.d.ts +4 -0
  275. package/node_modules/undici/types/socks5-proxy-agent.d.ts +4 -2
  276. package/node_modules/undici/types/webidl.d.ts +0 -1
  277. package/openclaw.plugin.json +31 -3
  278. package/package.json +7 -7
  279. package/dist/.setup/accounts.runtime-DN-PPocC.mjs +0 -2
  280. package/dist/.setup/action-runtime.runtime-C8R8CUan.mjs +0 -2
  281. package/dist/.setup/doctor-contract-CtMUqjvk.mjs +0 -186
  282. package/dist/.setup/monitor-_Sht7Dqy.mjs +0 -13
  283. package/dist/.setup/rolldown-runtime-D7D4PA-g.mjs +0 -13
  284. package/dist/.setup/send.runtime-B4caZU6T.mjs +0 -2
  285. package/dist/.setup/slash-commands.runtime-BpSH0b3q.mjs +0 -2
  286. package/dist/.setup/slash-skill-commands.runtime-Bi1JWZHY.mjs +0 -2
  287. package/node_modules/undici/lib/handler/unwrap-handler.js +0 -106
  288. package/node_modules/undici/lib/handler/wrap-handler.js +0 -105
  289. package/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  290. package/node_modules/undici/lib/util/promise.js +0 -28
  291. /package/node_modules/typebox/build/guard/{string.d.mts → unicode/unicode_segment.d.mts} +0 -0
@@ -1,84 +1,212 @@
1
- # Class: Client
2
-
3
- Extends: `undici.Dispatcher`
4
-
5
- A basic HTTP/1.1 client, mapped on top a single TCP/TLS connection. Pipelining is disabled by default.
6
-
7
- Requests are not guaranteed to be dispatched in order of invocation.
8
-
9
- ## `new Client(url[, options])`
10
-
11
- Arguments:
12
-
13
- * **url** `URL | string` - Should only include the **protocol, hostname, and port**.
14
- * **options** `ClientOptions` (optional)
15
-
16
- Returns: `Client`
17
-
18
- ### Parameter: `ClientOptions`
19
-
20
- * **bodyTimeout** `number | null` (optional) - Default: `300e3` - The timeout after which a request will time out, in milliseconds. Monitors time between receiving body data. Use `0` to disable it entirely. Defaults to 300 seconds. Please note the `timeout` will be reset if you keep writing data to the socket everytime.
21
- * **headersTimeout** `number | null` (optional) - Default: `300e3` - The amount of time, in milliseconds, the parser will wait to receive the complete HTTP headers while not sending the request. Defaults to 300 seconds.
22
- * **keepAliveMaxTimeout** `number | null` (optional) - Default: `600e3` - The maximum allowed `keepAliveTimeout`, in milliseconds, when overridden by *keep-alive* hints from the server. Defaults to 10 minutes.
23
- * **keepAliveTimeout** `number | null` (optional) - Default: `4e3` - The timeout, in milliseconds, after which a socket without active requests will time out. Monitors time between activity on a connected socket. This value may be overridden by *keep-alive* hints from the server. See [MDN: HTTP - Headers - Keep-Alive directives](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Keep-Alive#directives) for more details. Defaults to 4 seconds.
24
- * **keepAliveTimeoutThreshold** `number | null` (optional) - Default: `2e3` - A number of milliseconds subtracted from server *keep-alive* hints when overriding `keepAliveTimeout` to account for timing inaccuracies caused by e.g. transport latency. Defaults to 2 seconds.
25
- * **maxHeaderSize** `number | null` (optional) - Default: `--max-http-header-size` or `16384` - The maximum length of request headers in bytes. Defaults to Node.js' --max-http-header-size or 16KiB.
26
- * **maxResponseSize** `number | null` (optional) - Default: `-1` - The maximum length of response body in bytes. Set to `-1` to disable.
27
- * **webSocket** `WebSocketOptions` (optional) - WebSocket-specific configuration options.
28
- * **maxFragments** `number` (optional) - Default: `131072` - Maximum number of fragments in a message. Set to 0 to disable the limit.
29
- * **maxPayloadSize** `number` (optional) - Default: `134217728` (128 MB) - Maximum allowed payload size in bytes for WebSocket messages. Applied to uncompressed messages, compressed frame payloads, and decompressed (permessage-deflate) messages. Set to 0 to disable the limit.
30
- * **pipelining** `number | null` (optional) - Default: `1` - The amount of concurrent requests to be sent over the single TCP/TLS connection according to [RFC7230](https://tools.ietf.org/html/rfc7230#section-6.3.2). Carefully consider your workload and environment before enabling concurrent requests as pipelining may reduce performance if used incorrectly. Pipelining is sensitive to network stack settings as well as head of line blocking caused by e.g. long running requests. Set to `0` to disable keep-alive connections.
31
- * **connect** `ConnectOptions | Function | null` (optional) - Default: `null`.
32
- * **strictContentLength** `Boolean` (optional) - Default: `true` - Whether to treat request content length mismatches as errors. If true, an error is thrown when the request content-length header doesn't match the length of the request body. **Security Warning:** Disabling this option can expose your application to HTTP Request Smuggling attacks, where mismatched content-length headers cause servers and proxies to interpret request boundaries differently. This can lead to cache poisoning, credential hijacking, and bypassing security controls. Only disable this in controlled environments where you fully trust the request source.
33
- * **autoSelectFamily**: `boolean` (optional) - Default: depends on local Node version, on Node 18.13.0 and above is `false`. Enables a family autodetection algorithm that loosely implements section 5 of [RFC 8305](https://tools.ietf.org/html/rfc8305#section-5). See [here](https://nodejs.org/api/net.html#socketconnectoptions-connectlistener) for more details. This option is ignored if not supported by the current Node version.
34
- * **autoSelectFamilyAttemptTimeout**: `number` - Default: depends on local Node version, on Node 18.13.0 and above is `250`. The amount of time in milliseconds to wait for a connection attempt to finish before trying the next address when using the `autoSelectFamily` option. See [here](https://nodejs.org/api/net.html#socketconnectoptions-connectlistener) for more details.
35
- * **allowH2**: `boolean` - Default: `false`. Enables support for H2 if the server has assigned bigger priority to it through ALPN negotiation.
36
- * **useH2c**: `boolean` - Default: `false`. Enforces h2c for non-https connections.
37
- * **maxConcurrentStreams**: `number` - Default: `100`. Dictates the maximum number of concurrent streams for a single H2 session. It can be overridden by a SETTINGS remote frame.
38
- * **initialWindowSize**: `number` (optional) - Default: `262144` (256KB). Sets the HTTP/2 stream-level flow-control window size (SETTINGS_INITIAL_WINDOW_SIZE). Must be a positive integer greater than 0. This default is higher than Node.js core's default (65535 bytes) to improve throughput, Node's choice is very conservative for current high-bandwith networks. See [RFC 7540 Section 6.9.2](https://datatracker.ietf.org/doc/html/rfc7540#section-6.9.2) for more details.
39
- * **connectionWindowSize**: `number` (optional) - Default `524288` (512KB). Sets the HTTP/2 connection-level flow-control window size using `ClientHttp2Session.setLocalWindowSize()`. Must be a positive integer greater than 0. This provides better flow control for the entire connection across multiple streams. See [Node.js HTTP/2 documentation](https://nodejs.org/api/http2.html#clienthttp2sessionsetlocalwindowsize) for more details.
40
- * **pingInterval**: `number` - Default: `60e3`. The time interval in milliseconds between PING frames sent to the server. Set to `0` to disable PING frames. This is only applicable for HTTP/2 connections. This will emit a `ping` event on the client with the duration of the ping in milliseconds.
41
-
42
- > **Notes about HTTP/2**
43
- > - It only works under TLS connections. h2c is not supported.
44
- > - The server must support HTTP/2 and choose it as the protocol during the ALPN negotiation.
45
- > - The server must not have a bigger priority for HTTP/1.1 than HTTP/2.
46
- > - Pseudo headers are automatically attached to the request. If you try to set them, they will be overwritten.
47
- > - The `:path` header is automatically set to the request path.
48
- > - The `:method` header is automatically set to the request method.
49
- > - The `:scheme` header is automatically set to the request scheme.
50
- > - The `:authority` header is automatically set to the request `host[:port]`.
51
- > - `PUSH` frames are yet not supported.
52
-
53
- #### Parameter: `ConnectOptions`
54
-
55
- Every Tls option, see [here](https://nodejs.org/api/tls.html#tls_tls_connect_options_callback).
56
- Furthermore, the following options can be passed:
57
-
58
- * **socketPath** `string | null` (optional) - Default: `null` - An IPC endpoint, either Unix domain socket or Windows named pipe.
59
- * **maxCachedSessions** `number | null` (optional) - Default: `100` - Maximum number of TLS cached sessions. Use 0 to disable TLS session caching. Default: 100.
60
- * **timeout** `number | null` (optional) - In milliseconds, Default `10e3`.
61
- * **servername** `string | null` (optional)
62
- * **keepAlive** `boolean | null` (optional) - Default: `true` - TCP keep-alive enabled
63
- * **keepAliveInitialDelay** `number | null` (optional) - Default: `60000` - TCP keep-alive interval for the socket in milliseconds
64
-
65
- ### Example - Basic Client instantiation
66
-
67
- This will instantiate the undici Client, but it will not connect to the origin until something is queued. Consider using `client.connect` to prematurely connect to the origin, or just call `client.request`.
68
-
69
- ```js
70
- 'use strict'
1
+ # Client
2
+
3
+ <!--introduced_in=v1.0.0-->
4
+
5
+ <!--type=module-->
6
+
7
+ <!-- source_link=lib/dispatcher/client.js -->
8
+
9
+ > Stability: 2 - Stable
10
+
11
+ A basic HTTP/1.1 client mapped on top of a single TCP/TLS connection. When the
12
+ server supports HTTP/2 and selects it during ALPN negotiation, the same
13
+ connection is used for HTTP/2. Pipelining is disabled by default.
14
+
15
+ `Client` extends [`Dispatcher`][] and is the lowest-level dispatcher in undici:
16
+ it manages exactly one origin over one connection. For pooling across multiple
17
+ connections use [`Pool`][], and for routing across multiple origins use
18
+ [`Agent`][]. Requests are not guaranteed to be dispatched in the order in which
19
+ they are invoked.
20
+
21
+ ```mjs
71
22
  import { Client } from 'undici'
72
23
 
73
24
  const client = new Client('http://localhost:3000')
25
+ const { statusCode, body } = await client.request({ path: '/', method: 'GET' })
26
+ ```
27
+
28
+ ## Class: `Client`
29
+
30
+ <!-- YAML
31
+ added: v1.0.0
32
+ -->
33
+
34
+ * Extends: {Dispatcher}
35
+
36
+ ### `new Client(url[, options])`
37
+
38
+ <!-- YAML
39
+ added: v1.0.0
40
+ -->
41
+
42
+ * `url` {URL|string} The origin to connect to. Only the protocol, hostname, and
43
+ port are used.
44
+ * `options` {Object} (optional)
45
+ * `bodyTimeout` {number|null} The timeout, in milliseconds, after which a
46
+ request times out while receiving body data. Monitors the time between
47
+ consecutive body chunks. Use `0` to disable it entirely. **Default:**
48
+ `300e3`.
49
+ * `headersTimeout` {number|null} The timeout, in milliseconds, the parser
50
+ waits to receive the complete HTTP headers before the request times out. Use
51
+ `0` to disable it entirely. **Default:** `300e3`.
52
+ HTTP/1.1 headers/body parser timeouts are not guaranteed to fire with exact
53
+ millisecond precision: delays up to 1000ms use native timers, while larger
54
+ delays use undici's lower-overhead fast timers with a target resolution
55
+ around 500ms.
56
+ * `connectTimeout` {number|null} The timeout, in milliseconds, for
57
+ establishing a socket connection. Use `0` to disable it entirely.
58
+ **Default:** `10e3`.
59
+ * `keepAliveTimeout` {number|null} The timeout, in milliseconds, after which a
60
+ socket with no active requests times out. Monitors the time between activity
61
+ on a connected socket. This value may be overridden by *keep-alive* hints
62
+ from the server. **Default:** `4e3`.
63
+ * `keepAliveMaxTimeout` {number|null} The maximum allowed `keepAliveTimeout`,
64
+ in milliseconds, when overridden by *keep-alive* hints from the server.
65
+ **Default:** `600e3`.
66
+ * `keepAliveTimeoutThreshold` {number|null} A number of milliseconds
67
+ subtracted from server *keep-alive* hints when overriding `keepAliveTimeout`,
68
+ to account for timing inaccuracies caused by e.g. transport latency.
69
+ **Default:** `2e3`.
70
+ * `maxHeaderSize` {number|null} The maximum length of request headers, in
71
+ bytes. **Default:** the value of Node.js' `--max-http-header-size` or
72
+ `16384` (16 KiB).
73
+ * `maxResponseSize` {number|null} The maximum length of a response body, in
74
+ bytes. Set to `-1` to disable it. **Default:** `-1`.
75
+ * `maxRequestsPerClient` {number|null} The maximum number of requests to send
76
+ over a single connection before the socket is reset. Use `0` to disable this
77
+ limit. **Default:** `null`.
78
+ * `localAddress` {string|null} The local IP address the socket should connect
79
+ from. **Default:** `null`.
80
+ * `pipelining` {number|null} The number of concurrent requests sent over the
81
+ single connection, per [RFC 7230, section 6.3.2][]. Only enable values
82
+ greater than `1` when the remote server is trusted. Set to `0` to disable
83
+ keep-alive connections. Has no effect once HTTP/2 is negotiated; see
84
+ `maxConcurrentStreams` for the HTTP/2 dispatch ceiling. **Default:** `1`.
85
+ * `connect` {Object|Function|null} Configures how connections are established.
86
+ Either a `ConnectOptions` object passed to the built-in
87
+ [`buildConnector`][] (every [`tls.connect()`][] option is accepted, plus the
88
+ fields below), or a custom connector function with the signature
89
+ `(options, callback)`. **Default:** `null`.
90
+ * `socketPath` {string|null} An IPC endpoint, either a Unix domain socket or
91
+ a Windows named pipe. **Default:** `null`.
92
+ * `maxCachedSessions` {number|null} The maximum number of cached TLS
93
+ sessions. Use `0` to disable TLS session caching. **Default:** `100`.
94
+ * `timeout` {number|null} The connection timeout, in milliseconds.
95
+ **Default:** `10e3`.
96
+ * `servername` {string|null} The TLS server name used for SNI.
97
+ * `keepAlive` {boolean|null} Whether TCP keep-alive is enabled on the socket.
98
+ **Default:** `true`.
99
+ * `keepAliveInitialDelay` {number|null} The TCP keep-alive interval for the
100
+ socket, in milliseconds. **Default:** `60000`.
101
+ * `strictContentLength` {boolean} Whether to throw when the request
102
+ `content-length` header does not match the length of the request body.
103
+ Disabling this exposes the application to HTTP request smuggling; only do so
104
+ in controlled environments where the request source is fully trusted.
105
+ **Default:** `true`.
106
+ * `autoSelectFamily` {boolean} Enables a family autodetection algorithm that
107
+ loosely implements section 5 of [RFC 8305][]. Ignored if unsupported by the
108
+ current Node.js version. **Default:** `false`.
109
+ * `autoSelectFamilyAttemptTimeout` {number} The time, in milliseconds, to wait
110
+ for a connection attempt to finish before trying the next address when
111
+ `autoSelectFamily` is enabled. **Default:** `250`.
112
+ * `allowH2` {boolean} Enables HTTP/2 support when the server assigns it a
113
+ higher priority through ALPN negotiation. **Default:** `true`.
114
+ * `useH2c` {boolean} _Deprecated: use h2Options.useH2c instead_ Enforces h2c (HTTP/2 cleartext) for non-HTTPS
115
+ connections. **Default:** `false`.
116
+ * `maxConcurrentStreams` {number} _Deprecated: use h2Options.useH2c instead_ The maximum number of concurrent HTTP/2
117
+ streams for a single session. Once h2 is negotiated this — not `pipelining`,
118
+ which is HTTP/1.1 only — is the ceiling used to dispatch in-flight requests.
119
+ It may be overridden by the server's `SETTINGS_MAX_CONCURRENT_STREAMS`
120
+ frame. **Default:** `100`.
121
+ * `connectionWindowSize` {number} _Deprecated: use h2Options.connectionWindowSize instead_ The HTTP/2 connection-level flow-control
122
+ window size set via `ClientHttp2Session.setLocalWindowSize()`. Must be a
123
+ positive integer. **Default:** `524288`.
124
+ * `pingInterval` {number} _Deprecated: use h2Options.pingInterval instead_ The time interval, in milliseconds, between HTTP/2
125
+ PING frames. Set to `0` to disable PING frames. Applies only to HTTP/2
126
+ connections and emits a `ping` event on the client. **Default:** `60e3`.
127
+ * `h2Options` {object} Set of options for HTTP/2 sessions
128
+ * `useH2c` {boolean} Enforces h2c (HTTP/2 cleartext) for non-HTTPS
129
+ connections. **Default:** `false`.
130
+ * `maxConcurrentStreams` {number} The maximum number of concurrent HTTP/2
131
+ streams for a single session. Once h2 is negotiated this — not `pipelining`,
132
+ which is HTTP/1.1 only — is the ceiling used to dispatch in-flight requests.
133
+ It may be overridden by the server's `SETTINGS_MAX_CONCURRENT_STREAMS`
134
+ frame. **Default:** `100`.
135
+ * `connectionWindowSize` {number} The HTTP/2 connection-level flow-control
136
+ window size set via `ClientHttp2Session.setLocalWindowSize()`. Must be a
137
+ positive integer. **Default:** `524288`.
138
+ * `pingInterval` {number} The time interval, in milliseconds, between HTTP/2
139
+ PING frames. Set to `0` to disable PING frames. Applies only to HTTP/2
140
+ connections and emits a `ping` event on the client. **Default:** `60e3`.
141
+ * `settings` {object} `SETTINGS` frame options. For full reference, take a
142
+ look to [HTTP/2#Settings Object](https://nodejs.org/api/http2.html#settings-object)
143
+ * `webSocket` {Object} (optional) WebSocket-specific configuration.
144
+ * `maxFragments` {number} The maximum number of fragments in a message. Set
145
+ to `0` to disable the limit. **Default:** `131072`.
146
+ * `maxPayloadSize` {number} The maximum allowed payload size, in bytes, for
147
+ WebSocket messages. Applied to uncompressed messages, compressed frame
148
+ payloads, and decompressed (`permessage-deflate`) messages. Set to `0` to
149
+ disable the limit. **Default:** `134217728`.
150
+ * `eventSource` {Object} (optional) EventSource-specific configuration.
151
+ * `maxEventSize` {number} The maximum allowed event size, in bytes, for
152
+ EventSource messages. Set to `0` to disable the limit.
153
+ **Default:** `buffer.kStringMaxLength`.
154
+ * Returns: {Client}
155
+
156
+ Instantiating a `Client` does not open a connection; the connection is
157
+ established lazily once a request is queued. Call `client.connect()` to connect
158
+ eagerly.
159
+
160
+ > Notes about HTTP/2:
161
+ >
162
+ > * Pseudo headers (`:path`, `:method`, `:scheme`, `:authority`) are attached
163
+ > automatically and overwrite any user-provided values.
164
+ > * The server must support HTTP/2 and select it during ALPN negotiation, and
165
+ > must not give HTTP/1.1 a higher priority than HTTP/2.
166
+ > * `PUSH` frames are not supported.
167
+
168
+ ```mjs displayName="Basic instantiation"
169
+ import { Client } from 'undici'
170
+
171
+ const client = new Client('http://localhost:3000')
172
+ ```
173
+
174
+ ```mjs displayName="TLS options (object connector)"
175
+ import { Client } from 'undici'
176
+ import { readFileSync } from 'node:fs'
177
+
178
+ const client = new Client('https://localhost:3000', {
179
+ connect: {
180
+ rejectUnauthorized: false,
181
+ ca: readFileSync('./ca-cert.pem')
182
+ }
183
+ })
74
184
  ```
75
185
 
76
- ### Example - Custom connector
186
+ ```mjs displayName="Unix domain socket"
187
+ import { Client } from 'undici'
77
188
 
78
- This will allow you to perform some additional check on the socket that will be used for the next request.
189
+ const client = new Client('http://localhost:3000', {
190
+ connect: {
191
+ socketPath: '/var/run/docker.sock'
192
+ }
193
+ })
194
+ ```
195
+
196
+ ```mjs displayName="Custom DNS lookup"
197
+ import { Client } from 'undici'
198
+ import dns from 'node:dns'
79
199
 
80
- ```js
81
- 'use strict'
200
+ const client = new Client('https://example.com', {
201
+ connect: {
202
+ lookup (hostname, options, callback) {
203
+ dns.lookup(hostname, { ...options, family: 4 }, callback)
204
+ }
205
+ }
206
+ })
207
+ ```
208
+
209
+ ```mjs displayName="Custom connector (function)"
82
210
  import { Client, buildConnector } from 'undici'
83
211
 
84
212
  const connector = buildConnector({ rejectUnauthorized: false })
@@ -87,9 +215,6 @@ const client = new Client('https://localhost:3000', {
87
215
  connector(opts, (err, socket) => {
88
216
  if (err) {
89
217
  cb(err)
90
- } else if (/* assertion */) {
91
- socket.destroy()
92
- cb(new Error('kaboom'))
93
218
  } else {
94
219
  cb(null, socket)
95
220
  }
@@ -98,81 +223,180 @@ const client = new Client('https://localhost:3000', {
98
223
  })
99
224
  ```
100
225
 
101
- ## Instance Methods
226
+ When a connector function is provided, undici wraps it to automatically inject
227
+ `socketPath` and `allowH2` into the `options` argument when those values are set
228
+ on the client. See [`Connector`][] for details on building custom connectors.
229
+
230
+ ### `client.close([callback])`
231
+
232
+ <!-- YAML
233
+ added: v1.0.0
234
+ -->
235
+
236
+ Implements [`dispatcher.close([callback])`][]. Closes the client gracefully,
237
+ waiting for enqueued requests to complete before resolving.
238
+
239
+ ### `client.destroy([error[, callback]])`
240
+
241
+ <!-- YAML
242
+ added: v1.0.0
243
+ -->
102
244
 
103
- ### `Client.close([callback])`
245
+ Implements [`dispatcher.destroy([error[, callback]])`][]. Destroys the client
246
+ abruptly, aborting all pending and running requests, and waits until the socket
247
+ is closed before invoking `callback` (or resolving the returned promise).
104
248
 
105
- Implements [`Dispatcher.close([callback])`](/docs/docs/api/Dispatcher.md#dispatcherclosecallback-promise).
249
+ ### `client.connect(options[, callback])`
106
250
 
107
- ### `Client.destroy([error, callback])`
251
+ <!-- YAML
252
+ added: v1.0.0
253
+ -->
108
254
 
109
- Implements [`Dispatcher.destroy([error, callback])`](/docs/docs/api/Dispatcher.md#dispatcherdestroyerror-callback-promise).
255
+ * `options` {Object} The connect options, identical to
256
+ [`dispatcher.connect()`][] except that `origin` is omitted because the client
257
+ is bound to a single origin.
258
+ * `callback` {Function} (optional)
259
+ * Returns: {Promise|void} A promise when `callback` is not provided.
110
260
 
111
- Waits until socket is closed before invoking the callback (or returning a promise if no callback is provided).
261
+ Starts a connection to the client's origin and tunnels a connection through it,
262
+ as defined by [`dispatcher.connect()`][].
112
263
 
113
- ### `Client.connect(options[, callback])`
264
+ ### `client.dispatch(options, handlers)`
114
265
 
115
- See [`Dispatcher.connect(options[, callback])`](/docs/docs/api/Dispatcher.md#dispatcherconnectoptions-callback).
266
+ <!-- YAML
267
+ added: v1.0.0
268
+ -->
116
269
 
117
- ### `Client.dispatch(options, handlers)`
270
+ Implements [`dispatcher.dispatch(options, handler)`][]. This is the lowest-level
271
+ API used by all other request methods; prefer `client.request()` for most use
272
+ cases.
118
273
 
119
- Implements [`Dispatcher.dispatch(options, handlers)`](/docs/docs/api/Dispatcher.md#dispatcherdispatchoptions-handler).
274
+ ### `client.pipeline(options, handler)`
120
275
 
121
- ### `Client.pipeline(options, handler)`
276
+ <!-- YAML
277
+ added: v1.0.0
278
+ -->
122
279
 
123
- See [`Dispatcher.pipeline(options, handler)`](/docs/docs/api/Dispatcher.md#dispatcherpipelineoptions-handler).
280
+ See [`dispatcher.pipeline(options, handler)`][]. Sends a request and returns a
281
+ {Duplex} stream that the request body is written to and the response body is
282
+ read from.
124
283
 
125
- ### `Client.request(options[, callback])`
284
+ ### `client.request(options[, callback])`
126
285
 
127
- See [`Dispatcher.request(options [, callback])`](/docs/docs/api/Dispatcher.md#dispatcherrequestoptions-callback).
286
+ <!-- YAML
287
+ added: v1.0.0
288
+ -->
128
289
 
129
- ### `Client.stream(options, factory[, callback])`
290
+ * `options` {Object}
291
+ * `callback` {Function} (optional)
292
+ * Returns: {Promise|void} A promise resolving to the response data when
293
+ `callback` is not provided.
130
294
 
131
- See [`Dispatcher.stream(options, factory[, callback])`](/docs/docs/api/Dispatcher.md#dispatcherstreamoptions-factory-callback).
295
+ See [`dispatcher.request(options[, callback])`][]. Performs an HTTP request and
296
+ returns its status code, headers, trailers, and a readable body stream.
132
297
 
133
- ### `Client.upgrade(options[, callback])`
298
+ ```mjs
299
+ import { Client } from 'undici'
300
+
301
+ const client = new Client('http://localhost:3000')
302
+ const { statusCode, headers, body } = await client.request({
303
+ path: '/',
304
+ method: 'GET'
305
+ })
306
+
307
+ console.log(statusCode)
308
+ for await (const chunk of body) {
309
+ console.log(chunk.toString())
310
+ }
311
+ ```
312
+
313
+ ### `client.stream(options, factory[, callback])`
314
+
315
+ <!-- YAML
316
+ added: v1.0.0
317
+ -->
134
318
 
135
- See [`Dispatcher.upgrade(options[, callback])`](/docs/docs/api/Dispatcher.md#dispatcherupgradeoptions-callback).
319
+ * `options` {Object}
320
+ * `factory` {Function} Returns a {Writable} the response body is piped into.
321
+ * `callback` {Function} (optional)
322
+ * Returns: {Promise|void} A promise when `callback` is not provided.
136
323
 
137
- ## Instance Properties
324
+ See [`dispatcher.stream(options, factory[, callback])`][]. A faster alternative
325
+ to `client.request()` when the destination of the response body is known in
326
+ advance.
138
327
 
139
- ### `Client.closed`
328
+ ### `client.upgrade(options[, callback])`
140
329
 
141
- * `boolean`
330
+ <!-- YAML
331
+ added: v1.0.0
332
+ -->
333
+
334
+ * `options` {Object}
335
+ * `callback` {Function} (optional)
336
+ * Returns: {Promise|void} A promise when `callback` is not provided.
337
+
338
+ See [`dispatcher.upgrade(options[, callback])`][]. Upgrades a connection to a
339
+ different protocol, such as for WebSocket or HTTP `CONNECT`.
340
+
341
+ ### `client.closed`
342
+
343
+ <!-- YAML
344
+ added: v1.0.0
345
+ -->
346
+
347
+ * Type: {boolean}
142
348
 
143
349
  `true` after `client.close()` has been called.
144
350
 
145
- ### `Client.destroyed`
351
+ ### `client.destroyed`
146
352
 
147
- * `boolean`
353
+ <!-- YAML
354
+ added: v1.0.0
355
+ -->
148
356
 
149
- `true` after `client.destroyed()` has been called or `client.close()` has been called and the client shutdown has completed.
357
+ * Type: {boolean}
150
358
 
151
- ### `Client.pipelining`
359
+ `true` after `client.destroy()` has been called, or after `client.close()` has
360
+ been called and the client shutdown has completed.
152
361
 
153
- * `number`
362
+ ### `client.pipelining`
154
363
 
155
- Property to get and set the pipelining factor.
364
+ <!-- YAML
365
+ added: v1.0.0
366
+ -->
156
367
 
157
- ## Instance Events
368
+ * Type: {number}
158
369
 
159
- ### Event: `'connect'`
370
+ The pipelining factor. This property can be read and written to adjust the
371
+ number of concurrent requests sent over the connection. Only enable pipelining
372
+ with trusted remote servers.
373
+
374
+ ### `client.stats`
375
+
376
+ <!-- YAML
377
+ added: v7.9.0
378
+ -->
160
379
 
161
- See [Dispatcher Event: `'connect'`](/docs/docs/api/Dispatcher.md#event-connect).
380
+ * Type: {ClientStats}
162
381
 
163
- Parameters:
382
+ Aggregate statistics for the client. See [`ClientStats`][].
164
383
 
165
- * **origin** `URL`
166
- * **targets** `Array<Dispatcher>`
384
+ ### Event: `'connect'`
385
+
386
+ <!-- YAML
387
+ added: v1.0.0
388
+ -->
167
389
 
168
- Emitted when a socket has been created and connected. The client will connect once `client.size > 0`.
390
+ * `origin` {URL}
391
+ * `targets` {Array<Dispatcher>}
169
392
 
170
- #### Example - Client connect event
393
+ Emitted when a socket has been created and connected. The client connects once
394
+ `client.size > 0`. See [`Dispatcher` Event: `'connect'`][].
171
395
 
172
- ```js
173
- import { createServer } from 'http'
396
+ ```mjs
397
+ import { createServer } from 'node:http'
174
398
  import { Client } from 'undici'
175
- import { once } from 'events'
399
+ import { once } from 'node:events'
176
400
 
177
401
  const server = createServer((request, response) => {
178
402
  response.end('Hello, World!')
@@ -183,43 +407,40 @@ await once(server, 'listening')
183
407
  const client = new Client(`http://localhost:${server.address().port}`)
184
408
 
185
409
  client.on('connect', (origin) => {
186
- console.log(`Connected to ${origin}`) // should print before the request body statement
410
+ console.log(`Connected to ${origin}`)
187
411
  })
188
412
 
189
- try {
190
- const { body } = await client.request({
191
- path: '/',
192
- method: 'GET'
193
- })
194
- body.setEncoding('utf-8')
195
- body.on('data', console.log)
196
- client.close()
197
- server.close()
198
- } catch (error) {
199
- console.error(error)
200
- client.close()
201
- server.close()
202
- }
413
+ const { body } = await client.request({ path: '/', method: 'GET' })
414
+ body.setEncoding('utf8')
415
+ body.on('data', console.log)
416
+
417
+ client.close()
418
+ server.close()
203
419
  ```
204
420
 
205
421
  ### Event: `'disconnect'`
206
422
 
207
- See [Dispatcher Event: `'disconnect'`](/docs/docs/api/Dispatcher.md#event-disconnect).
208
-
209
- Parameters:
210
-
211
- * **origin** `URL`
212
- * **targets** `Array<Dispatcher>`
213
- * **error** `Error`
214
-
215
- Emitted when socket has disconnected. The error argument of the event is the error which caused the socket to disconnect. The client will reconnect if or once `client.size > 0`.
216
-
217
- #### Example - Client disconnect event
218
-
219
- ```js
220
- import { createServer } from 'http'
423
+ <!-- YAML
424
+ added: v1.0.0
425
+ changes:
426
+ - version: v4.0.0
427
+ pr-url: https://github.com/nodejs/undici/pull/771
428
+ description: The event is only emitted if the client had previously
429
+ connected.
430
+ -->
431
+
432
+ * `origin` {URL}
433
+ * `targets` {Array<Dispatcher>}
434
+ * `error` {Error}
435
+
436
+ Emitted when a socket has disconnected. The `error` argument is the error that
437
+ caused the disconnection. The client reconnects if or once `client.size > 0`.
438
+ See [`Dispatcher` Event: `'disconnect'`][].
439
+
440
+ ```mjs
441
+ import { createServer } from 'node:http'
221
442
  import { Client } from 'undici'
222
- import { once } from 'events'
443
+ import { once } from 'node:events'
223
444
 
224
445
  const server = createServer((request, response) => {
225
446
  response.destroy()
@@ -234,12 +455,10 @@ client.on('disconnect', (origin) => {
234
455
  })
235
456
 
236
457
  try {
237
- await client.request({
238
- path: '/',
239
- method: 'GET'
240
- })
458
+ await client.request({ path: '/', method: 'GET' })
241
459
  } catch (error) {
242
460
  console.error(error.message)
461
+ } finally {
243
462
  client.close()
244
463
  server.close()
245
464
  }
@@ -247,16 +466,19 @@ try {
247
466
 
248
467
  ### Event: `'drain'`
249
468
 
250
- Emitted when pipeline is no longer busy.
469
+ <!-- YAML
470
+ added: v1.0.0
471
+ -->
251
472
 
252
- See [Dispatcher Event: `'drain'`](/docs/docs/api/Dispatcher.md#event-drain).
473
+ * `origin` {URL}
253
474
 
254
- #### Example - Client drain event
475
+ Emitted when the pipeline is no longer busy. See
476
+ [`Dispatcher` Event: `'drain'`][].
255
477
 
256
- ```js
257
- import { createServer } from 'http'
478
+ ```mjs
479
+ import { createServer } from 'node:http'
258
480
  import { Client } from 'undici'
259
- import { once } from 'events'
481
+ import { once } from 'node:events'
260
482
 
261
483
  const server = createServer((request, response) => {
262
484
  response.end('Hello, World!')
@@ -272,17 +494,40 @@ client.on('drain', () => {
272
494
  server.close()
273
495
  })
274
496
 
275
- const requests = [
497
+ await Promise.all([
276
498
  client.request({ path: '/', method: 'GET' }),
277
499
  client.request({ path: '/', method: 'GET' }),
278
500
  client.request({ path: '/', method: 'GET' })
279
- ]
280
-
281
- await Promise.all(requests)
282
-
283
- console.log('requests completed')
501
+ ])
284
502
  ```
285
503
 
286
504
  ### Event: `'error'`
287
505
 
288
- Invoked for users errors such as throwing in the `onError` handler.
506
+ <!-- YAML
507
+ added: v1.0.0
508
+ -->
509
+
510
+ * `error` {Error}
511
+
512
+ Emitted for user errors, such as throwing inside an `onResponseError` handler.
513
+
514
+ [RFC 7230, section 6.3.2]: https://tools.ietf.org/html/rfc7230#section-6.3.2
515
+ [RFC 8305]: https://tools.ietf.org/html/rfc8305#section-5
516
+ [`Agent`]: Agent.md#class-agent
517
+ [`ClientStats`]: ClientStats.md
518
+ [`Connector`]: Connector.md
519
+ [`Dispatcher` Event: `'connect'`]: Dispatcher.md#event-connect
520
+ [`Dispatcher` Event: `'disconnect'`]: Dispatcher.md#event-disconnect
521
+ [`Dispatcher` Event: `'drain'`]: Dispatcher.md#event-drain
522
+ [`Dispatcher`]: Dispatcher.md#class-dispatcher
523
+ [`Pool`]: Pool.md#class-pool
524
+ [`buildConnector`]: Connector.md
525
+ [`dispatcher.close([callback])`]: Dispatcher.md#dispatcherclosecallback
526
+ [`dispatcher.connect()`]: Dispatcher.md#dispatcherconnectoptions-callback
527
+ [`dispatcher.destroy([error[, callback]])`]: Dispatcher.md#dispatcherdestroyerror-callback
528
+ [`dispatcher.dispatch(options, handler)`]: Dispatcher.md#dispatcherdispatchoptions-handler
529
+ [`dispatcher.pipeline(options, handler)`]: Dispatcher.md#dispatcherpipelineoptions-handler
530
+ [`dispatcher.request(options[, callback])`]: Dispatcher.md#dispatcherrequestoptions-callback
531
+ [`dispatcher.stream(options, factory[, callback])`]: Dispatcher.md#dispatcherstreamoptions-factory-callback
532
+ [`dispatcher.upgrade(options[, callback])`]: Dispatcher.md#dispatcherupgradeoptions-callback
533
+ [`tls.connect()`]: https://nodejs.org/api/tls.html#tlsconnectoptions-callback