@openclaw/slack 2026.9.6 → 2026.9.8

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
@@ -0,0 +1,418 @@
1
+ # Interceptors
2
+
3
+ Undici ships with a set of built-in interceptors that can be composed via
4
+ `dispatcher.compose()` to add cross-cutting behaviour such as automatic
5
+ retries, response decompression, redirect following, DNS caching, and more.
6
+
7
+ ## Usage
8
+
9
+ ```js
10
+ import { Agent, interceptors } from 'undici'
11
+
12
+ const { retry, redirect, decompress, dump, responseError, dns, cache, deduplicate } = interceptors
13
+
14
+ const agent = new Agent().compose([
15
+ retry({ maxRetries: 3 }),
16
+ redirect({ maxRedirections: 5 }),
17
+ decompress()
18
+ ])
19
+
20
+ const response = await agent.request({ origin: 'https://example.com', path: '/', method: 'GET' })
21
+ ```
22
+
23
+ You can also apply interceptors to a single `Client` or `Pool`:
24
+
25
+ ```js
26
+ import { Client, interceptors } from 'undici'
27
+
28
+ const client = new Client('https://example.com').compose(
29
+ interceptors.retry({ maxRetries: 2 })
30
+ )
31
+ ```
32
+
33
+ ---
34
+
35
+ ## Custom interceptors
36
+
37
+ Custom interceptors use the same shape as
38
+ [`dispatcher.compose()`](./Dispatcher.md#dispatchercomposeinterceptors-interceptor):
39
+ an interceptor takes a `dispatch` function and returns another dispatch-like
40
+ function with the same `(options, handler)` signature.
41
+
42
+ When an interceptor wraps the handler, forward the callbacks that it does not
43
+ handle itself. The complete handler callback list is documented under
44
+ [`dispatcher.dispatch(options, handler)`](./Dispatcher.md#dispatcherdispatchoptions-handler).
45
+
46
+ ```js
47
+ import { Agent } from 'undici'
48
+
49
+ const timingInterceptor = dispatch => {
50
+ return (options, handler) => {
51
+ const started = performance.now()
52
+
53
+ return dispatch(options, {
54
+ ...handler,
55
+ onResponseStart (controller, statusCode, headers, statusMessage) {
56
+ const duration = Math.round(performance.now() - started)
57
+ const method = options.method ?? 'GET'
58
+ const origin = options.origin ?? ''
59
+
60
+ console.log(`${method} ${origin}${options.path} -> ${statusCode} in ${duration}ms`)
61
+
62
+ return handler.onResponseStart?.(
63
+ controller,
64
+ statusCode,
65
+ headers,
66
+ statusMessage
67
+ )
68
+ },
69
+ onResponseError (controller, error) {
70
+ const duration = Math.round(performance.now() - started)
71
+
72
+ console.error(`request failed after ${duration}ms`, error)
73
+
74
+ return handler.onResponseError?.(controller, error)
75
+ }
76
+ })
77
+ }
78
+ }
79
+
80
+ const dispatcher = new Agent().compose(timingInterceptor)
81
+
82
+ const { body } = await dispatcher.request({
83
+ origin: 'https://example.com',
84
+ path: '/',
85
+ method: 'GET'
86
+ })
87
+
88
+ await body.dump()
89
+ await dispatcher.close()
90
+ ```
91
+
92
+ ---
93
+
94
+ ## `interceptors.dump([opts])`
95
+
96
+ Reads and discards the response body up to a configurable size limit. Useful
97
+ for keeping a connection alive after an error response without reading the
98
+ body yourself.
99
+
100
+ **Parameters**
101
+
102
+ * `opts` {Object} (optional)
103
+ * `maxSize` {number} Maximum number of bytes to read and discard. Responses
104
+ whose declared or received body size exceeds this value are aborted.
105
+ **Default:** `1_048_576` (1 MiB).
106
+
107
+ Per-request override: set `dumpMaxSize` on the dispatch options to override
108
+ the global `maxSize` for a specific request.
109
+
110
+ **Returns:** {Dispatcher.DispatcherComposeInterceptor}
111
+
112
+ **Example**
113
+
114
+ ```js
115
+ import { Agent, interceptors } from 'undici'
116
+
117
+ const agent = new Agent().compose(
118
+ interceptors.dump({ maxSize: 128 * 1024 }) // discard up to 128 KiB
119
+ )
120
+ ```
121
+
122
+ ---
123
+
124
+ ## `interceptors.retry([opts])`
125
+
126
+ Automatically retries failed requests using the same options accepted by
127
+ [`RetryHandler`](./RetryHandler.md).
128
+
129
+ **Parameters**
130
+
131
+ * `opts` {RetryHandler.RetryOptions} (optional) Global retry options applied
132
+ to every request. Individual requests can override via `opts.retryOptions`.
133
+ See [`RetryOptions`](./RetryHandler.md#retryoptions) for the full list of
134
+ accepted fields.
135
+
136
+ **Returns:** {Dispatcher.DispatcherComposeInterceptor}
137
+
138
+ **Example**
139
+
140
+ ```js
141
+ import { Agent, interceptors } from 'undici'
142
+
143
+ const agent = new Agent().compose(
144
+ interceptors.retry({
145
+ maxRetries: 5,
146
+ minTimeout: 200,
147
+ maxTimeout: 5000,
148
+ timeoutFactor: 2,
149
+ statusCodes: [429, 502, 503, 504]
150
+ })
151
+ )
152
+ ```
153
+
154
+ ---
155
+
156
+ ## `interceptors.redirect([opts])`
157
+
158
+ Follows HTTP redirects (3xx responses) automatically.
159
+
160
+ **Parameters**
161
+
162
+ * `opts` {Object} (optional)
163
+ * `maxRedirections` {number} Maximum number of redirects to follow. Passing
164
+ `0` disables redirect following entirely. **Default:** `undefined`
165
+ (inherits from the per-request `maxRedirections` option).
166
+ * `throwOnMaxRedirect` {boolean} When `true`, throws an error once the
167
+ redirect limit is reached instead of returning the final redirect response.
168
+ **Default:** `false`.
169
+ * `stripHeadersOnRedirect` {string[]} List of header names to remove from
170
+ the request when following any redirect. **Default:** `[]`.
171
+ * `stripHeadersOnCrossOriginRedirect` {string[]} List of header names to
172
+ remove from the request when following a cross-origin redirect (i.e. the
173
+ redirect target has a different origin). Useful for stripping
174
+ `Authorization` on cross-origin hops. **Default:** `[]`.
175
+
176
+ Per-request override: any of the four options above can also be set directly
177
+ on the dispatch options to override the interceptor defaults for a specific
178
+ request.
179
+
180
+ **Returns:** {Dispatcher.DispatcherComposeInterceptor}
181
+
182
+ **Example**
183
+
184
+ ```js
185
+ import { Agent, interceptors } from 'undici'
186
+
187
+ const agent = new Agent().compose(
188
+ interceptors.redirect({
189
+ maxRedirections: 10,
190
+ throwOnMaxRedirect: true,
191
+ stripHeadersOnCrossOriginRedirect: ['authorization', 'cookie']
192
+ })
193
+ )
194
+ ```
195
+
196
+ ---
197
+
198
+ ## `interceptors.decompress([opts])`
199
+
200
+ Automatically decompresses response bodies encoded with `gzip`, `x-gzip`,
201
+ `br` (Brotli), `deflate`, `compress`, `x-compress`, or `zstd`.
202
+
203
+ > **Experimental:** This interceptor is experimental and subject to change.
204
+ > A one-time `ExperimentalWarning` is emitted on first use.
205
+
206
+ **Parameters**
207
+
208
+ * `opts` {Object} (optional)
209
+ * `skipStatusCodes` {number[]} Status codes for which decompression is
210
+ skipped. **Default:** `[204, 304]`.
211
+ * `skipErrorResponses` {boolean} When `true`, responses with a status code
212
+ >= 400 are not decompressed. **Default:** `true`.
213
+ * `maxSize` {number} Maximum decompressed response size in bytes. The request
214
+ fails with a `ResponseExceededMaxSizeError` if the decoded body exceeds
215
+ this limit. **Default:** `67108864` (64 MiB).
216
+
217
+ **Returns:** {Dispatcher.DispatcherComposeInterceptor}
218
+
219
+ **Example**
220
+
221
+ ```js
222
+ import { Agent, interceptors } from 'undici'
223
+
224
+ const agent = new Agent().compose(
225
+ interceptors.decompress({
226
+ skipStatusCodes: [204, 304],
227
+ skipErrorResponses: false, // decompress error bodies too
228
+ maxSize: 16 * 1024 * 1024 // limit decoded bodies to 16 MiB
229
+ })
230
+ )
231
+ ```
232
+
233
+ ---
234
+
235
+ ## `interceptors.responseError([opts])`
236
+
237
+ Converts 4xx/5xx responses into thrown `ResponseError` instances, making it
238
+ easy to handle HTTP errors with a standard `try/catch` block.
239
+
240
+ The error body is automatically decoded for `application/json` and
241
+ `text/plain` responses. For JSON responses the body is parsed and exposed as
242
+ `error.body`.
243
+
244
+ **Parameters**
245
+
246
+ * `opts` {Object} (optional) — currently reserved for future use; may be
247
+ omitted.
248
+
249
+ **Returns:** {Dispatcher.DispatcherComposeInterceptor}
250
+
251
+ **Example**
252
+
253
+ ```js
254
+ import { Agent, interceptors, errors } from 'undici'
255
+
256
+ const agent = new Agent().compose(interceptors.responseError())
257
+
258
+ try {
259
+ await agent.request({ origin: 'https://example.com', path: '/not-found', method: 'GET' })
260
+ } catch (err) {
261
+ if (err instanceof errors.ResponseError) {
262
+ console.error(err.status, err.body)
263
+ }
264
+ }
265
+ ```
266
+
267
+ ---
268
+
269
+ ## `interceptors.dns([opts])`
270
+
271
+ Caches DNS lookups so that repeated requests to the same origin reuse the
272
+ resolved IP address instead of performing a fresh lookup every time. Supports
273
+ dual-stack (IPv4 + IPv6) and custom lookup/storage implementations.
274
+
275
+ **Parameters**
276
+
277
+ * `opts` {Object} (optional)
278
+ * `maxTTL` {number} Maximum number of milliseconds a DNS record is cached,
279
+ regardless of the TTL returned by the resolver. **Default:** `0`
280
+ (use the TTL from the DNS record).
281
+ * `maxItems` {number} Maximum number of origins to cache simultaneously.
282
+ Oldest entries are evicted when the limit is reached. **Default:**
283
+ `Infinity`.
284
+ * `dualStack` {boolean} When `true`, both IPv4 (`A`) and IPv6 (`AAAA`)
285
+ records are looked up and the interceptor picks between them based on
286
+ `affinity`. **Default:** `true`.
287
+ * `affinity` {4 | 6 | null} Preferred IP family when `dualStack` is
288
+ enabled. `null` lets the interceptor alternate between families.
289
+ **Default:** `null`.
290
+ * `lookup` {Function} (optional) Custom DNS resolution function with the
291
+ same signature as `node:dns`'s `lookup` callback form:
292
+ `(origin, options, callback) => void`.
293
+ * `pick` {Function} (optional) Custom record-selection function called with
294
+ `(origin, records, affinity)` to choose which resolved address to use.
295
+ * `storage` {DNSStorage} (optional) Custom storage backend. Must implement
296
+ `get`, `set`, `delete`, `full`, and `size`.
297
+
298
+ **`DNSStorage` interface**
299
+
300
+ ```ts
301
+ interface DNSStorage {
302
+ size: number
303
+ get(origin: string): DNSInterceptorOriginRecords | null
304
+ set(origin: string, records: DNSInterceptorOriginRecords | null, options: { ttl: number }): void
305
+ delete(origin: string): void
306
+ full(): boolean
307
+ }
308
+ ```
309
+
310
+ **Returns:** {Dispatcher.DispatcherComposeInterceptor}
311
+
312
+ **Example**
313
+
314
+ ```js
315
+ import { Agent, interceptors } from 'undici'
316
+
317
+ const agent = new Agent().compose(
318
+ interceptors.dns({
319
+ maxTTL: 60_000, // cache for at most 60 seconds
320
+ dualStack: true,
321
+ affinity: 4 // prefer IPv4
322
+ })
323
+ )
324
+ ```
325
+
326
+ ---
327
+
328
+ ## `interceptors.cache([opts])`
329
+
330
+ Caches HTTP responses according to RFC 9111 (HTTP Caching). See
331
+ [`CacheStore`](./CacheStore.md) for information on providing a custom
332
+ backing store.
333
+
334
+ **Parameters**
335
+
336
+ * `opts` {CacheHandler.CacheOptions} (optional) See the
337
+ [`CacheStore`](./CacheStore.md) documentation for accepted fields.
338
+
339
+ **Returns:** {Dispatcher.DispatcherComposeInterceptor}
340
+
341
+ **Example**
342
+
343
+ ```js
344
+ import { Agent, interceptors, cacheStores } from 'undici'
345
+
346
+ const agent = new Agent().compose(
347
+ interceptors.cache({ store: new cacheStores.MemoryCacheStore() })
348
+ )
349
+ ```
350
+
351
+ ---
352
+
353
+ ## `interceptors.deduplicate([opts])`
354
+
355
+ Deduplicates concurrent identical requests so that only one is sent over the
356
+ wire. All waiting callers receive the same response once the in-flight request
357
+ completes. Only safe HTTP methods (e.g. `GET`, `HEAD`) may be deduplicated.
358
+
359
+ **Parameters**
360
+
361
+ * `opts` {Object} (optional)
362
+ * `methods` {string[]} HTTP methods to deduplicate. Must be safe HTTP
363
+ methods (`GET`, `HEAD`, `OPTIONS`, `TRACE`). **Default:** `['GET']`.
364
+ * `skipHeaderNames` {string[]} Header names whose presence in a request
365
+ causes it to bypass deduplication entirely. Matching is
366
+ case-insensitive. **Default:** `[]`.
367
+ * `excludeHeaderNames` {string[]} Header names to exclude from the
368
+ deduplication key. Requests that differ only in these headers are still
369
+ deduplicated together. Useful for headers like `x-request-id` that vary
370
+ per request but should not prevent deduplication. Matching is
371
+ case-insensitive. **Default:** `[]`.
372
+ * `maxBufferSize` {number} Maximum number of bytes buffered per paused
373
+ waiting handler. If a waiting handler exceeds this threshold it is failed
374
+ with an `AbortError` to prevent unbounded memory growth. **Default:**
375
+ `5_242_880` (5 MiB).
376
+
377
+ **Returns:** {Dispatcher.DispatcherComposeInterceptor}
378
+
379
+ **Example**
380
+
381
+ ```js
382
+ import { Agent, interceptors } from 'undici'
383
+
384
+ const agent = new Agent().compose(
385
+ interceptors.deduplicate({
386
+ methods: ['GET', 'HEAD'],
387
+ excludeHeaderNames: ['x-request-id', 'x-trace-id'],
388
+ maxBufferSize: 2 * 1024 * 1024
389
+ })
390
+ )
391
+ ```
392
+
393
+ ---
394
+
395
+ ## Composing multiple interceptors
396
+
397
+ Interceptors are applied in the order they appear in the `compose()` call.
398
+ The first interceptor in the array wraps the outermost layer.
399
+
400
+ ```js
401
+ import { Agent, interceptors } from 'undici'
402
+
403
+ const agent = new Agent().compose([
404
+ interceptors.dns({ maxTTL: 30_000 }),
405
+ interceptors.retry({ maxRetries: 3 }),
406
+ interceptors.redirect({ maxRedirections: 5 }),
407
+ interceptors.decompress(),
408
+ interceptors.responseError()
409
+ ])
410
+ ```
411
+
412
+ In the example above the request flow is:
413
+
414
+ 1. **dns** — resolves and caches the target IP
415
+ 2. **retry** — retries the dispatch on transient failures
416
+ 3. **redirect** — follows any 3xx redirects
417
+ 4. **decompress** — decompresses the response body
418
+ 5. **responseError** — converts 4xx/5xx into thrown errors