@openclaw/slack 2026.9.5 → 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 (648) hide show
  1. package/assets/icon.png +0 -0
  2. package/dist/.setup/{account-inspect-B86OaUEt.mjs → account-inspect-DWBXpER6.mjs} +1 -1
  3. package/dist/.setup/{accounts-C1FspRF-.mjs → accounts-D_N9IqNA.mjs} +33 -10
  4. package/dist/.setup/{action-runtime-Aa-h24Fq.mjs → action-runtime-DfWvuiZd.mjs} +46 -65
  5. package/dist/.setup/action-runtime.runtime-Ck4bAWOX.mjs +2 -0
  6. package/dist/.setup/{actions-BvGUGk3w.mjs → actions-Df0CzcDl.mjs} +148 -204
  7. package/dist/.setup/{approval-handler.runtime-BcZNF-VP.mjs → approval-handler.runtime-Ed6Sw5VK.mjs} +37 -47
  8. package/dist/.setup/{approval-message-updates-Cy1cxfBn.mjs → approval-message-updates-BadvtA7R.mjs} +1 -2
  9. package/dist/.setup/{channel-DrBm0NFw.mjs → channel-C7bgPSTE.mjs} +192 -280
  10. package/dist/.setup/channel-meta-C443t-lI.mjs +27 -0
  11. package/dist/.setup/{channel-type-osC0XOES.mjs → channel-type-ClOttrZ5.mjs} +13 -21
  12. package/dist/.setup/{channel.setup-BSY5hzVz.mjs → channel.setup-Dh2jzAjN.mjs} +35 -42
  13. package/dist/.setup/{config-schema-DrY3S7Ee.mjs → config-schema-BZCxmHKG.mjs} +32 -21
  14. package/dist/.setup/{directory-config-CTs7YyuU.mjs → directory-config-BOUWH3hR.mjs} +7 -10
  15. package/dist/.setup/{directory-live-Btq0063Q.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-DRnDCVdY.mjs → message-tool-api-Cu4lwlGy.mjs} +34 -48
  18. package/dist/.setup/{provider-w36VTgZ3.mjs → monitor-BPVfkumU.mjs} +2191 -2704
  19. package/dist/.setup/{outbound-adapter-K3Ek1iSR.mjs → outbound-adapter-Bv48XUjq.mjs} +10 -21
  20. package/dist/.setup/{pipeline.runtime-BZqGcbfi.mjs → pipeline.runtime-B1H63Frf.mjs} +901 -892
  21. package/dist/.setup/{plugin-routes-C3X0eVaK.mjs → plugin-routes-B8tooDLj.mjs} +1 -1
  22. package/dist/.setup/{policy-Db_QWCZZ.mjs → policy-D-jfM174.mjs} +5 -5
  23. package/dist/.setup/{probe-64C6k3_Q.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-CDqY76Vp.mjs → relay-source-BpKdjsll.mjs} +10 -12
  26. package/dist/.setup/{replies-CWFhjS9S.mjs → replies-BAnUtr2f.mjs} +16 -76
  27. package/dist/.setup/{reply-blocks-9uCeAJts.mjs → reply-blocks-SE1kTE3I.mjs} +27 -154
  28. package/dist/.setup/{resolve-channels-x8fX1SEt.mjs → resolve-channels-XXBn8UU_.mjs} +4 -5
  29. package/dist/.setup/{resolve-users-B8BpBnH2.mjs → resolve-users-DW0ngD03.mjs} +20 -22
  30. package/dist/.setup/{scopes-CJ-6l4v4.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-6GCb3lBP.mjs → send-BOVLQi3n.mjs} +102 -199
  35. package/dist/.setup/{session-status-BhG6pdiH.mjs → session-status-DscajIsd.mjs} +323 -250
  36. package/dist/.setup/{setup-plugin-api-DtCEByQB.mjs → setup-plugin-api-DTtbTKNk.mjs} +1 -1
  37. package/dist/.setup/{setup-surface-DsE0hsYY.mjs → setup-surface-Dn7QgWRE.mjs} +24 -56
  38. package/dist/.setup/{shared-BNmqCPgQ.mjs → shared-qau-uDGl.mjs} +30 -56
  39. package/dist/.setup/{slash-dispatch.runtime-Io4ASZsY.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/web-globals/streams.d.ts +4 -0
  73. package/node_modules/@slack/bolt/node_modules/@types/node/worker_threads.d.ts +4 -1
  74. package/node_modules/@slack/web-api/node_modules/@types/node/README.md +1 -1
  75. package/node_modules/@slack/web-api/node_modules/@types/node/child_process.d.ts +1 -1
  76. package/node_modules/@slack/web-api/node_modules/@types/node/crypto.d.ts +20 -8
  77. package/node_modules/@slack/web-api/node_modules/@types/node/ffi.d.ts +14 -0
  78. package/node_modules/@slack/web-api/node_modules/@types/node/http2.d.ts +3 -2
  79. package/node_modules/@slack/web-api/node_modules/@types/node/net.d.ts +16 -4
  80. package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -2
  81. package/node_modules/@slack/web-api/node_modules/@types/node/process.d.ts +1 -0
  82. package/node_modules/@slack/web-api/node_modules/@types/node/quic.d.ts +39 -1
  83. package/node_modules/@slack/web-api/node_modules/@types/node/stream/iter.d.ts +9 -12
  84. package/node_modules/@slack/web-api/node_modules/@types/node/test/reporters.d.ts +1 -0
  85. package/node_modules/@slack/web-api/node_modules/@types/node/test.d.ts +72 -0
  86. package/node_modules/@slack/web-api/node_modules/@types/node/tls.d.ts +14 -10
  87. package/node_modules/@slack/web-api/node_modules/@types/node/vm.d.ts +2 -1
  88. package/node_modules/@slack/web-api/node_modules/@types/node/web-globals/streams.d.ts +4 -0
  89. package/node_modules/@slack/web-api/node_modules/@types/node/worker_threads.d.ts +4 -1
  90. package/node_modules/get-east-asian-width/index.js +8 -3
  91. package/node_modules/get-east-asian-width/lookup-data.js +1 -1
  92. package/node_modules/get-east-asian-width/lookup.js +4 -4
  93. package/node_modules/get-east-asian-width/package.json +1 -1
  94. package/node_modules/typebox/build/compile/code.mjs +1 -2
  95. package/node_modules/typebox/build/compile/validator.mjs +5 -1
  96. package/node_modules/typebox/build/format/iri.mjs +16 -9
  97. package/node_modules/typebox/build/guard/emit.mjs +2 -2
  98. package/node_modules/typebox/build/guard/guard.d.mts +7 -5
  99. package/node_modules/typebox/build/guard/guard.mjs +14 -9
  100. package/node_modules/typebox/build/guard/index.mjs +6 -0
  101. package/node_modules/typebox/build/guard/unicode/unicode.d.mts +6 -0
  102. package/node_modules/typebox/build/guard/unicode/unicode.mjs +35 -0
  103. package/node_modules/typebox/build/guard/{string.mjs → unicode/unicode_segment.mjs} +16 -19
  104. package/node_modules/typebox/build/schema/build.mjs +2 -3
  105. package/node_modules/typebox/build/schema/engine/_pathing.d.mts +1 -0
  106. package/node_modules/typebox/build/schema/engine/_pathing.mjs +11 -0
  107. package/node_modules/typebox/build/schema/engine/_refine.mjs +13 -5
  108. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +2 -1
  109. package/node_modules/typebox/build/schema/engine/dependencies.mjs +2 -1
  110. package/node_modules/typebox/build/schema/engine/dependentSchemas.mjs +2 -1
  111. package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +1 -1
  112. package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +2 -2
  113. package/node_modules/typebox/build/schema/engine/format.mjs +9 -2
  114. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +3 -2
  115. package/node_modules/typebox/build/schema/engine/properties.mjs +3 -2
  116. package/node_modules/typebox/build/schema/engine/propertyNames.mjs +2 -1
  117. package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +1 -1
  118. package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +2 -2
  119. package/node_modules/typebox/build/schema/engine/ref.d.mts +1 -1
  120. package/node_modules/typebox/build/schema/engine/ref.mjs +2 -2
  121. package/node_modules/typebox/build/schema/engine/schema.mjs +24 -24
  122. package/node_modules/typebox/build/schema/parse.mjs +3 -0
  123. package/node_modules/typebox/build/schema/pointer/pointer.d.mts +1 -6
  124. package/node_modules/typebox/build/schema/pointer/pointer.mjs +47 -64
  125. package/node_modules/typebox/build/system/settings/internal.d.mts +2 -0
  126. package/node_modules/typebox/build/system/settings/internal.mjs +20 -0
  127. package/node_modules/typebox/build/system/settings/settings.d.mts +11 -0
  128. package/node_modules/typebox/build/system/settings/settings.mjs +14 -0
  129. package/node_modules/typebox/build/type/extends/inference.d.mts +1 -1
  130. package/node_modules/typebox/build/type/extends/inference.mjs +15 -2
  131. package/node_modules/typebox/build/type/extends/tuple.d.mts +2 -1
  132. package/node_modules/typebox/build/type/extends/tuple.mjs +21 -1
  133. package/node_modules/typebox/build/value/parse/parse.mjs +10 -4
  134. package/node_modules/typebox/package.json +1 -1
  135. package/node_modules/typebox/readme.md +3 -1
  136. package/node_modules/undici/README.md +81 -25
  137. package/node_modules/undici/docs/docs/api/Agent.md +249 -42
  138. package/node_modules/undici/docs/docs/api/BalancedPool.md +246 -48
  139. package/node_modules/undici/docs/docs/api/CacheStorage.md +171 -13
  140. package/node_modules/undici/docs/docs/api/CacheStore.md +294 -98
  141. package/node_modules/undici/docs/docs/api/Client.md +407 -162
  142. package/node_modules/undici/docs/docs/api/ClientStats.md +80 -14
  143. package/node_modules/undici/docs/docs/api/Connector.md +118 -35
  144. package/node_modules/undici/docs/docs/api/ContentType.md +65 -25
  145. package/node_modules/undici/docs/docs/api/Cookies.md +122 -71
  146. package/node_modules/undici/docs/docs/api/Debug.md +34 -18
  147. package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +364 -164
  148. package/node_modules/undici/docs/docs/api/Dispatcher.md +490 -1055
  149. package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +105 -93
  150. package/node_modules/undici/docs/docs/api/Errors.md +503 -28
  151. package/node_modules/undici/docs/docs/api/EventSource.md +326 -13
  152. package/node_modules/undici/docs/docs/api/Fetch.md +681 -30
  153. package/node_modules/undici/docs/docs/api/GlobalInstallation.md +78 -96
  154. package/node_modules/undici/docs/docs/api/H2CClient.md +298 -176
  155. package/node_modules/undici/docs/docs/api/Interceptors.md +418 -0
  156. package/node_modules/undici/docs/docs/api/MockAgent.md +333 -314
  157. package/node_modules/undici/docs/docs/api/MockCallHistory.md +272 -98
  158. package/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +189 -26
  159. package/node_modules/undici/docs/docs/api/MockClient.md +151 -33
  160. package/node_modules/undici/docs/docs/api/MockErrors.md +56 -5
  161. package/node_modules/undici/docs/docs/api/MockPool.md +321 -258
  162. package/node_modules/undici/docs/docs/api/Pool.md +236 -41
  163. package/node_modules/undici/docs/docs/api/PoolStats.md +119 -13
  164. package/node_modules/undici/docs/docs/api/ProxyAgent.md +179 -160
  165. package/node_modules/undici/docs/docs/api/RedirectHandler.md +238 -55
  166. package/node_modules/undici/docs/docs/api/RetryAgent.md +113 -27
  167. package/node_modules/undici/docs/docs/api/RetryHandler.md +161 -79
  168. package/node_modules/undici/docs/docs/api/RoundRobinPool.md +166 -72
  169. package/node_modules/undici/docs/docs/api/SnapshotAgent.md +262 -517
  170. package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +177 -196
  171. package/node_modules/undici/docs/docs/api/Util.md +68 -11
  172. package/node_modules/undici/docs/docs/api/WebSocket.md +475 -80
  173. package/node_modules/undici/docs/docs/api/api-lifecycle.md +100 -32
  174. package/node_modules/undici/docs/docs/best-practices/client-certificate.md +2 -0
  175. package/node_modules/undici/docs/docs/best-practices/crawling.md +3 -1
  176. package/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +233 -0
  177. package/node_modules/undici/docs/docs/best-practices/mocking-request.md +9 -7
  178. package/node_modules/undici/docs/docs/best-practices/proxy.md +3 -1
  179. package/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +10 -8
  180. package/node_modules/undici/docs/docs/best-practices/writing-tests.md +2 -0
  181. package/node_modules/undici/docs/docs/getting-started.md +281 -0
  182. package/node_modules/undici/docs/docs/index.md +784 -0
  183. package/node_modules/undici/docs/docs/site.json +125 -0
  184. package/node_modules/undici/docs/docs/type-map.json +79 -0
  185. package/node_modules/undici/index.js +4 -2
  186. package/node_modules/undici/lib/api/api-connect.js +13 -11
  187. package/node_modules/undici/lib/api/api-pipeline.js +26 -13
  188. package/node_modules/undici/lib/api/api-request.js +51 -21
  189. package/node_modules/undici/lib/api/api-stream.js +81 -20
  190. package/node_modules/undici/lib/api/api-upgrade.js +21 -11
  191. package/node_modules/undici/lib/api/readable.js +45 -9
  192. package/node_modules/undici/lib/cache/memory-cache-store.js +3 -3
  193. package/node_modules/undici/lib/cache/sqlite-cache-store.js +3 -1
  194. package/node_modules/undici/lib/core/connect.js +46 -7
  195. package/node_modules/undici/lib/core/constants.js +1 -24
  196. package/node_modules/undici/lib/core/errors.js +22 -2
  197. package/node_modules/undici/lib/core/request.js +100 -18
  198. package/node_modules/undici/lib/core/symbols.js +4 -0
  199. package/node_modules/undici/lib/core/util.js +105 -48
  200. package/node_modules/undici/lib/dispatcher/agent.js +51 -32
  201. package/node_modules/undici/lib/dispatcher/balanced-pool.js +23 -27
  202. package/node_modules/undici/lib/dispatcher/client-h1.js +86 -24
  203. package/node_modules/undici/lib/dispatcher/client-h2.js +1091 -361
  204. package/node_modules/undici/lib/dispatcher/client.js +109 -36
  205. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +19 -6
  206. package/node_modules/undici/lib/dispatcher/dispatcher.js +15 -5
  207. package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +110 -0
  208. package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +37 -8
  209. package/node_modules/undici/lib/dispatcher/h2c-client.js +4 -4
  210. package/node_modules/undici/lib/dispatcher/pool-base.js +28 -10
  211. package/node_modules/undici/lib/dispatcher/pool.js +30 -5
  212. package/node_modules/undici/lib/dispatcher/proxy-agent.js +95 -19
  213. package/node_modules/undici/lib/dispatcher/retry-agent.js +3 -0
  214. package/node_modules/undici/lib/dispatcher/round-robin-pool.js +32 -10
  215. package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +153 -63
  216. package/node_modules/undici/lib/global.js +37 -14
  217. package/node_modules/undici/lib/handler/cache-handler.js +49 -7
  218. package/node_modules/undici/lib/handler/cache-revalidation-handler.js +10 -0
  219. package/node_modules/undici/lib/handler/decorator-handler.js +8 -3
  220. package/node_modules/undici/lib/handler/deduplication-handler.js +12 -6
  221. package/node_modules/undici/lib/handler/redirect-handler.js +66 -66
  222. package/node_modules/undici/lib/handler/retry-handler.js +191 -50
  223. package/node_modules/undici/lib/interceptor/cache.js +75 -25
  224. package/node_modules/undici/lib/interceptor/decompress.js +5 -2
  225. package/node_modules/undici/lib/interceptor/deduplicate.js +5 -4
  226. package/node_modules/undici/lib/interceptor/dns.js +12 -1
  227. package/node_modules/undici/lib/interceptor/redirect.js +3 -3
  228. package/node_modules/undici/lib/llhttp/llhttp-wasm.js +1 -1
  229. package/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +1 -1
  230. package/node_modules/undici/lib/mock/mock-agent.js +21 -9
  231. package/node_modules/undici/lib/mock/mock-call-history.js +1 -1
  232. package/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
  233. package/node_modules/undici/lib/mock/mock-utils.js +281 -47
  234. package/node_modules/undici/lib/mock/snapshot-agent.js +25 -7
  235. package/node_modules/undici/lib/mock/snapshot-recorder.js +38 -3
  236. package/node_modules/undici/lib/util/cache.js +92 -10
  237. package/node_modules/undici/lib/util/runtime-features.js +3 -34
  238. package/node_modules/undici/lib/web/cache/cache.js +6 -8
  239. package/node_modules/undici/lib/web/cookies/parse.js +150 -146
  240. package/node_modules/undici/lib/web/cookies/util.js +1 -1
  241. package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +28 -1
  242. package/node_modules/undici/lib/web/eventsource/eventsource.js +20 -21
  243. package/node_modules/undici/lib/web/eventsource/util.js +32 -1
  244. package/node_modules/undici/lib/web/fetch/body.js +48 -10
  245. package/node_modules/undici/lib/web/fetch/constants.js +1 -1
  246. package/node_modules/undici/lib/web/fetch/formdata.js +21 -2
  247. package/node_modules/undici/lib/web/fetch/index.js +242 -223
  248. package/node_modules/undici/lib/web/fetch/request.js +35 -6
  249. package/node_modules/undici/lib/web/fetch/response.js +1 -3
  250. package/node_modules/undici/lib/web/fetch/util.js +10 -2
  251. package/node_modules/undici/lib/web/webidl/index.js +5 -7
  252. package/node_modules/undici/lib/web/websocket/frame.js +1 -7
  253. package/node_modules/undici/lib/web/websocket/receiver.js +1 -1
  254. package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +10 -10
  255. package/node_modules/undici/lib/web/websocket/websocket.js +25 -3
  256. package/node_modules/undici/package.json +10 -10
  257. package/node_modules/undici/types/agent.d.ts +0 -2
  258. package/node_modules/undici/types/client.d.ts +69 -24
  259. package/node_modules/undici/types/connector.d.ts +1 -0
  260. package/node_modules/undici/types/cookies.d.ts +1 -1
  261. package/node_modules/undici/types/dispatcher.d.ts +8 -30
  262. package/node_modules/undici/types/dispatcher1-wrapper.d.ts +7 -0
  263. package/node_modules/undici/types/errors.d.ts +10 -0
  264. package/node_modules/undici/types/fetch.d.ts +5 -1
  265. package/node_modules/undici/types/formdata.d.ts +0 -6
  266. package/node_modules/undici/types/h2c-client.d.ts +6 -6
  267. package/node_modules/undici/types/handlers.d.ts +2 -0
  268. package/node_modules/undici/types/header.d.ts +5 -0
  269. package/node_modules/undici/types/index.d.ts +3 -1
  270. package/node_modules/undici/types/interceptors.d.ts +1 -1
  271. package/node_modules/undici/types/mock-agent.d.ts +11 -10
  272. package/node_modules/undici/types/mock-interceptor.d.ts +5 -1
  273. package/node_modules/undici/types/pool.d.ts +0 -2
  274. package/node_modules/undici/types/proxy-agent.d.ts +9 -2
  275. package/node_modules/undici/types/round-robin-pool.d.ts +0 -2
  276. package/node_modules/undici/types/snapshot-agent.d.ts +4 -0
  277. package/node_modules/undici/types/socks5-proxy-agent.d.ts +4 -2
  278. package/node_modules/undici/types/webidl.d.ts +0 -1
  279. package/node_modules/zod/README.md +2 -2
  280. package/node_modules/zod/compile.cjs +19 -0
  281. package/node_modules/zod/index.cjs +19 -0
  282. package/node_modules/zod/locales/index.cjs +19 -0
  283. package/node_modules/zod/mini/index.cjs +19 -0
  284. package/node_modules/zod/package.json +8 -7
  285. package/node_modules/zod/src/v3/helpers/errorUtil.ts +1 -1
  286. package/node_modules/zod/src/v4/classic/external.ts +2 -0
  287. package/node_modules/zod/src/v4/classic/from-json-schema.ts +248 -25
  288. package/node_modules/zod/src/v4/classic/schemas.ts +243 -168
  289. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +60 -9
  290. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +6 -0
  291. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
  292. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +265 -0
  293. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +112 -6
  294. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +9 -0
  295. package/node_modules/zod/src/v4/classic/tests/error.test.ts +130 -1
  296. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +157 -0
  297. package/node_modules/zod/src/v4/classic/tests/iban.test.ts +81 -0
  298. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +40 -2
  299. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +27 -7
  300. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +88 -56
  301. package/node_modules/zod/src/v4/classic/tests/number.test.ts +39 -0
  302. package/node_modules/zod/src/v4/classic/tests/object.test.ts +56 -0
  303. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +3 -2
  304. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +70 -0
  305. package/node_modules/zod/src/v4/classic/tests/properties.test.ts +141 -0
  306. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +46 -1
  307. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +19 -0
  308. package/node_modules/zod/src/v4/classic/tests/string.test.ts +95 -1
  309. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +33 -1
  310. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +234 -38
  311. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +569 -0
  312. package/node_modules/zod/src/v4/core/api.ts +44 -28
  313. package/node_modules/zod/src/v4/core/checks.ts +62 -102
  314. package/node_modules/zod/src/v4/core/compile.ts +218 -93
  315. package/node_modules/zod/src/v4/core/core.ts +1 -3
  316. package/node_modules/zod/src/v4/core/doc.ts +6 -2
  317. package/node_modules/zod/src/v4/core/errors.ts +3 -6
  318. package/node_modules/zod/src/v4/core/json-schema-generator.ts +2 -2
  319. package/node_modules/zod/src/v4/core/json-schema-processors.ts +185 -81
  320. package/node_modules/zod/src/v4/core/memoizer.ts +75 -28
  321. package/node_modules/zod/src/v4/core/parse.ts +37 -16
  322. package/node_modules/zod/src/v4/core/regexes.ts +14 -4
  323. package/node_modules/zod/src/v4/core/schemas.ts +296 -132
  324. package/node_modules/zod/src/v4/core/tests/cached.test.ts +54 -0
  325. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +35 -0
  326. package/node_modules/zod/src/v4/core/tests/compile-generative.test.ts +445 -0
  327. package/node_modules/zod/src/v4/core/tests/compile.test.ts +399 -2
  328. package/node_modules/zod/src/v4/core/tests/email-regex.test.ts +140 -0
  329. package/node_modules/zod/src/v4/core/tests/locales/tg.test.ts +85 -0
  330. package/node_modules/zod/src/v4/core/tests/polyfill-collision.test.ts +46 -0
  331. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +118 -16
  332. package/node_modules/zod/src/v4/core/to-json-schema.ts +9 -7
  333. package/node_modules/zod/src/v4/core/util.ts +218 -147
  334. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  335. package/node_modules/zod/src/v4/locales/ar.ts +2 -0
  336. package/node_modules/zod/src/v4/locales/az.ts +2 -0
  337. package/node_modules/zod/src/v4/locales/be.ts +2 -0
  338. package/node_modules/zod/src/v4/locales/bg.ts +2 -0
  339. package/node_modules/zod/src/v4/locales/bn.ts +2 -0
  340. package/node_modules/zod/src/v4/locales/ca.ts +2 -0
  341. package/node_modules/zod/src/v4/locales/ckb.ts +2 -0
  342. package/node_modules/zod/src/v4/locales/cs.ts +2 -0
  343. package/node_modules/zod/src/v4/locales/da.ts +2 -0
  344. package/node_modules/zod/src/v4/locales/de.ts +2 -0
  345. package/node_modules/zod/src/v4/locales/el.ts +2 -0
  346. package/node_modules/zod/src/v4/locales/en.ts +2 -0
  347. package/node_modules/zod/src/v4/locales/eo.ts +2 -0
  348. package/node_modules/zod/src/v4/locales/es.ts +2 -0
  349. package/node_modules/zod/src/v4/locales/fa.ts +2 -0
  350. package/node_modules/zod/src/v4/locales/fi.ts +2 -0
  351. package/node_modules/zod/src/v4/locales/fr-CA.ts +2 -0
  352. package/node_modules/zod/src/v4/locales/fr.ts +2 -0
  353. package/node_modules/zod/src/v4/locales/gu.ts +2 -0
  354. package/node_modules/zod/src/v4/locales/he.ts +2 -0
  355. package/node_modules/zod/src/v4/locales/hi.ts +2 -0
  356. package/node_modules/zod/src/v4/locales/hr.ts +2 -0
  357. package/node_modules/zod/src/v4/locales/hu.ts +2 -0
  358. package/node_modules/zod/src/v4/locales/hy.ts +2 -0
  359. package/node_modules/zod/src/v4/locales/id.ts +2 -0
  360. package/node_modules/zod/src/v4/locales/index.ts +1 -0
  361. package/node_modules/zod/src/v4/locales/is.ts +2 -0
  362. package/node_modules/zod/src/v4/locales/it.ts +2 -0
  363. package/node_modules/zod/src/v4/locales/ja.ts +2 -0
  364. package/node_modules/zod/src/v4/locales/ka.ts +2 -0
  365. package/node_modules/zod/src/v4/locales/km.ts +2 -0
  366. package/node_modules/zod/src/v4/locales/kn.ts +2 -0
  367. package/node_modules/zod/src/v4/locales/ko.ts +2 -0
  368. package/node_modules/zod/src/v4/locales/lt.ts +2 -0
  369. package/node_modules/zod/src/v4/locales/mk.ts +2 -0
  370. package/node_modules/zod/src/v4/locales/ms.ts +2 -0
  371. package/node_modules/zod/src/v4/locales/ne.ts +2 -0
  372. package/node_modules/zod/src/v4/locales/nl.ts +2 -0
  373. package/node_modules/zod/src/v4/locales/nn.ts +2 -0
  374. package/node_modules/zod/src/v4/locales/no.ts +2 -0
  375. package/node_modules/zod/src/v4/locales/ota.ts +2 -0
  376. package/node_modules/zod/src/v4/locales/pl.ts +2 -0
  377. package/node_modules/zod/src/v4/locales/ps.ts +2 -0
  378. package/node_modules/zod/src/v4/locales/pt-BR.ts +2 -0
  379. package/node_modules/zod/src/v4/locales/pt.ts +2 -0
  380. package/node_modules/zod/src/v4/locales/ro.ts +2 -0
  381. package/node_modules/zod/src/v4/locales/ru.ts +2 -0
  382. package/node_modules/zod/src/v4/locales/sk.ts +2 -0
  383. package/node_modules/zod/src/v4/locales/sl.ts +2 -0
  384. package/node_modules/zod/src/v4/locales/sv.ts +2 -0
  385. package/node_modules/zod/src/v4/locales/ta.ts +2 -0
  386. package/node_modules/zod/src/v4/locales/tg.ts +135 -0
  387. package/node_modules/zod/src/v4/locales/th.ts +2 -0
  388. package/node_modules/zod/src/v4/locales/tk.ts +2 -0
  389. package/node_modules/zod/src/v4/locales/tr.ts +2 -0
  390. package/node_modules/zod/src/v4/locales/uk.ts +2 -0
  391. package/node_modules/zod/src/v4/locales/ur.ts +2 -0
  392. package/node_modules/zod/src/v4/locales/uz.ts +2 -0
  393. package/node_modules/zod/src/v4/locales/vi.ts +2 -0
  394. package/node_modules/zod/src/v4/locales/yo.ts +2 -0
  395. package/node_modules/zod/src/v4/locales/zh-CN.ts +2 -0
  396. package/node_modules/zod/src/v4/locales/zh-TW.ts +2 -0
  397. package/node_modules/zod/src/v4/mini/external.ts +2 -0
  398. package/node_modules/zod/src/v4/mini/schemas.ts +32 -7
  399. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +1 -1
  400. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +11 -17
  401. package/node_modules/zod/src/v4/mini/tests/index.test.ts +86 -0
  402. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +16 -0
  403. package/node_modules/zod/src/v4/mini/tests/string.test.ts +23 -0
  404. package/node_modules/zod/v3/ZodError.cjs +19 -0
  405. package/node_modules/zod/v3/errors.cjs +19 -0
  406. package/node_modules/zod/v3/external.cjs +19 -0
  407. package/node_modules/zod/v3/helpers/enumUtil.cjs +19 -0
  408. package/node_modules/zod/v3/helpers/errorUtil.cjs +20 -1
  409. package/node_modules/zod/v3/helpers/errorUtil.js +1 -1
  410. package/node_modules/zod/v3/helpers/parseUtil.cjs +19 -0
  411. package/node_modules/zod/v3/helpers/partialUtil.cjs +19 -0
  412. package/node_modules/zod/v3/helpers/typeAliases.cjs +19 -0
  413. package/node_modules/zod/v3/helpers/util.cjs +19 -0
  414. package/node_modules/zod/v3/index.cjs +19 -0
  415. package/node_modules/zod/v3/standard-schema.cjs +19 -0
  416. package/node_modules/zod/v3/types.cjs +19 -0
  417. package/node_modules/zod/v4/classic/checks.cjs +19 -0
  418. package/node_modules/zod/v4/classic/coerce.cjs +19 -0
  419. package/node_modules/zod/v4/classic/compat.cjs +19 -0
  420. package/node_modules/zod/v4/classic/deep-partial.cjs +19 -0
  421. package/node_modules/zod/v4/classic/errors.cjs +19 -0
  422. package/node_modules/zod/v4/classic/external.cjs +22 -1
  423. package/node_modules/zod/v4/classic/external.d.cts +1 -1
  424. package/node_modules/zod/v4/classic/external.d.ts +1 -1
  425. package/node_modules/zod/v4/classic/external.js +1 -1
  426. package/node_modules/zod/v4/classic/from-json-schema.cjs +264 -24
  427. package/node_modules/zod/v4/classic/from-json-schema.js +245 -24
  428. package/node_modules/zod/v4/classic/in-out.cjs +19 -0
  429. package/node_modules/zod/v4/classic/index.cjs +19 -0
  430. package/node_modules/zod/v4/classic/iso.cjs +19 -0
  431. package/node_modules/zod/v4/classic/parse.cjs +19 -0
  432. package/node_modules/zod/v4/classic/schemas.cjs +100 -35
  433. package/node_modules/zod/v4/classic/schemas.d.cts +15 -1
  434. package/node_modules/zod/v4/classic/schemas.d.ts +15 -1
  435. package/node_modules/zod/v4/classic/schemas.js +77 -33
  436. package/node_modules/zod/v4/core/api.cjs +45 -22
  437. package/node_modules/zod/v4/core/api.d.cts +12 -6
  438. package/node_modules/zod/v4/core/api.d.ts +12 -6
  439. package/node_modules/zod/v4/core/api.js +25 -22
  440. package/node_modules/zod/v4/core/checks.cjs +51 -97
  441. package/node_modules/zod/v4/core/checks.d.cts +17 -1
  442. package/node_modules/zod/v4/core/checks.d.ts +17 -1
  443. package/node_modules/zod/v4/core/checks.js +31 -96
  444. package/node_modules/zod/v4/core/compile.cjs +173 -78
  445. package/node_modules/zod/v4/core/compile.d.cts +18 -4
  446. package/node_modules/zod/v4/core/compile.d.ts +18 -4
  447. package/node_modules/zod/v4/core/compile.js +154 -79
  448. package/node_modules/zod/v4/core/core.cjs +20 -1
  449. package/node_modules/zod/v4/core/core.js +1 -1
  450. package/node_modules/zod/v4/core/doc.cjs +26 -2
  451. package/node_modules/zod/v4/core/doc.js +7 -2
  452. package/node_modules/zod/v4/core/errors.cjs +21 -5
  453. package/node_modules/zod/v4/core/errors.js +2 -5
  454. package/node_modules/zod/v4/core/index.cjs +19 -0
  455. package/node_modules/zod/v4/core/json-schema-generator.cjs +20 -1
  456. package/node_modules/zod/v4/core/json-schema-generator.js +2 -2
  457. package/node_modules/zod/v4/core/json-schema-processors.cjs +188 -72
  458. package/node_modules/zod/v4/core/json-schema-processors.d.cts +16 -0
  459. package/node_modules/zod/v4/core/json-schema-processors.d.ts +16 -0
  460. package/node_modules/zod/v4/core/json-schema-processors.js +170 -74
  461. package/node_modules/zod/v4/core/json-schema.cjs +19 -0
  462. package/node_modules/zod/v4/core/memoizer.cjs +111 -23
  463. package/node_modules/zod/v4/core/memoizer.js +69 -23
  464. package/node_modules/zod/v4/core/parse.cjs +56 -16
  465. package/node_modules/zod/v4/core/parse.js +37 -16
  466. package/node_modules/zod/v4/core/regexes.cjs +31 -6
  467. package/node_modules/zod/v4/core/regexes.d.cts +3 -0
  468. package/node_modules/zod/v4/core/regexes.d.ts +3 -0
  469. package/node_modules/zod/v4/core/regexes.js +10 -4
  470. package/node_modules/zod/v4/core/registries.cjs +19 -0
  471. package/node_modules/zod/v4/core/schemas.cjs +302 -114
  472. package/node_modules/zod/v4/core/schemas.d.cts +28 -8
  473. package/node_modules/zod/v4/core/schemas.d.ts +28 -8
  474. package/node_modules/zod/v4/core/schemas.js +279 -113
  475. package/node_modules/zod/v4/core/standard-schema.cjs +19 -0
  476. package/node_modules/zod/v4/core/to-json-schema.cjs +28 -7
  477. package/node_modules/zod/v4/core/to-json-schema.d.cts +4 -3
  478. package/node_modules/zod/v4/core/to-json-schema.d.ts +4 -3
  479. package/node_modules/zod/v4/core/to-json-schema.js +7 -6
  480. package/node_modules/zod/v4/core/util.cjs +177 -143
  481. package/node_modules/zod/v4/core/util.d.cts +25 -4
  482. package/node_modules/zod/v4/core/util.d.ts +25 -4
  483. package/node_modules/zod/v4/core/util.js +156 -143
  484. package/node_modules/zod/v4/core/versions.cjs +21 -2
  485. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  486. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  487. package/node_modules/zod/v4/core/versions.js +2 -2
  488. package/node_modules/zod/v4/core/visit.cjs +19 -0
  489. package/node_modules/zod/v4/index.cjs +19 -0
  490. package/node_modules/zod/v4/locales/ar.cjs +2 -0
  491. package/node_modules/zod/v4/locales/ar.js +2 -0
  492. package/node_modules/zod/v4/locales/az.cjs +2 -0
  493. package/node_modules/zod/v4/locales/az.js +2 -0
  494. package/node_modules/zod/v4/locales/be.cjs +2 -0
  495. package/node_modules/zod/v4/locales/be.js +2 -0
  496. package/node_modules/zod/v4/locales/bg.cjs +2 -0
  497. package/node_modules/zod/v4/locales/bg.js +2 -0
  498. package/node_modules/zod/v4/locales/bn.cjs +2 -0
  499. package/node_modules/zod/v4/locales/bn.js +2 -0
  500. package/node_modules/zod/v4/locales/ca.cjs +2 -0
  501. package/node_modules/zod/v4/locales/ca.js +2 -0
  502. package/node_modules/zod/v4/locales/ckb.cjs +2 -0
  503. package/node_modules/zod/v4/locales/ckb.js +2 -0
  504. package/node_modules/zod/v4/locales/cs.cjs +2 -0
  505. package/node_modules/zod/v4/locales/cs.js +2 -0
  506. package/node_modules/zod/v4/locales/da.cjs +2 -0
  507. package/node_modules/zod/v4/locales/da.js +2 -0
  508. package/node_modules/zod/v4/locales/de.cjs +2 -0
  509. package/node_modules/zod/v4/locales/de.js +2 -0
  510. package/node_modules/zod/v4/locales/el.cjs +2 -0
  511. package/node_modules/zod/v4/locales/el.js +2 -0
  512. package/node_modules/zod/v4/locales/en.cjs +2 -0
  513. package/node_modules/zod/v4/locales/en.js +2 -0
  514. package/node_modules/zod/v4/locales/eo.cjs +2 -0
  515. package/node_modules/zod/v4/locales/eo.js +2 -0
  516. package/node_modules/zod/v4/locales/es.cjs +2 -0
  517. package/node_modules/zod/v4/locales/es.js +2 -0
  518. package/node_modules/zod/v4/locales/fa.cjs +2 -0
  519. package/node_modules/zod/v4/locales/fa.js +2 -0
  520. package/node_modules/zod/v4/locales/fi.cjs +2 -0
  521. package/node_modules/zod/v4/locales/fi.js +2 -0
  522. package/node_modules/zod/v4/locales/fr-CA.cjs +2 -0
  523. package/node_modules/zod/v4/locales/fr-CA.js +2 -0
  524. package/node_modules/zod/v4/locales/fr.cjs +2 -0
  525. package/node_modules/zod/v4/locales/fr.js +2 -0
  526. package/node_modules/zod/v4/locales/gu.cjs +2 -0
  527. package/node_modules/zod/v4/locales/gu.js +2 -0
  528. package/node_modules/zod/v4/locales/he.cjs +2 -0
  529. package/node_modules/zod/v4/locales/he.js +2 -0
  530. package/node_modules/zod/v4/locales/hi.cjs +2 -0
  531. package/node_modules/zod/v4/locales/hi.js +2 -0
  532. package/node_modules/zod/v4/locales/hr.cjs +2 -0
  533. package/node_modules/zod/v4/locales/hr.js +2 -0
  534. package/node_modules/zod/v4/locales/hu.cjs +2 -0
  535. package/node_modules/zod/v4/locales/hu.js +2 -0
  536. package/node_modules/zod/v4/locales/hy.cjs +2 -0
  537. package/node_modules/zod/v4/locales/hy.js +2 -0
  538. package/node_modules/zod/v4/locales/id.cjs +2 -0
  539. package/node_modules/zod/v4/locales/id.js +2 -0
  540. package/node_modules/zod/v4/locales/index.cjs +22 -1
  541. package/node_modules/zod/v4/locales/index.d.cts +1 -0
  542. package/node_modules/zod/v4/locales/index.d.ts +1 -0
  543. package/node_modules/zod/v4/locales/index.js +1 -0
  544. package/node_modules/zod/v4/locales/is.cjs +2 -0
  545. package/node_modules/zod/v4/locales/is.js +2 -0
  546. package/node_modules/zod/v4/locales/it.cjs +2 -0
  547. package/node_modules/zod/v4/locales/it.js +2 -0
  548. package/node_modules/zod/v4/locales/ja.cjs +2 -0
  549. package/node_modules/zod/v4/locales/ja.js +2 -0
  550. package/node_modules/zod/v4/locales/ka.cjs +2 -0
  551. package/node_modules/zod/v4/locales/ka.js +2 -0
  552. package/node_modules/zod/v4/locales/km.cjs +2 -0
  553. package/node_modules/zod/v4/locales/km.js +2 -0
  554. package/node_modules/zod/v4/locales/kn.cjs +2 -0
  555. package/node_modules/zod/v4/locales/kn.js +2 -0
  556. package/node_modules/zod/v4/locales/ko.cjs +2 -0
  557. package/node_modules/zod/v4/locales/ko.js +2 -0
  558. package/node_modules/zod/v4/locales/lt.cjs +2 -0
  559. package/node_modules/zod/v4/locales/lt.js +2 -0
  560. package/node_modules/zod/v4/locales/mk.cjs +2 -0
  561. package/node_modules/zod/v4/locales/mk.js +2 -0
  562. package/node_modules/zod/v4/locales/ms.cjs +2 -0
  563. package/node_modules/zod/v4/locales/ms.js +2 -0
  564. package/node_modules/zod/v4/locales/ne.cjs +2 -0
  565. package/node_modules/zod/v4/locales/ne.js +2 -0
  566. package/node_modules/zod/v4/locales/nl.cjs +2 -0
  567. package/node_modules/zod/v4/locales/nl.js +2 -0
  568. package/node_modules/zod/v4/locales/nn.cjs +2 -0
  569. package/node_modules/zod/v4/locales/nn.js +2 -0
  570. package/node_modules/zod/v4/locales/no.cjs +2 -0
  571. package/node_modules/zod/v4/locales/no.js +2 -0
  572. package/node_modules/zod/v4/locales/ota.cjs +2 -0
  573. package/node_modules/zod/v4/locales/ota.js +2 -0
  574. package/node_modules/zod/v4/locales/pl.cjs +2 -0
  575. package/node_modules/zod/v4/locales/pl.js +2 -0
  576. package/node_modules/zod/v4/locales/ps.cjs +2 -0
  577. package/node_modules/zod/v4/locales/ps.js +2 -0
  578. package/node_modules/zod/v4/locales/pt-BR.cjs +2 -0
  579. package/node_modules/zod/v4/locales/pt-BR.js +2 -0
  580. package/node_modules/zod/v4/locales/pt.cjs +2 -0
  581. package/node_modules/zod/v4/locales/pt.js +2 -0
  582. package/node_modules/zod/v4/locales/ro.cjs +2 -0
  583. package/node_modules/zod/v4/locales/ro.js +2 -0
  584. package/node_modules/zod/v4/locales/ru.cjs +2 -0
  585. package/node_modules/zod/v4/locales/ru.js +2 -0
  586. package/node_modules/zod/v4/locales/sk.cjs +2 -0
  587. package/node_modules/zod/v4/locales/sk.js +2 -0
  588. package/node_modules/zod/v4/locales/sl.cjs +2 -0
  589. package/node_modules/zod/v4/locales/sl.js +2 -0
  590. package/node_modules/zod/v4/locales/sv.cjs +2 -0
  591. package/node_modules/zod/v4/locales/sv.js +2 -0
  592. package/node_modules/zod/v4/locales/ta.cjs +2 -0
  593. package/node_modules/zod/v4/locales/ta.js +2 -0
  594. package/node_modules/zod/v4/locales/tg.cjs +144 -0
  595. package/node_modules/zod/v4/locales/tg.d.cts +5 -0
  596. package/node_modules/zod/v4/locales/tg.d.ts +4 -0
  597. package/node_modules/zod/v4/locales/tg.js +117 -0
  598. package/node_modules/zod/v4/locales/th.cjs +2 -0
  599. package/node_modules/zod/v4/locales/th.js +2 -0
  600. package/node_modules/zod/v4/locales/tk.cjs +2 -0
  601. package/node_modules/zod/v4/locales/tk.js +2 -0
  602. package/node_modules/zod/v4/locales/tr.cjs +2 -0
  603. package/node_modules/zod/v4/locales/tr.js +2 -0
  604. package/node_modules/zod/v4/locales/uk.cjs +2 -0
  605. package/node_modules/zod/v4/locales/uk.js +2 -0
  606. package/node_modules/zod/v4/locales/ur.cjs +2 -0
  607. package/node_modules/zod/v4/locales/ur.js +2 -0
  608. package/node_modules/zod/v4/locales/uz.cjs +2 -0
  609. package/node_modules/zod/v4/locales/uz.js +2 -0
  610. package/node_modules/zod/v4/locales/vi.cjs +2 -0
  611. package/node_modules/zod/v4/locales/vi.js +2 -0
  612. package/node_modules/zod/v4/locales/yo.cjs +2 -0
  613. package/node_modules/zod/v4/locales/yo.js +2 -0
  614. package/node_modules/zod/v4/locales/zh-CN.cjs +2 -0
  615. package/node_modules/zod/v4/locales/zh-CN.js +2 -0
  616. package/node_modules/zod/v4/locales/zh-TW.cjs +2 -0
  617. package/node_modules/zod/v4/locales/zh-TW.js +2 -0
  618. package/node_modules/zod/v4/mini/checks.cjs +19 -0
  619. package/node_modules/zod/v4/mini/coerce.cjs +19 -0
  620. package/node_modules/zod/v4/mini/deep-partial.cjs +19 -0
  621. package/node_modules/zod/v4/mini/external.cjs +22 -1
  622. package/node_modules/zod/v4/mini/external.d.cts +1 -1
  623. package/node_modules/zod/v4/mini/external.d.ts +1 -1
  624. package/node_modules/zod/v4/mini/external.js +1 -1
  625. package/node_modules/zod/v4/mini/in-out.cjs +19 -0
  626. package/node_modules/zod/v4/mini/index.cjs +19 -0
  627. package/node_modules/zod/v4/mini/iso.cjs +19 -0
  628. package/node_modules/zod/v4/mini/parse.cjs +19 -0
  629. package/node_modules/zod/v4/mini/schemas.cjs +44 -8
  630. package/node_modules/zod/v4/mini/schemas.d.cts +6 -1
  631. package/node_modules/zod/v4/mini/schemas.d.ts +6 -1
  632. package/node_modules/zod/v4/mini/schemas.js +21 -6
  633. package/node_modules/zod/v4-mini/index.cjs +19 -0
  634. package/openclaw.plugin.json +49 -3
  635. package/package.json +8 -8
  636. package/dist/.setup/accounts.runtime-BpWv-6-2.mjs +0 -2
  637. package/dist/.setup/action-runtime.runtime-DwH3NdpT.mjs +0 -2
  638. package/dist/.setup/doctor-contract-CtMUqjvk.mjs +0 -186
  639. package/dist/.setup/monitor-Dw5uuKWM.mjs +0 -13
  640. package/dist/.setup/rolldown-runtime-D7D4PA-g.mjs +0 -13
  641. package/dist/.setup/send.runtime-BmqRP-WG.mjs +0 -2
  642. package/dist/.setup/slash-commands.runtime-BpSH0b3q.mjs +0 -2
  643. package/dist/.setup/slash-skill-commands.runtime-Bi1JWZHY.mjs +0 -2
  644. package/node_modules/undici/lib/handler/unwrap-handler.js +0 -106
  645. package/node_modules/undici/lib/handler/wrap-handler.js +0 -105
  646. package/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  647. package/node_modules/undici/lib/util/promise.js +0 -28
  648. /package/node_modules/typebox/build/guard/{string.d.mts → unicode/unicode_segment.d.mts} +0 -0
@@ -1,109 +1,210 @@
1
- # Class: MockPool
1
+ # MockPool
2
2
 
3
- Extends: `undici.Pool`
3
+ <!--introduced_in=v4.0.0-->
4
+ <!--type=module-->
5
+ <!-- source_link=lib/mock/mock-pool.js -->
4
6
 
5
- A mock Pool class that implements the Pool API and is used by MockAgent to intercept real requests and return mocked responses.
7
+ > Stability: 2 - Stable
6
8
 
7
- ## `new MockPool(origin, [options])`
9
+ A `MockPool` is a [`Pool`][] that intercepts requests matching registered routes
10
+ and replies with mocked responses instead of contacting the network. It is
11
+ created by a [`MockAgent`][] and exposes the same interception API as
12
+ [`MockClient`][].
8
13
 
9
- Arguments:
14
+ A `MockPool` is not constructed directly in most cases; instead it is obtained
15
+ through [`mockAgent.get(origin)`][]. Once registered as the global dispatcher,
16
+ any request whose origin matches the pool is matched against the mocks it holds.
10
17
 
11
- * **origin** `string` - It should only include the **protocol, hostname, and port**.
12
- * **options** `MockPoolOptions` - It extends the `Pool` options.
13
-
14
- Returns: `MockPool`
15
-
16
- ### Parameter: `MockPoolOptions`
17
-
18
- Extends: `PoolOptions`
19
-
20
- * **agent** `Agent` - the agent to associate this MockPool with.
21
-
22
- ### Example - Basic MockPool instantiation
23
-
24
- We can use MockAgent to instantiate a MockPool ready to be used to intercept specified requests. It will not do anything until registered as the agent to use and any mock request are registered.
25
-
26
- ```js
18
+ ```mjs
27
19
  import { MockAgent } from 'undici'
28
20
 
29
21
  const mockAgent = new MockAgent()
30
-
31
22
  const mockPool = mockAgent.get('http://localhost:3000')
32
23
  ```
33
24
 
34
- ## Instance Methods
35
-
36
- ### `MockPool.intercept(options)`
37
-
38
- This method defines the interception rules for matching against requests for a MockPool or MockPool. We can intercept multiple times on a single instance, but each intercept is only used once. For example if you expect to make 2 requests inside a test, you need to call `intercept()` twice. Assuming you use `disableNetConnect()` you will get `MockNotMatchedError` on the second request when you only call `intercept()` once.
39
-
40
- When defining interception rules, all the rules must pass for a request to be intercepted. If a request is not intercepted, a real request will be attempted.
41
-
42
- | Matcher type | Condition to pass |
43
- |:------------:| -------------------------- |
44
- | `string` | Exact match against string |
45
- | `RegExp` | Regex must pass |
46
- | `Function` | Function must return true |
47
-
48
- Arguments:
49
-
50
- * **options** `MockPoolInterceptOptions` - Interception options.
51
-
52
- Returns: `MockInterceptor` corresponding to the input options.
53
-
54
- ### Parameter: `MockPoolInterceptOptions`
25
+ ```cjs
26
+ const { MockAgent } = require('undici')
55
27
 
56
- * **path** `string | RegExp | (path: string) => boolean` - a matcher for the HTTP request path. When a `RegExp` or callback is used, it will match against the request path including all query parameters in alphabetical order. When a `string` is provided, the query parameters can be conveniently specified through the `MockPoolInterceptOptions.query` setting.
57
- * **method** `string | RegExp | (method: string) => boolean` - (optional) - a matcher for the HTTP request method. Defaults to `GET`.
58
- * **body** `string | RegExp | (body: string) => boolean` - (optional) - a matcher for the HTTP request body.
59
- * **headers** `Record<string, string | RegExp | (body: string) => boolean`> - (optional) - a matcher for the HTTP request headers. To be intercepted, a request must match all defined headers. Extra headers not defined here may (or may not) be included in the request and do not affect the interception in any way.
60
- * **query** `Record<string, any> | null` - (optional) - a matcher for the HTTP request query string params. Only applies when a `string` was provided for `MockPoolInterceptOptions.path`.
61
- * **ignoreTrailingSlash** `boolean` - (optional) - set to `true` if the matcher should also match by ignoring potential trailing slashes in `MockPoolInterceptOptions.path`.
62
-
63
- ### Return: `MockInterceptor`
28
+ const mockAgent = new MockAgent()
29
+ const mockPool = mockAgent.get('http://localhost:3000')
30
+ ```
64
31
 
65
- We can define the behaviour of an intercepted request with the following options.
32
+ ## Class: `MockPool`
66
33
 
67
- * **reply** `(statusCode: number, replyData: string | Buffer | object | MockInterceptor.MockResponseDataHandler, responseOptions?: MockResponseOptions) => MockScope` - define a reply for a matching request. You can define the replyData as a callback to read incoming request data. Default for `responseOptions` is `{}`.
68
- * **reply** `(callback: MockInterceptor.MockReplyOptionsCallback) => MockScope` - define a reply for a matching request, allowing dynamic mocking of all reply options rather than just the data.
69
- * **replyWithError** `(error: Error) => MockScope` - define an error for a matching request to throw.
70
- * **defaultReplyHeaders** `(headers: Record<string, string>) => MockInterceptor` - define default headers to be included in subsequent replies. These are in addition to headers on a specific reply.
71
- * **defaultReplyTrailers** `(trailers: Record<string, string>) => MockInterceptor` - define default trailers to be included in subsequent replies. These are in addition to trailers on a specific reply.
72
- * **replyContentLength** `() => MockInterceptor` - define automatically calculated `content-length` headers to be included in subsequent replies.
34
+ <!-- YAML
35
+ added: v4.0.0
36
+ -->
73
37
 
74
- The reply data of an intercepted request may either be a string, buffer, or JavaScript object. Objects are converted to JSON while strings and buffers are sent as-is.
38
+ * Extends: {Pool}
75
39
 
76
- By default, `reply` and `replyWithError` define the behaviour for the first matching request only. Subsequent requests will not be affected (this can be changed using the returned `MockScope`).
40
+ Extends [`Pool`][] and implements the `Interceptable` interface, allowing
41
+ requests made through it to be matched against registered mocks.
77
42
 
78
- ### Parameter: `MockResponseOptions`
43
+ ### `new MockPool(origin[, options])`
79
44
 
80
- * **headers** `Record<string, string>` - headers to be included on the mocked reply.
81
- * **trailers** `Record<string, string>` - trailers to be included on the mocked reply.
45
+ <!-- YAML
46
+ added: v4.0.0
47
+ -->
82
48
 
83
- ### Return: `MockScope`
49
+ * `origin` {string} The origin to associate this mock pool with. It should only
50
+ include the protocol, hostname, and port.
51
+ * `options` {MockPoolOptions} Extends the [`Pool`][] options.
52
+ * Returns: {MockPool}
84
53
 
85
- A `MockScope` is associated with a single `MockInterceptor`. With this, we can configure the default behaviour of an intercepted reply.
54
+ The `agent` option is required and must implement the `Agent` interface;
55
+ otherwise an `InvalidArgumentError` is thrown.
86
56
 
87
- * **delay** `(waitInMs: number) => MockScope` - delay the associated reply by a set amount in ms.
88
- * **persist** `() => MockScope` - any matching request will always reply with the defined response indefinitely.
89
- * **times** `(repeatTimes: number) => MockScope` - any matching request will reply with the defined response a fixed amount of times. This is overridden by **persist**.
57
+ #### Parameter: `MockPoolOptions`
90
58
 
91
- #### Example - Basic Mocked Request
59
+ Extends: `PoolOptions`
92
60
 
93
- ```js
61
+ * `agent` {MockAgent} The agent to associate this mock pool with.
62
+ * `ignoreTrailingSlash` {boolean} Whether trailing slashes should be ignored
63
+ when matching the path of intercepted requests. **Default:** `false`.
64
+
65
+ ### `mockPool.intercept(options)`
66
+
67
+ <!-- YAML
68
+ added: v4.0.0
69
+ -->
70
+
71
+ * `options` {MockPoolInterceptOptions} The matching criteria for the requests to
72
+ intercept.
73
+ * Returns: {MockInterceptor} The interceptor used to define the mocked reply.
74
+
75
+ Registers a route on the mock pool and returns a [`MockInterceptor`][] for any
76
+ matching request that uses the same origin as this mock pool. The interceptor is
77
+ then used to define the reply, for example with `reply()` or `replyWithError()`.
78
+
79
+ Each `intercept()` call is consumed by a single matching request. To match more
80
+ than one request, call `intercept()` once per expected request, or use
81
+ `persist()` or `times()` on the returned [`MockScope`][]. When no registered
82
+ mock matches a request, a real request is attempted unless network connections
83
+ have been disabled on the [`MockAgent`][], in which case a `MockNotMatchedError`
84
+ is thrown.
85
+
86
+ A request is intercepted only when every defined matcher passes. The accepted
87
+ matcher forms behave as follows:
88
+
89
+ | Matcher type | Condition to pass |
90
+ | :----------: | ---------------------------- |
91
+ | `string` | Exact match against the value |
92
+ | `RegExp` | The expression must match |
93
+ | `Function` | The function must return `true` |
94
+
95
+ #### Parameter: `MockPoolInterceptOptions`
96
+
97
+ * `path` {string|RegExp|Function} A matcher for the HTTP request path. The
98
+ function form has the signature `(path: string) => boolean`. When a `RegExp`
99
+ or function is used, it matches against the request path including all query
100
+ parameters in alphabetical order. When a `string` is used, query parameters
101
+ can instead be supplied through `query`.
102
+ * `method` {string|RegExp|Function} A matcher for the HTTP request method. The
103
+ function form has the signature `(method: string) => boolean`.
104
+ **Default:** `'GET'`.
105
+ * `body` {string|RegExp|Function} A matcher for the HTTP request body. The
106
+ function form has the signature `(body: string) => boolean`.
107
+ * `headers` {Object|Function} A matcher for the HTTP request headers, given
108
+ either as a map of header name to a `string`, `RegExp`, or
109
+ `(value: string) => boolean` matcher, or as a single function that receives
110
+ all headers and returns a `boolean`. When a map is used, the request must
111
+ match every defined header; extra headers not listed here do not affect
112
+ matching.
113
+ * `query` {Object} A matcher for the HTTP request query string parameters. Only
114
+ applies when a `string` was provided for `path`.
115
+ * `ignoreTrailingSlash` {boolean} Whether a trailing slash on `path` is ignored
116
+ when matching. Inherited from the mock pool's `ignoreTrailingSlash` option
117
+ when not set.
118
+
119
+ #### Return: `MockInterceptor`
120
+
121
+ The reply behaviour of a matching request is defined through the returned
122
+ `MockInterceptor`.
123
+
124
+ * `reply(statusCode[, data[, responseOptions]])` {Function} Defines the reply
125
+ for a matching request.
126
+ * `statusCode` {number} The status code of the mocked reply.
127
+ * `data` {string|Buffer|Object|Function} The body of the mocked reply.
128
+ Objects are serialized to JSON; strings and `Buffer`s are sent as-is. The
129
+ function form has the signature
130
+ `(opts: MockResponseCallbackOptions) => string | Buffer | Object` and is
131
+ invoked with the incoming request to compute the reply body.
132
+ * `responseOptions` {MockResponseOptions} Additional reply options.
133
+ **Default:** `{}`.
134
+ * Returns: {MockScope}
135
+ * `reply(callback)` {Function} Defines the reply for a matching request,
136
+ computing all reply options dynamically rather than just the body.
137
+ * `callback` {Function} A `(opts: MockResponseCallbackOptions) =>
138
+ { statusCode, data, responseOptions }` function invoked with the incoming
139
+ request. The callback may be asynchronous; a returned promise is awaited
140
+ and must resolve to the same shape.
141
+ * Returns: {MockScope}
142
+ * `replyWithError(error)` {Function} Defines an error for a matching request to
143
+ throw.
144
+ * `error` {Error} The error thrown when a request matches.
145
+ * Returns: {MockScope}
146
+ * `defaultReplyHeaders(headers)` {Function} Sets default headers included on
147
+ every subsequent reply defined on this interceptor, in addition to any headers
148
+ set on a specific reply.
149
+ * `headers` {Object} A map of header name to value.
150
+ * Returns: {MockInterceptor}
151
+ * `defaultReplyTrailers(trailers)` {Function} Sets default trailers included on
152
+ every subsequent reply defined on this interceptor, in addition to any
153
+ trailers set on a specific reply.
154
+ * `trailers` {Object} A map of trailer name to value.
155
+ * Returns: {MockInterceptor}
156
+ * `replyContentLength()` {Function} Sets an automatically calculated
157
+ `content-length` header on every subsequent reply defined on this interceptor.
158
+ * Returns: {MockInterceptor}
159
+
160
+ By default, `reply()` and `replyWithError()` define the behaviour for the first
161
+ matching request only; subsequent requests are not affected unless `persist()`
162
+ or `times()` is used on the returned [`MockScope`][].
163
+
164
+ #### Parameter: `MockResponseCallbackOptions`
165
+
166
+ The argument passed to the `reply()` data and options callbacks.
167
+
168
+ * `path` {string} The path of the intercepted request.
169
+ * `method` {string} The method of the intercepted request.
170
+ * `headers` {Object|Headers} The headers of the intercepted request.
171
+ * `origin` {string} The origin of the intercepted request.
172
+ * `body` {string|null} The body of the intercepted request.
173
+
174
+ #### Parameter: `MockResponseOptions`
175
+
176
+ * `headers` {Object} Headers to include on the mocked reply.
177
+ * `trailers` {Object} Trailers to include on the mocked reply.
178
+
179
+ #### Return: `MockScope`
180
+
181
+ A `MockScope` is associated with a single [`MockInterceptor`][] and configures
182
+ how many times the defined reply is used.
183
+
184
+ * `delay(waitInMs)` {Function} Delays the associated reply by a set amount of
185
+ time.
186
+ * `waitInMs` {number} The delay in milliseconds.
187
+ * Returns: {MockScope}
188
+ * `persist()` {Function} Makes the associated reply match indefinitely, so every
189
+ matching request receives the defined response.
190
+ * Returns: {MockScope}
191
+ * `times(repeatTimes)` {Function} Makes the associated reply match a fixed number
192
+ of times. This is overridden by `persist()`.
193
+ * `repeatTimes` {number} The number of matching requests the reply applies to.
194
+ * Returns: {MockScope}
195
+
196
+ The following examples show common interception patterns.
197
+
198
+ ```mjs displayName="Basic mocked request"
94
199
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
95
200
 
96
201
  const mockAgent = new MockAgent()
97
202
  setGlobalDispatcher(mockAgent)
98
203
 
99
- // MockPool
100
204
  const mockPool = mockAgent.get('http://localhost:3000')
101
205
  mockPool.intercept({ path: '/foo' }).reply(200, 'foo')
102
206
 
103
- const {
104
- statusCode,
105
- body
106
- } = await request('http://localhost:3000/foo')
207
+ const { statusCode, body } = await request('http://localhost:3000/foo')
107
208
 
108
209
  console.log('response received', statusCode) // response received 200
109
210
 
@@ -112,9 +213,7 @@ for await (const data of body) {
112
213
  }
113
214
  ```
114
215
 
115
- #### Example - Mocked request using reply data callbacks
116
-
117
- ```js
216
+ ```mjs displayName="Reply with a data callback"
118
217
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
119
218
 
120
219
  const mockAgent = new MockAgent()
@@ -124,30 +223,21 @@ const mockPool = mockAgent.get('http://localhost:3000')
124
223
 
125
224
  mockPool.intercept({
126
225
  path: '/echo',
127
- method: 'GET',
128
- headers: {
129
- 'User-Agent': 'undici',
130
- Host: 'example.com'
131
- }
132
- }).reply(200, ({ headers }) => ({ message: headers.get('message') }))
226
+ method: 'GET'
227
+ }).reply(200, ({ headers }) => ({ message: headers.message }))
133
228
 
134
- const { statusCode, body, headers } = await request('http://localhost:3000', {
135
- headers: {
136
- message: 'hello world!'
137
- }
229
+ const { statusCode, body } = await request('http://localhost:3000/echo', {
230
+ headers: { message: 'hello world!' }
138
231
  })
139
232
 
140
233
  console.log('response received', statusCode) // response received 200
141
- console.log('headers', headers) // { 'content-type': 'application/json' }
142
234
 
143
235
  for await (const data of body) {
144
- console.log('data', data.toString('utf8')) // { "message":"hello world!" }
236
+ console.log('data', data.toString('utf8')) // {"message":"hello world!"}
145
237
  }
146
238
  ```
147
239
 
148
- #### Example - Mocked request using reply options callback
149
-
150
- ```js
240
+ ```mjs displayName="Reply with an options callback"
151
241
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
152
242
 
153
243
  const mockAgent = new MockAgent()
@@ -157,30 +247,25 @@ const mockPool = mockAgent.get('http://localhost:3000')
157
247
 
158
248
  mockPool.intercept({
159
249
  path: '/echo',
160
- method: 'GET',
161
- headers: {
162
- 'User-Agent': 'undici',
163
- Host: 'example.com'
164
- }
165
- }).reply(({ headers }) => ({ statusCode: 200, data: { message: headers.get('message') }})))
250
+ method: 'GET'
251
+ }).reply(({ headers }) => ({
252
+ statusCode: 200,
253
+ data: { message: headers.message }
254
+ }))
166
255
 
167
- const { statusCode, body, headers } = await request('http://localhost:3000', {
168
- headers: {
169
- message: 'hello world!'
170
- }
256
+ const { statusCode, body } = await request('http://localhost:3000/echo', {
257
+ headers: { message: 'hello world!' }
171
258
  })
172
259
 
173
260
  console.log('response received', statusCode) // response received 200
174
- console.log('headers', headers) // { 'content-type': 'application/json' }
175
261
 
176
262
  for await (const data of body) {
177
- console.log('data', data.toString('utf8')) // { "message":"hello world!" }
263
+ console.log('data', data.toString('utf8')) // {"message":"hello world!"}
178
264
  }
179
265
  ```
180
266
 
181
- #### Example - Basic Mocked requests with multiple intercepts
182
-
183
- ```js
267
+ ```mjs displayName="Reply with an asynchronous options callback"
268
+ import { readFile } from 'node:fs/promises'
184
269
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
185
270
 
186
271
  const mockAgent = new MockAgent()
@@ -189,35 +274,45 @@ setGlobalDispatcher(mockAgent)
189
274
  const mockPool = mockAgent.get('http://localhost:3000')
190
275
 
191
276
  mockPool.intercept({
192
- path: '/foo',
277
+ path: '/fixture',
193
278
  method: 'GET'
194
- }).reply(200, 'foo')
195
-
196
- mockPool.intercept({
197
- path: '/hello',
198
- method: 'GET',
199
- }).reply(200, 'hello')
279
+ }).reply(async ({ path }) => ({
280
+ statusCode: 200,
281
+ data: await readFile(new URL('./fixture.json', import.meta.url))
282
+ }))
200
283
 
201
- const result1 = await request('http://localhost:3000/foo')
284
+ const { statusCode, body } = await request('http://localhost:3000/fixture')
202
285
 
203
- console.log('response received', result1.statusCode) // response received 200
286
+ console.log('response received', statusCode) // response received 200
204
287
 
205
- for await (const data of result1.body) {
206
- console.log('data', data.toString('utf8')) // data foo
288
+ for await (const data of body) {
289
+ console.log('data', data.toString('utf8')) // contents of fixture.json
207
290
  }
291
+ ```
292
+
293
+ ```mjs displayName="Multiple intercepts"
294
+ import { MockAgent, setGlobalDispatcher, request } from 'undici'
295
+
296
+ const mockAgent = new MockAgent()
297
+ setGlobalDispatcher(mockAgent)
298
+
299
+ const mockPool = mockAgent.get('http://localhost:3000')
208
300
 
209
- const result2 = await request('http://localhost:3000/hello')
301
+ mockPool.intercept({ path: '/foo', method: 'GET' }).reply(200, 'foo')
302
+ mockPool.intercept({ path: '/hello', method: 'GET' }).reply(200, 'hello')
210
303
 
211
- console.log('response received', result2.statusCode) // response received 200
304
+ const fooResult = await request('http://localhost:3000/foo')
305
+ for await (const data of fooResult.body) {
306
+ console.log('data', data.toString('utf8')) // data foo
307
+ }
212
308
 
213
- for await (const data of result2.body) {
309
+ const helloResult = await request('http://localhost:3000/hello')
310
+ for await (const data of helloResult.body) {
214
311
  console.log('data', data.toString('utf8')) // data hello
215
312
  }
216
313
  ```
217
314
 
218
- #### Example - Mocked request with query body, request headers and response headers and trailers
219
-
220
- ```js
315
+ ```mjs displayName="Match query, body, request headers; reply with headers and trailers"
221
316
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
222
317
 
223
318
  const mockAgent = new MockAgent()
@@ -238,12 +333,9 @@ mockPool.intercept({
238
333
  trailers: { 'Content-MD5': 'test' }
239
334
  })
240
335
 
241
- const {
242
- statusCode,
243
- headers,
244
- trailers,
245
- body
246
- } = await request('http://localhost:3000/foo?hello=there&see=ya', {
336
+ const { statusCode, headers, trailers, body } = await request(
337
+ 'http://localhost:3000/foo?hello=there&see=ya',
338
+ {
247
339
  method: 'POST',
248
340
  body: 'form1=data1&form2=data2',
249
341
  headers: {
@@ -251,21 +343,20 @@ const {
251
343
  'User-Agent': 'undici',
252
344
  Host: 'example.com'
253
345
  }
254
- })
346
+ }
347
+ )
255
348
 
256
349
  console.log('response received', statusCode) // response received 200
257
350
  console.log('headers', headers) // { 'content-type': 'application/json' }
258
351
 
259
352
  for await (const data of body) {
260
- console.log('data', data.toString('utf8')) // '{"foo":"bar"}'
353
+ console.log('data', data.toString('utf8')) // {"foo":"bar"}
261
354
  }
262
355
 
263
356
  console.log('trailers', trailers) // { 'content-md5': 'test' }
264
357
  ```
265
358
 
266
- #### Example - Mocked request using different matchers
267
-
268
- ```js
359
+ ```mjs displayName="Different matcher forms"
269
360
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
270
361
 
271
362
  const mockAgent = new MockAgent()
@@ -279,14 +370,11 @@ mockPool.intercept({
279
370
  body: (value) => value === 'form=data',
280
371
  headers: {
281
372
  'User-Agent': 'undici',
282
- Host: /^example.com$/
373
+ Host: /^example\.com$/
283
374
  }
284
375
  }).reply(200, 'foo')
285
376
 
286
- const {
287
- statusCode,
288
- body
289
- } = await request('http://localhost:3000/foo', {
377
+ const { statusCode, body } = await request('http://localhost:3000/foo', {
290
378
  method: 'GET',
291
379
  body: 'form=data',
292
380
  headers: {
@@ -303,9 +391,7 @@ for await (const data of body) {
303
391
  }
304
392
  ```
305
393
 
306
- #### Example - Mocked request with reply with a defined error
307
-
308
- ```js
394
+ ```mjs displayName="Reply with an error"
309
395
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
310
396
 
311
397
  const mockAgent = new MockAgent()
@@ -319,18 +405,13 @@ mockPool.intercept({
319
405
  }).replyWithError(new Error('kaboom'))
320
406
 
321
407
  try {
322
- await request('http://localhost:3000/foo', {
323
- method: 'GET'
324
- })
408
+ await request('http://localhost:3000/foo', { method: 'GET' })
325
409
  } catch (error) {
326
- console.error(error) // TypeError: fetch failed
327
- console.error(error.cause) // Error: kaboom
410
+ console.error(error.message) // kaboom
328
411
  }
329
412
  ```
330
413
 
331
- #### Example - Mocked request with defaultReplyHeaders
332
-
333
- ```js
414
+ ```mjs displayName="Default reply headers"
334
415
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
335
416
 
336
417
  const mockAgent = new MockAgent()
@@ -338,10 +419,8 @@ setGlobalDispatcher(mockAgent)
338
419
 
339
420
  const mockPool = mockAgent.get('http://localhost:3000')
340
421
 
341
- mockPool.intercept({
342
- path: '/foo',
343
- method: 'GET'
344
- }).defaultReplyHeaders({ foo: 'bar' })
422
+ mockPool.intercept({ path: '/foo', method: 'GET' })
423
+ .defaultReplyHeaders({ foo: 'bar' })
345
424
  .reply(200, 'foo')
346
425
 
347
426
  const { headers } = await request('http://localhost:3000/foo')
@@ -349,9 +428,7 @@ const { headers } = await request('http://localhost:3000/foo')
349
428
  console.log('headers', headers) // headers { foo: 'bar' }
350
429
  ```
351
430
 
352
- #### Example - Mocked request with defaultReplyTrailers
353
-
354
- ```js
431
+ ```mjs displayName="Default reply trailers"
355
432
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
356
433
 
357
434
  const mockAgent = new MockAgent()
@@ -359,10 +436,8 @@ setGlobalDispatcher(mockAgent)
359
436
 
360
437
  const mockPool = mockAgent.get('http://localhost:3000')
361
438
 
362
- mockPool.intercept({
363
- path: '/foo',
364
- method: 'GET'
365
- }).defaultReplyTrailers({ foo: 'bar' })
439
+ mockPool.intercept({ path: '/foo', method: 'GET' })
440
+ .defaultReplyTrailers({ foo: 'bar' })
366
441
  .reply(200, 'foo')
367
442
 
368
443
  const { trailers } = await request('http://localhost:3000/foo')
@@ -370,9 +445,7 @@ const { trailers } = await request('http://localhost:3000/foo')
370
445
  console.log('trailers', trailers) // trailers { foo: 'bar' }
371
446
  ```
372
447
 
373
- #### Example - Mocked request with automatic content-length calculation
374
-
375
- ```js
448
+ ```mjs displayName="Automatic content-length"
376
449
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
377
450
 
378
451
  const mockAgent = new MockAgent()
@@ -380,19 +453,16 @@ setGlobalDispatcher(mockAgent)
380
453
 
381
454
  const mockPool = mockAgent.get('http://localhost:3000')
382
455
 
383
- mockPool.intercept({
384
- path: '/foo',
385
- method: 'GET'
386
- }).replyContentLength().reply(200, 'foo')
456
+ mockPool.intercept({ path: '/foo', method: 'GET' })
457
+ .replyContentLength()
458
+ .reply(200, 'foo')
387
459
 
388
460
  const { headers } = await request('http://localhost:3000/foo')
389
461
 
390
462
  console.log('headers', headers) // headers { 'content-length': '3' }
391
463
  ```
392
464
 
393
- #### Example - Mocked request with automatic content-length calculation on an object
394
-
395
- ```js
465
+ ```mjs displayName="Persisted reply"
396
466
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
397
467
 
398
468
  const mockAgent = new MockAgent()
@@ -400,19 +470,13 @@ setGlobalDispatcher(mockAgent)
400
470
 
401
471
  const mockPool = mockAgent.get('http://localhost:3000')
402
472
 
403
- mockPool.intercept({
404
- path: '/foo',
405
- method: 'GET'
406
- }).replyContentLength().reply(200, { foo: 'bar' })
473
+ mockPool.intercept({ path: '/foo', method: 'GET' }).reply(200, 'foo').persist()
407
474
 
408
- const { headers } = await request('http://localhost:3000/foo')
409
-
410
- console.log('headers', headers) // headers { 'content-length': '13' }
475
+ await request('http://localhost:3000/foo') // Matches and returns the mock
476
+ await request('http://localhost:3000/foo') // Matches again, indefinitely
411
477
  ```
412
478
 
413
- #### Example - Mocked request with persist enabled
414
-
415
- ```js
479
+ ```mjs displayName="Reply a fixed number of times"
416
480
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
417
481
 
418
482
  const mockAgent = new MockAgent()
@@ -420,57 +484,23 @@ setGlobalDispatcher(mockAgent)
420
484
 
421
485
  const mockPool = mockAgent.get('http://localhost:3000')
422
486
 
423
- mockPool.intercept({
424
- path: '/foo',
425
- method: 'GET'
426
- }).reply(200, 'foo').persist()
427
-
428
- const result1 = await request('http://localhost:3000/foo')
429
- // Will match and return mocked data
487
+ mockPool.intercept({ path: '/foo', method: 'GET' }).reply(200, 'foo').times(2)
430
488
 
431
- const result2 = await request('http://localhost:3000/foo')
432
- // Will match and return mocked data
433
-
434
- // Etc
489
+ await request('http://localhost:3000/foo') // Matches and returns the mock
490
+ await request('http://localhost:3000/foo') // Matches and returns the mock
491
+ await request('http://localhost:3000/foo') // No match; a real request is attempted
435
492
  ```
436
493
 
437
- #### Example - Mocked request with times enabled
438
-
439
- ```js
494
+ ```mjs displayName="Match the path with a function"
440
495
  import { MockAgent, setGlobalDispatcher, request } from 'undici'
496
+ import querystring from 'node:querystring'
441
497
 
442
498
  const mockAgent = new MockAgent()
443
499
  setGlobalDispatcher(mockAgent)
444
500
 
445
501
  const mockPool = mockAgent.get('http://localhost:3000')
446
502
 
447
- mockPool.intercept({
448
- path: '/foo',
449
- method: 'GET'
450
- }).reply(200, 'foo').times(2)
451
-
452
- const result1 = await request('http://localhost:3000/foo')
453
- // Will match and return mocked data
454
-
455
- const result2 = await request('http://localhost:3000/foo')
456
- // Will match and return mocked data
457
-
458
- const result3 = await request('http://localhost:3000/foo')
459
- // Will not match and make attempt a real request
460
- ```
461
-
462
- #### Example - Mocked request with path callback
463
-
464
- ```js
465
- import { MockAgent, setGlobalDispatcher, request } from 'undici'
466
- import querystring from 'querystring'
467
-
468
- const mockAgent = new MockAgent()
469
- setGlobalDispatcher(mockAgent)
470
-
471
- const mockPool = mockAgent.get('http://localhost:3000')
472
-
473
- const matchPath = requestPath => {
503
+ const matchPath = (requestPath) => {
474
504
  const [pathname, search] = requestPath.split('?')
475
505
  const requestQuery = querystring.parse(search)
476
506
 
@@ -478,31 +508,26 @@ const matchPath = requestPath => {
478
508
  return false
479
509
  }
480
510
 
481
- if (!Object.keys(requestQuery).includes('foo') || requestQuery.foo !== 'bar') {
482
- return false
483
- }
484
-
485
- return true
511
+ return requestQuery.foo === 'bar'
486
512
  }
487
513
 
488
- mockPool.intercept({
489
- path: matchPath,
490
- method: 'GET'
491
- }).reply(200, 'foo')
514
+ mockPool.intercept({ path: matchPath, method: 'GET' }).reply(200, 'foo')
492
515
 
493
- const result = await request('http://localhost:3000/foo?foo=bar')
494
- // Will match and return mocked data
516
+ await request('http://localhost:3000/foo?foo=bar') // Matches and returns the mock
495
517
  ```
496
518
 
497
- ### `MockPool.close()`
519
+ ### `mockPool.close()`
498
520
 
499
- Closes the mock pool and de-registers from associated MockAgent.
521
+ <!-- YAML
522
+ added: v4.0.0
523
+ -->
500
524
 
501
- Returns: `Promise<void>`
525
+ * Returns: {Promise} Fulfills with `undefined` once the mock pool is closed.
502
526
 
503
- #### Example - clean up after tests are complete
527
+ Closes the mock pool, gracefully waiting for any enqueued requests to complete,
528
+ and removes it from the associated [`MockAgent`][].
504
529
 
505
- ```js
530
+ ```mjs
506
531
  import { MockAgent } from 'undici'
507
532
 
508
533
  const mockAgent = new MockAgent()
@@ -511,31 +536,45 @@ const mockPool = mockAgent.get('http://localhost:3000')
511
536
  await mockPool.close()
512
537
  ```
513
538
 
514
- ### `MockPool.dispatch(options, handlers)`
539
+ ### `mockPool.dispatch(options, handlers)`
540
+
541
+ <!-- YAML
542
+ added: v4.0.0
543
+ -->
544
+
545
+ * `options` {DispatchOptions} The request options.
546
+ * `handlers` {DispatchHandler} The handlers invoked over the request lifecycle.
547
+ * Returns: {boolean} `false` if the dispatcher is busy and the caller should
548
+ wait before dispatching further requests, otherwise `true`.
515
549
 
516
- Implements [`Dispatcher.dispatch(options, handlers)`](/docs/docs/api/Dispatcher.md#dispatcherdispatchoptions-handler).
550
+ Dispatches a request, matching it against the registered mocks. This override of
551
+ [`dispatcher.dispatch(options, handlers)`][] is what drives the mocking
552
+ behaviour for every higher-level method such as `request`.
517
553
 
518
- ### `MockPool.request(options[, callback])`
554
+ ### `mockPool.request(options[, callback])`
519
555
 
520
- See [`Dispatcher.request(options [, callback])`](/docs/docs/api/Dispatcher.md#dispatcherrequestoptions-callback).
556
+ <!-- YAML
557
+ added: v4.0.0
558
+ -->
521
559
 
522
- #### Example - MockPool request
560
+ * `options` {DispatchOptions}
561
+ * `callback` {Function} (optional) Invoked with the response when no `Promise`
562
+ is requested.
563
+ * Returns: {Promise} Fulfills with the mocked response when no `callback` is
564
+ provided.
523
565
 
524
- ```js
566
+ Performs a request and resolves it against the registered mocks. Inherited from
567
+ [`Pool`][]; see [`dispatcher.request(options[, callback])`][] for the full
568
+ parameter and return value documentation.
569
+
570
+ ```mjs
525
571
  import { MockAgent } from 'undici'
526
572
 
527
573
  const mockAgent = new MockAgent()
528
-
529
574
  const mockPool = mockAgent.get('http://localhost:3000')
530
- mockPool.intercept({
531
- path: '/foo',
532
- method: 'GET',
533
- }).reply(200, 'foo')
575
+ mockPool.intercept({ path: '/foo', method: 'GET' }).reply(200, 'foo')
534
576
 
535
- const {
536
- statusCode,
537
- body
538
- } = await mockPool.request({
577
+ const { statusCode, body } = await mockPool.request({
539
578
  origin: 'http://localhost:3000',
540
579
  path: '/foo',
541
580
  method: 'GET'
@@ -548,8 +587,32 @@ for await (const data of body) {
548
587
  }
549
588
  ```
550
589
 
551
- ### `MockPool.cleanMocks()`
590
+ ### `mockPool.cleanMocks()`
591
+
592
+ <!-- YAML
593
+ added: v7.11.0
594
+ -->
595
+
596
+ * Returns: {undefined}
552
597
 
553
- This method cleans up all the prepared mocks.
598
+ Removes all registered interceptors from the mock pool. Pending mocks defined
599
+ before this call no longer match incoming requests.
600
+
601
+ ```mjs
602
+ import { MockAgent } from 'undici'
603
+
604
+ const mockAgent = new MockAgent()
605
+ const mockPool = mockAgent.get('http://localhost:3000')
606
+
607
+ mockPool.intercept({ path: '/foo' }).reply(200, 'foo')
608
+ mockPool.cleanMocks()
609
+ ```
554
610
 
555
- Returns: `void`
611
+ [`MockAgent`]: MockAgent.md#class-mockagent
612
+ [`MockClient`]: MockClient.md#class-mockclient
613
+ [`MockInterceptor`]: MockPool.md#return-mockinterceptor
614
+ [`MockScope`]: MockPool.md#return-mockscope
615
+ [`Pool`]: Pool.md#class-pool
616
+ [`dispatcher.dispatch(options, handlers)`]: Dispatcher.md#dispatcherdispatchoptions-handler
617
+ [`dispatcher.request(options[, callback])`]: Dispatcher.md#dispatcherrequestoptions-callback
618
+ [`mockAgent.get(origin)`]: MockAgent.md#mockagentgetorigin