@openclaw/slack 2026.9.6 → 2026.9.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/assets/icon.png +0 -0
  2. package/dist/.setup/{account-inspect-DP1Bcwj4.mjs → account-inspect-DWBXpER6.mjs} +1 -1
  3. package/dist/.setup/{accounts-BBHvg0pY.mjs → accounts-D_N9IqNA.mjs} +23 -1
  4. package/dist/.setup/{action-runtime-B01d85zt.mjs → action-runtime-DfWvuiZd.mjs} +26 -41
  5. package/dist/.setup/action-runtime.runtime-Ck4bAWOX.mjs +2 -0
  6. package/dist/.setup/{actions-DKCtBgCI.mjs → actions-Df0CzcDl.mjs} +88 -175
  7. package/dist/.setup/{approval-handler.runtime-DMszKn_7.mjs → approval-handler.runtime-Ed6Sw5VK.mjs} +37 -47
  8. package/dist/.setup/{approval-message-updates-Tb_qRokK.mjs → approval-message-updates-BadvtA7R.mjs} +1 -2
  9. package/dist/.setup/{channel-CErYZ5zw.mjs → channel-C7bgPSTE.mjs} +181 -273
  10. package/dist/.setup/channel-meta-C443t-lI.mjs +27 -0
  11. package/dist/.setup/{channel-type-Dxk8VJUb.mjs → channel-type-ClOttrZ5.mjs} +13 -21
  12. package/dist/.setup/{channel.setup-BVoUtdPn.mjs → channel.setup-Dh2jzAjN.mjs} +35 -42
  13. package/dist/.setup/{config-schema-CyL279e7.mjs → config-schema-BZCxmHKG.mjs} +24 -21
  14. package/dist/.setup/{directory-config-CQTSH45W.mjs → directory-config-BOUWH3hR.mjs} +7 -10
  15. package/dist/.setup/{directory-live-BCcj89QV.mjs → directory-live-B2O4B_Ho.mjs} +9 -21
  16. package/dist/.setup/doctor-contract-CRN1Z_c7.mjs +342 -0
  17. package/dist/.setup/{message-tool-api-C0PTFaNV.mjs → message-tool-api-Cu4lwlGy.mjs} +34 -48
  18. package/dist/.setup/{provider-C-jPaGt2.mjs → monitor-BPVfkumU.mjs} +2181 -2693
  19. package/dist/.setup/{outbound-adapter-A7Wdn8ZT.mjs → outbound-adapter-Bv48XUjq.mjs} +10 -21
  20. package/dist/.setup/{pipeline.runtime-BlPOexmJ.mjs → pipeline.runtime-B1H63Frf.mjs} +311 -457
  21. package/dist/.setup/{plugin-routes-C3X0eVaK.mjs → plugin-routes-B8tooDLj.mjs} +1 -1
  22. package/dist/.setup/{policy-BApW53pI.mjs → policy-D-jfM174.mjs} +5 -5
  23. package/dist/.setup/{probe-DiYIMPJo.mjs → probe-B2Y9qc_z.mjs} +101 -39
  24. package/dist/.setup/{registry-bbjH7IHX.mjs → registry-CIbMfuf8.mjs} +6 -2
  25. package/dist/.setup/{relay-source-DfOnjJTE.mjs → relay-source-BpKdjsll.mjs} +10 -12
  26. package/dist/.setup/{replies-BBAJxUOQ.mjs → replies-BAnUtr2f.mjs} +16 -76
  27. package/dist/.setup/{reply-blocks-Bm8kf6mK.mjs → reply-blocks-SE1kTE3I.mjs} +27 -154
  28. package/dist/.setup/{resolve-channels-BXbMBbJD.mjs → resolve-channels-XXBn8UU_.mjs} +4 -5
  29. package/dist/.setup/{resolve-users-65WqvIqD.mjs → resolve-users-DW0ngD03.mjs} +20 -22
  30. package/dist/.setup/{scopes-h3YB-mMs.mjs → scopes-CasuDvaa.mjs} +6 -17
  31. package/dist/.setup/{secret-contract-DxmvbxBF.mjs → secret-contract-BaZcu6P_.mjs} +15 -20
  32. package/dist/.setup/{secret-contract-api-D9UfYujm.mjs → secret-contract-api-Dp6290Vg.mjs} +1 -1
  33. package/dist/.setup/{security-audit-BypHqcq5.mjs → security-audit-BqDc-6VL.mjs} +1 -1
  34. package/dist/.setup/{send-Cp6omkOg.mjs → send-BOVLQi3n.mjs} +84 -171
  35. package/dist/.setup/{session-status-Cf7AvWOt.mjs → session-status-DscajIsd.mjs} +315 -238
  36. package/dist/.setup/{setup-plugin-api-dLPkL06L.mjs → setup-plugin-api-DTtbTKNk.mjs} +1 -1
  37. package/dist/.setup/{setup-surface-D3DLcCxu.mjs → setup-surface-Dn7QgWRE.mjs} +24 -56
  38. package/dist/.setup/{shared-CJ3arAFL.mjs → shared-qau-uDGl.mjs} +30 -56
  39. package/dist/.setup/{slash-dispatch.runtime-HFy_XvyO.mjs → slash-dispatch.runtime--AEzLVBF.mjs} +1 -1
  40. package/dist/.setup/{streaming-compat-B-e0mqM0.mjs → streaming-compat-C5Wut626.mjs} +31 -8
  41. package/dist/.setup/{target-parsing-DEsPjngB.mjs → target-parsing-FFE26kOV.mjs} +1 -7
  42. package/dist/.setup/{targets-Cku2KCvg.mjs → targets-C6LZQL1Q.mjs} +1 -1
  43. package/dist/.setup/{thread-ts-CukseRVL.mjs → thread-ts-Cvt7WD6B.mjs} +0 -1
  44. package/dist/account-inspect-api.js +1 -1
  45. package/dist/api.js +18 -17
  46. package/dist/channel-config-api.js +1 -1
  47. package/dist/channel-plugin-api.js +1 -1
  48. package/dist/directory-contract-api.js +1 -1
  49. package/dist/doctor-contract-api.js +1 -1
  50. package/dist/http-routes-api.js +1 -1
  51. package/dist/index.js +1 -1
  52. package/dist/message-tool-api.js +1 -1
  53. package/dist/runtime-api.js +11 -12
  54. package/dist/secret-contract-api.js +1 -1
  55. package/dist/security-contract-api.js +1 -1
  56. package/dist/setup-entry.js +2 -2
  57. package/dist/setup-plugin-api.js +1 -1
  58. package/node_modules/@slack/bolt/node_modules/@types/node/README.md +1 -1
  59. package/node_modules/@slack/bolt/node_modules/@types/node/child_process.d.ts +1 -1
  60. package/node_modules/@slack/bolt/node_modules/@types/node/crypto.d.ts +20 -8
  61. package/node_modules/@slack/bolt/node_modules/@types/node/ffi.d.ts +14 -0
  62. package/node_modules/@slack/bolt/node_modules/@types/node/http2.d.ts +3 -2
  63. package/node_modules/@slack/bolt/node_modules/@types/node/net.d.ts +16 -4
  64. package/node_modules/@slack/bolt/node_modules/@types/node/package.json +2 -2
  65. package/node_modules/@slack/bolt/node_modules/@types/node/process.d.ts +1 -0
  66. package/node_modules/@slack/bolt/node_modules/@types/node/quic.d.ts +39 -1
  67. package/node_modules/@slack/bolt/node_modules/@types/node/stream/iter.d.ts +9 -12
  68. package/node_modules/@slack/bolt/node_modules/@types/node/test/reporters.d.ts +1 -0
  69. package/node_modules/@slack/bolt/node_modules/@types/node/test.d.ts +72 -0
  70. package/node_modules/@slack/bolt/node_modules/@types/node/tls.d.ts +14 -10
  71. package/node_modules/@slack/bolt/node_modules/@types/node/vm.d.ts +2 -1
  72. package/node_modules/@slack/bolt/node_modules/@types/node/worker_threads.d.ts +4 -1
  73. package/node_modules/@slack/web-api/node_modules/@types/node/README.md +1 -1
  74. package/node_modules/@slack/web-api/node_modules/@types/node/child_process.d.ts +1 -1
  75. package/node_modules/@slack/web-api/node_modules/@types/node/crypto.d.ts +20 -8
  76. package/node_modules/@slack/web-api/node_modules/@types/node/ffi.d.ts +14 -0
  77. package/node_modules/@slack/web-api/node_modules/@types/node/http2.d.ts +3 -2
  78. package/node_modules/@slack/web-api/node_modules/@types/node/net.d.ts +16 -4
  79. package/node_modules/@slack/web-api/node_modules/@types/node/package.json +2 -2
  80. package/node_modules/@slack/web-api/node_modules/@types/node/process.d.ts +1 -0
  81. package/node_modules/@slack/web-api/node_modules/@types/node/quic.d.ts +39 -1
  82. package/node_modules/@slack/web-api/node_modules/@types/node/stream/iter.d.ts +9 -12
  83. package/node_modules/@slack/web-api/node_modules/@types/node/test/reporters.d.ts +1 -0
  84. package/node_modules/@slack/web-api/node_modules/@types/node/test.d.ts +72 -0
  85. package/node_modules/@slack/web-api/node_modules/@types/node/tls.d.ts +14 -10
  86. package/node_modules/@slack/web-api/node_modules/@types/node/vm.d.ts +2 -1
  87. package/node_modules/@slack/web-api/node_modules/@types/node/worker_threads.d.ts +4 -1
  88. package/node_modules/get-east-asian-width/index.js +8 -3
  89. package/node_modules/get-east-asian-width/lookup-data.js +1 -1
  90. package/node_modules/get-east-asian-width/lookup.js +4 -4
  91. package/node_modules/get-east-asian-width/package.json +1 -1
  92. package/node_modules/typebox/build/compile/code.mjs +1 -2
  93. package/node_modules/typebox/build/compile/validator.mjs +5 -1
  94. package/node_modules/typebox/build/format/iri.mjs +16 -9
  95. package/node_modules/typebox/build/guard/emit.mjs +2 -2
  96. package/node_modules/typebox/build/guard/guard.d.mts +7 -5
  97. package/node_modules/typebox/build/guard/guard.mjs +14 -9
  98. package/node_modules/typebox/build/guard/index.mjs +6 -0
  99. package/node_modules/typebox/build/guard/unicode/unicode.d.mts +6 -0
  100. package/node_modules/typebox/build/guard/unicode/unicode.mjs +35 -0
  101. package/node_modules/typebox/build/guard/{string.mjs → unicode/unicode_segment.mjs} +16 -19
  102. package/node_modules/typebox/build/schema/build.mjs +2 -3
  103. package/node_modules/typebox/build/schema/engine/_pathing.d.mts +1 -0
  104. package/node_modules/typebox/build/schema/engine/_pathing.mjs +11 -0
  105. package/node_modules/typebox/build/schema/engine/_refine.mjs +13 -5
  106. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +2 -1
  107. package/node_modules/typebox/build/schema/engine/dependencies.mjs +2 -1
  108. package/node_modules/typebox/build/schema/engine/dependentSchemas.mjs +2 -1
  109. package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +1 -1
  110. package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +2 -2
  111. package/node_modules/typebox/build/schema/engine/format.mjs +9 -2
  112. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +3 -2
  113. package/node_modules/typebox/build/schema/engine/properties.mjs +3 -2
  114. package/node_modules/typebox/build/schema/engine/propertyNames.mjs +2 -1
  115. package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +1 -1
  116. package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +2 -2
  117. package/node_modules/typebox/build/schema/engine/ref.d.mts +1 -1
  118. package/node_modules/typebox/build/schema/engine/ref.mjs +2 -2
  119. package/node_modules/typebox/build/schema/engine/schema.mjs +24 -24
  120. package/node_modules/typebox/build/schema/parse.mjs +3 -0
  121. package/node_modules/typebox/build/schema/pointer/pointer.d.mts +1 -6
  122. package/node_modules/typebox/build/schema/pointer/pointer.mjs +47 -64
  123. package/node_modules/typebox/build/system/settings/internal.d.mts +2 -0
  124. package/node_modules/typebox/build/system/settings/internal.mjs +20 -0
  125. package/node_modules/typebox/build/system/settings/settings.d.mts +11 -0
  126. package/node_modules/typebox/build/system/settings/settings.mjs +14 -0
  127. package/node_modules/typebox/build/type/extends/inference.d.mts +1 -1
  128. package/node_modules/typebox/build/type/extends/inference.mjs +15 -2
  129. package/node_modules/typebox/build/type/extends/tuple.d.mts +2 -1
  130. package/node_modules/typebox/build/type/extends/tuple.mjs +21 -1
  131. package/node_modules/typebox/build/value/parse/parse.mjs +10 -4
  132. package/node_modules/typebox/package.json +1 -1
  133. package/node_modules/typebox/readme.md +3 -1
  134. package/node_modules/undici/README.md +81 -25
  135. package/node_modules/undici/docs/docs/api/Agent.md +249 -42
  136. package/node_modules/undici/docs/docs/api/BalancedPool.md +246 -48
  137. package/node_modules/undici/docs/docs/api/CacheStorage.md +171 -13
  138. package/node_modules/undici/docs/docs/api/CacheStore.md +294 -98
  139. package/node_modules/undici/docs/docs/api/Client.md +407 -162
  140. package/node_modules/undici/docs/docs/api/ClientStats.md +80 -14
  141. package/node_modules/undici/docs/docs/api/Connector.md +118 -35
  142. package/node_modules/undici/docs/docs/api/ContentType.md +65 -25
  143. package/node_modules/undici/docs/docs/api/Cookies.md +122 -71
  144. package/node_modules/undici/docs/docs/api/Debug.md +34 -18
  145. package/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +364 -164
  146. package/node_modules/undici/docs/docs/api/Dispatcher.md +490 -1055
  147. package/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +105 -93
  148. package/node_modules/undici/docs/docs/api/Errors.md +503 -28
  149. package/node_modules/undici/docs/docs/api/EventSource.md +326 -13
  150. package/node_modules/undici/docs/docs/api/Fetch.md +681 -30
  151. package/node_modules/undici/docs/docs/api/GlobalInstallation.md +78 -96
  152. package/node_modules/undici/docs/docs/api/H2CClient.md +298 -176
  153. package/node_modules/undici/docs/docs/api/Interceptors.md +418 -0
  154. package/node_modules/undici/docs/docs/api/MockAgent.md +333 -314
  155. package/node_modules/undici/docs/docs/api/MockCallHistory.md +272 -98
  156. package/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +189 -26
  157. package/node_modules/undici/docs/docs/api/MockClient.md +151 -33
  158. package/node_modules/undici/docs/docs/api/MockErrors.md +56 -5
  159. package/node_modules/undici/docs/docs/api/MockPool.md +321 -258
  160. package/node_modules/undici/docs/docs/api/Pool.md +236 -41
  161. package/node_modules/undici/docs/docs/api/PoolStats.md +119 -13
  162. package/node_modules/undici/docs/docs/api/ProxyAgent.md +179 -160
  163. package/node_modules/undici/docs/docs/api/RedirectHandler.md +238 -55
  164. package/node_modules/undici/docs/docs/api/RetryAgent.md +113 -27
  165. package/node_modules/undici/docs/docs/api/RetryHandler.md +161 -79
  166. package/node_modules/undici/docs/docs/api/RoundRobinPool.md +166 -72
  167. package/node_modules/undici/docs/docs/api/SnapshotAgent.md +262 -517
  168. package/node_modules/undici/docs/docs/api/Socks5ProxyAgent.md +177 -196
  169. package/node_modules/undici/docs/docs/api/Util.md +68 -11
  170. package/node_modules/undici/docs/docs/api/WebSocket.md +475 -80
  171. package/node_modules/undici/docs/docs/api/api-lifecycle.md +100 -32
  172. package/node_modules/undici/docs/docs/best-practices/client-certificate.md +2 -0
  173. package/node_modules/undici/docs/docs/best-practices/crawling.md +3 -1
  174. package/node_modules/undici/docs/docs/best-practices/migrating-from-v7-to-v8.md +233 -0
  175. package/node_modules/undici/docs/docs/best-practices/mocking-request.md +9 -7
  176. package/node_modules/undici/docs/docs/best-practices/proxy.md +3 -1
  177. package/node_modules/undici/docs/docs/best-practices/undici-vs-builtin-fetch.md +10 -8
  178. package/node_modules/undici/docs/docs/best-practices/writing-tests.md +2 -0
  179. package/node_modules/undici/docs/docs/getting-started.md +281 -0
  180. package/node_modules/undici/docs/docs/index.md +784 -0
  181. package/node_modules/undici/docs/docs/site.json +125 -0
  182. package/node_modules/undici/docs/docs/type-map.json +79 -0
  183. package/node_modules/undici/index.js +4 -2
  184. package/node_modules/undici/lib/api/api-connect.js +13 -11
  185. package/node_modules/undici/lib/api/api-pipeline.js +26 -13
  186. package/node_modules/undici/lib/api/api-request.js +51 -21
  187. package/node_modules/undici/lib/api/api-stream.js +81 -20
  188. package/node_modules/undici/lib/api/api-upgrade.js +21 -11
  189. package/node_modules/undici/lib/api/readable.js +45 -9
  190. package/node_modules/undici/lib/cache/memory-cache-store.js +3 -3
  191. package/node_modules/undici/lib/cache/sqlite-cache-store.js +3 -1
  192. package/node_modules/undici/lib/core/connect.js +46 -7
  193. package/node_modules/undici/lib/core/constants.js +1 -24
  194. package/node_modules/undici/lib/core/errors.js +22 -2
  195. package/node_modules/undici/lib/core/request.js +100 -18
  196. package/node_modules/undici/lib/core/symbols.js +4 -0
  197. package/node_modules/undici/lib/core/util.js +105 -48
  198. package/node_modules/undici/lib/dispatcher/agent.js +51 -32
  199. package/node_modules/undici/lib/dispatcher/balanced-pool.js +23 -27
  200. package/node_modules/undici/lib/dispatcher/client-h1.js +86 -24
  201. package/node_modules/undici/lib/dispatcher/client-h2.js +1091 -361
  202. package/node_modules/undici/lib/dispatcher/client.js +109 -36
  203. package/node_modules/undici/lib/dispatcher/dispatcher-base.js +19 -6
  204. package/node_modules/undici/lib/dispatcher/dispatcher.js +15 -5
  205. package/node_modules/undici/lib/dispatcher/dispatcher1-wrapper.js +110 -0
  206. package/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +37 -8
  207. package/node_modules/undici/lib/dispatcher/h2c-client.js +4 -4
  208. package/node_modules/undici/lib/dispatcher/pool-base.js +28 -10
  209. package/node_modules/undici/lib/dispatcher/pool.js +30 -5
  210. package/node_modules/undici/lib/dispatcher/proxy-agent.js +95 -19
  211. package/node_modules/undici/lib/dispatcher/retry-agent.js +3 -0
  212. package/node_modules/undici/lib/dispatcher/round-robin-pool.js +32 -10
  213. package/node_modules/undici/lib/dispatcher/socks5-proxy-agent.js +153 -63
  214. package/node_modules/undici/lib/global.js +37 -14
  215. package/node_modules/undici/lib/handler/cache-handler.js +49 -7
  216. package/node_modules/undici/lib/handler/cache-revalidation-handler.js +10 -0
  217. package/node_modules/undici/lib/handler/decorator-handler.js +8 -3
  218. package/node_modules/undici/lib/handler/deduplication-handler.js +12 -6
  219. package/node_modules/undici/lib/handler/redirect-handler.js +66 -66
  220. package/node_modules/undici/lib/handler/retry-handler.js +191 -50
  221. package/node_modules/undici/lib/interceptor/cache.js +75 -25
  222. package/node_modules/undici/lib/interceptor/decompress.js +5 -2
  223. package/node_modules/undici/lib/interceptor/deduplicate.js +5 -4
  224. package/node_modules/undici/lib/interceptor/dns.js +12 -1
  225. package/node_modules/undici/lib/interceptor/redirect.js +3 -3
  226. package/node_modules/undici/lib/llhttp/llhttp-wasm.js +1 -1
  227. package/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +1 -1
  228. package/node_modules/undici/lib/mock/mock-agent.js +21 -9
  229. package/node_modules/undici/lib/mock/mock-call-history.js +1 -1
  230. package/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
  231. package/node_modules/undici/lib/mock/mock-utils.js +281 -47
  232. package/node_modules/undici/lib/mock/snapshot-agent.js +25 -7
  233. package/node_modules/undici/lib/mock/snapshot-recorder.js +38 -3
  234. package/node_modules/undici/lib/util/cache.js +92 -10
  235. package/node_modules/undici/lib/util/runtime-features.js +3 -34
  236. package/node_modules/undici/lib/web/cache/cache.js +6 -8
  237. package/node_modules/undici/lib/web/cookies/parse.js +150 -146
  238. package/node_modules/undici/lib/web/cookies/util.js +1 -1
  239. package/node_modules/undici/lib/web/eventsource/eventsource-stream.js +28 -1
  240. package/node_modules/undici/lib/web/eventsource/eventsource.js +20 -21
  241. package/node_modules/undici/lib/web/eventsource/util.js +32 -1
  242. package/node_modules/undici/lib/web/fetch/body.js +48 -10
  243. package/node_modules/undici/lib/web/fetch/constants.js +1 -1
  244. package/node_modules/undici/lib/web/fetch/formdata.js +21 -2
  245. package/node_modules/undici/lib/web/fetch/index.js +242 -223
  246. package/node_modules/undici/lib/web/fetch/request.js +35 -6
  247. package/node_modules/undici/lib/web/fetch/response.js +1 -3
  248. package/node_modules/undici/lib/web/fetch/util.js +10 -2
  249. package/node_modules/undici/lib/web/webidl/index.js +5 -7
  250. package/node_modules/undici/lib/web/websocket/frame.js +1 -7
  251. package/node_modules/undici/lib/web/websocket/receiver.js +1 -1
  252. package/node_modules/undici/lib/web/websocket/stream/websocketstream.js +10 -10
  253. package/node_modules/undici/lib/web/websocket/websocket.js +25 -3
  254. package/node_modules/undici/package.json +10 -10
  255. package/node_modules/undici/types/agent.d.ts +0 -2
  256. package/node_modules/undici/types/client.d.ts +69 -24
  257. package/node_modules/undici/types/connector.d.ts +1 -0
  258. package/node_modules/undici/types/cookies.d.ts +1 -1
  259. package/node_modules/undici/types/dispatcher.d.ts +8 -30
  260. package/node_modules/undici/types/dispatcher1-wrapper.d.ts +7 -0
  261. package/node_modules/undici/types/errors.d.ts +10 -0
  262. package/node_modules/undici/types/fetch.d.ts +5 -1
  263. package/node_modules/undici/types/formdata.d.ts +0 -6
  264. package/node_modules/undici/types/h2c-client.d.ts +6 -6
  265. package/node_modules/undici/types/handlers.d.ts +2 -0
  266. package/node_modules/undici/types/header.d.ts +5 -0
  267. package/node_modules/undici/types/index.d.ts +3 -1
  268. package/node_modules/undici/types/interceptors.d.ts +1 -1
  269. package/node_modules/undici/types/mock-agent.d.ts +11 -10
  270. package/node_modules/undici/types/mock-interceptor.d.ts +5 -1
  271. package/node_modules/undici/types/pool.d.ts +0 -2
  272. package/node_modules/undici/types/proxy-agent.d.ts +9 -2
  273. package/node_modules/undici/types/round-robin-pool.d.ts +0 -2
  274. package/node_modules/undici/types/snapshot-agent.d.ts +4 -0
  275. package/node_modules/undici/types/socks5-proxy-agent.d.ts +4 -2
  276. package/node_modules/undici/types/webidl.d.ts +0 -1
  277. package/openclaw.plugin.json +31 -3
  278. package/package.json +7 -7
  279. package/dist/.setup/accounts.runtime-DN-PPocC.mjs +0 -2
  280. package/dist/.setup/action-runtime.runtime-C8R8CUan.mjs +0 -2
  281. package/dist/.setup/doctor-contract-CtMUqjvk.mjs +0 -186
  282. package/dist/.setup/monitor-_Sht7Dqy.mjs +0 -13
  283. package/dist/.setup/rolldown-runtime-D7D4PA-g.mjs +0 -13
  284. package/dist/.setup/send.runtime-B4caZU6T.mjs +0 -2
  285. package/dist/.setup/slash-commands.runtime-BpSH0b3q.mjs +0 -2
  286. package/dist/.setup/slash-skill-commands.runtime-Bi1JWZHY.mjs +0 -2
  287. package/node_modules/undici/lib/handler/unwrap-handler.js +0 -106
  288. package/node_modules/undici/lib/handler/wrap-handler.js +0 -105
  289. package/node_modules/undici/lib/llhttp/.gitkeep +0 -0
  290. package/node_modules/undici/lib/util/promise.js +0 -28
  291. /package/node_modules/typebox/build/guard/{string.d.mts → unicode/unicode_segment.d.mts} +0 -0
@@ -8,6 +8,7 @@ const {
8
8
  } = require('../core/util')
9
9
 
10
10
  const { serializePathWithQuery } = require('../core/util')
11
+ const { kRequestOrigin } = require('../core/symbols')
11
12
 
12
13
  const MAX_DELTA_SECONDS = 2147483647
13
14
  const RESTRICTIVE_DIRECTIVE_NAMES = ['no-store', 'private', 'no-cache']
@@ -147,8 +148,45 @@ function getMalformedRestrictiveDirectiveName (key) {
147
148
  /**
148
149
  * @param {import('../../types/dispatcher.d.ts').default.DispatchOptions} opts
149
150
  */
150
- function makeCacheKey (opts) {
151
- if (!opts.origin) {
151
+ function getRequestOrigin (opts) {
152
+ const origin = opts[kRequestOrigin] === undefined
153
+ ? opts.origin
154
+ : opts[kRequestOrigin]
155
+ return typeof origin === 'string' || origin instanceof URL
156
+ ? origin
157
+ : null
158
+ }
159
+
160
+ /**
161
+ * @param {import('../../types/dispatcher.d.ts').default.DispatchOptions} opts
162
+ * @param {string|null|undefined} interceptorOrigin
163
+ */
164
+ function getInterceptorOrigin (opts, interceptorOrigin) {
165
+ const requestOrigin = getRequestOrigin(opts)
166
+ if (interceptorOrigin === undefined) {
167
+ return requestOrigin
168
+ }
169
+ if (interceptorOrigin === null) {
170
+ return null
171
+ }
172
+ if (requestOrigin) {
173
+ try {
174
+ if (new URL(requestOrigin).origin !== interceptorOrigin) {
175
+ return null
176
+ }
177
+ } catch {
178
+ return interceptorOrigin
179
+ }
180
+ }
181
+ return interceptorOrigin
182
+ }
183
+
184
+ /**
185
+ * @param {import('../../types/dispatcher.d.ts').default.DispatchOptions} opts
186
+ * @param {string|URL|null} [origin]
187
+ */
188
+ function makeCacheKey (opts, origin = getRequestOrigin(opts)) {
189
+ if (!origin) {
152
190
  throw new Error('opts.origin is undefined')
153
191
  }
154
192
 
@@ -159,7 +197,7 @@ function makeCacheKey (opts) {
159
197
  }
160
198
 
161
199
  return {
162
- origin: opts.origin.toString(),
200
+ origin: origin.toString(),
163
201
  method: opts.method,
164
202
  path: fullPath,
165
203
  headers: opts.headers
@@ -192,15 +230,57 @@ function normalizeHeaders (opts) {
192
230
  headers = {}
193
231
 
194
232
  if (hasSafeIterator(opts.headers)) {
195
- for (const x of opts.headers) {
196
- if (!Array.isArray(x)) {
197
- throw new Error('opts.headers is not a valid header map')
233
+ if (Array.isArray(opts.headers)) {
234
+ // Array format: could be flat alternating [k, v, k, v, ...]
235
+ // or array-of-pairs [[k, v], ...]
236
+ const first = opts.headers[0]
237
+ if (Array.isArray(first)) {
238
+ for (const x of opts.headers) {
239
+ if (!Array.isArray(x)) {
240
+ throw new Error('opts.headers is not a valid header map')
241
+ }
242
+ const [key, val] = x
243
+ if (typeof key !== 'string' || typeof val !== 'string') {
244
+ throw new Error('opts.headers is not a valid header map')
245
+ }
246
+ appendHeader(headers, key, val)
247
+ }
248
+ } else {
249
+ // Flat alternating array [k, v, k, v, ...]
250
+ const len = opts.headers.length
251
+ if (len % 2 !== 0) {
252
+ throw new Error('opts.headers is not a valid header map')
253
+ }
254
+ for (let i = 0; i < len; i += 2) {
255
+ const key = opts.headers[i]
256
+ const val = opts.headers[i + 1]
257
+ if (typeof key !== 'string' || (typeof val !== 'string' && !Array.isArray(val))) {
258
+ throw new Error('opts.headers is not a valid header map')
259
+ }
260
+ if (typeof val === 'string') {
261
+ appendHeader(headers, key, val)
262
+ } else {
263
+ const mapped = []
264
+ for (let j = 0; j < val.length; j++) {
265
+ const v = val[j]
266
+ mapped.push(typeof v === 'string' ? v : v.toString('latin1'))
267
+ }
268
+ appendHeader(headers, key, mapped)
269
+ }
270
+ }
198
271
  }
199
- const [key, val] = x
200
- if (typeof key !== 'string' || typeof val !== 'string') {
201
- throw new Error('opts.headers is not a valid header map')
272
+ } else {
273
+ // Non-array iterable (e.g. Map) — use original iteration logic
274
+ for (const x of opts.headers) {
275
+ if (!Array.isArray(x)) {
276
+ throw new Error('opts.headers is not a valid header map')
277
+ }
278
+ const [key, val] = x
279
+ if (typeof key !== 'string' || typeof val !== 'string') {
280
+ throw new Error('opts.headers is not a valid header map')
281
+ }
282
+ appendHeader(headers, key, val)
202
283
  }
203
- appendHeader(headers, key, val)
204
284
  }
205
285
  } else {
206
286
  for (const key of Object.keys(opts.headers)) {
@@ -660,6 +740,8 @@ function makeDeduplicationKey (cacheKey, excludeHeaders) {
660
740
  }
661
741
 
662
742
  module.exports = {
743
+ getInterceptorOrigin,
744
+ getRequestOrigin,
663
745
  makeCacheKey,
664
746
  normalizeHeaders,
665
747
  assertCacheKey,
@@ -6,9 +6,7 @@
6
6
  const lazyLoaders = {
7
7
  __proto__: null,
8
8
  'node:crypto': () => require('node:crypto'),
9
- 'node:sqlite': () => require('node:sqlite'),
10
- 'node:worker_threads': () => require('node:worker_threads'),
11
- 'node:zlib': () => require('node:zlib')
9
+ 'node:sqlite': () => require('node:sqlite')
12
10
  }
13
11
 
14
12
  /**
@@ -27,35 +25,9 @@ function detectRuntimeFeatureByNodeModule (moduleName) {
27
25
  }
28
26
  }
29
27
 
30
- /**
31
- * @param {NodeModuleName} moduleName
32
- * @param {string} property
33
- * @returns {boolean}
34
- */
35
- function detectRuntimeFeatureByExportedProperty (moduleName, property) {
36
- const module = lazyLoaders[moduleName]()
37
- return typeof module[property] !== 'undefined'
38
- }
39
-
40
- const runtimeFeaturesByExportedProperty = /** @type {const} */ (['markAsUncloneable', 'zstd'])
41
-
42
- /** @type {Record<RuntimeFeatureByExportedProperty, [NodeModuleName, string]>} */
43
- const exportedPropertyLookup = {
44
- markAsUncloneable: ['node:worker_threads', 'markAsUncloneable'],
45
- zstd: ['node:zlib', 'createZstdDecompress']
46
- }
47
-
48
- /** @typedef {typeof runtimeFeaturesByExportedProperty[number]} RuntimeFeatureByExportedProperty */
49
-
50
28
  const runtimeFeaturesAsNodeModule = /** @type {const} */ (['crypto', 'sqlite'])
51
29
  /** @typedef {typeof runtimeFeaturesAsNodeModule[number]} RuntimeFeatureByNodeModule */
52
-
53
- const features = /** @type {const} */ ([
54
- ...runtimeFeaturesAsNodeModule,
55
- ...runtimeFeaturesByExportedProperty
56
- ])
57
-
58
- /** @typedef {typeof features[number]} Feature */
30
+ /** @typedef {RuntimeFeatureByNodeModule} Feature */
59
31
 
60
32
  /**
61
33
  * @param {Feature} feature
@@ -64,9 +36,6 @@ const features = /** @type {const} */ ([
64
36
  function detectRuntimeFeature (feature) {
65
37
  if (runtimeFeaturesAsNodeModule.includes(/** @type {RuntimeFeatureByNodeModule} */ (feature))) {
66
38
  return detectRuntimeFeatureByNodeModule(`node:${feature}`)
67
- } else if (runtimeFeaturesByExportedProperty.includes(/** @type {RuntimeFeatureByExportedProperty} */ (feature))) {
68
- const [moduleName, property] = exportedPropertyLookup[feature]
69
- return detectRuntimeFeatureByExportedProperty(moduleName, property)
70
39
  }
71
40
  throw new TypeError(`unknown feature: ${feature}`)
72
41
  }
@@ -101,7 +70,7 @@ class RuntimeFeatures {
101
70
  * @param {boolean} value
102
71
  */
103
72
  set (feature, value) {
104
- if (features.includes(feature) === false) {
73
+ if (runtimeFeaturesAsNodeModule.includes(feature) === false) {
105
74
  throw new TypeError(`unknown feature: ${feature}`)
106
75
  }
107
76
  this.#map.set(feature, value)
@@ -10,8 +10,6 @@ const { cloneResponse, fromInnerResponse, getResponseState } = require('../fetch
10
10
  const { Request, fromInnerRequest, getRequestState } = require('../fetch/request')
11
11
  const { fetching } = require('../fetch/index')
12
12
  const { urlIsHttpHttpsScheme, readAllBytes } = require('../fetch/util')
13
- const { createDeferredPromise } = require('../../util/promise')
14
-
15
13
  /**
16
14
  * @see https://w3c.github.io/ServiceWorker/#dfn-cache-batch-operation
17
15
  * @typedef {Object} CacheBatchOperation
@@ -153,7 +151,7 @@ class Cache {
153
151
  requestList.push(r)
154
152
 
155
153
  // 5.6
156
- const responsePromise = createDeferredPromise()
154
+ const responsePromise = Promise.withResolvers()
157
155
 
158
156
  // 5.7
159
157
  fetchControllers.push(fetching({
@@ -231,7 +229,7 @@ class Cache {
231
229
  }
232
230
 
233
231
  // 7.5
234
- const cacheJobPromise = createDeferredPromise()
232
+ const cacheJobPromise = Promise.withResolvers()
235
233
 
236
234
  // 7.6.1
237
235
  let errorData = null
@@ -325,7 +323,7 @@ class Cache {
325
323
  const clonedResponse = cloneResponse(innerResponse)
326
324
 
327
325
  // 10.
328
- const bodyReadPromise = createDeferredPromise()
326
+ const bodyReadPromise = Promise.withResolvers()
329
327
 
330
328
  // 11.
331
329
  if (innerResponse.body != null) {
@@ -364,7 +362,7 @@ class Cache {
364
362
  }
365
363
 
366
364
  // 19.1
367
- const cacheJobPromise = createDeferredPromise()
365
+ const cacheJobPromise = Promise.withResolvers()
368
366
 
369
367
  // 19.2.1
370
368
  let errorData = null
@@ -427,7 +425,7 @@ class Cache {
427
425
 
428
426
  operations.push(operation)
429
427
 
430
- const cacheJobPromise = createDeferredPromise()
428
+ const cacheJobPromise = Promise.withResolvers()
431
429
 
432
430
  let errorData = null
433
431
  let requestResponses
@@ -483,7 +481,7 @@ class Cache {
483
481
  }
484
482
 
485
483
  // 4.
486
- const promise = createDeferredPromise()
484
+ const promise = Promise.withResolvers()
487
485
 
488
486
  // 5.
489
487
  // 5.1
@@ -92,220 +92,224 @@ function parseSetCookie (header) {
92
92
  * @param {Object.<string, unknown>} [cookieAttributeList={}]
93
93
  */
94
94
  function parseUnparsedAttributes (unparsedAttributes, cookieAttributeList = {}) {
95
- // 1. If the unparsed-attributes string is empty, skip the rest of
96
- // these steps.
97
- if (unparsedAttributes.length === 0) {
98
- return cookieAttributeList
99
- }
95
+ while (true) {
96
+ // 1. If the unparsed-attributes string is empty, skip the rest of
97
+ // these steps.
98
+ if (unparsedAttributes.length === 0) {
99
+ return cookieAttributeList
100
+ }
100
101
 
101
- // 2. Discard the first character of the unparsed-attributes (which
102
- // will be a %x3B (";") character).
103
- assert(unparsedAttributes[0] === ';')
104
- unparsedAttributes = unparsedAttributes.slice(1)
102
+ // 2. Discard the first character of the unparsed-attributes (which
103
+ // will be a %x3B (";") character).
104
+ assert(unparsedAttributes[0] === ';')
105
+ unparsedAttributes = unparsedAttributes.slice(1)
105
106
 
106
- let cookieAv = ''
107
+ let cookieAv = ''
107
108
 
108
- // 3. If the remaining unparsed-attributes contains a %x3B (";")
109
- // character:
110
- if (unparsedAttributes.includes(';')) {
109
+ // 3. If the remaining unparsed-attributes contains a %x3B (";")
110
+ // character:
111
+ if (unparsedAttributes.includes(';')) {
111
112
  // 1. Consume the characters of the unparsed-attributes up to, but
112
113
  // not including, the first %x3B (";") character.
113
- cookieAv = collectASequenceOfCodePointsFast(
114
- ';',
115
- unparsedAttributes,
116
- { position: 0 }
117
- )
118
- unparsedAttributes = unparsedAttributes.slice(cookieAv.length)
119
- } else {
114
+ cookieAv = collectASequenceOfCodePointsFast(
115
+ ';',
116
+ unparsedAttributes,
117
+ { position: 0 }
118
+ )
119
+ unparsedAttributes = unparsedAttributes.slice(cookieAv.length)
120
+ } else {
120
121
  // Otherwise:
121
122
 
122
- // 1. Consume the remainder of the unparsed-attributes.
123
- cookieAv = unparsedAttributes
124
- unparsedAttributes = ''
125
- }
123
+ // 1. Consume the remainder of the unparsed-attributes.
124
+ cookieAv = unparsedAttributes
125
+ unparsedAttributes = ''
126
+ }
126
127
 
127
- // Let the cookie-av string be the characters consumed in this step.
128
+ // Let the cookie-av string be the characters consumed in this step.
128
129
 
129
- let attributeName = ''
130
- let attributeValue = ''
130
+ let attributeName = ''
131
+ let attributeValue = ''
131
132
 
132
- // 4. If the cookie-av string contains a %x3D ("=") character:
133
- if (cookieAv.includes('=')) {
133
+ // 4. If the cookie-av string contains a %x3D ("=") character:
134
+ if (cookieAv.includes('=')) {
134
135
  // 1. The (possibly empty) attribute-name string consists of the
135
136
  // characters up to, but not including, the first %x3D ("=")
136
137
  // character, and the (possibly empty) attribute-value string
137
138
  // consists of the characters after the first %x3D ("=")
138
139
  // character.
139
- const position = { position: 0 }
140
-
141
- attributeName = collectASequenceOfCodePointsFast(
142
- '=',
143
- cookieAv,
144
- position
145
- )
146
- attributeValue = cookieAv.slice(position.position + 1)
147
- } else {
140
+ const position = { position: 0 }
141
+
142
+ attributeName = collectASequenceOfCodePointsFast(
143
+ '=',
144
+ cookieAv,
145
+ position
146
+ )
147
+ attributeValue = cookieAv.slice(position.position + 1)
148
+ } else {
148
149
  // Otherwise:
149
150
 
150
- // 1. The attribute-name string consists of the entire cookie-av
151
- // string, and the attribute-value string is empty.
152
- attributeName = cookieAv
153
- }
151
+ // 1. The attribute-name string consists of the entire cookie-av
152
+ // string, and the attribute-value string is empty.
153
+ attributeName = cookieAv
154
+ }
154
155
 
155
- // 5. Remove any leading or trailing WSP characters from the attribute-
156
- // name string and the attribute-value string.
157
- attributeName = attributeName.trim()
158
- attributeValue = attributeValue.trim()
156
+ // 5. Remove any leading or trailing WSP characters from the attribute-
157
+ // name string and the attribute-value string.
158
+ attributeName = attributeName.trim()
159
+ attributeValue = attributeValue.trim()
159
160
 
160
- // 6. If the attribute-value is longer than 1024 octets, ignore the
161
- // cookie-av string and return to Step 1 of this algorithm.
162
- if (attributeValue.length > maxAttributeValueSize) {
163
- return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)
164
- }
161
+ // 6. If the attribute-value is longer than 1024 octets, ignore the
162
+ // cookie-av string and return to Step 1 of this algorithm.
163
+ if (attributeValue.length > maxAttributeValueSize) {
164
+ continue
165
+ }
165
166
 
166
- // 7. Process the attribute-name and attribute-value according to the
167
- // requirements in the following subsections. (Notice that
168
- // attributes with unrecognized attribute-names are ignored.)
169
- const attributeNameLowercase = attributeName.toLowerCase()
167
+ // 7. Process the attribute-name and attribute-value according to the
168
+ // requirements in the following subsections. (Notice that
169
+ // attributes with unrecognized attribute-names are ignored.)
170
+ const attributeNameLowercase = attributeName.toLowerCase()
170
171
 
171
- // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1
172
- // If the attribute-name case-insensitively matches the string
173
- // "Expires", the user agent MUST process the cookie-av as follows.
174
- if (attributeNameLowercase === 'expires') {
172
+ // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.1
173
+ // If the attribute-name case-insensitively matches the string
174
+ // "Expires", the user agent MUST process the cookie-av as follows.
175
+ if (attributeNameLowercase === 'expires') {
175
176
  // 1. Let the expiry-time be the result of parsing the attribute-value
176
177
  // as cookie-date (see Section 5.1.1).
177
- const expiryTime = new Date(attributeValue)
178
-
179
- // 2. If the attribute-value failed to parse as a cookie date, ignore
180
- // the cookie-av.
181
-
182
- cookieAttributeList.expires = expiryTime
183
- } else if (attributeNameLowercase === 'max-age') {
178
+ const expiryTime = new Date(attributeValue)
179
+
180
+ // 2. If the attribute-value failed to parse as a cookie date, ignore
181
+ // the cookie-av.
182
+ if (!Number.isNaN(expiryTime.getTime())) {
183
+ cookieAttributeList.expires = expiryTime
184
+ }
185
+ } else if (attributeNameLowercase === 'max-age') {
184
186
  // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.2
185
187
  // If the attribute-name case-insensitively matches the string "Max-
186
188
  // Age", the user agent MUST process the cookie-av as follows.
187
189
 
188
- // 1. If the first character of the attribute-value is not a DIGIT or a
189
- // "-" character, ignore the cookie-av.
190
- const charCode = attributeValue.charCodeAt(0)
191
-
192
- if ((charCode < 48 || charCode > 57) && attributeValue[0] !== '-') {
193
- return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)
194
- }
195
-
196
- // 2. If the remainder of attribute-value contains a non-DIGIT
197
- // character, ignore the cookie-av.
198
- if (!/^\d+$/.test(attributeValue)) {
199
- return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)
200
- }
201
-
202
- // 3. Let delta-seconds be the attribute-value converted to an integer.
203
- const deltaSeconds = Number(attributeValue)
204
-
205
- // 4. Let cookie-age-limit be the maximum age of the cookie (which
206
- // SHOULD be 400 days or less, see Section 4.1.2.2).
207
-
208
- // 5. Set delta-seconds to the smaller of its present value and cookie-
209
- // age-limit.
210
- // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs)
211
-
212
- // 6. If delta-seconds is less than or equal to zero (0), let expiry-
213
- // time be the earliest representable date and time. Otherwise, let
214
- // the expiry-time be the current date and time plus delta-seconds
215
- // seconds.
216
- // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds
217
-
218
- // 7. Append an attribute to the cookie-attribute-list with an
219
- // attribute-name of Max-Age and an attribute-value of expiry-time.
220
- cookieAttributeList.maxAge = deltaSeconds
221
- } else if (attributeNameLowercase === 'domain') {
190
+ // 1. If the first character of the attribute-value is not a DIGIT or a
191
+ // "-" character, ignore the cookie-av.
192
+ const charCode = attributeValue.charCodeAt(0)
193
+ const startsWithDigit = charCode >= 48 && charCode <= 57
194
+ const startsWithSignedDigit = attributeValue[0] === '-' && attributeValue.length > 1
195
+
196
+ if (!startsWithDigit && !startsWithSignedDigit) {
197
+ continue
198
+ }
199
+
200
+ // 2. If the remainder of attribute-value contains a non-DIGIT
201
+ // character, ignore the cookie-av.
202
+ if (/[^\d]/.test(attributeValue.slice(1))) {
203
+ continue
204
+ }
205
+
206
+ // 3. Let delta-seconds be the attribute-value converted to an integer.
207
+ const deltaSeconds = Number(attributeValue)
208
+
209
+ // 4. Let cookie-age-limit be the maximum age of the cookie (which
210
+ // SHOULD be 400 days or less, see Section 4.1.2.2).
211
+
212
+ // 5. Set delta-seconds to the smaller of its present value and cookie-
213
+ // age-limit.
214
+ // deltaSeconds = Math.min(deltaSeconds * 1000, maxExpiresMs)
215
+
216
+ // 6. If delta-seconds is less than or equal to zero (0), let expiry-
217
+ // time be the earliest representable date and time. Otherwise, let
218
+ // the expiry-time be the current date and time plus delta-seconds
219
+ // seconds.
220
+ // const expiryTime = deltaSeconds <= 0 ? Date.now() : Date.now() + deltaSeconds
221
+
222
+ // 7. Append an attribute to the cookie-attribute-list with an
223
+ // attribute-name of Max-Age and an attribute-value of expiry-time.
224
+ cookieAttributeList.maxAge = deltaSeconds
225
+ } else if (attributeNameLowercase === 'domain') {
222
226
  // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.3
223
227
  // If the attribute-name case-insensitively matches the string "Domain",
224
228
  // the user agent MUST process the cookie-av as follows.
225
229
 
226
- // 1. Let cookie-domain be the attribute-value.
227
- let cookieDomain = attributeValue
230
+ // 1. Let cookie-domain be the attribute-value.
231
+ let cookieDomain = attributeValue
228
232
 
229
- // 2. If cookie-domain starts with %x2E ("."), let cookie-domain be
230
- // cookie-domain without its leading %x2E (".").
231
- if (cookieDomain[0] === '.') {
232
- cookieDomain = cookieDomain.slice(1)
233
- }
233
+ // 2. If cookie-domain starts with %x2E ("."), let cookie-domain be
234
+ // cookie-domain without its leading %x2E (".").
235
+ if (cookieDomain[0] === '.') {
236
+ cookieDomain = cookieDomain.slice(1)
237
+ }
234
238
 
235
- // 3. Convert the cookie-domain to lower case.
236
- cookieDomain = cookieDomain.toLowerCase()
239
+ // 3. Convert the cookie-domain to lower case.
240
+ cookieDomain = cookieDomain.toLowerCase()
237
241
 
238
- // 4. Append an attribute to the cookie-attribute-list with an
239
- // attribute-name of Domain and an attribute-value of cookie-domain.
240
- cookieAttributeList.domain = cookieDomain
241
- } else if (attributeNameLowercase === 'path') {
242
+ // 4. Append an attribute to the cookie-attribute-list with an
243
+ // attribute-name of Domain and an attribute-value of cookie-domain.
244
+ cookieAttributeList.domain = cookieDomain
245
+ } else if (attributeNameLowercase === 'path') {
242
246
  // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.4
243
247
  // If the attribute-name case-insensitively matches the string "Path",
244
248
  // the user agent MUST process the cookie-av as follows.
245
249
 
246
- // 1. If the attribute-value is empty or if the first character of the
247
- // attribute-value is not %x2F ("/"):
248
- let cookiePath = ''
249
- if (attributeValue.length === 0 || attributeValue[0] !== '/') {
250
+ // 1. If the attribute-value is empty or if the first character of the
251
+ // attribute-value is not %x2F ("/"):
252
+ let cookiePath = ''
253
+ if (attributeValue.length === 0 || attributeValue[0] !== '/') {
250
254
  // 1. Let cookie-path be the default-path.
251
- cookiePath = '/'
252
- } else {
255
+ cookiePath = '/'
256
+ } else {
253
257
  // Otherwise:
254
258
 
255
- // 1. Let cookie-path be the attribute-value.
256
- cookiePath = attributeValue
257
- }
259
+ // 1. Let cookie-path be the attribute-value.
260
+ cookiePath = attributeValue
261
+ }
258
262
 
259
- // 2. Append an attribute to the cookie-attribute-list with an
260
- // attribute-name of Path and an attribute-value of cookie-path.
261
- cookieAttributeList.path = cookiePath
262
- } else if (attributeNameLowercase === 'secure') {
263
+ // 2. Append an attribute to the cookie-attribute-list with an
264
+ // attribute-name of Path and an attribute-value of cookie-path.
265
+ cookieAttributeList.path = cookiePath
266
+ } else if (attributeNameLowercase === 'secure') {
263
267
  // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.5
264
268
  // If the attribute-name case-insensitively matches the string "Secure",
265
269
  // the user agent MUST append an attribute to the cookie-attribute-list
266
270
  // with an attribute-name of Secure and an empty attribute-value.
267
271
 
268
- cookieAttributeList.secure = true
269
- } else if (attributeNameLowercase === 'httponly') {
272
+ cookieAttributeList.secure = true
273
+ } else if (attributeNameLowercase === 'httponly') {
270
274
  // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.6
271
275
  // If the attribute-name case-insensitively matches the string
272
276
  // "HttpOnly", the user agent MUST append an attribute to the cookie-
273
277
  // attribute-list with an attribute-name of HttpOnly and an empty
274
278
  // attribute-value.
275
279
 
276
- cookieAttributeList.httpOnly = true
277
- } else if (attributeNameLowercase === 'samesite') {
280
+ cookieAttributeList.httpOnly = true
281
+ } else if (attributeNameLowercase === 'samesite') {
278
282
  // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-rfc6265bis#section-5.4.7
279
283
  // If the attribute-name case-insensitively matches the string
280
284
  // "SameSite", the user agent MUST process the cookie-av as follows:
281
285
 
282
- const attributeValueLowercase = attributeValue.toLowerCase()
286
+ const attributeValueLowercase = attributeValue.toLowerCase()
283
287
 
284
- // 1. If cookie-av's attribute-value is a case-insensitive match for
285
- // "None", append an attribute to the cookie-attribute-list with an
286
- // attribute-name of "SameSite" and an attribute-value of "None".
287
- if (attributeValueLowercase === 'none') {
288
- cookieAttributeList.sameSite = 'None'
289
- } else if (attributeValueLowercase === 'strict') {
288
+ // 1. If cookie-av's attribute-value is a case-insensitive match for
289
+ // "None", append an attribute to the cookie-attribute-list with an
290
+ // attribute-name of "SameSite" and an attribute-value of "None".
291
+ if (attributeValueLowercase === 'none') {
292
+ cookieAttributeList.sameSite = 'None'
293
+ } else if (attributeValueLowercase === 'strict') {
290
294
  // 2. If cookie-av's attribute-value is a case-insensitive match for
291
295
  // "Strict", append an attribute to the cookie-attribute-list with
292
296
  // an attribute-name of "SameSite" and an attribute-value of
293
297
  // "Strict".
294
- cookieAttributeList.sameSite = 'Strict'
295
- } else if (attributeValueLowercase === 'lax') {
298
+ cookieAttributeList.sameSite = 'Strict'
299
+ } else if (attributeValueLowercase === 'lax') {
296
300
  // 3. If cookie-av's attribute-value is a case-insensitive match for
297
301
  // "Lax", append an attribute to the cookie-attribute-list with an
298
302
  // attribute-name of "SameSite" and an attribute-value of "Lax".
299
- cookieAttributeList.sameSite = 'Lax'
300
- }
301
- } else {
302
- cookieAttributeList.unparsed ??= []
303
+ cookieAttributeList.sameSite = 'Lax'
304
+ }
305
+ } else {
306
+ cookieAttributeList.unparsed ??= []
303
307
 
304
- cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`)
305
- }
308
+ cookieAttributeList.unparsed.push(`${attributeName}=${attributeValue}`)
309
+ }
306
310
 
307
311
  // 8. Return to Step 1 of this algorithm.
308
- return parseUnparsedAttributes(unparsedAttributes, cookieAttributeList)
312
+ }
309
313
  }
310
314
 
311
315
  module.exports = {
@@ -105,7 +105,7 @@ function validateCookiePath (path) {
105
105
 
106
106
  if (
107
107
  code < 0x20 || // exclude CTLs (0-31)
108
- code > 0x7E || // exclude DEL and non-ascii
108
+ code > 0x7E || // exclude non-ascii and DEL
109
109
  code === 0x3B // ;
110
110
  ) {
111
111
  throw new Error('Invalid cookie path')