@openclaw/slack 2026.7.2-beta.4 → 2026.7.2-beta.5

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 (607) hide show
  1. package/README.md +1 -1
  2. package/dist/{action-runtime-CFU52n4W.js → action-runtime-BO3HK_50.js} +5 -5
  3. package/dist/action-runtime.runtime-DbEcqEXC.js +2 -0
  4. package/dist/{actions-D51foiwR.js → actions-BkOaiDSX.js} +4 -4
  5. package/dist/{actions.runtime-BMJwtf5C.js → actions.runtime-Do-iOL51.js} +1 -1
  6. package/dist/api.js +12 -13
  7. package/dist/{approval-handler.runtime-3b4-wxMl.js → approval-handler.runtime-BAnGN7w0.js} +2 -2
  8. package/dist/{channel-Ds8NKvfr.js → channel-Cnrlie9S.js} +20 -32
  9. package/dist/channel-config-api.js +1 -1
  10. package/dist/channel-plugin-api.js +1 -1
  11. package/dist/{channel-type-DXkUajFP.js → channel-type-CPDX8EV-.js} +3 -3
  12. package/dist/{channel.setup-DOSTEDfA.js → channel.setup-DyZdLwUB.js} +4 -24
  13. package/dist/{setup-core-tPxMuFez.js → config-adapter-Bb8hn2tM.js} +38 -67
  14. package/dist/{config-schema-B4j4tCOI.js → config-schema-BajbuJGL.js} +0 -6
  15. package/dist/{directory-config-B08pm5ZT.js → directory-config-CeixfVuC.js} +1 -1
  16. package/dist/directory-contract-api.js +1 -1
  17. package/dist/{directory-live-DpPKzPrn.js → directory-live-CUwGPX2d.js} +2 -2
  18. package/dist/doctor-contract-CsGH1Dfc.js +158 -0
  19. package/dist/doctor-contract-api.js +1 -1
  20. package/dist/{group-policy-CdnQzQBI.js → group-policy-CthIXE2T.js} +27 -13
  21. package/dist/{message-tool-api-ByVyIVOh.js → message-tool-api-CvKoWYYQ.js} +0 -5
  22. package/dist/message-tool-api.js +1 -1
  23. package/dist/{monitor-CnB_WKvF.js → monitor-Cb5ZsOTY.js} +4 -4
  24. package/dist/{outbound-adapter-DuPz2HHt.js → outbound-adapter-sGrozuRg.js} +11 -68
  25. package/dist/{pipeline.runtime-5rRYZuX5.js → pipeline.runtime-mFCCSllA.js} +2094 -1953
  26. package/dist/{policy-C31RYSuT.js → policy-DVg6FyMP.js} +1 -1
  27. package/dist/{probe-CVRuArHA.js → probe-BhQTDVBQ.js} +50 -57
  28. package/dist/{provider-htuIJGFD.js → provider-PSppCU_K.js} +83 -65
  29. package/dist/{relay-source-Df9EaiTF.js → relay-source-D0mb_JBk.js} +1 -1
  30. package/dist/{replies-Cgr2Gli4.js → replies-BkPPM2Ri.js} +50 -13
  31. package/dist/{resolve-channels-DodP2TFx.js → resolve-channels-B3RlJKyV.js} +2 -2
  32. package/dist/{resolve-users-M9eF8891.js → resolve-users-DTm7PEMa.js} +2 -2
  33. package/dist/{rolldown-runtime-D7D4PA-g.js → rolldown-runtime-8H4AJuhK.js} +1 -0
  34. package/dist/{runtime-api-D5XYMMsf.js → runtime-api-jpn3vQ7e.js} +2 -2
  35. package/dist/runtime-api.js +10 -10
  36. package/dist/{scopes-CJRpHkDC.js → scopes-B2SqZ--4.js} +1 -1
  37. package/dist/{security-audit-Cz6erklv.js → security-audit-DR097212.js} +1 -1
  38. package/dist/security-contract-api.js +1 -1
  39. package/dist/{send-BZ1tPv7-.js → send-2IoDXPeB.js} +7 -21
  40. package/dist/{send.runtime-a2pilFor.js → send.runtime-BKd_PAEw.js} +1 -1
  41. package/dist/setup-plugin-api.js +1 -1
  42. package/dist/{setup-surface-wV-S1dE_.js → setup-surface-Dyam58nO.js} +8 -16
  43. package/dist/{shared-BfMskaMx.js → shared-g55DV75U.js} +14 -36
  44. package/dist/{slash-dispatch.runtime-lfeIsXTX.js → slash-dispatch.runtime-BRQbvn2e.js} +10 -9
  45. package/node_modules/@slack/bolt/dist/App.d.ts +4 -19
  46. package/node_modules/@slack/bolt/dist/App.d.ts.map +1 -1
  47. package/node_modules/@slack/bolt/dist/App.js +21 -40
  48. package/node_modules/@slack/bolt/dist/App.js.map +1 -1
  49. package/node_modules/@slack/bolt/dist/context/create-respond.d.ts +3 -3
  50. package/node_modules/@slack/bolt/dist/context/create-respond.d.ts.map +1 -1
  51. package/node_modules/@slack/bolt/dist/context/create-respond.js +13 -2
  52. package/node_modules/@slack/bolt/dist/context/create-respond.js.map +1 -1
  53. package/node_modules/@slack/bolt/dist/errors.d.ts +6 -8
  54. package/node_modules/@slack/bolt/dist/errors.d.ts.map +1 -1
  55. package/node_modules/@slack/bolt/dist/errors.js +11 -11
  56. package/node_modules/@slack/bolt/dist/errors.js.map +1 -1
  57. package/node_modules/@slack/bolt/dist/helpers.d.ts.map +1 -1
  58. package/node_modules/@slack/bolt/dist/helpers.js +1 -2
  59. package/node_modules/@slack/bolt/dist/helpers.js.map +1 -1
  60. package/node_modules/@slack/bolt/dist/index.d.ts +0 -1
  61. package/node_modules/@slack/bolt/dist/index.d.ts.map +1 -1
  62. package/node_modules/@slack/bolt/dist/index.js +1 -3
  63. package/node_modules/@slack/bolt/dist/index.js.map +1 -1
  64. package/node_modules/@slack/bolt/dist/receivers/AwsLambdaReceiver.d.ts +10 -1
  65. package/node_modules/@slack/bolt/dist/receivers/AwsLambdaReceiver.d.ts.map +1 -1
  66. package/node_modules/@slack/bolt/dist/receivers/AwsLambdaReceiver.js +5 -1
  67. package/node_modules/@slack/bolt/dist/receivers/AwsLambdaReceiver.js.map +1 -1
  68. package/node_modules/@slack/bolt/dist/receivers/HTTPModuleFunctions.d.ts.map +1 -1
  69. package/node_modules/@slack/bolt/dist/receivers/HTTPModuleFunctions.js +10 -14
  70. package/node_modules/@slack/bolt/dist/receivers/HTTPModuleFunctions.js.map +1 -1
  71. package/node_modules/@slack/bolt/dist/receivers/SocketModeFunctions.d.ts.map +1 -1
  72. package/node_modules/@slack/bolt/dist/receivers/SocketModeFunctions.js +1 -1
  73. package/node_modules/@slack/bolt/dist/receivers/SocketModeFunctions.js.map +1 -1
  74. package/node_modules/@slack/bolt/dist/receivers/SocketModeReceiver.d.ts +3 -1
  75. package/node_modules/@slack/bolt/dist/receivers/SocketModeReceiver.d.ts.map +1 -1
  76. package/node_modules/@slack/bolt/dist/receivers/SocketModeReceiver.js +2 -1
  77. package/node_modules/@slack/bolt/dist/receivers/SocketModeReceiver.js.map +1 -1
  78. package/node_modules/@slack/bolt/dist/types/actions/index.d.ts +2 -4
  79. package/node_modules/@slack/bolt/dist/types/actions/index.d.ts.map +1 -1
  80. package/node_modules/@slack/bolt/dist/types/actions/index.js +0 -2
  81. package/node_modules/@slack/bolt/dist/types/actions/index.js.map +1 -1
  82. package/node_modules/@slack/bolt/dist/types/events/index.d.ts +2 -0
  83. package/node_modules/@slack/bolt/dist/types/events/index.d.ts.map +1 -1
  84. package/node_modules/@slack/bolt/dist/types/utilities.d.ts +2 -2
  85. package/node_modules/@slack/bolt/dist/types/utilities.d.ts.map +1 -1
  86. package/node_modules/@slack/bolt/dist/types/view/index.d.ts +1 -31
  87. package/node_modules/@slack/bolt/dist/types/view/index.d.ts.map +1 -1
  88. package/node_modules/@slack/bolt/package.json +10 -11
  89. package/node_modules/@slack/logger/README.md +1 -1
  90. package/node_modules/@slack/logger/dist/index.js +17 -13
  91. package/node_modules/@slack/logger/dist/index.js.map +1 -1
  92. package/node_modules/@slack/logger/package.json +6 -7
  93. package/node_modules/@slack/oauth/README.md +1 -1
  94. package/node_modules/@slack/oauth/dist/errors.d.ts +25 -14
  95. package/node_modules/@slack/oauth/dist/errors.d.ts.map +1 -1
  96. package/node_modules/@slack/oauth/dist/errors.js +24 -33
  97. package/node_modules/@slack/oauth/dist/errors.js.map +1 -1
  98. package/node_modules/@slack/oauth/dist/install-provider.js +58 -16
  99. package/node_modules/@slack/oauth/dist/install-provider.js.map +1 -1
  100. package/node_modules/@slack/oauth/dist/installation-stores/file-store.js +4 -2
  101. package/node_modules/@slack/oauth/dist/installation-stores/file-store.js.map +1 -1
  102. package/node_modules/@slack/oauth/dist/installation-stores/memory-store.js +3 -16
  103. package/node_modules/@slack/oauth/dist/installation-stores/memory-store.js.map +1 -1
  104. package/node_modules/@slack/oauth/dist/state-stores/clear-state-store.js +2 -0
  105. package/node_modules/@slack/oauth/dist/state-stores/clear-state-store.js.map +1 -1
  106. package/node_modules/@slack/oauth/dist/state-stores/file-state-store.js +3 -0
  107. package/node_modules/@slack/oauth/dist/state-stores/file-state-store.js.map +1 -1
  108. package/node_modules/@slack/oauth/package.json +8 -9
  109. package/node_modules/@slack/socket-mode/README.md +1 -1
  110. package/node_modules/@slack/socket-mode/dist/package.json +21 -13
  111. package/node_modules/@slack/socket-mode/dist/src/SlackWebSocket.d.ts +14 -8
  112. package/node_modules/@slack/socket-mode/dist/src/SlackWebSocket.d.ts.map +1 -1
  113. package/node_modules/@slack/socket-mode/dist/src/SlackWebSocket.js +136 -48
  114. package/node_modules/@slack/socket-mode/dist/src/SlackWebSocket.js.map +1 -1
  115. package/node_modules/@slack/socket-mode/dist/src/SocketModeClient.d.ts +12 -6
  116. package/node_modules/@slack/socket-mode/dist/src/SocketModeClient.d.ts.map +1 -1
  117. package/node_modules/@slack/socket-mode/dist/src/SocketModeClient.js +87 -38
  118. package/node_modules/@slack/socket-mode/dist/src/SocketModeClient.js.map +1 -1
  119. package/node_modules/@slack/socket-mode/dist/src/SocketModeOptions.d.ts +31 -1
  120. package/node_modules/@slack/socket-mode/dist/src/SocketModeOptions.d.ts.map +1 -1
  121. package/node_modules/@slack/socket-mode/dist/src/errors.d.ts +31 -37
  122. package/node_modules/@slack/socket-mode/dist/src/errors.d.ts.map +1 -1
  123. package/node_modules/@slack/socket-mode/dist/src/errors.js +43 -47
  124. package/node_modules/@slack/socket-mode/dist/src/errors.js.map +1 -1
  125. package/node_modules/@slack/socket-mode/dist/src/index.d.ts +2 -2
  126. package/node_modules/@slack/socket-mode/dist/src/index.d.ts.map +1 -1
  127. package/node_modules/@slack/socket-mode/dist/src/index.js +7 -1
  128. package/node_modules/@slack/socket-mode/dist/src/index.js.map +1 -1
  129. package/node_modules/@slack/socket-mode/package.json +21 -13
  130. package/node_modules/@slack/types/README.md +1 -1
  131. package/node_modules/@slack/types/dist/events/app.d.ts +28 -0
  132. package/node_modules/@slack/types/dist/events/app.d.ts.map +1 -1
  133. package/node_modules/@slack/types/dist/events/index.d.ts +2 -2
  134. package/node_modules/@slack/types/dist/events/index.d.ts.map +1 -1
  135. package/node_modules/@slack/types/dist/events/index.js.map +1 -1
  136. package/node_modules/@slack/types/dist/events/message.d.ts +2 -0
  137. package/node_modules/@slack/types/dist/events/message.d.ts.map +1 -1
  138. package/node_modules/@slack/types/package.json +3 -3
  139. package/node_modules/@slack/web-api/README.md +1 -1
  140. package/node_modules/@slack/web-api/dist/WebClient.d.ts +42 -71
  141. package/node_modules/@slack/web-api/dist/WebClient.d.ts.map +1 -1
  142. package/node_modules/@slack/web-api/dist/WebClient.js +180 -248
  143. package/node_modules/@slack/web-api/dist/WebClient.js.map +1 -1
  144. package/node_modules/@slack/web-api/dist/chat-stream.js +37 -22
  145. package/node_modules/@slack/web-api/dist/chat-stream.js.map +1 -1
  146. package/node_modules/@slack/web-api/dist/errors.d.ts +32 -51
  147. package/node_modules/@slack/web-api/dist/errors.d.ts.map +1 -1
  148. package/node_modules/@slack/web-api/dist/errors.js +64 -55
  149. package/node_modules/@slack/web-api/dist/errors.js.map +1 -1
  150. package/node_modules/@slack/web-api/dist/file-upload.d.ts +0 -9
  151. package/node_modules/@slack/web-api/dist/file-upload.d.ts.map +1 -1
  152. package/node_modules/@slack/web-api/dist/file-upload.js +41 -46
  153. package/node_modules/@slack/web-api/dist/file-upload.js.map +1 -1
  154. package/node_modules/@slack/web-api/dist/index.d.ts +2 -2
  155. package/node_modules/@slack/web-api/dist/index.d.ts.map +1 -1
  156. package/node_modules/@slack/web-api/dist/index.js +8 -1
  157. package/node_modules/@slack/web-api/dist/index.js.map +1 -1
  158. package/node_modules/@slack/web-api/dist/methods.d.ts +2 -38
  159. package/node_modules/@slack/web-api/dist/methods.d.ts.map +1 -1
  160. package/node_modules/@slack/web-api/dist/methods.js +1347 -1384
  161. package/node_modules/@slack/web-api/dist/methods.js.map +1 -1
  162. package/node_modules/@slack/web-api/dist/types/request/files.d.ts +0 -1
  163. package/node_modules/@slack/web-api/dist/types/request/files.d.ts.map +1 -1
  164. package/node_modules/@slack/web-api/dist/types/request/index.d.ts +3 -3
  165. package/node_modules/@slack/web-api/dist/types/request/index.d.ts.map +1 -1
  166. package/node_modules/@slack/web-api/dist/types/request/manifest.d.ts +66 -1
  167. package/node_modules/@slack/web-api/dist/types/request/manifest.d.ts.map +1 -1
  168. package/node_modules/@slack/web-api/dist/types/request/rtm.d.ts +1 -14
  169. package/node_modules/@slack/web-api/dist/types/request/rtm.d.ts.map +1 -1
  170. package/node_modules/@slack/web-api/dist/types/request/workflows.d.ts +0 -29
  171. package/node_modules/@slack/web-api/dist/types/request/workflows.d.ts.map +1 -1
  172. package/node_modules/@slack/web-api/package.json +6 -10
  173. package/node_modules/@types/retry/LICENSE +21 -21
  174. package/node_modules/@types/retry/README.md +5 -4
  175. package/node_modules/@types/retry/index.d.ts +20 -13
  176. package/node_modules/@types/retry/package.json +9 -11
  177. package/node_modules/{es-set-tostringtag → undici}/LICENSE +1 -1
  178. package/node_modules/undici/README.md +741 -0
  179. package/node_modules/undici/docs/docs/api/Agent.md +84 -0
  180. package/node_modules/undici/docs/docs/api/BalancedPool.md +99 -0
  181. package/node_modules/undici/docs/docs/api/CacheStorage.md +30 -0
  182. package/node_modules/undici/docs/docs/api/CacheStore.md +164 -0
  183. package/node_modules/undici/docs/docs/api/Client.md +288 -0
  184. package/node_modules/undici/docs/docs/api/ClientStats.md +27 -0
  185. package/node_modules/undici/docs/docs/api/Connector.md +115 -0
  186. package/node_modules/undici/docs/docs/api/ContentType.md +57 -0
  187. package/node_modules/undici/docs/docs/api/Cookies.md +128 -0
  188. package/node_modules/undici/docs/docs/api/Debug.md +62 -0
  189. package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +315 -0
  190. package/node_modules/undici/docs/docs/api/Dispatcher.md +1392 -0
  191. package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +159 -0
  192. package/node_modules/undici/docs/docs/api/Errors.md +49 -0
  193. package/node_modules/undici/docs/docs/api/EventSource.md +45 -0
  194. package/node_modules/undici/docs/docs/api/Fetch.md +60 -0
  195. package/node_modules/undici/docs/docs/api/GlobalInstallation.md +139 -0
  196. package/node_modules/undici/docs/docs/api/H2CClient.md +263 -0
  197. package/node_modules/undici/docs/docs/api/MockAgent.md +603 -0
  198. package/node_modules/undici/docs/docs/api/MockCallHistory.md +197 -0
  199. package/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +43 -0
  200. package/node_modules/undici/docs/docs/api/MockClient.md +81 -0
  201. package/node_modules/undici/docs/docs/api/MockErrors.md +12 -0
  202. package/node_modules/undici/docs/docs/api/MockPool.md +555 -0
  203. package/node_modules/undici/docs/docs/api/Pool.md +84 -0
  204. package/node_modules/undici/docs/docs/api/PoolStats.md +35 -0
  205. package/node_modules/undici/docs/docs/api/ProxyAgent.md +229 -0
  206. package/node_modules/undici/docs/docs/api/RedirectHandler.md +93 -0
  207. package/node_modules/undici/docs/docs/api/RetryAgent.md +50 -0
  208. package/node_modules/undici/docs/docs/api/RetryHandler.md +118 -0
  209. package/node_modules/undici/docs/docs/api/RoundRobinPool.md +145 -0
  210. package/node_modules/undici/docs/docs/api/SnapshotAgent.md +616 -0
  211. package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +275 -0
  212. package/node_modules/undici/docs/docs/api/Util.md +25 -0
  213. package/node_modules/undici/docs/docs/api/WebSocket.md +141 -0
  214. package/node_modules/undici/docs/docs/api/api-lifecycle.md +91 -0
  215. package/node_modules/undici/docs/docs/best-practices/client-certificate.md +64 -0
  216. package/node_modules/undici/docs/docs/best-practices/crawling.md +58 -0
  217. package/node_modules/undici/docs/docs/best-practices/mocking-request.md +190 -0
  218. package/node_modules/undici/docs/docs/best-practices/proxy.md +127 -0
  219. package/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +224 -0
  220. package/node_modules/undici/docs/docs/best-practices/writing-tests.md +63 -0
  221. package/node_modules/undici/index-fetch.js +65 -0
  222. package/node_modules/undici/index.d.ts +3 -0
  223. package/node_modules/undici/index.js +234 -0
  224. package/node_modules/undici/lib/api/abort-signal.js +59 -0
  225. package/node_modules/undici/lib/api/api-connect.js +110 -0
  226. package/node_modules/undici/lib/api/api-pipeline.js +252 -0
  227. package/node_modules/undici/lib/api/api-request.js +214 -0
  228. package/node_modules/undici/lib/api/api-stream.js +209 -0
  229. package/node_modules/undici/lib/api/api-upgrade.js +111 -0
  230. package/node_modules/undici/lib/api/index.js +7 -0
  231. package/node_modules/undici/lib/api/readable.js +580 -0
  232. package/node_modules/undici/lib/cache/memory-cache-store.js +234 -0
  233. package/node_modules/undici/lib/cache/sqlite-cache-store.js +461 -0
  234. package/node_modules/undici/lib/core/connect.js +153 -0
  235. package/node_modules/undici/lib/core/constants.js +143 -0
  236. package/node_modules/undici/lib/core/diagnostics.js +227 -0
  237. package/node_modules/undici/lib/core/errors.js +477 -0
  238. package/node_modules/undici/lib/core/request.js +453 -0
  239. package/node_modules/undici/lib/core/socks5-client.js +422 -0
  240. package/node_modules/undici/lib/core/socks5-utils.js +212 -0
  241. package/node_modules/undici/lib/core/symbols.js +75 -0
  242. package/node_modules/undici/lib/core/tree.js +160 -0
  243. package/node_modules/undici/lib/core/util.js +992 -0
  244. package/node_modules/undici/lib/dispatcher/agent.js +158 -0
  245. package/node_modules/undici/lib/dispatcher/balanced-pool.js +219 -0
  246. package/node_modules/undici/lib/dispatcher/client-h1.js +1722 -0
  247. package/node_modules/undici/lib/dispatcher/client-h2.js +995 -0
  248. package/node_modules/undici/lib/dispatcher/client.js +664 -0
  249. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +184 -0
  250. package/node_modules/undici/lib/dispatcher/dispatcher.js +48 -0
  251. package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +146 -0
  252. package/node_modules/undici/lib/dispatcher/fixed-queue.js +135 -0
  253. package/node_modules/undici/lib/dispatcher/h2c-client.js +51 -0
  254. package/node_modules/undici/lib/dispatcher/pool-base.js +214 -0
  255. package/node_modules/undici/lib/dispatcher/pool.js +118 -0
  256. package/node_modules/undici/lib/dispatcher/proxy-agent.js +319 -0
  257. package/node_modules/undici/lib/dispatcher/retry-agent.js +35 -0
  258. package/node_modules/undici/lib/dispatcher/round-robin-pool.js +137 -0
  259. package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +260 -0
  260. package/node_modules/undici/lib/encoding/index.js +33 -0
  261. package/node_modules/undici/lib/global.js +59 -0
  262. package/node_modules/undici/lib/handler/cache-handler.js +578 -0
  263. package/node_modules/undici/lib/handler/cache-revalidation-handler.js +124 -0
  264. package/node_modules/undici/lib/handler/decorator-handler.js +67 -0
  265. package/node_modules/undici/lib/handler/deduplication-handler.js +460 -0
  266. package/node_modules/undici/lib/handler/redirect-handler.js +238 -0
  267. package/node_modules/undici/lib/handler/retry-handler.js +394 -0
  268. package/node_modules/undici/lib/handler/unwrap-handler.js +106 -0
  269. package/node_modules/undici/lib/handler/wrap-handler.js +105 -0
  270. package/node_modules/undici/lib/interceptor/cache.js +495 -0
  271. package/node_modules/undici/lib/interceptor/decompress.js +259 -0
  272. package/node_modules/undici/lib/interceptor/deduplicate.js +117 -0
  273. package/node_modules/undici/lib/interceptor/dns.js +571 -0
  274. package/node_modules/undici/lib/interceptor/dump.js +112 -0
  275. package/node_modules/undici/lib/interceptor/redirect.js +21 -0
  276. package/node_modules/undici/lib/interceptor/response-error.js +95 -0
  277. package/node_modules/undici/lib/interceptor/retry.js +19 -0
  278. package/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  279. package/node_modules/undici/lib/llhttp/constants.d.ts +195 -0
  280. package/node_modules/undici/lib/llhttp/constants.js +531 -0
  281. package/node_modules/undici/lib/llhttp/llhttp-wasm.js +15 -0
  282. package/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +15 -0
  283. package/node_modules/undici/lib/llhttp/utils.d.ts +2 -0
  284. package/node_modules/undici/lib/llhttp/utils.js +12 -0
  285. package/node_modules/undici/lib/mock/mock-agent.js +232 -0
  286. package/node_modules/undici/lib/mock/mock-call-history.js +248 -0
  287. package/node_modules/undici/lib/mock/mock-client.js +68 -0
  288. package/node_modules/undici/lib/mock/mock-errors.js +29 -0
  289. package/node_modules/undici/lib/mock/mock-interceptor.js +209 -0
  290. package/node_modules/undici/lib/mock/mock-pool.js +68 -0
  291. package/node_modules/undici/lib/mock/mock-symbols.js +32 -0
  292. package/node_modules/undici/lib/mock/mock-utils.js +486 -0
  293. package/node_modules/undici/lib/mock/pending-interceptors-formatter.js +43 -0
  294. package/node_modules/undici/lib/mock/snapshot-agent.js +353 -0
  295. package/node_modules/undici/lib/mock/snapshot-recorder.js +588 -0
  296. package/node_modules/undici/lib/mock/snapshot-utils.js +158 -0
  297. package/node_modules/undici/lib/util/cache.js +414 -0
  298. package/node_modules/undici/lib/util/date.js +653 -0
  299. package/node_modules/undici/lib/util/promise.js +28 -0
  300. package/node_modules/undici/lib/util/runtime-features.js +124 -0
  301. package/node_modules/undici/lib/util/stats.js +32 -0
  302. package/node_modules/undici/lib/util/timers.js +425 -0
  303. package/node_modules/undici/lib/web/cache/cache.js +864 -0
  304. package/node_modules/undici/lib/web/cache/cachestorage.js +152 -0
  305. package/node_modules/undici/lib/web/cache/util.js +45 -0
  306. package/node_modules/undici/lib/web/cookies/constants.js +12 -0
  307. package/node_modules/undici/lib/web/cookies/index.js +199 -0
  308. package/node_modules/undici/lib/web/cookies/parse.js +314 -0
  309. package/node_modules/undici/lib/web/cookies/util.js +282 -0
  310. package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +399 -0
  311. package/node_modules/undici/lib/web/eventsource/eventsource.js +501 -0
  312. package/node_modules/undici/lib/web/eventsource/util.js +29 -0
  313. package/node_modules/{has-tostringtag → undici/lib/web/fetch}/LICENSE +1 -1
  314. package/node_modules/undici/lib/web/fetch/body.js +509 -0
  315. package/node_modules/undici/lib/web/fetch/constants.js +131 -0
  316. package/node_modules/undici/lib/web/fetch/data-url.js +596 -0
  317. package/node_modules/undici/lib/web/fetch/formdata-parser.js +586 -0
  318. package/node_modules/undici/lib/web/fetch/formdata.js +259 -0
  319. package/node_modules/undici/lib/web/fetch/global.js +40 -0
  320. package/node_modules/undici/lib/web/fetch/headers.js +719 -0
  321. package/node_modules/undici/lib/web/fetch/index.js +2413 -0
  322. package/node_modules/undici/lib/web/fetch/request.js +1115 -0
  323. package/node_modules/undici/lib/web/fetch/response.js +641 -0
  324. package/node_modules/undici/lib/web/fetch/util.js +1522 -0
  325. package/node_modules/undici/lib/web/infra/index.js +229 -0
  326. package/node_modules/undici/lib/web/subresource-integrity/Readme.md +9 -0
  327. package/node_modules/undici/lib/web/subresource-integrity/subresource-integrity.js +307 -0
  328. package/node_modules/undici/lib/web/webidl/index.js +1006 -0
  329. package/node_modules/undici/lib/web/websocket/connection.js +329 -0
  330. package/node_modules/undici/lib/web/websocket/constants.js +126 -0
  331. package/node_modules/undici/lib/web/websocket/events.js +331 -0
  332. package/node_modules/undici/lib/web/websocket/frame.js +133 -0
  333. package/node_modules/undici/lib/web/websocket/permessage-deflate.js +100 -0
  334. package/node_modules/undici/lib/web/websocket/receiver.js +507 -0
  335. package/node_modules/undici/lib/web/websocket/sender.js +109 -0
  336. package/node_modules/undici/lib/web/websocket/stream/websocketerror.js +104 -0
  337. package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +498 -0
  338. package/node_modules/undici/lib/web/websocket/util.js +347 -0
  339. package/node_modules/undici/lib/web/websocket/websocket.js +758 -0
  340. package/node_modules/undici/package.json +152 -0
  341. package/node_modules/undici/scripts/strip-comments.js +10 -0
  342. package/node_modules/undici/types/README.md +6 -0
  343. package/node_modules/undici/types/agent.d.ts +32 -0
  344. package/node_modules/undici/types/api.d.ts +43 -0
  345. package/node_modules/undici/types/balanced-pool.d.ts +30 -0
  346. package/node_modules/undici/types/cache-interceptor.d.ts +179 -0
  347. package/node_modules/undici/types/cache.d.ts +36 -0
  348. package/node_modules/undici/types/client-stats.d.ts +15 -0
  349. package/node_modules/undici/types/client.d.ts +139 -0
  350. package/node_modules/undici/types/connector.d.ts +36 -0
  351. package/node_modules/undici/types/content-type.d.ts +21 -0
  352. package/node_modules/undici/types/cookies.d.ts +30 -0
  353. package/node_modules/undici/types/diagnostics-channel.d.ts +74 -0
  354. package/node_modules/undici/types/dispatcher.d.ts +275 -0
  355. package/node_modules/undici/types/env-http-proxy-agent.d.ts +22 -0
  356. package/node_modules/undici/types/errors.d.ts +177 -0
  357. package/node_modules/undici/types/eventsource.d.ts +66 -0
  358. package/node_modules/undici/types/fetch.d.ts +231 -0
  359. package/node_modules/undici/types/formdata.d.ts +114 -0
  360. package/node_modules/undici/types/global-dispatcher.d.ts +9 -0
  361. package/node_modules/undici/types/global-origin.d.ts +7 -0
  362. package/node_modules/undici/types/h2c-client.d.ts +73 -0
  363. package/node_modules/undici/types/handlers.d.ts +14 -0
  364. package/node_modules/undici/types/header.d.ts +160 -0
  365. package/node_modules/undici/types/index.d.ts +91 -0
  366. package/node_modules/undici/types/interceptors.d.ts +80 -0
  367. package/node_modules/undici/types/mock-agent.d.ts +68 -0
  368. package/node_modules/undici/types/mock-call-history.d.ts +111 -0
  369. package/node_modules/undici/types/mock-client.d.ts +27 -0
  370. package/node_modules/undici/types/mock-errors.d.ts +12 -0
  371. package/node_modules/undici/types/mock-interceptor.d.ts +94 -0
  372. package/node_modules/undici/types/mock-pool.d.ts +27 -0
  373. package/node_modules/undici/types/patch.d.ts +29 -0
  374. package/node_modules/undici/types/pool-stats.d.ts +19 -0
  375. package/node_modules/undici/types/pool.d.ts +41 -0
  376. package/node_modules/undici/types/proxy-agent.d.ts +29 -0
  377. package/node_modules/undici/types/readable.d.ts +68 -0
  378. package/node_modules/undici/types/retry-agent.d.ts +8 -0
  379. package/node_modules/undici/types/retry-handler.d.ts +125 -0
  380. package/node_modules/undici/types/round-robin-pool.d.ts +41 -0
  381. package/node_modules/undici/types/snapshot-agent.d.ts +109 -0
  382. package/node_modules/undici/types/socks5-proxy-agent.d.ts +25 -0
  383. package/node_modules/undici/types/util.d.ts +18 -0
  384. package/node_modules/undici/types/utility.d.ts +7 -0
  385. package/node_modules/undici/types/webidl.d.ts +347 -0
  386. package/node_modules/undici/types/websocket.d.ts +188 -0
  387. package/openclaw.plugin.json +8 -38
  388. package/package.json +11 -8
  389. package/dist/action-runtime.runtime-9-17zvKH.js +0 -2
  390. package/dist/doctor-contract-U6oVntbM.js +0 -173
  391. package/dist/interactive-replies-C3ffk6oN.js +0 -197
  392. package/dist/interactive-replies-api.js +0 -2
  393. package/node_modules/@slack/bolt/dist/WorkflowStep.d.ts +0 -159
  394. package/node_modules/@slack/bolt/dist/WorkflowStep.d.ts.map +0 -1
  395. package/node_modules/@slack/bolt/dist/WorkflowStep.js +0 -217
  396. package/node_modules/@slack/bolt/dist/WorkflowStep.js.map +0 -1
  397. package/node_modules/@slack/bolt/dist/types/actions/workflow-step-edit.d.ts +0 -49
  398. package/node_modules/@slack/bolt/dist/types/actions/workflow-step-edit.d.ts.map +0 -1
  399. package/node_modules/@slack/bolt/dist/types/actions/workflow-step-edit.js +0 -3
  400. package/node_modules/@slack/bolt/dist/types/actions/workflow-step-edit.js.map +0 -1
  401. package/node_modules/@types/ws/LICENSE +0 -21
  402. package/node_modules/@types/ws/README.md +0 -15
  403. package/node_modules/@types/ws/index.d.mts +0 -451
  404. package/node_modules/@types/ws/index.d.ts +0 -445
  405. package/node_modules/@types/ws/package.json +0 -72
  406. package/node_modules/agent-base/README.md +0 -145
  407. package/node_modules/agent-base/dist/src/index.d.ts +0 -78
  408. package/node_modules/agent-base/dist/src/index.js +0 -203
  409. package/node_modules/agent-base/dist/src/index.js.map +0 -1
  410. package/node_modules/agent-base/dist/src/promisify.d.ts +0 -4
  411. package/node_modules/agent-base/dist/src/promisify.js +0 -18
  412. package/node_modules/agent-base/dist/src/promisify.js.map +0 -1
  413. package/node_modules/agent-base/package.json +0 -64
  414. package/node_modules/agent-base/src/index.ts +0 -345
  415. package/node_modules/agent-base/src/promisify.ts +0 -33
  416. package/node_modules/asynckit/LICENSE +0 -21
  417. package/node_modules/asynckit/README.md +0 -233
  418. package/node_modules/asynckit/bench.js +0 -76
  419. package/node_modules/asynckit/index.js +0 -6
  420. package/node_modules/asynckit/lib/abort.js +0 -29
  421. package/node_modules/asynckit/lib/async.js +0 -34
  422. package/node_modules/asynckit/lib/defer.js +0 -26
  423. package/node_modules/asynckit/lib/iterate.js +0 -75
  424. package/node_modules/asynckit/lib/readable_asynckit.js +0 -91
  425. package/node_modules/asynckit/lib/readable_parallel.js +0 -25
  426. package/node_modules/asynckit/lib/readable_serial.js +0 -25
  427. package/node_modules/asynckit/lib/readable_serial_ordered.js +0 -29
  428. package/node_modules/asynckit/lib/state.js +0 -37
  429. package/node_modules/asynckit/lib/streamify.js +0 -141
  430. package/node_modules/asynckit/lib/terminator.js +0 -29
  431. package/node_modules/asynckit/package.json +0 -63
  432. package/node_modules/asynckit/parallel.js +0 -43
  433. package/node_modules/asynckit/serial.js +0 -17
  434. package/node_modules/asynckit/serialOrdered.js +0 -75
  435. package/node_modules/asynckit/stream.js +0 -21
  436. package/node_modules/axios/CHANGELOG.md +0 -1872
  437. package/node_modules/axios/LICENSE +0 -7
  438. package/node_modules/axios/MIGRATION_GUIDE.md +0 -877
  439. package/node_modules/axios/README.md +0 -2559
  440. package/node_modules/axios/dist/axios.js +0 -5249
  441. package/node_modules/axios/dist/axios.min.js +0 -5
  442. package/node_modules/axios/dist/axios.min.js.map +0 -1
  443. package/node_modules/axios/dist/browser/axios.cjs +0 -5146
  444. package/node_modules/axios/dist/esm/axios.js +0 -5167
  445. package/node_modules/axios/dist/esm/axios.min.js +0 -3
  446. package/node_modules/axios/dist/esm/axios.min.js.map +0 -1
  447. package/node_modules/axios/dist/node/axios.cjs +0 -5996
  448. package/node_modules/axios/index.d.cts +0 -738
  449. package/node_modules/axios/index.d.ts +0 -755
  450. package/node_modules/axios/index.js +0 -45
  451. package/node_modules/axios/lib/adapters/README.md +0 -36
  452. package/node_modules/axios/lib/adapters/adapters.js +0 -132
  453. package/node_modules/axios/lib/adapters/fetch.js +0 -643
  454. package/node_modules/axios/lib/adapters/http.js +0 -1417
  455. package/node_modules/axios/lib/adapters/xhr.js +0 -228
  456. package/node_modules/axios/lib/axios.js +0 -89
  457. package/node_modules/axios/lib/cancel/CancelToken.js +0 -135
  458. package/node_modules/axios/lib/cancel/CanceledError.js +0 -22
  459. package/node_modules/axios/lib/cancel/isCancel.js +0 -5
  460. package/node_modules/axios/lib/core/Axios.js +0 -283
  461. package/node_modules/axios/lib/core/AxiosError.js +0 -188
  462. package/node_modules/axios/lib/core/AxiosHeaders.js +0 -351
  463. package/node_modules/axios/lib/core/InterceptorManager.js +0 -72
  464. package/node_modules/axios/lib/core/README.md +0 -8
  465. package/node_modules/axios/lib/core/buildFullPath.js +0 -50
  466. package/node_modules/axios/lib/core/dispatchRequest.js +0 -89
  467. package/node_modules/axios/lib/core/mergeConfig.js +0 -159
  468. package/node_modules/axios/lib/core/settle.js +0 -27
  469. package/node_modules/axios/lib/core/transformData.js +0 -28
  470. package/node_modules/axios/lib/defaults/index.js +0 -177
  471. package/node_modules/axios/lib/defaults/transitional.js +0 -10
  472. package/node_modules/axios/lib/env/README.md +0 -3
  473. package/node_modules/axios/lib/env/classes/FormData.js +0 -2
  474. package/node_modules/axios/lib/env/data.js +0 -1
  475. package/node_modules/axios/lib/helpers/AxiosTransformStream.js +0 -156
  476. package/node_modules/axios/lib/helpers/AxiosURLSearchParams.js +0 -59
  477. package/node_modules/axios/lib/helpers/Http2Sessions.js +0 -119
  478. package/node_modules/axios/lib/helpers/HttpStatusCode.js +0 -77
  479. package/node_modules/axios/lib/helpers/README.md +0 -7
  480. package/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js +0 -29
  481. package/node_modules/axios/lib/helpers/bind.js +0 -14
  482. package/node_modules/axios/lib/helpers/buildURL.js +0 -69
  483. package/node_modules/axios/lib/helpers/callbackify.js +0 -18
  484. package/node_modules/axios/lib/helpers/combineURLs.js +0 -15
  485. package/node_modules/axios/lib/helpers/composeSignals.js +0 -57
  486. package/node_modules/axios/lib/helpers/cookies.js +0 -64
  487. package/node_modules/axios/lib/helpers/deprecatedMethod.js +0 -31
  488. package/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +0 -105
  489. package/node_modules/axios/lib/helpers/formDataToJSON.js +0 -119
  490. package/node_modules/axios/lib/helpers/formDataToStream.js +0 -119
  491. package/node_modules/axios/lib/helpers/fromDataURI.js +0 -68
  492. package/node_modules/axios/lib/helpers/isAbsoluteURL.js +0 -19
  493. package/node_modules/axios/lib/helpers/isAxiosError.js +0 -14
  494. package/node_modules/axios/lib/helpers/isURLSameOrigin.js +0 -16
  495. package/node_modules/axios/lib/helpers/null.js +0 -2
  496. package/node_modules/axios/lib/helpers/parseHeaders.js +0 -69
  497. package/node_modules/axios/lib/helpers/parseProtocol.js +0 -6
  498. package/node_modules/axios/lib/helpers/progressEventReducer.js +0 -54
  499. package/node_modules/axios/lib/helpers/readBlob.js +0 -15
  500. package/node_modules/axios/lib/helpers/resolveConfig.js +0 -119
  501. package/node_modules/axios/lib/helpers/sanitizeHeaderValue.js +0 -60
  502. package/node_modules/axios/lib/helpers/shouldBypassProxy.js +0 -210
  503. package/node_modules/axios/lib/helpers/speedometer.js +0 -55
  504. package/node_modules/axios/lib/helpers/spread.js +0 -28
  505. package/node_modules/axios/lib/helpers/throttle.js +0 -44
  506. package/node_modules/axios/lib/helpers/toFormData.js +0 -285
  507. package/node_modules/axios/lib/helpers/toURLEncodedForm.js +0 -19
  508. package/node_modules/axios/lib/helpers/trackStream.js +0 -89
  509. package/node_modules/axios/lib/helpers/validator.js +0 -112
  510. package/node_modules/axios/lib/platform/browser/classes/Blob.js +0 -3
  511. package/node_modules/axios/lib/platform/browser/classes/FormData.js +0 -3
  512. package/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js +0 -4
  513. package/node_modules/axios/lib/platform/browser/index.js +0 -13
  514. package/node_modules/axios/lib/platform/common/utils.js +0 -52
  515. package/node_modules/axios/lib/platform/index.js +0 -7
  516. package/node_modules/axios/lib/platform/node/classes/FormData.js +0 -3
  517. package/node_modules/axios/lib/platform/node/classes/URLSearchParams.js +0 -4
  518. package/node_modules/axios/lib/platform/node/index.js +0 -37
  519. package/node_modules/axios/lib/utils.js +0 -1017
  520. package/node_modules/axios/package.json +0 -201
  521. package/node_modules/combined-stream/License +0 -19
  522. package/node_modules/combined-stream/Readme.md +0 -138
  523. package/node_modules/combined-stream/lib/combined_stream.js +0 -208
  524. package/node_modules/combined-stream/package.json +0 -25
  525. package/node_modules/delayed-stream/.npmignore +0 -1
  526. package/node_modules/delayed-stream/License +0 -19
  527. package/node_modules/delayed-stream/Makefile +0 -7
  528. package/node_modules/delayed-stream/Readme.md +0 -141
  529. package/node_modules/delayed-stream/lib/delayed_stream.js +0 -107
  530. package/node_modules/delayed-stream/package.json +0 -27
  531. package/node_modules/es-set-tostringtag/.eslintrc +0 -13
  532. package/node_modules/es-set-tostringtag/.nycrc +0 -9
  533. package/node_modules/es-set-tostringtag/CHANGELOG.md +0 -67
  534. package/node_modules/es-set-tostringtag/README.md +0 -53
  535. package/node_modules/es-set-tostringtag/index.d.ts +0 -10
  536. package/node_modules/es-set-tostringtag/index.js +0 -35
  537. package/node_modules/es-set-tostringtag/package.json +0 -78
  538. package/node_modules/es-set-tostringtag/test/index.js +0 -85
  539. package/node_modules/es-set-tostringtag/tsconfig.json +0 -9
  540. package/node_modules/follow-redirects/LICENSE +0 -18
  541. package/node_modules/follow-redirects/README.md +0 -157
  542. package/node_modules/follow-redirects/debug.js +0 -15
  543. package/node_modules/follow-redirects/http.js +0 -1
  544. package/node_modules/follow-redirects/https.js +0 -1
  545. package/node_modules/follow-redirects/index.js +0 -709
  546. package/node_modules/follow-redirects/package.json +0 -58
  547. package/node_modules/form-data/CHANGELOG.md +0 -669
  548. package/node_modules/form-data/License +0 -19
  549. package/node_modules/form-data/README.md +0 -350
  550. package/node_modules/form-data/index.d.ts +0 -51
  551. package/node_modules/form-data/lib/browser.js +0 -4
  552. package/node_modules/form-data/lib/form_data.js +0 -514
  553. package/node_modules/form-data/lib/populate.js +0 -10
  554. package/node_modules/form-data/node_modules/mime-db/HISTORY.md +0 -507
  555. package/node_modules/form-data/node_modules/mime-db/LICENSE +0 -23
  556. package/node_modules/form-data/node_modules/mime-db/README.md +0 -100
  557. package/node_modules/form-data/node_modules/mime-db/db.json +0 -8519
  558. package/node_modules/form-data/node_modules/mime-db/index.js +0 -12
  559. package/node_modules/form-data/node_modules/mime-db/package.json +0 -60
  560. package/node_modules/form-data/node_modules/mime-types/HISTORY.md +0 -397
  561. package/node_modules/form-data/node_modules/mime-types/LICENSE +0 -23
  562. package/node_modules/form-data/node_modules/mime-types/README.md +0 -113
  563. package/node_modules/form-data/node_modules/mime-types/index.js +0 -188
  564. package/node_modules/form-data/node_modules/mime-types/package.json +0 -44
  565. package/node_modules/form-data/package.json +0 -83
  566. package/node_modules/has-tostringtag/.eslintrc +0 -5
  567. package/node_modules/has-tostringtag/.github/FUNDING.yml +0 -12
  568. package/node_modules/has-tostringtag/.nycrc +0 -13
  569. package/node_modules/has-tostringtag/CHANGELOG.md +0 -42
  570. package/node_modules/has-tostringtag/README.md +0 -46
  571. package/node_modules/has-tostringtag/index.d.ts +0 -3
  572. package/node_modules/has-tostringtag/index.js +0 -8
  573. package/node_modules/has-tostringtag/package.json +0 -108
  574. package/node_modules/has-tostringtag/shams.d.ts +0 -3
  575. package/node_modules/has-tostringtag/shams.js +0 -8
  576. package/node_modules/has-tostringtag/test/index.js +0 -21
  577. package/node_modules/has-tostringtag/test/shams/core-js.js +0 -31
  578. package/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js +0 -30
  579. package/node_modules/has-tostringtag/test/tests.js +0 -15
  580. package/node_modules/has-tostringtag/tsconfig.json +0 -49
  581. package/node_modules/https-proxy-agent/README.md +0 -137
  582. package/node_modules/https-proxy-agent/dist/agent.d.ts +0 -30
  583. package/node_modules/https-proxy-agent/dist/agent.js +0 -177
  584. package/node_modules/https-proxy-agent/dist/agent.js.map +0 -1
  585. package/node_modules/https-proxy-agent/dist/index.d.ts +0 -23
  586. package/node_modules/https-proxy-agent/dist/index.js +0 -14
  587. package/node_modules/https-proxy-agent/dist/index.js.map +0 -1
  588. package/node_modules/https-proxy-agent/dist/parse-proxy-response.d.ts +0 -7
  589. package/node_modules/https-proxy-agent/dist/parse-proxy-response.js +0 -66
  590. package/node_modules/https-proxy-agent/dist/parse-proxy-response.js.map +0 -1
  591. package/node_modules/https-proxy-agent/package.json +0 -56
  592. package/node_modules/is-electron/LICENSE +0 -21
  593. package/node_modules/is-electron/README.md +0 -25
  594. package/node_modules/is-electron/index.d.ts +0 -2
  595. package/node_modules/is-electron/index.js +0 -21
  596. package/node_modules/is-electron/package.json +0 -34
  597. package/node_modules/is-stream/index.d.ts +0 -79
  598. package/node_modules/is-stream/index.js +0 -28
  599. package/node_modules/is-stream/license +0 -9
  600. package/node_modules/is-stream/package.json +0 -42
  601. package/node_modules/is-stream/readme.md +0 -60
  602. package/node_modules/proxy-from-env/LICENSE +0 -20
  603. package/node_modules/proxy-from-env/README.md +0 -163
  604. package/node_modules/proxy-from-env/index.cjs +0 -105
  605. package/node_modules/proxy-from-env/index.js +0 -103
  606. package/node_modules/proxy-from-env/package.json +0 -43
  607. package/npm-shrinkwrap.json +0 -1467
@@ -32,37 +32,6 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
- var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
36
- var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
37
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
38
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
39
- return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
40
- function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
41
- function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
42
- function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
43
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
44
- function fulfill(value) { resume("next", value); }
45
- function reject(value) { resume("throw", value); }
46
- function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
47
- };
48
- var __asyncValues = (this && this.__asyncValues) || function (o) {
49
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
50
- var m = o[Symbol.asyncIterator], i;
51
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
52
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
53
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
54
- };
55
- var __rest = (this && this.__rest) || function (s, e) {
56
- var t = {};
57
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
58
- t[p] = s[p];
59
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
60
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
61
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
62
- t[p[i]] = s[p[i]];
63
- }
64
- return t;
65
- };
66
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
67
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
68
37
  };
@@ -73,10 +42,6 @@ const node_path_1 = require("node:path");
73
42
  const node_querystring_1 = require("node:querystring");
74
43
  const node_util_1 = require("node:util");
75
44
  const node_zlib_1 = __importDefault(require("node:zlib"));
76
- const axios_1 = __importDefault(require("axios"));
77
- const form_data_1 = __importDefault(require("form-data"));
78
- const is_electron_1 = __importDefault(require("is-electron"));
79
- const is_stream_1 = __importDefault(require("is-stream"));
80
45
  const p_queue_1 = __importDefault(require("p-queue"));
81
46
  const p_retry_1 = __importStar(require("p-retry"));
82
47
  const chat_stream_1 = require("./chat-stream");
@@ -90,20 +55,6 @@ const retry_policies_1 = require("./retry-policies");
90
55
  /*
91
56
  * Helpers
92
57
  */
93
- // Props on axios default headers object to ignore when retrieving full list of actual headers sent in any HTTP requests
94
- const axiosHeaderPropsToIgnore = [
95
- 'delete',
96
- 'common',
97
- 'get',
98
- 'put',
99
- 'head',
100
- 'post',
101
- 'link',
102
- 'patch',
103
- 'purge',
104
- 'unlink',
105
- 'options',
106
- ];
107
58
  const defaultFilename = 'Untitled';
108
59
  const defaultPageSize = 200;
109
60
  const noopPageReducer = () => undefined;
@@ -119,13 +70,57 @@ var WebClientEvent;
119
70
  * a convenience wrapper for calling the {@link WebClient#apiCall} method using the method name as the first parameter.
120
71
  */
121
72
  class WebClient extends methods_1.Methods {
73
+ /**
74
+ * The base URL for reaching Slack's Web API. Consider changing this value for testing purposes.
75
+ */
76
+ slackApiUrl;
77
+ /**
78
+ * Authentication and authorization token for accessing Slack Web API (usually begins with `xoxp` or `xoxb`)
79
+ */
80
+ token;
81
+ /**
82
+ * Configuration for retry operations. See {@link https://github.com/tim-kos/node-retry|node-retry} for more details.
83
+ */
84
+ retryConfig;
85
+ /**
86
+ * Queue of requests in which a maximum of {@link WebClientOptions.maxRequestConcurrency} can concurrently be
87
+ * in-flight.
88
+ */
89
+ requestQueue;
90
+ /**
91
+ * The fetch function used for HTTP requests
92
+ */
93
+ fetchFn;
94
+ /**
95
+ * Request timeout in milliseconds
96
+ */
97
+ timeout;
98
+ /**
99
+ * Default headers sent with every request
100
+ */
101
+ defaultHeaders;
102
+ /**
103
+ * Preference for immediately rejecting API calls which result in a rate-limited response
104
+ */
105
+ rejectRateLimitedCalls;
106
+ /**
107
+ * The name used to prefix all logging generated from this object
108
+ */
109
+ static loggerName = 'WebClient';
110
+ /**
111
+ * This object's logger instance
112
+ */
113
+ logger;
114
+ /**
115
+ * This object's teamId value
116
+ */
117
+ teamId;
118
+ allowAbsoluteUrls;
122
119
  /**
123
120
  * @param token - An API token to authenticate/authorize with Slack (usually start with `xoxp`, `xoxb`)
124
121
  * @param {Object} [webClientOptions] - Configuration options.
125
- * @param {Function} [webClientOptions.requestInterceptor] - An interceptor to mutate outgoing requests. See {@link https://axios-http.com/docs/interceptors Axios interceptors}
126
- * @param {Function} [webClientOptions.adapter] - An adapter to allow custom handling of requests. Useful if you would like to use a pre-configured http client. See {@link https://github.com/axios/axios/blob/v1.x/README.md?plain=1#L586 Axios adapter}
127
122
  */
128
- constructor(token, { slackApiUrl = 'https://slack.com/api/', logger = undefined, logLevel = undefined, maxRequestConcurrency = 100, retryConfig = retry_policies_1.tenRetriesInAboutThirtyMinutes, agent = undefined, tls = undefined, timeout = 0, rejectRateLimitedCalls = false, headers = {}, teamId = undefined, allowAbsoluteUrls = true, attachOriginalToWebAPIRequestError = true, requestInterceptor = undefined, adapter = undefined, } = {}) {
123
+ constructor(token, { slackApiUrl = 'https://slack.com/api/', logger = undefined, logLevel = undefined, maxRequestConcurrency = 100, retryConfig = retry_policies_1.tenRetriesInAboutThirtyMinutes, fetch = undefined, timeout = 0, rejectRateLimitedCalls = false, headers = {}, teamId = undefined, allowAbsoluteUrls = true, } = {}) {
129
124
  super();
130
125
  this.token = token;
131
126
  this.slackApiUrl = slackApiUrl;
@@ -134,12 +129,9 @@ class WebClient extends methods_1.Methods {
134
129
  }
135
130
  this.retryConfig = retryConfig;
136
131
  this.requestQueue = new p_queue_1.default({ concurrency: maxRequestConcurrency });
137
- // NOTE: may want to filter the keys to only those acceptable for TLS options
138
- this.tlsConfig = tls !== undefined ? tls : {};
139
132
  this.rejectRateLimitedCalls = rejectRateLimitedCalls;
140
133
  this.teamId = teamId;
141
134
  this.allowAbsoluteUrls = allowAbsoluteUrls;
142
- this.attachOriginalToWebAPIRequestError = attachOriginalToWebAPIRequestError;
143
135
  // Logging
144
136
  if (typeof logger !== 'undefined') {
145
137
  this.logger = logger;
@@ -148,39 +140,19 @@ class WebClient extends methods_1.Methods {
148
140
  }
149
141
  }
150
142
  else {
151
- this.logger = (0, logger_1.getLogger)(WebClient.loggerName, logLevel !== null && logLevel !== void 0 ? logLevel : logger_1.LogLevel.INFO, logger);
143
+ this.logger = (0, logger_1.getLogger)(WebClient.loggerName, logLevel ?? logger_1.LogLevel.INFO, logger);
152
144
  }
153
145
  if (this.token && !headers.Authorization)
154
146
  headers.Authorization = `Bearer ${this.token}`;
155
- this.axios = axios_1.default.create({
156
- adapter: adapter ? (config) => adapter(Object.assign(Object.assign({}, config), { adapter: undefined })) : undefined,
157
- timeout,
158
- baseURL: this.slackApiUrl,
159
- headers: (0, is_electron_1.default)() ? headers : Object.assign({ 'User-Agent': (0, instrument_1.getUserAgent)() }, headers),
160
- httpAgent: agent,
161
- httpsAgent: agent,
162
- validateStatus: () => true, // all HTTP status codes should result in a resolved promise (as opposed to only 2xx)
163
- maxRedirects: 0,
164
- // disabling axios' automatic proxy support:
165
- // axios would read from envvars to configure a proxy automatically, but it doesn't support TLS destinations.
166
- // for compatibility with https://api.slack.com, and for a larger set of possible proxies (SOCKS or other
167
- // protocols), users of this package should use the `agent` option to configure a proxy.
168
- proxy: false,
169
- });
170
- // serializeApiCallData will always determine the appropriate content-type
171
- this.axios.defaults.headers.post['Content-Type'] = undefined;
172
- // request interceptors have reversed execution order
173
- // see: https://github.com/axios/axios/blob/v1.x/test/specs/interceptors.spec.js#L88
174
- if (requestInterceptor) {
175
- this.axios.interceptors.request.use(requestInterceptor, null);
176
- }
177
- this.axios.interceptors.request.use(this.serializeApiCallData.bind(this), null);
147
+ this.fetchFn = fetch ?? globalThis.fetch;
148
+ this.timeout = timeout;
149
+ this.defaultHeaders = { 'User-Agent': (0, instrument_1.getUserAgent)(), Accept: 'application/json', ...headers };
178
150
  this.logger.debug('initialized');
179
151
  }
180
152
  /**
181
153
  * Generic method for calling a Web API method
182
154
  * @param method - the Web API method to call {@link https://docs.slack.dev/reference/methods}
183
- * @param options - options
155
+ * @param options - arguments for the Web API method
184
156
  */
185
157
  async apiCall(method, options = {}) {
186
158
  this.logger.debug(`apiCall('${method}') start`);
@@ -190,7 +162,6 @@ class WebClient extends methods_1.Methods {
190
162
  if (typeof options === 'string' || typeof options === 'number' || typeof options === 'boolean') {
191
163
  throw new TypeError(`Expected an options argument but instead received a ${typeof options}`);
192
164
  }
193
- (0, file_upload_1.warnIfNotUsingFilesUploadV2)(method, this.logger);
194
165
  // @ts-expect-error insufficient overlap between Record and FilesUploadV2Arguments
195
166
  if (method === 'files.uploadV2')
196
167
  return this.filesUploadV2(options);
@@ -198,9 +169,12 @@ class WebClient extends methods_1.Methods {
198
169
  if (options.token)
199
170
  headers.Authorization = `Bearer ${options.token}`;
200
171
  const url = this.deriveRequestUrl(method);
201
- const response = await this.makeRequest(url, Object.assign({ team_id: this.teamId }, options), headers);
172
+ const response = await this.makeRequest(url, {
173
+ team_id: this.teamId,
174
+ ...options,
175
+ }, headers);
202
176
  const result = await this.buildResult(response);
203
- this.logger.debug(`http request result: ${JSON.stringify(result)}`);
177
+ this.logger.debug(`http request result: ${JSON.stringify(redact(result))}`);
204
178
  // log warnings in response metadata
205
179
  if (result.response_metadata !== undefined && result.response_metadata.warnings !== undefined) {
206
180
  result.response_metadata.warnings.forEach(this.logger.warn.bind(this.logger));
@@ -228,11 +202,11 @@ class WebClient extends methods_1.Methods {
228
202
  // If result's content is gzip, "ok" property is not returned with successful response
229
203
  // TODO: look into simplifying this code block to only check for the second condition
230
204
  // if an { ok: false } body applies for all API errors
231
- if (!result.ok && response.headers['content-type'] !== 'application/gzip') {
232
- throw (0, errors_1.platformErrorFromResult)(result);
205
+ if (!result.ok && response.headers.get('content-type') !== 'application/gzip') {
206
+ throw new errors_1.WebAPIPlatformError(result);
233
207
  }
234
208
  if ('ok' in result && result.ok === false) {
235
- throw (0, errors_1.platformErrorFromResult)(result);
209
+ throw new errors_1.WebAPIPlatformError(result);
236
210
  }
237
211
  this.logger.debug(`apiCall('${method}') end`);
238
212
  return result;
@@ -246,24 +220,22 @@ class WebClient extends methods_1.Methods {
246
220
  }
247
221
  return defaultPageSize;
248
222
  })();
249
- function generatePages() {
250
- return __asyncGenerator(this, arguments, function* generatePages_1() {
251
- // when result is undefined, that signals that the first of potentially many calls has not yet been made
252
- let result;
253
- // paginationOptions stores pagination options not already stored in the options argument
254
- let paginationOptions = {
255
- limit: pageSize,
256
- };
257
- if (options !== undefined && options.cursor !== undefined) {
258
- paginationOptions.cursor = options.cursor;
259
- }
260
- // NOTE: test for the situation where you're resuming a pagination using and existing cursor
261
- while (result === undefined || paginationOptions !== undefined) {
262
- result = yield __await(this.apiCall(method, Object.assign(options !== undefined ? options : {}, paginationOptions)));
263
- yield yield __await(result);
264
- paginationOptions = paginationOptionsForNextPage(result, pageSize);
265
- }
266
- });
223
+ async function* generatePages() {
224
+ // when result is undefined, that signals that the first of potentially many calls has not yet been made
225
+ let result;
226
+ // paginationOptions stores pagination options not already stored in the options argument
227
+ let paginationOptions = {
228
+ limit: pageSize,
229
+ };
230
+ if (options !== undefined && options.cursor !== undefined) {
231
+ paginationOptions.cursor = options.cursor;
232
+ }
233
+ // NOTE: test for the situation where you're resuming a pagination using and existing cursor
234
+ while (result === undefined || paginationOptions !== undefined) {
235
+ result = await this.apiCall(method, Object.assign(options !== undefined ? options : {}, paginationOptions));
236
+ yield result;
237
+ paginationOptions = paginationOptionsForNextPage(result, pageSize);
238
+ }
267
239
  }
268
240
  if (shouldStop === undefined) {
269
241
  return generatePages.call(this);
@@ -275,7 +247,6 @@ class WebClient extends methods_1.Methods {
275
247
  // This is done primarily because in order to satisfy the type system, we need a variable that is typed as A
276
248
  // (shown as accumulator before), but before the first iteration all we have is a variable typed A | undefined.
277
249
  // Unrolling the first iteration allows us to deal with undefined as a special case.
278
- var _a, e_1, _b, _c;
279
250
  const pageIterator = generatePages.call(this);
280
251
  const firstIteratorResult = await pageIterator.next(undefined);
281
252
  // Assumption: there will always be at least one result in a paginated API request
@@ -286,25 +257,13 @@ class WebClient extends methods_1.Methods {
286
257
  if (shouldStop(firstPage)) {
287
258
  return accumulator;
288
259
  }
289
- try {
290
- // Continue iteration
291
- for (var _d = true, pageIterator_1 = __asyncValues(pageIterator), pageIterator_1_1; pageIterator_1_1 = await pageIterator_1.next(), _a = pageIterator_1_1.done, !_a; _d = true) {
292
- _c = pageIterator_1_1.value;
293
- _d = false;
294
- const page = _c;
295
- accumulator = pageReducer(accumulator, page, index);
296
- if (shouldStop(page)) {
297
- return accumulator;
298
- }
299
- index += 1;
300
- }
301
- }
302
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
303
- finally {
304
- try {
305
- if (!_d && !_a && (_b = pageIterator_1.return)) await _b.call(pageIterator_1);
260
+ // Continue iteration
261
+ for await (const page of pageIterator) {
262
+ accumulator = pageReducer(accumulator, page, index);
263
+ if (shouldStop(page)) {
264
+ return accumulator;
306
265
  }
307
- finally { if (e_1) throw e_1.error; }
266
+ index += 1;
308
267
  }
309
268
  return accumulator;
310
269
  })();
@@ -336,7 +295,7 @@ class WebClient extends methods_1.Methods {
336
295
  * @see {@link https://docs.slack.dev/reference/methods/chat.stopStream}
337
296
  */
338
297
  chatStream(params) {
339
- const { buffer_size } = params, args = __rest(params, ["buffer_size"]);
298
+ const { buffer_size, ...args } = params;
340
299
  const options = {
341
300
  buffer_size,
342
301
  };
@@ -421,7 +380,8 @@ class WebClient extends methods_1.Methods {
421
380
  if (uploadRes.status !== 200) {
422
381
  return Promise.reject(Error(`Failed to upload file (id:${file_id}, filename: ${filename})`));
423
382
  }
424
- const returnData = { ok: true, body: uploadRes.data };
383
+ const responseBody = await uploadRes.text();
384
+ const returnData = { ok: true, body: responseBody };
425
385
  return Promise.resolve(returnData);
426
386
  }
427
387
  return Promise.reject(Error(`No upload url found for file (id: ${file_id}, filename: ${filename}`));
@@ -447,49 +407,42 @@ class WebClient extends methods_1.Methods {
447
407
  * Low-level function to make a single API request. handles queuing, retries, and http-level errors
448
408
  */
449
409
  async makeRequest(url, body, headers = {}) {
450
- // TODO: better input types - remove any
451
410
  const task = () => this.requestQueue.add(async () => {
411
+ // apps.event.authorizations.list will reject HTTP requests that send token in the body
412
+ // TODO: consider applying this change to all methods - though that will require thorough integration testing
413
+ if (url.endsWith('/apps.event.authorizations.list')) {
414
+ body.token = undefined;
415
+ }
416
+ this.logger.debug(`http request url: ${url}`);
417
+ this.logger.debug(`http request body: ${JSON.stringify(redact(body))}`);
418
+ const { serializedBody, contentHeaders } = this.serializeBody(body);
419
+ const allHeaders = { ...this.defaultHeaders, ...contentHeaders, ...headers };
420
+ this.logger.debug(`http request headers: ${JSON.stringify(redact(allHeaders))}`);
421
+ const signal = this.timeout > 0 ? AbortSignal.timeout(this.timeout) : undefined;
452
422
  try {
453
- // biome-ignore lint/suspicious/noExplicitAny: TODO: type this
454
- const config = Object.assign({ headers }, this.tlsConfig);
455
- // admin.analytics.getFile returns a binary response
456
- // To be able to parse it, it should be read as an ArrayBuffer
457
- if (url.endsWith('admin.analytics.getFile')) {
458
- config.responseType = 'arraybuffer';
459
- }
460
- // apps.event.authorizations.list will reject HTTP requests that send token in the body
461
- // TODO: consider applying this change to all methods - though that will require thorough integration testing
462
- if (url.endsWith('apps.event.authorizations.list')) {
463
- body.token = undefined;
464
- }
465
- this.logger.debug(`http request url: ${url}`);
466
- this.logger.debug(`http request body: ${JSON.stringify(redact(body))}`);
467
- // compile all headers - some set by default under the hood by axios - that will be sent along
468
- let allHeaders = Object.keys(this.axios.defaults.headers).reduce((acc, cur) => {
469
- if (!axiosHeaderPropsToIgnore.includes(cur)) {
470
- acc[cur] = this.axios.defaults.headers[cur];
471
- }
472
- return acc;
473
- }, {});
474
- allHeaders = Object.assign(Object.assign(Object.assign({}, this.axios.defaults.headers.common), allHeaders), headers);
475
- this.logger.debug(`http request headers: ${JSON.stringify(redact(allHeaders))}`);
476
- const response = await this.axios.post(url, body, config);
423
+ const response = await this.fetchFn(url, {
424
+ method: 'POST',
425
+ headers: allHeaders,
426
+ body: serializedBody,
427
+ redirect: 'error',
428
+ signal,
429
+ });
477
430
  this.logger.debug('http response received');
478
431
  if (response.status === 429) {
479
432
  const retrySec = parseRetryHeaders(response);
480
433
  if (retrySec !== undefined) {
481
434
  this.emit(WebClientEvent.RATE_LIMITED, retrySec, { url, body });
482
435
  if (this.rejectRateLimitedCalls) {
483
- throw new p_retry_1.AbortError((0, errors_1.rateLimitedErrorWithDelay)(retrySec));
436
+ throw new p_retry_1.AbortError(new errors_1.WebAPIRateLimitedError(retrySec));
484
437
  }
485
438
  this.logger.info(`API Call failed due to rate limiting. Will retry in ${retrySec} seconds.`);
486
439
  // pause the request queue and then delay the rejection by the amount of time in the retry header
487
440
  this.requestQueue.pause();
488
441
  // NOTE: if there was a way to introspect the current RetryOperation and know what the next timeout
489
- // would be, then we could subtract that time from the following delay, knowing that it the next
490
- // attempt still wouldn't occur until after the rate-limit header has specified. an even better
442
+ // would be, then we could subtract that time from the following delay, knowing that the next
443
+ // attempt still wouldn't occur until after the rate-limit header has specified. An even better
491
444
  // solution would be to subtract the time from only the timeout of this next attempt of the
492
- // RetryOperation. this would result in the staying paused for the entire duration specified in the
445
+ // RetryOperation. This would result in staying paused for the entire duration specified in the
493
446
  // header, yet this operation not having to pay the timeout cost in addition to that.
494
447
  await (0, helpers_1.default)(retrySec * 1000);
495
448
  // resume the request queue and throw a non-abort error to signal a retry
@@ -498,26 +451,27 @@ class WebClient extends methods_1.Methods {
498
451
  throw new Error(`A rate limit was exceeded (url: ${url}, retry-after: ${retrySec})`);
499
452
  }
500
453
  // TODO: turn this into some CodedError
501
- throw new p_retry_1.AbortError(new Error(`Retry header did not contain a valid timeout (url: ${url}, retry-after header: ${response.headers['retry-after']})`));
454
+ throw new p_retry_1.AbortError(new Error(`Retry header did not contain a valid timeout (url: ${url}, retry-after header: ${response.headers.get('retry-after')})`));
502
455
  }
503
456
  // Slack's Web API doesn't use meaningful status codes besides 429 and 200
504
457
  if (response.status !== 200) {
505
- throw (0, errors_1.httpErrorFromResponse)(response);
458
+ const responseBody = await response.text();
459
+ throw new errors_1.WebAPIHTTPError(response.status, response.statusText, Object.fromEntries(response.headers.entries()), responseBody);
506
460
  }
507
461
  return response;
508
462
  }
509
463
  catch (error) {
510
- // To make this compatible with tsd, casting here instead of `catch (error: any)`
511
- // biome-ignore lint/suspicious/noExplicitAny: errors can be anything
512
- const e = error;
513
- this.logger.warn('http request failed', e.message);
514
- if (e.request) {
515
- throw (0, errors_1.requestErrorWithOriginal)(e, this.attachOriginalToWebAPIRequestError);
464
+ if (error instanceof p_retry_1.AbortError) {
465
+ throw error;
466
+ }
467
+ if (error instanceof errors_1.SlackError) {
468
+ throw error;
516
469
  }
517
- throw error;
470
+ const message = error instanceof Error ? error.message : String(error);
471
+ this.logger.warn('http request failed', message);
472
+ throw new errors_1.WebAPIRequestError(error instanceof Error ? error : new Error(String(error)));
518
473
  }
519
474
  });
520
- // biome-ignore lint/suspicious/noExplicitAny: http responses can be anything
521
475
  return (0, p_retry_1.default)(task, this.retryConfig);
522
476
  }
523
477
  /**
@@ -529,19 +483,15 @@ class WebClient extends methods_1.Methods {
529
483
  if (isAbsoluteURL && this.allowAbsoluteUrls) {
530
484
  return url;
531
485
  }
532
- return `${this.axios.getUri() + url}`;
486
+ return `${this.slackApiUrl}${url}`;
533
487
  }
534
488
  /**
535
- * Transforms options (a simple key-value object) into an acceptable value for a body. This can be either
536
- * a string, used when posting with a content-type of url-encoded. Or, it can be a readable stream, used
537
- * when the options contain a binary (a stream or a buffer) and the upload should be done with content-type
538
- * multipart/form-data.
539
- * @param config - The Axios request configuration object
489
+ * Transforms a key-value object into a serialized body suitable for fetch.
490
+ * Flattens complex objects into JSON-encoded strings, detects binary content,
491
+ * and returns either a FormData (for binary uploads) or a URL-encoded string,
492
+ * along with any content-type headers that should be set.
540
493
  */
541
- serializeApiCallData(config) {
542
- const { data, headers } = config;
543
- // The following operation both flattens complex objects into a JSON-encoded strings and searches the values for
544
- // binary content
494
+ serializeBody(data) {
545
495
  let containsBinaryData = false;
546
496
  // biome-ignore lint/suspicious/noExplicitAny: HTTP request data can be anything
547
497
  const flattened = Object.entries(data).map(([key, value]) => {
@@ -549,7 +499,7 @@ class WebClient extends methods_1.Methods {
549
499
  return [];
550
500
  }
551
501
  let serializedValue = value;
552
- if (Buffer.isBuffer(value) || (0, is_stream_1.default)(value)) {
502
+ if (Buffer.isBuffer(value)) {
553
503
  containsBinaryData = true;
554
504
  }
555
505
  else if (typeof value !== 'string' && typeof value !== 'number' && typeof value !== 'boolean') {
@@ -562,55 +512,41 @@ class WebClient extends methods_1.Methods {
562
512
  // A body with binary content should be serialized as multipart/form-data
563
513
  if (containsBinaryData) {
564
514
  this.logger.debug('Request arguments contain binary data');
565
- const form = flattened.reduce((frm, [key, value]) => {
566
- if (Buffer.isBuffer(value) || (0, is_stream_1.default)(value)) {
567
- const opts = {};
568
- opts.filename = (() => {
569
- // attempt to find filename from `value`. adapted from:
570
- // https://github.com/form-data/form-data/blob/028c21e0f93c5fefa46a7bbf1ba753e4f627ab7a/lib/form_data.js#L227-L230
571
- // formidable and the browser add a name property
572
- // fs- and request- streams have path property
573
- // biome-ignore lint/suspicious/noExplicitAny: form values can be anything
574
- const streamOrBuffer = value;
575
- if (typeof streamOrBuffer.name === 'string') {
576
- return (0, node_path_1.basename)(streamOrBuffer.name);
577
- }
578
- if (typeof streamOrBuffer.path === 'string') {
579
- return (0, node_path_1.basename)(streamOrBuffer.path);
580
- }
581
- return defaultFilename;
582
- })();
583
- frm.append(key, value, opts);
584
- }
585
- else if (key !== undefined && value !== undefined) {
586
- frm.append(key, value);
515
+ const form = new FormData();
516
+ for (const [key, value] of flattened) {
517
+ if (key === undefined || value === undefined)
518
+ continue;
519
+ if (Buffer.isBuffer(value)) {
520
+ const streamOrBuffer = value;
521
+ let filename = defaultFilename;
522
+ if (typeof streamOrBuffer.name === 'string') {
523
+ filename = (0, node_path_1.basename)(streamOrBuffer.name);
524
+ }
525
+ else if (typeof streamOrBuffer.path === 'string') {
526
+ filename = (0, node_path_1.basename)(streamOrBuffer.path);
527
+ }
528
+ form.append(key, new Blob([new Uint8Array(value)]), filename);
587
529
  }
588
- return frm;
589
- }, new form_data_1.default());
590
- if (headers) {
591
- // Copying FormData-generated headers into headers param
592
- // not reassigning to headers param since it is passed by reference and behaves as an inout param
593
- for (const [header, value] of Object.entries(form.getHeaders())) {
594
- headers[header] = value;
530
+ else {
531
+ form.append(key, String(value));
595
532
  }
596
533
  }
597
- config.data = form;
598
- config.headers = headers;
599
- return config;
534
+ // Do not set Content-Type — fetch auto-generates the multipart boundary
535
+ return { serializedBody: form, contentHeaders: {} };
600
536
  }
601
- // Otherwise, a simple key-value object is returned
602
- if (headers)
603
- headers['Content-Type'] = 'application/x-www-form-urlencoded';
537
+ // Otherwise, serialize as url-encoded key-value pairs
604
538
  // biome-ignore lint/suspicious/noExplicitAny: form values can be anything
605
539
  const initialValue = {};
606
- config.data = (0, node_querystring_1.stringify)(flattened.reduce((accumulator, [key, value]) => {
540
+ const encoded = (0, node_querystring_1.stringify)(flattened.reduce((accumulator, [key, value]) => {
607
541
  if (key !== undefined && value !== undefined) {
608
542
  accumulator[key] = value;
609
543
  }
610
544
  return accumulator;
611
545
  }, initialValue));
612
- config.headers = headers;
613
- return config;
546
+ return {
547
+ serializedBody: encoded,
548
+ contentHeaders: { 'Content-Type': 'application/x-www-form-urlencoded' },
549
+ };
614
550
  }
615
551
  /**
616
552
  * Processes an HTTP response into a WebAPICallResult by performing JSON parsing on the body and merging relevant
@@ -618,23 +554,21 @@ class WebClient extends methods_1.Methods {
618
554
  * @param response - an http response
619
555
  */
620
556
  async buildResult(response) {
621
- let { data } = response;
622
- const isGzipResponse = response.headers['content-type'] === 'application/gzip';
623
- // Check for GZIP response - if so, it is a successful response from admin.analytics.getFile
557
+ const contentType = response.headers.get('content-type');
558
+ const isGzipResponse = contentType === 'application/gzip';
559
+ // biome-ignore lint/suspicious/noExplicitAny: HTTP response data can be anything
560
+ let data;
561
+ // admin.analytics.getFile returns a gzip binary response that can be unzipped
624
562
  if (isGzipResponse) {
625
- // admin.analytics.getFile will return a Buffer that can be unzipped
626
563
  try {
564
+ const buffer = Buffer.from(await response.arrayBuffer());
627
565
  const unzippedData = await new Promise((resolve, reject) => {
628
- node_zlib_1.default.unzip(data, (err, buf) => {
566
+ node_zlib_1.default.unzip(buffer, (err, buf) => {
629
567
  if (err) {
630
568
  return reject(err);
631
569
  }
632
570
  return resolve(buf.toString().split('\n'));
633
571
  });
634
- })
635
- .then((res) => res)
636
- .catch((err) => {
637
- throw err;
638
572
  });
639
573
  const fileData = [];
640
574
  if (Array.isArray(unzippedData)) {
@@ -650,32 +584,33 @@ class WebClient extends methods_1.Methods {
650
584
  data = { ok: false, error: err };
651
585
  }
652
586
  }
653
- else if (!isGzipResponse && response.request.path === '/api/admin.analytics.getFile') {
587
+ else if (!isGzipResponse && response.url.endsWith('/admin.analytics.getFile')) {
654
588
  // if it isn't a Gzip response but is from the admin.analytics.getFile request,
655
589
  // decode the ArrayBuffer to JSON read the error
656
- data = JSON.parse(new node_util_1.TextDecoder().decode(data));
590
+ const buffer = await response.arrayBuffer();
591
+ data = JSON.parse(new node_util_1.TextDecoder().decode(buffer));
657
592
  }
658
- if (typeof data === 'string') {
659
- // response.data can be a string, not an object for some reason
593
+ else {
594
+ const text = await response.text();
660
595
  try {
661
- data = JSON.parse(data);
596
+ data = JSON.parse(text);
662
597
  }
663
598
  catch (_) {
664
- // failed to parse the string value as JSON data
665
- data = { ok: false, error: data };
599
+ // failed to parse the response body as JSON
600
+ data = { ok: false, error: text };
666
601
  }
667
602
  }
668
603
  if (data.response_metadata === undefined) {
669
604
  data.response_metadata = {};
670
605
  }
671
606
  // add scopes metadata from headers
672
- if (response.headers['x-oauth-scopes'] !== undefined) {
673
- data.response_metadata.scopes = response.headers['x-oauth-scopes'].trim().split(/\s*,\s*/);
607
+ const oauthScopes = response.headers.get('x-oauth-scopes');
608
+ if (oauthScopes !== null) {
609
+ data.response_metadata.scopes = oauthScopes.trim().split(/\s*,\s*/);
674
610
  }
675
- if (response.headers['x-accepted-oauth-scopes'] !== undefined) {
676
- data.response_metadata.acceptedScopes = response.headers['x-accepted-oauth-scopes']
677
- .trim()
678
- .split(/\s*,\s*/);
611
+ const acceptedOauthScopes = response.headers.get('x-accepted-oauth-scopes');
612
+ if (acceptedOauthScopes !== null) {
613
+ data.response_metadata.acceptedScopes = acceptedOauthScopes.trim().split(/\s*,\s*/);
679
614
  }
680
615
  // add retry metadata from headers
681
616
  const retrySec = parseRetryHeaders(response);
@@ -686,10 +621,6 @@ class WebClient extends methods_1.Methods {
686
621
  }
687
622
  }
688
623
  exports.WebClient = WebClient;
689
- /**
690
- * The name used to prefix all logging generated from this object
691
- */
692
- WebClient.loggerName = 'WebClient';
693
624
  exports.default = WebClient;
694
625
  /**
695
626
  * Determines an appropriate set of cursor pagination options for the next request to a paginated API method.
@@ -713,8 +644,9 @@ function paginationOptionsForNextPage(previousResult, pageSize) {
713
644
  * from a rate-limited HTTP response (statusCode = 429).
714
645
  */
715
646
  function parseRetryHeaders(response) {
716
- if (response.headers['retry-after'] !== undefined) {
717
- const retryAfter = Number.parseInt(response.headers['retry-after'], 10);
647
+ const retryAfterHeader = response.headers.get('retry-after');
648
+ if (retryAfterHeader !== null) {
649
+ const retryAfter = Number.parseInt(retryAfterHeader, 10);
718
650
  if (!Number.isNaN(retryAfter)) {
719
651
  return retryAfter;
720
652
  }
@@ -727,7 +659,7 @@ function parseRetryHeaders(response) {
727
659
  * @param logger instance of web clients logger
728
660
  */
729
661
  function warnDeprecations(method, logger) {
730
- const deprecatedMethods = ['workflows.stepCompleted', 'workflows.stepFailed', 'workflows.updateStep'];
662
+ const deprecatedMethods = ['oauth.access'];
731
663
  const isDeprecated = deprecatedMethods.some((depMethod) => {
732
664
  const re = new RegExp(`^${depMethod}`);
733
665
  return re.test(method);
@@ -771,9 +703,9 @@ function warnIfFallbackIsMissing(method, logger, options) {
771
703
  * @param options arguments for the Web API method
772
704
  */
773
705
  function warnIfThreadTsIsNotString(method, logger, options) {
774
- const targetMethods = ['chat.postEphemeral', 'chat.postMessage', 'chat.scheduleMessage', 'files.upload'];
706
+ const targetMethods = ['chat.postEphemeral', 'chat.postMessage', 'chat.scheduleMessage'];
775
707
  const isTargetMethod = targetMethods.includes(method);
776
- if (isTargetMethod && (options === null || options === void 0 ? void 0 : options.thread_ts) !== undefined && typeof (options === null || options === void 0 ? void 0 : options.thread_ts) !== 'string') {
708
+ if (isTargetMethod && options?.thread_ts !== undefined && typeof options?.thread_ts !== 'string') {
777
709
  logger.warn(buildThreadTsWarningMessage(method));
778
710
  }
779
711
  }
@@ -797,12 +729,12 @@ function redact(body) {
797
729
  if (key.match(/.*token.*/) !== null || key.match(/[Aa]uthorization/)) {
798
730
  serializedValue = '[[REDACTED]]';
799
731
  }
800
- // when value is buffer or stream we can avoid logging it
801
- if (Buffer.isBuffer(value) || (0, is_stream_1.default)(value)) {
732
+ // when value is buffer we can avoid logging it
733
+ if (Buffer.isBuffer(value)) {
802
734
  serializedValue = '[[BINARY VALUE OMITTED]]';
803
735
  }
804
- else if (typeof value !== 'string' && typeof value !== 'number' && typeof value !== 'boolean') {
805
- serializedValue = JSON.stringify(value);
736
+ else if (typeof value === 'object') {
737
+ serializedValue = redact(value);
806
738
  }
807
739
  return [key, serializedValue];
808
740
  });