@marxbiotech/openclaw 2026.3.28-beta.1 → 2026.3.28-beta.3

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 (523) hide show
  1. package/dist/.buildstamp +1 -1
  2. package/dist/build-info.json +3 -3
  3. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  4. package/dist/cli-startup-metadata.json +1 -1
  5. package/dist/{command-registry-D6TzWVO8.js → command-registry-B9bgU9hV.js} +5 -5
  6. package/dist/{command-registry-d8nbbaej.js → command-registry-BuxJ5NtM.js} +1 -1
  7. package/dist/{completion-cli-D2QdjG2S.js → completion-cli-CofiidKK.js} +2 -2
  8. package/dist/completion-cli-Gj-f2vks.js +2 -0
  9. package/dist/{config-cli-Djn9hC2Q.js → config-cli-jZdsV_1z.js} +1 -1
  10. package/dist/{doctor-completion-CGHO1mf1.js → doctor-completion-gl3VS5_j.js} +1 -1
  11. package/dist/entry.js +1 -1
  12. package/dist/extensions/diffs/.openclaw-runtime-deps-stamp.json +1 -1
  13. package/dist/extensions/diffs/node_modules/.package-lock.json +7 -7
  14. package/dist/extensions/diffs/node_modules/oniguruma-parser/LICENSE +1 -1
  15. package/dist/extensions/diffs/node_modules/oniguruma-parser/README.md +61 -15
  16. package/dist/extensions/diffs/node_modules/oniguruma-parser/dist/generator/generate.js.map +1 -1
  17. package/dist/extensions/diffs/node_modules/oniguruma-parser/dist/oniguruma-parser.min.js +4 -4
  18. package/dist/extensions/diffs/node_modules/oniguruma-parser/dist/oniguruma-parser.min.js.map +3 -3
  19. package/dist/extensions/diffs/node_modules/oniguruma-parser/dist/parser/parse.d.ts.map +1 -1
  20. package/dist/extensions/diffs/node_modules/oniguruma-parser/dist/parser/parse.js +1 -1
  21. package/dist/extensions/diffs/node_modules/oniguruma-parser/dist/parser/parse.js.map +3 -3
  22. package/dist/extensions/diffs/node_modules/oniguruma-parser/dist/traverser/traverse.d.ts.map +1 -1
  23. package/dist/extensions/diffs/node_modules/oniguruma-parser/dist/traverser/traverse.js +1 -1
  24. package/dist/extensions/diffs/node_modules/oniguruma-parser/dist/traverser/traverse.js.map +2 -2
  25. package/dist/extensions/diffs/node_modules/oniguruma-parser/package.json +5 -5
  26. package/dist/extensions/diffs/node_modules/oniguruma-to-es/dist/cjs/generate.d.ts +1 -1
  27. package/dist/extensions/diffs/node_modules/oniguruma-to-es/dist/cjs/index.js +120 -121
  28. package/dist/extensions/diffs/node_modules/oniguruma-to-es/dist/cjs/index.js.map +4 -4
  29. package/dist/extensions/diffs/node_modules/oniguruma-to-es/dist/cjs/subclass.d.ts +2 -2
  30. package/dist/extensions/diffs/node_modules/oniguruma-to-es/dist/cjs/transform.d.ts +5 -3
  31. package/dist/extensions/diffs/node_modules/oniguruma-to-es/dist/cjs/unicode.d.ts +1 -1
  32. package/dist/extensions/diffs/node_modules/oniguruma-to-es/dist/esm/generate.d.ts +1 -1
  33. package/dist/extensions/diffs/node_modules/oniguruma-to-es/dist/esm/index.js +3 -1
  34. package/dist/extensions/diffs/node_modules/oniguruma-to-es/dist/esm/index.js.map +2 -2
  35. package/dist/extensions/diffs/node_modules/oniguruma-to-es/dist/esm/subclass.d.ts +2 -2
  36. package/dist/extensions/diffs/node_modules/oniguruma-to-es/dist/esm/transform.d.ts +5 -3
  37. package/dist/extensions/diffs/node_modules/oniguruma-to-es/dist/esm/unicode.d.ts +1 -1
  38. package/dist/extensions/diffs/node_modules/oniguruma-to-es/dist/index.min.js +6 -6
  39. package/dist/extensions/diffs/node_modules/oniguruma-to-es/dist/index.min.js.map +4 -4
  40. package/dist/extensions/diffs/node_modules/oniguruma-to-es/package.json +5 -5
  41. package/dist/extensions/discord/.openclaw-runtime-deps-stamp.json +1 -1
  42. package/dist/extensions/discord/node_modules/.package-lock.json +13 -10
  43. package/dist/extensions/discord/node_modules/@types/node/README.md +1 -1
  44. package/dist/extensions/discord/node_modules/@types/node/assert/strict.d.ts +0 -46
  45. package/dist/extensions/discord/node_modules/@types/node/assert.d.ts +0 -5
  46. package/dist/extensions/discord/node_modules/@types/node/async_hooks.d.ts +18 -38
  47. package/dist/extensions/discord/node_modules/@types/node/buffer.buffer.d.ts +1 -1
  48. package/dist/extensions/discord/node_modules/@types/node/buffer.d.ts +0 -45
  49. package/dist/extensions/discord/node_modules/@types/node/child_process.d.ts +0 -67
  50. package/dist/extensions/discord/node_modules/@types/node/cluster.d.ts +0 -54
  51. package/dist/extensions/discord/node_modules/@types/node/console.d.ts +0 -58
  52. package/dist/extensions/discord/node_modules/@types/node/constants.d.ts +0 -6
  53. package/dist/extensions/discord/node_modules/@types/node/crypto.d.ts +0 -18
  54. package/dist/extensions/discord/node_modules/@types/node/dgram.d.ts +0 -27
  55. package/dist/extensions/discord/node_modules/@types/node/diagnostics_channel.d.ts +0 -24
  56. package/dist/extensions/discord/node_modules/@types/node/dns/promises.d.ts +0 -6
  57. package/dist/extensions/discord/node_modules/@types/node/dns.d.ts +0 -46
  58. package/dist/extensions/discord/node_modules/@types/node/domain.d.ts +0 -16
  59. package/dist/extensions/discord/node_modules/@types/node/events.d.ts +0 -36
  60. package/dist/extensions/discord/node_modules/@types/node/fs/promises.d.ts +0 -10
  61. package/dist/extensions/discord/node_modules/@types/node/fs.d.ts +0 -20
  62. package/dist/extensions/discord/node_modules/@types/node/http.d.ts +0 -41
  63. package/dist/extensions/discord/node_modules/@types/node/http2.d.ts +0 -10
  64. package/dist/extensions/discord/node_modules/@types/node/https.d.ts +0 -5
  65. package/dist/extensions/discord/node_modules/@types/node/inspector/promises.d.ts +0 -6
  66. package/dist/extensions/discord/node_modules/@types/node/inspector.d.ts +0 -5
  67. package/dist/extensions/discord/node_modules/@types/node/module.d.ts +0 -3
  68. package/dist/extensions/discord/node_modules/@types/node/net.d.ts +53 -16
  69. package/dist/extensions/discord/node_modules/@types/node/os.d.ts +0 -9
  70. package/dist/extensions/discord/node_modules/@types/node/package.json +4 -4
  71. package/dist/extensions/discord/node_modules/@types/node/path.d.ts +0 -9
  72. package/dist/extensions/discord/node_modules/@types/node/perf_hooks.d.ts +0 -31
  73. package/dist/extensions/discord/node_modules/@types/node/punycode.d.ts +0 -28
  74. package/dist/extensions/discord/node_modules/@types/node/querystring.d.ts +0 -13
  75. package/dist/extensions/discord/node_modules/@types/node/quic.d.ts +0 -13
  76. package/dist/extensions/discord/node_modules/@types/node/readline/promises.d.ts +0 -3
  77. package/dist/extensions/discord/node_modules/@types/node/readline.d.ts +0 -35
  78. package/dist/extensions/discord/node_modules/@types/node/repl.d.ts +0 -10
  79. package/dist/extensions/discord/node_modules/@types/node/sea.d.ts +0 -115
  80. package/dist/extensions/discord/node_modules/@types/node/sqlite.d.ts +0 -44
  81. package/dist/extensions/discord/node_modules/@types/node/stream/consumers.d.ts +81 -5
  82. package/dist/extensions/discord/node_modules/@types/node/stream/web.d.ts +3 -3
  83. package/dist/extensions/discord/node_modules/@types/node/stream.d.ts +27 -23
  84. package/dist/extensions/discord/node_modules/@types/node/string_decoder.d.ts +0 -40
  85. package/dist/extensions/discord/node_modules/@types/node/test/reporters.d.ts +0 -38
  86. package/dist/extensions/discord/node_modules/@types/node/test.d.ts +7 -80
  87. package/dist/extensions/discord/node_modules/@types/node/timers/promises.d.ts +0 -15
  88. package/dist/extensions/discord/node_modules/@types/node/timers.d.ts +0 -10
  89. package/dist/extensions/discord/node_modules/@types/node/tls.d.ts +6 -16
  90. package/dist/extensions/discord/node_modules/@types/node/trace_events.d.ts +0 -94
  91. package/dist/extensions/discord/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +1 -1
  92. package/dist/extensions/discord/node_modules/@types/node/tty.d.ts +0 -25
  93. package/dist/extensions/discord/node_modules/@types/node/url.d.ts +0 -9
  94. package/dist/extensions/discord/node_modules/@types/node/util.d.ts +0 -10
  95. package/dist/extensions/discord/node_modules/@types/node/v8.d.ts +0 -8
  96. package/dist/extensions/discord/node_modules/@types/node/vm.d.ts +0 -38
  97. package/dist/extensions/discord/node_modules/@types/node/wasi.d.ts +0 -71
  98. package/dist/extensions/discord/node_modules/@types/node/worker_threads.d.ts +15 -61
  99. package/dist/extensions/discord/node_modules/@types/node/zlib.d.ts +0 -93
  100. package/dist/extensions/discord/node_modules/discord-api-types/CHANGELOG.md +40 -0
  101. package/dist/extensions/discord/node_modules/discord-api-types/gateway/v10.d.ts +1 -1
  102. package/dist/extensions/discord/node_modules/discord-api-types/gateway/v10.d.ts.map +1 -1
  103. package/dist/extensions/discord/node_modules/discord-api-types/gateway/v9.d.ts +1 -1
  104. package/dist/extensions/discord/node_modules/discord-api-types/gateway/v9.d.ts.map +1 -1
  105. package/dist/extensions/discord/node_modules/discord-api-types/package.json +1 -1
  106. package/dist/extensions/discord/node_modules/discord-api-types/payloads/index.mjs +3 -0
  107. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v10/application.d.ts +1 -1
  108. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v10/application.d.ts.map +1 -1
  109. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v10/index.mjs +3 -0
  110. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v10/message.d.ts +179 -29
  111. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v10/message.d.ts.map +1 -1
  112. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v10/message.js +55 -2
  113. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v10/message.js.map +1 -1
  114. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v10/user.d.ts +3 -1
  115. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v10/user.d.ts.map +1 -1
  116. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v10/user.js +2 -0
  117. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v10/user.js.map +1 -1
  118. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v9/application.d.ts +1 -1
  119. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v9/application.d.ts.map +1 -1
  120. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v9/index.mjs +3 -0
  121. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v9/message.d.ts +179 -29
  122. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v9/message.d.ts.map +1 -1
  123. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v9/message.js +55 -2
  124. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v9/message.js.map +1 -1
  125. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v9/user.d.ts +3 -1
  126. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v9/user.d.ts.map +1 -1
  127. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v9/user.js +2 -0
  128. package/dist/extensions/discord/node_modules/discord-api-types/payloads/v9/user.js.map +1 -1
  129. package/dist/extensions/discord/node_modules/discord-api-types/rest/common.d.ts +9 -0
  130. package/dist/extensions/discord/node_modules/discord-api-types/rest/common.d.ts.map +1 -1
  131. package/dist/extensions/discord/node_modules/discord-api-types/rest/common.js +9 -0
  132. package/dist/extensions/discord/node_modules/discord-api-types/rest/common.js.map +1 -1
  133. package/dist/extensions/discord/node_modules/discord-api-types/rest/v10/channel.d.ts +8 -0
  134. package/dist/extensions/discord/node_modules/discord-api-types/rest/v10/channel.d.ts.map +1 -1
  135. package/dist/extensions/discord/node_modules/discord-api-types/rest/v10/channel.js +6 -0
  136. package/dist/extensions/discord/node_modules/discord-api-types/rest/v10/channel.js.map +1 -1
  137. package/dist/extensions/discord/node_modules/discord-api-types/rest/v10/oauth2.d.ts +1 -1
  138. package/dist/extensions/discord/node_modules/discord-api-types/rest/v10/oauth2.d.ts.map +1 -1
  139. package/dist/extensions/discord/node_modules/discord-api-types/rest/v10/user.d.ts +1 -1
  140. package/dist/extensions/discord/node_modules/discord-api-types/rest/v10/user.d.ts.map +1 -1
  141. package/dist/extensions/discord/node_modules/discord-api-types/rest/v10/webhook.d.ts +7 -1
  142. package/dist/extensions/discord/node_modules/discord-api-types/rest/v10/webhook.d.ts.map +1 -1
  143. package/dist/extensions/discord/node_modules/discord-api-types/rest/v9/channel.d.ts +8 -0
  144. package/dist/extensions/discord/node_modules/discord-api-types/rest/v9/channel.d.ts.map +1 -1
  145. package/dist/extensions/discord/node_modules/discord-api-types/rest/v9/channel.js +6 -0
  146. package/dist/extensions/discord/node_modules/discord-api-types/rest/v9/channel.js.map +1 -1
  147. package/dist/extensions/discord/node_modules/discord-api-types/rest/v9/oauth2.d.ts +1 -1
  148. package/dist/extensions/discord/node_modules/discord-api-types/rest/v9/oauth2.d.ts.map +1 -1
  149. package/dist/extensions/discord/node_modules/discord-api-types/rest/v9/user.d.ts +1 -1
  150. package/dist/extensions/discord/node_modules/discord-api-types/rest/v9/user.d.ts.map +1 -1
  151. package/dist/extensions/discord/node_modules/discord-api-types/rest/v9/webhook.d.ts +7 -1
  152. package/dist/extensions/discord/node_modules/discord-api-types/rest/v9/webhook.d.ts.map +1 -1
  153. package/dist/extensions/discord/node_modules/discord-api-types/v10.mjs +3 -0
  154. package/dist/extensions/discord/node_modules/discord-api-types/v9.mjs +3 -0
  155. package/dist/extensions/discord/node_modules/undici-types/cache-interceptor.d.ts +6 -0
  156. package/dist/extensions/discord/node_modules/undici-types/client.d.ts +10 -0
  157. package/dist/extensions/discord/node_modules/undici-types/package.json +1 -1
  158. package/dist/extensions/feishu/.openclaw-runtime-deps-stamp.json +1 -1
  159. package/dist/extensions/feishu/node_modules/.package-lock.json +38 -38
  160. package/dist/extensions/feishu/node_modules/@larksuiteoapi/node-sdk/README.md +88 -4
  161. package/dist/extensions/feishu/node_modules/@larksuiteoapi/node-sdk/README.zh.md +212 -58
  162. package/dist/extensions/feishu/node_modules/@larksuiteoapi/node-sdk/es/index.js +3916 -7
  163. package/dist/extensions/feishu/node_modules/@larksuiteoapi/node-sdk/lib/index.js +3928 -7
  164. package/dist/extensions/feishu/node_modules/@larksuiteoapi/node-sdk/package.json +1 -1
  165. package/dist/extensions/feishu/node_modules/@larksuiteoapi/node-sdk/types/index.d.ts +624 -18
  166. package/dist/extensions/feishu/node_modules/@protobufjs/codegen/index.js +14 -1
  167. package/dist/extensions/feishu/node_modules/@protobufjs/codegen/package.json +1 -1
  168. package/dist/extensions/feishu/node_modules/@protobufjs/inquire/index.d.ts +1 -1
  169. package/dist/extensions/feishu/node_modules/@protobufjs/inquire/index.js +25 -5
  170. package/dist/extensions/feishu/node_modules/@protobufjs/inquire/package.json +2 -2
  171. package/dist/extensions/feishu/node_modules/@protobufjs/utf8/index.js +27 -28
  172. package/dist/extensions/feishu/node_modules/@protobufjs/utf8/package.json +21 -21
  173. package/dist/extensions/feishu/node_modules/@protobufjs/utf8/tests/data/surrogate_pair_bug.txt +207 -0
  174. package/dist/extensions/feishu/node_modules/@protobufjs/utf8/tests/data/utf8.txt +216 -216
  175. package/dist/extensions/feishu/node_modules/@protobufjs/utf8/tests/index.js +17 -0
  176. package/dist/extensions/feishu/node_modules/@types/node/README.md +1 -1
  177. package/dist/extensions/feishu/node_modules/@types/node/assert/strict.d.ts +0 -46
  178. package/dist/extensions/feishu/node_modules/@types/node/assert.d.ts +0 -5
  179. package/dist/extensions/feishu/node_modules/@types/node/async_hooks.d.ts +18 -38
  180. package/dist/extensions/feishu/node_modules/@types/node/buffer.buffer.d.ts +1 -1
  181. package/dist/extensions/feishu/node_modules/@types/node/buffer.d.ts +0 -45
  182. package/dist/extensions/feishu/node_modules/@types/node/child_process.d.ts +0 -67
  183. package/dist/extensions/feishu/node_modules/@types/node/cluster.d.ts +0 -54
  184. package/dist/extensions/feishu/node_modules/@types/node/console.d.ts +0 -58
  185. package/dist/extensions/feishu/node_modules/@types/node/constants.d.ts +0 -6
  186. package/dist/extensions/feishu/node_modules/@types/node/crypto.d.ts +0 -18
  187. package/dist/extensions/feishu/node_modules/@types/node/dgram.d.ts +0 -27
  188. package/dist/extensions/feishu/node_modules/@types/node/diagnostics_channel.d.ts +0 -24
  189. package/dist/extensions/feishu/node_modules/@types/node/dns/promises.d.ts +0 -6
  190. package/dist/extensions/feishu/node_modules/@types/node/dns.d.ts +0 -46
  191. package/dist/extensions/feishu/node_modules/@types/node/domain.d.ts +0 -16
  192. package/dist/extensions/feishu/node_modules/@types/node/events.d.ts +0 -36
  193. package/dist/extensions/feishu/node_modules/@types/node/fs/promises.d.ts +0 -10
  194. package/dist/extensions/feishu/node_modules/@types/node/fs.d.ts +0 -20
  195. package/dist/extensions/feishu/node_modules/@types/node/http.d.ts +0 -41
  196. package/dist/extensions/feishu/node_modules/@types/node/http2.d.ts +0 -10
  197. package/dist/extensions/feishu/node_modules/@types/node/https.d.ts +0 -5
  198. package/dist/extensions/feishu/node_modules/@types/node/inspector/promises.d.ts +0 -6
  199. package/dist/extensions/feishu/node_modules/@types/node/inspector.d.ts +0 -5
  200. package/dist/extensions/feishu/node_modules/@types/node/module.d.ts +0 -3
  201. package/dist/extensions/feishu/node_modules/@types/node/net.d.ts +53 -16
  202. package/dist/extensions/feishu/node_modules/@types/node/os.d.ts +0 -9
  203. package/dist/extensions/feishu/node_modules/@types/node/package.json +4 -4
  204. package/dist/extensions/feishu/node_modules/@types/node/path.d.ts +0 -9
  205. package/dist/extensions/feishu/node_modules/@types/node/perf_hooks.d.ts +0 -31
  206. package/dist/extensions/feishu/node_modules/@types/node/punycode.d.ts +0 -28
  207. package/dist/extensions/feishu/node_modules/@types/node/querystring.d.ts +0 -13
  208. package/dist/extensions/feishu/node_modules/@types/node/quic.d.ts +0 -13
  209. package/dist/extensions/feishu/node_modules/@types/node/readline/promises.d.ts +0 -3
  210. package/dist/extensions/feishu/node_modules/@types/node/readline.d.ts +0 -35
  211. package/dist/extensions/feishu/node_modules/@types/node/repl.d.ts +0 -10
  212. package/dist/extensions/feishu/node_modules/@types/node/sea.d.ts +0 -115
  213. package/dist/extensions/feishu/node_modules/@types/node/sqlite.d.ts +0 -44
  214. package/dist/extensions/feishu/node_modules/@types/node/stream/consumers.d.ts +81 -5
  215. package/dist/extensions/feishu/node_modules/@types/node/stream/web.d.ts +3 -3
  216. package/dist/extensions/feishu/node_modules/@types/node/stream.d.ts +27 -23
  217. package/dist/extensions/feishu/node_modules/@types/node/string_decoder.d.ts +0 -40
  218. package/dist/extensions/feishu/node_modules/@types/node/test/reporters.d.ts +0 -38
  219. package/dist/extensions/feishu/node_modules/@types/node/test.d.ts +7 -80
  220. package/dist/extensions/feishu/node_modules/@types/node/timers/promises.d.ts +0 -15
  221. package/dist/extensions/feishu/node_modules/@types/node/timers.d.ts +0 -10
  222. package/dist/extensions/feishu/node_modules/@types/node/tls.d.ts +6 -16
  223. package/dist/extensions/feishu/node_modules/@types/node/trace_events.d.ts +0 -94
  224. package/dist/extensions/feishu/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +1 -1
  225. package/dist/extensions/feishu/node_modules/@types/node/tty.d.ts +0 -25
  226. package/dist/extensions/feishu/node_modules/@types/node/url.d.ts +0 -9
  227. package/dist/extensions/feishu/node_modules/@types/node/util.d.ts +0 -10
  228. package/dist/extensions/feishu/node_modules/@types/node/v8.d.ts +0 -8
  229. package/dist/extensions/feishu/node_modules/@types/node/vm.d.ts +0 -38
  230. package/dist/extensions/feishu/node_modules/@types/node/wasi.d.ts +0 -71
  231. package/dist/extensions/feishu/node_modules/@types/node/worker_threads.d.ts +15 -61
  232. package/dist/extensions/feishu/node_modules/@types/node/zlib.d.ts +0 -93
  233. package/dist/extensions/feishu/node_modules/follow-redirects/README.md +7 -5
  234. package/dist/extensions/feishu/node_modules/follow-redirects/index.js +24 -1
  235. package/dist/extensions/feishu/node_modules/follow-redirects/package.json +1 -1
  236. package/dist/extensions/feishu/node_modules/hasown/CHANGELOG.md +11 -0
  237. package/dist/extensions/feishu/node_modules/hasown/eslint.config.mjs +6 -0
  238. package/dist/extensions/feishu/node_modules/hasown/index.d.ts +1 -0
  239. package/dist/extensions/feishu/node_modules/hasown/package.json +14 -14
  240. package/dist/extensions/feishu/node_modules/protobufjs/dist/light/protobuf.js +238 -110
  241. package/dist/extensions/feishu/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
  242. package/dist/extensions/feishu/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
  243. package/dist/extensions/feishu/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
  244. package/dist/extensions/feishu/node_modules/protobufjs/dist/minimal/protobuf.js +90 -38
  245. package/dist/extensions/feishu/node_modules/protobufjs/dist/minimal/protobuf.js.map +1 -1
  246. package/dist/extensions/feishu/node_modules/protobufjs/dist/minimal/protobuf.min.js +3 -3
  247. package/dist/extensions/feishu/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +1 -1
  248. package/dist/extensions/feishu/node_modules/protobufjs/dist/protobuf.js +242 -113
  249. package/dist/extensions/feishu/node_modules/protobufjs/dist/protobuf.js.map +1 -1
  250. package/dist/extensions/feishu/node_modules/protobufjs/dist/protobuf.min.js +3 -3
  251. package/dist/extensions/feishu/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
  252. package/dist/extensions/feishu/node_modules/protobufjs/ext/descriptor/index.d.ts +4 -0
  253. package/dist/extensions/feishu/node_modules/protobufjs/ext/descriptor/index.js +35 -16
  254. package/dist/extensions/feishu/node_modules/protobufjs/index.d.ts +22 -4
  255. package/dist/extensions/feishu/node_modules/protobufjs/package.json +7 -4
  256. package/dist/extensions/feishu/node_modules/protobufjs/src/converter.js +14 -5
  257. package/dist/extensions/feishu/node_modules/protobufjs/src/decoder.js +17 -9
  258. package/dist/extensions/feishu/node_modules/protobufjs/src/enum.js +4 -1
  259. package/dist/extensions/feishu/node_modules/protobufjs/src/message.js +7 -3
  260. package/dist/extensions/feishu/node_modules/protobufjs/src/namespace.js +10 -6
  261. package/dist/extensions/feishu/node_modules/protobufjs/src/object.js +4 -0
  262. package/dist/extensions/feishu/node_modules/protobufjs/src/parse.js +4 -3
  263. package/dist/extensions/feishu/node_modules/protobufjs/src/reader.js +12 -2
  264. package/dist/extensions/feishu/node_modules/protobufjs/src/service.js +8 -4
  265. package/dist/extensions/feishu/node_modules/protobufjs/src/type.js +23 -12
  266. package/dist/extensions/feishu/node_modules/protobufjs/src/types.js +1 -1
  267. package/dist/extensions/feishu/node_modules/protobufjs/src/util/minimal.js +24 -1
  268. package/dist/extensions/feishu/node_modules/protobufjs/src/util/patterns.js +8 -0
  269. package/dist/extensions/feishu/node_modules/protobufjs/src/util.js +9 -9
  270. package/dist/extensions/feishu/node_modules/protobufjs/src/verifier.js +7 -4
  271. package/dist/extensions/feishu/node_modules/protobufjs/src/wrappers.js +4 -3
  272. package/dist/extensions/feishu/node_modules/qs/CHANGELOG.md +6 -0
  273. package/dist/extensions/feishu/node_modules/qs/dist/qs.js +16 -16
  274. package/dist/extensions/feishu/node_modules/qs/lib/parse.js +2 -2
  275. package/dist/extensions/feishu/node_modules/qs/package.json +3 -3
  276. package/dist/extensions/feishu/node_modules/qs/test/parse.js +86 -0
  277. package/dist/extensions/feishu/node_modules/qs/test/stringify.js +9 -0
  278. package/dist/extensions/feishu/node_modules/qs/test/utils.js +31 -3
  279. package/dist/extensions/feishu/node_modules/side-channel-list/CHANGELOG.md +25 -4
  280. package/dist/extensions/feishu/node_modules/side-channel-list/index.js +1 -3
  281. package/dist/extensions/feishu/node_modules/side-channel-list/package.json +8 -8
  282. package/dist/extensions/feishu/node_modules/side-channel-list/test/index.js +50 -0
  283. package/dist/extensions/feishu/node_modules/undici-types/cache-interceptor.d.ts +6 -0
  284. package/dist/extensions/feishu/node_modules/undici-types/client.d.ts +10 -0
  285. package/dist/extensions/feishu/node_modules/undici-types/package.json +1 -1
  286. package/dist/extensions/slack/.openclaw-runtime-deps-stamp.json +1 -1
  287. package/dist/extensions/slack/node_modules/.package-lock.json +41 -41
  288. package/dist/extensions/slack/node_modules/@slack/bolt/README.md +5 -5
  289. package/dist/extensions/slack/node_modules/@slack/bolt/dist/App.d.ts +2 -2
  290. package/dist/extensions/slack/node_modules/@slack/bolt/dist/App.d.ts.map +1 -1
  291. package/dist/extensions/slack/node_modules/@slack/bolt/dist/App.js +22 -30
  292. package/dist/extensions/slack/node_modules/@slack/bolt/dist/App.js.map +1 -1
  293. package/dist/extensions/slack/node_modules/@slack/bolt/dist/Assistant.d.ts +4 -2
  294. package/dist/extensions/slack/node_modules/@slack/bolt/dist/Assistant.d.ts.map +1 -1
  295. package/dist/extensions/slack/node_modules/@slack/bolt/dist/Assistant.js +21 -37
  296. package/dist/extensions/slack/node_modules/@slack/bolt/dist/Assistant.js.map +1 -1
  297. package/dist/extensions/slack/node_modules/@slack/bolt/dist/CustomFunction.d.ts +2 -10
  298. package/dist/extensions/slack/node_modules/@slack/bolt/dist/CustomFunction.d.ts.map +1 -1
  299. package/dist/extensions/slack/node_modules/@slack/bolt/dist/CustomFunction.js +1 -43
  300. package/dist/extensions/slack/node_modules/@slack/bolt/dist/CustomFunction.js.map +1 -1
  301. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-function-complete.d.ts +5 -0
  302. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-function-complete.d.ts.map +1 -0
  303. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-function-complete.js +23 -0
  304. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-function-complete.js.map +1 -0
  305. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-function-fail.d.ts +5 -0
  306. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-function-fail.d.ts.map +1 -0
  307. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-function-fail.js +23 -0
  308. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-function-fail.js.map +1 -0
  309. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-respond.d.ts +4 -0
  310. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-respond.d.ts.map +1 -0
  311. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-respond.js +11 -0
  312. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-respond.js.map +1 -0
  313. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-say-stream.d.ts +8 -0
  314. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-say-stream.d.ts.map +1 -0
  315. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-say-stream.js +16 -0
  316. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-say-stream.js.map +1 -0
  317. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-say.d.ts +4 -0
  318. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-say.d.ts.map +1 -0
  319. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-say.js +17 -0
  320. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-say.js.map +1 -0
  321. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-set-status.d.ts +5 -0
  322. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-set-status.d.ts.map +1 -0
  323. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-set-status.js +21 -0
  324. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/create-set-status.js.map +1 -0
  325. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/index.d.ts +9 -0
  326. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/index.d.ts.map +1 -0
  327. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/index.js +16 -0
  328. package/dist/extensions/slack/node_modules/@slack/bolt/dist/context/index.js.map +1 -0
  329. package/dist/extensions/slack/node_modules/@slack/bolt/dist/conversation-store.d.ts.map +1 -1
  330. package/dist/extensions/slack/node_modules/@slack/bolt/dist/conversation-store.js +2 -0
  331. package/dist/extensions/slack/node_modules/@slack/bolt/dist/conversation-store.js.map +1 -1
  332. package/dist/extensions/slack/node_modules/@slack/bolt/dist/errors.d.ts.map +1 -1
  333. package/dist/extensions/slack/node_modules/@slack/bolt/dist/errors.js +1 -1
  334. package/dist/extensions/slack/node_modules/@slack/bolt/dist/errors.js.map +1 -1
  335. package/dist/extensions/slack/node_modules/@slack/bolt/dist/helpers.d.ts +33 -1
  336. package/dist/extensions/slack/node_modules/@slack/bolt/dist/helpers.d.ts.map +1 -1
  337. package/dist/extensions/slack/node_modules/@slack/bolt/dist/helpers.js +79 -3
  338. package/dist/extensions/slack/node_modules/@slack/bolt/dist/helpers.js.map +1 -1
  339. package/dist/extensions/slack/node_modules/@slack/bolt/dist/index.d.ts +15 -6
  340. package/dist/extensions/slack/node_modules/@slack/bolt/dist/index.d.ts.map +1 -1
  341. package/dist/extensions/slack/node_modules/@slack/bolt/dist/index.js +10 -8
  342. package/dist/extensions/slack/node_modules/@slack/bolt/dist/index.js.map +1 -1
  343. package/dist/extensions/slack/node_modules/@slack/bolt/dist/receivers/SocketModeReceiver.d.ts +5 -1
  344. package/dist/extensions/slack/node_modules/@slack/bolt/dist/receivers/SocketModeReceiver.d.ts.map +1 -1
  345. package/dist/extensions/slack/node_modules/@slack/bolt/dist/receivers/SocketModeReceiver.js +5 -1
  346. package/dist/extensions/slack/node_modules/@slack/bolt/dist/receivers/SocketModeReceiver.js.map +1 -1
  347. package/dist/extensions/slack/node_modules/@slack/bolt/dist/types/actions/block-action.d.ts +6 -6
  348. package/dist/extensions/slack/node_modules/@slack/bolt/dist/types/events/index.d.ts +53 -5
  349. package/dist/extensions/slack/node_modules/@slack/bolt/dist/types/events/index.d.ts.map +1 -1
  350. package/dist/extensions/slack/node_modules/@slack/bolt/dist/types/events/index.js +0 -4
  351. package/dist/extensions/slack/node_modules/@slack/bolt/dist/types/events/index.js.map +1 -1
  352. package/dist/extensions/slack/node_modules/@slack/bolt/dist/types/utilities.d.ts +1 -0
  353. package/dist/extensions/slack/node_modules/@slack/bolt/dist/types/utilities.d.ts.map +1 -1
  354. package/dist/extensions/slack/node_modules/@slack/bolt/package.json +13 -8
  355. package/dist/extensions/slack/node_modules/@slack/web-api/dist/instrument.d.ts.map +1 -1
  356. package/dist/extensions/slack/node_modules/@slack/web-api/dist/instrument.js +13 -1
  357. package/dist/extensions/slack/node_modules/@slack/web-api/dist/instrument.js.map +1 -1
  358. package/dist/extensions/slack/node_modules/@slack/web-api/package.json +2 -2
  359. package/dist/extensions/slack/node_modules/@types/node/README.md +1 -1
  360. package/dist/extensions/slack/node_modules/@types/node/assert/strict.d.ts +0 -46
  361. package/dist/extensions/slack/node_modules/@types/node/assert.d.ts +0 -5
  362. package/dist/extensions/slack/node_modules/@types/node/async_hooks.d.ts +18 -38
  363. package/dist/extensions/slack/node_modules/@types/node/buffer.buffer.d.ts +1 -1
  364. package/dist/extensions/slack/node_modules/@types/node/buffer.d.ts +0 -45
  365. package/dist/extensions/slack/node_modules/@types/node/child_process.d.ts +0 -67
  366. package/dist/extensions/slack/node_modules/@types/node/cluster.d.ts +0 -54
  367. package/dist/extensions/slack/node_modules/@types/node/console.d.ts +0 -58
  368. package/dist/extensions/slack/node_modules/@types/node/constants.d.ts +0 -6
  369. package/dist/extensions/slack/node_modules/@types/node/crypto.d.ts +0 -18
  370. package/dist/extensions/slack/node_modules/@types/node/dgram.d.ts +0 -27
  371. package/dist/extensions/slack/node_modules/@types/node/diagnostics_channel.d.ts +0 -24
  372. package/dist/extensions/slack/node_modules/@types/node/dns/promises.d.ts +0 -6
  373. package/dist/extensions/slack/node_modules/@types/node/dns.d.ts +0 -46
  374. package/dist/extensions/slack/node_modules/@types/node/domain.d.ts +0 -16
  375. package/dist/extensions/slack/node_modules/@types/node/events.d.ts +0 -36
  376. package/dist/extensions/slack/node_modules/@types/node/fs/promises.d.ts +0 -10
  377. package/dist/extensions/slack/node_modules/@types/node/fs.d.ts +0 -20
  378. package/dist/extensions/slack/node_modules/@types/node/http.d.ts +0 -41
  379. package/dist/extensions/slack/node_modules/@types/node/http2.d.ts +0 -10
  380. package/dist/extensions/slack/node_modules/@types/node/https.d.ts +0 -5
  381. package/dist/extensions/slack/node_modules/@types/node/inspector/promises.d.ts +0 -6
  382. package/dist/extensions/slack/node_modules/@types/node/inspector.d.ts +0 -5
  383. package/dist/extensions/slack/node_modules/@types/node/module.d.ts +0 -3
  384. package/dist/extensions/slack/node_modules/@types/node/net.d.ts +53 -16
  385. package/dist/extensions/slack/node_modules/@types/node/os.d.ts +0 -9
  386. package/dist/extensions/slack/node_modules/@types/node/package.json +4 -4
  387. package/dist/extensions/slack/node_modules/@types/node/path.d.ts +0 -9
  388. package/dist/extensions/slack/node_modules/@types/node/perf_hooks.d.ts +0 -31
  389. package/dist/extensions/slack/node_modules/@types/node/punycode.d.ts +0 -28
  390. package/dist/extensions/slack/node_modules/@types/node/querystring.d.ts +0 -13
  391. package/dist/extensions/slack/node_modules/@types/node/quic.d.ts +0 -13
  392. package/dist/extensions/slack/node_modules/@types/node/readline/promises.d.ts +0 -3
  393. package/dist/extensions/slack/node_modules/@types/node/readline.d.ts +0 -35
  394. package/dist/extensions/slack/node_modules/@types/node/repl.d.ts +0 -10
  395. package/dist/extensions/slack/node_modules/@types/node/sea.d.ts +0 -115
  396. package/dist/extensions/slack/node_modules/@types/node/sqlite.d.ts +0 -44
  397. package/dist/extensions/slack/node_modules/@types/node/stream/consumers.d.ts +81 -5
  398. package/dist/extensions/slack/node_modules/@types/node/stream/web.d.ts +3 -3
  399. package/dist/extensions/slack/node_modules/@types/node/stream.d.ts +27 -23
  400. package/dist/extensions/slack/node_modules/@types/node/string_decoder.d.ts +0 -40
  401. package/dist/extensions/slack/node_modules/@types/node/test/reporters.d.ts +0 -38
  402. package/dist/extensions/slack/node_modules/@types/node/test.d.ts +7 -80
  403. package/dist/extensions/slack/node_modules/@types/node/timers/promises.d.ts +0 -15
  404. package/dist/extensions/slack/node_modules/@types/node/timers.d.ts +0 -10
  405. package/dist/extensions/slack/node_modules/@types/node/tls.d.ts +6 -16
  406. package/dist/extensions/slack/node_modules/@types/node/trace_events.d.ts +0 -94
  407. package/dist/extensions/slack/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +1 -1
  408. package/dist/extensions/slack/node_modules/@types/node/tty.d.ts +0 -25
  409. package/dist/extensions/slack/node_modules/@types/node/url.d.ts +0 -9
  410. package/dist/extensions/slack/node_modules/@types/node/util.d.ts +0 -10
  411. package/dist/extensions/slack/node_modules/@types/node/v8.d.ts +0 -8
  412. package/dist/extensions/slack/node_modules/@types/node/vm.d.ts +0 -38
  413. package/dist/extensions/slack/node_modules/@types/node/wasi.d.ts +0 -71
  414. package/dist/extensions/slack/node_modules/@types/node/worker_threads.d.ts +15 -61
  415. package/dist/extensions/slack/node_modules/@types/node/zlib.d.ts +0 -93
  416. package/dist/extensions/slack/node_modules/axios/CHANGELOG.md +235 -1
  417. package/dist/extensions/slack/node_modules/axios/README.md +323 -214
  418. package/dist/extensions/slack/node_modules/axios/dist/axios.js +143 -51
  419. package/dist/extensions/slack/node_modules/axios/dist/axios.js.map +1 -1
  420. package/dist/extensions/slack/node_modules/axios/dist/axios.min.js +3 -3
  421. package/dist/extensions/slack/node_modules/axios/dist/axios.min.js.map +1 -1
  422. package/dist/extensions/slack/node_modules/axios/dist/browser/axios.cjs +199 -86
  423. package/dist/extensions/slack/node_modules/axios/dist/browser/axios.cjs.map +1 -1
  424. package/dist/extensions/slack/node_modules/axios/dist/esm/axios.js +199 -86
  425. package/dist/extensions/slack/node_modules/axios/dist/esm/axios.js.map +1 -1
  426. package/dist/extensions/slack/node_modules/axios/dist/esm/axios.min.js +2 -2
  427. package/dist/extensions/slack/node_modules/axios/dist/esm/axios.min.js.map +1 -1
  428. package/dist/extensions/slack/node_modules/axios/dist/node/axios.cjs +376 -84
  429. package/dist/extensions/slack/node_modules/axios/dist/node/axios.cjs.map +1 -1
  430. package/dist/extensions/slack/node_modules/axios/index.d.cts +15 -28
  431. package/dist/extensions/slack/node_modules/axios/index.d.ts +133 -226
  432. package/dist/extensions/slack/node_modules/axios/lib/adapters/fetch.js +21 -6
  433. package/dist/extensions/slack/node_modules/axios/lib/adapters/http.js +150 -19
  434. package/dist/extensions/slack/node_modules/axios/lib/core/Axios.js +19 -3
  435. package/dist/extensions/slack/node_modules/axios/lib/core/AxiosError.js +34 -33
  436. package/dist/extensions/slack/node_modules/axios/lib/core/AxiosHeaders.js +34 -3
  437. package/dist/extensions/slack/node_modules/axios/lib/core/buildFullPath.js +1 -1
  438. package/dist/extensions/slack/node_modules/axios/lib/core/mergeConfig.js +18 -4
  439. package/dist/extensions/slack/node_modules/axios/lib/defaults/index.js +13 -8
  440. package/dist/extensions/slack/node_modules/axios/lib/env/data.js +1 -1
  441. package/dist/extensions/slack/node_modules/axios/lib/helpers/AxiosURLSearchParams.js +1 -2
  442. package/dist/extensions/slack/node_modules/axios/lib/helpers/formDataToJSON.js +3 -1
  443. package/dist/extensions/slack/node_modules/axios/lib/helpers/formDataToStream.js +2 -1
  444. package/dist/extensions/slack/node_modules/axios/lib/helpers/progressEventReducer.js +5 -5
  445. package/dist/extensions/slack/node_modules/axios/lib/helpers/resolveConfig.js +25 -5
  446. package/dist/extensions/slack/node_modules/axios/lib/helpers/shouldBypassProxy.js +153 -0
  447. package/dist/extensions/slack/node_modules/axios/lib/helpers/toFormData.js +10 -2
  448. package/dist/extensions/slack/node_modules/axios/lib/helpers/validator.js +3 -1
  449. package/dist/extensions/slack/node_modules/axios/lib/utils.js +10 -10
  450. package/dist/extensions/slack/node_modules/axios/package.json +7 -4
  451. package/dist/extensions/slack/node_modules/content-disposition/README.md +7 -8
  452. package/dist/extensions/slack/node_modules/content-disposition/index.js +118 -40
  453. package/dist/extensions/slack/node_modules/content-disposition/package.json +8 -11
  454. package/dist/extensions/slack/node_modules/follow-redirects/README.md +7 -5
  455. package/dist/extensions/slack/node_modules/follow-redirects/index.js +24 -1
  456. package/dist/extensions/slack/node_modules/follow-redirects/package.json +1 -1
  457. package/dist/extensions/slack/node_modules/hasown/CHANGELOG.md +11 -0
  458. package/dist/extensions/slack/node_modules/hasown/eslint.config.mjs +6 -0
  459. package/dist/extensions/slack/node_modules/hasown/index.d.ts +1 -0
  460. package/dist/extensions/slack/node_modules/hasown/package.json +14 -14
  461. package/dist/extensions/slack/node_modules/path-to-regexp/Readme.md +3 -3
  462. package/dist/extensions/slack/node_modules/path-to-regexp/dist/index.js +135 -158
  463. package/dist/extensions/slack/node_modules/path-to-regexp/dist/index.js.map +1 -1
  464. package/dist/extensions/slack/node_modules/path-to-regexp/package.json +2 -2
  465. package/dist/extensions/slack/node_modules/qs/CHANGELOG.md +6 -0
  466. package/dist/extensions/slack/node_modules/qs/dist/qs.js +16 -16
  467. package/dist/extensions/slack/node_modules/qs/lib/parse.js +2 -2
  468. package/dist/extensions/slack/node_modules/qs/package.json +3 -3
  469. package/dist/extensions/slack/node_modules/qs/test/parse.js +86 -0
  470. package/dist/extensions/slack/node_modules/qs/test/stringify.js +9 -0
  471. package/dist/extensions/slack/node_modules/qs/test/utils.js +31 -3
  472. package/dist/extensions/slack/node_modules/side-channel-list/CHANGELOG.md +25 -4
  473. package/dist/extensions/slack/node_modules/side-channel-list/index.js +1 -3
  474. package/dist/extensions/slack/node_modules/side-channel-list/package.json +8 -8
  475. package/dist/extensions/slack/node_modules/side-channel-list/test/index.js +50 -0
  476. package/dist/extensions/slack/node_modules/undici-types/cache-interceptor.d.ts +6 -0
  477. package/dist/extensions/slack/node_modules/undici-types/client.d.ts +10 -0
  478. package/dist/extensions/slack/node_modules/undici-types/package.json +1 -1
  479. package/dist/extensions/telegram/.openclaw-runtime-deps-stamp.json +1 -1
  480. package/dist/extensions/telegram/node_modules/.package-lock.json +7 -7
  481. package/dist/extensions/telegram/node_modules/@grammyjs/types/checklist.d.ts +2 -2
  482. package/dist/extensions/telegram/node_modules/@grammyjs/types/manage.d.ts +20 -6
  483. package/dist/extensions/telegram/node_modules/@grammyjs/types/markup.d.ts +19 -1
  484. package/dist/extensions/telegram/node_modules/@grammyjs/types/message.d.ts +58 -7
  485. package/dist/extensions/telegram/node_modules/@grammyjs/types/methods.d.ts +41 -10
  486. package/dist/extensions/telegram/node_modules/@grammyjs/types/package.json +1 -1
  487. package/dist/extensions/telegram/node_modules/@grammyjs/types/update.d.ts +3 -1
  488. package/dist/extensions/telegram/node_modules/grammy/README.md +59 -60
  489. package/dist/extensions/telegram/node_modules/grammy/out/bot.d.ts +1 -1
  490. package/dist/extensions/telegram/node_modules/grammy/out/bot.js +1 -0
  491. package/dist/extensions/telegram/node_modules/grammy/out/context.d.ts +28 -1
  492. package/dist/extensions/telegram/node_modules/grammy/out/context.js +35 -0
  493. package/dist/extensions/telegram/node_modules/grammy/out/convenience/constants.d.ts +1 -1
  494. package/dist/extensions/telegram/node_modules/grammy/out/convenience/keyboard.d.ts +21 -1
  495. package/dist/extensions/telegram/node_modules/grammy/out/convenience/keyboard.js +30 -2
  496. package/dist/extensions/telegram/node_modules/grammy/out/core/api.d.ts +29 -1
  497. package/dist/extensions/telegram/node_modules/grammy/out/core/api.js +34 -0
  498. package/dist/extensions/telegram/node_modules/grammy/out/filter.d.ts +30 -4
  499. package/dist/extensions/telegram/node_modules/grammy/out/filter.js +6 -2
  500. package/dist/extensions/telegram/node_modules/grammy/out/web.mjs +58 -10
  501. package/dist/extensions/telegram/node_modules/grammy/package.json +2 -2
  502. package/dist/{gateway-cli-COLy988M.js → gateway-cli-BPgXFsX-.js} +2 -2
  503. package/dist/index.js +1 -1
  504. package/dist/{node-cli-ofvJTLem.js → node-cli-C-NHDws4.js} +52 -14
  505. package/dist/{onboard-H5LM81li.js → onboard-D8mLBBSq.js} +1 -1
  506. package/dist/plugin-sdk/src/config/schema.base.generated.d.ts +1 -1
  507. package/dist/{program-CO45b_l6.js → program-CS3D__yJ.js} +1 -1
  508. package/dist/{prompt-select-styled-j6voT46T.js → prompt-select-styled-D0JcqEaf.js} +1 -1
  509. package/dist/{register.maintenance-BWzBNdaB.js → register.maintenance-BYiyh4Bv.js} +1 -1
  510. package/dist/{register.onboard-DfeHhiWt.js → register.onboard-BLh7MvqL.js} +1 -1
  511. package/dist/{register.setup-1qWgm2rZ.js → register.setup-5Iz11tL5.js} +1 -1
  512. package/dist/{register.subclis-BedsVCX2.js → register.subclis-Bdfqcaq1.js} +1 -1
  513. package/dist/{register.subclis-n3-Fy7S6.js → register.subclis-D5PoU4cG.js} +4 -4
  514. package/dist/{run-main-DM-Z_hpr.js → run-main-GxMMbcni.js} +6 -6
  515. package/dist/{runtime-schema-D3Ib21WQ.js → runtime-schema-DUD60Mz3.js} +1 -1
  516. package/dist/{setup-CzWMI_4a.js → setup-D7aEmeVi.js} +1 -1
  517. package/dist/{setup.finalize-K-ziYKFr.js → setup.finalize-DT2NHFPD.js} +2 -2
  518. package/dist/{update-cli-DMTjIbvt.js → update-cli-CqrlF5yT.js} +3 -3
  519. package/package.json +1 -1
  520. package/dist/completion-cli-CbJ_-ODB.js +0 -2
  521. package/dist/extensions/feishu/node_modules/hasown/.eslintrc +0 -5
  522. package/dist/extensions/slack/node_modules/content-disposition/HISTORY.md +0 -72
  523. package/dist/extensions/slack/node_modules/hasown/.eslintrc +0 -5
package/dist/.buildstamp CHANGED
@@ -1 +1 @@
1
- {"builtAt":1774848229685,"head":"dd41b3a93d2f23c28bccacfa4eae384850753ac0"}
1
+ {"builtAt":1777452602471,"head":"a26098415e072ddc6102d397aca50bdca61fd716"}
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2026.3.28-beta.1",
3
- "commit": "dd41b3a93d2f23c28bccacfa4eae384850753ac0",
4
- "builtAt": "2026-03-30T05:24:16.753Z"
2
+ "version": "2026.3.28-beta.3",
3
+ "commit": "a26098415e072ddc6102d397aca50bdca61fd716",
4
+ "builtAt": "2026-04-29T08:50:31.660Z"
5
5
  }
@@ -1 +1 @@
1
- 184cc3fef474dc47e8bcc2a92effff9aabe4cb3258a61579c26d0a1d7371aec1
1
+ d4146ac7f5d52f4087e1cd83ee956f8cb1711ef5b72643526140eca93c0ca9c0
@@ -23,5 +23,5 @@
23
23
  "tlon",
24
24
  "twitch"
25
25
  ],
26
- "rootHelpText": "\n🦞 OpenClaw 2026.3.28-beta.1 (dd41b3a)\n I'm not saying your workflow is chaotic... I'm just bringing a linter and a helmet.\n\nUsage: openclaw [options] [command]\n\nOptions:\n --container <name> Run the CLI inside a running Podman/Docker container\n named <name> (default: env OPENCLAW_CONTAINER)\n --dev Dev profile: isolate state under ~/.openclaw-dev, default\n gateway port 19001, and shift derived ports\n (browser/canvas)\n -h, --help Display help for command\n --log-level <level> Global log level override for file + console\n (silent|fatal|error|warn|info|debug|trace)\n --no-color Disable ANSI colors\n --profile <name> Use a named profile (isolates\n OPENCLAW_STATE_DIR/OPENCLAW_CONFIG_PATH under\n ~/.openclaw-<name>)\n -V, --version output the version number\n\nCommands:\n Hint: commands suffixed with * have subcommands. Run <command> --help for details.\n acp * Agent Control Protocol tools\n agent Run one agent turn via the Gateway\n agents * Manage isolated agents (workspaces, auth, routing)\n approvals * Manage exec approvals (gateway or node host)\n backup * Create and verify local backup archives for OpenClaw\n state\n channels * Manage connected chat channels (Telegram, Discord, etc.)\n clawbot * Legacy clawbot command aliases\n completion Generate shell completion script\n config * Non-interactive config helpers\n (get/set/unset/file/validate). Default: starts guided\n setup.\n configure Interactive configuration for credentials, channels,\n gateway, and agent defaults\n cron * Manage cron jobs via the Gateway scheduler\n daemon * Gateway service (legacy alias)\n dashboard Open the Control UI with your current token\n devices * Device pairing + token management\n directory * Lookup contact and group IDs (self, peers, groups) for\n supported chat channels\n dns * DNS helpers for wide-area discovery (Tailscale + CoreDNS)\n docs Search the live OpenClaw docs\n doctor Health checks + quick fixes for the gateway and channels\n gateway * Run, inspect, and query the WebSocket Gateway\n health Fetch health from the running gateway\n help Display help for command\n hooks * Manage internal agent hooks\n logs Tail gateway file logs via RPC\n message * Send, read, and manage messages\n models * Discover, scan, and configure models\n node * Run and manage the headless node host service\n nodes * Manage gateway-owned node pairing and node commands\n onboard Interactive onboarding for gateway, workspace, and skills\n pairing * Secure DM pairing (approve inbound requests)\n plugins * Manage OpenClaw plugins and extensions\n qr Generate iOS pairing QR/setup code\n reset Reset local config/state (keeps the CLI installed)\n sandbox * Manage sandbox containers for agent isolation\n secrets * Secrets runtime reload controls\n security * Security tools and local config audits\n sessions * List stored conversation sessions\n setup Initialize local config and agent workspace\n skills * List and inspect available skills\n status Show channel health and recent session recipients\n system * System events, heartbeat, and presence\n tui Open a terminal UI connected to the Gateway\n uninstall Uninstall the gateway service + local data (CLI remains)\n update * Update OpenClaw and inspect update channel status\n webhooks * Webhook helpers and integrations\n\nExamples:\n openclaw models --help\n Show detailed help for the models command.\n openclaw channels login --verbose\n Link personal WhatsApp Web and show QR + connection logs.\n openclaw message send --target +15555550123 --message \"Hi\" --json\n Send via your web session and print JSON result.\n openclaw gateway --port 18789\n Run the WebSocket Gateway locally.\n openclaw --dev gateway\n Run a dev Gateway (isolated state/config) on ws://127.0.0.1:19001.\n openclaw gateway --force\n Kill anything bound to the default gateway port, then start it.\n openclaw gateway ...\n Gateway control via WebSocket.\n openclaw agent --to +15555550123 --message \"Run summary\" --deliver\n Talk directly to the agent using the Gateway; optionally send the WhatsApp reply.\n openclaw message send --channel telegram --target @mychat --message \"Hi\"\n Send via your Telegram bot.\n\nDocs: https://docs.openclaw.ai/cli\n\n"
26
+ "rootHelpText": "\n🦞 OpenClaw 2026.3.28-beta.3 (a260984) If it works, it's automation; if it breaks, it's a \"learning opportunity.\"\n\nUsage: openclaw [options] [command]\n\nOptions:\n --container <name> Run the CLI inside a running Podman/Docker container\n named <name> (default: env OPENCLAW_CONTAINER)\n --dev Dev profile: isolate state under ~/.openclaw-dev, default\n gateway port 19001, and shift derived ports\n (browser/canvas)\n -h, --help Display help for command\n --log-level <level> Global log level override for file + console\n (silent|fatal|error|warn|info|debug|trace)\n --no-color Disable ANSI colors\n --profile <name> Use a named profile (isolates\n OPENCLAW_STATE_DIR/OPENCLAW_CONFIG_PATH under\n ~/.openclaw-<name>)\n -V, --version output the version number\n\nCommands:\n Hint: commands suffixed with * have subcommands. Run <command> --help for details.\n acp * Agent Control Protocol tools\n agent Run one agent turn via the Gateway\n agents * Manage isolated agents (workspaces, auth, routing)\n approvals * Manage exec approvals (gateway or node host)\n backup * Create and verify local backup archives for OpenClaw\n state\n channels * Manage connected chat channels (Telegram, Discord, etc.)\n clawbot * Legacy clawbot command aliases\n completion Generate shell completion script\n config * Non-interactive config helpers\n (get/set/unset/file/validate). Default: starts guided\n setup.\n configure Interactive configuration for credentials, channels,\n gateway, and agent defaults\n cron * Manage cron jobs via the Gateway scheduler\n daemon * Gateway service (legacy alias)\n dashboard Open the Control UI with your current token\n devices * Device pairing + token management\n directory * Lookup contact and group IDs (self, peers, groups) for\n supported chat channels\n dns * DNS helpers for wide-area discovery (Tailscale + CoreDNS)\n docs Search the live OpenClaw docs\n doctor Health checks + quick fixes for the gateway and channels\n gateway * Run, inspect, and query the WebSocket Gateway\n health Fetch health from the running gateway\n help Display help for command\n hooks * Manage internal agent hooks\n logs Tail gateway file logs via RPC\n message * Send, read, and manage messages\n models * Discover, scan, and configure models\n node * Run and manage the headless node host service\n nodes * Manage gateway-owned node pairing and node commands\n onboard Interactive onboarding for gateway, workspace, and skills\n pairing * Secure DM pairing (approve inbound requests)\n plugins * Manage OpenClaw plugins and extensions\n qr Generate iOS pairing QR/setup code\n reset Reset local config/state (keeps the CLI installed)\n sandbox * Manage sandbox containers for agent isolation\n secrets * Secrets runtime reload controls\n security * Security tools and local config audits\n sessions * List stored conversation sessions\n setup Initialize local config and agent workspace\n skills * List and inspect available skills\n status Show channel health and recent session recipients\n system * System events, heartbeat, and presence\n tui Open a terminal UI connected to the Gateway\n uninstall Uninstall the gateway service + local data (CLI remains)\n update * Update OpenClaw and inspect update channel status\n webhooks * Webhook helpers and integrations\n\nExamples:\n openclaw models --help\n Show detailed help for the models command.\n openclaw channels login --verbose\n Link personal WhatsApp Web and show QR + connection logs.\n openclaw message send --target +15555550123 --message \"Hi\" --json\n Send via your web session and print JSON result.\n openclaw gateway --port 18789\n Run the WebSocket Gateway locally.\n openclaw --dev gateway\n Run a dev Gateway (isolated state/config) on ws://127.0.0.1:19001.\n openclaw gateway --force\n Kill anything bound to the default gateway port, then start it.\n openclaw gateway ...\n Gateway control via WebSocket.\n openclaw agent --to +15555550123 --message \"Run summary\" --deliver\n Talk directly to the agent using the Gateway; optionally send the WhatsApp reply.\n openclaw message send --channel telegram --target @mychat --message \"Hi\"\n Send via your Telegram bot.\n\nDocs: https://docs.openclaw.ai/cli\n\n"
27
27
  }
@@ -1,5 +1,5 @@
1
1
  import { O as getPrimaryCommand, j as hasHelpOrVersion } from "./logger-BCzP_yik.js";
2
- import { a as removeCommandByName, i as registerSubCliCommands, o as reparseProgramFromActionArgs } from "./register.subclis-n3-Fy7S6.js";
2
+ import { a as removeCommandByName, i as registerSubCliCommands, o as reparseProgramFromActionArgs } from "./register.subclis-D5PoU4cG.js";
3
3
  import { t as getCoreCliCommandDescriptors } from "./core-command-descriptors-3IsGrTdH.js";
4
4
  //#region src/cli/program/command-registry.ts
5
5
  const shouldRegisterCorePrimaryOnly = (argv) => {
@@ -14,7 +14,7 @@ const coreEntries = [
14
14
  hasSubcommands: false
15
15
  }],
16
16
  register: async ({ program }) => {
17
- (await import("./register.setup-1qWgm2rZ.js")).registerSetupCommand(program);
17
+ (await import("./register.setup-5Iz11tL5.js")).registerSetupCommand(program);
18
18
  }
19
19
  },
20
20
  {
@@ -24,7 +24,7 @@ const coreEntries = [
24
24
  hasSubcommands: false
25
25
  }],
26
26
  register: async ({ program }) => {
27
- (await import("./register.onboard-DfeHhiWt.js")).registerOnboardCommand(program);
27
+ (await import("./register.onboard-BLh7MvqL.js")).registerOnboardCommand(program);
28
28
  }
29
29
  },
30
30
  {
@@ -44,7 +44,7 @@ const coreEntries = [
44
44
  hasSubcommands: true
45
45
  }],
46
46
  register: async ({ program }) => {
47
- (await import("./config-cli-Djn9hC2Q.js")).registerConfigCli(program);
47
+ (await import("./config-cli-jZdsV_1z.js")).registerConfigCli(program);
48
48
  }
49
49
  },
50
50
  {
@@ -81,7 +81,7 @@ const coreEntries = [
81
81
  }
82
82
  ],
83
83
  register: async ({ program }) => {
84
- (await import("./register.maintenance-BWzBNdaB.js")).registerMaintenanceCommands(program);
84
+ (await import("./register.maintenance-BYiyh4Bv.js")).registerMaintenanceCommands(program);
85
85
  }
86
86
  },
87
87
  {
@@ -1,3 +1,3 @@
1
1
  import "./core-command-descriptors-3IsGrTdH.js";
2
- import { n as registerCoreCliByName } from "./command-registry-D6TzWVO8.js";
2
+ import { n as registerCoreCliByName } from "./command-registry-B9bgU9hV.js";
3
3
  export { registerCoreCliByName };
@@ -3,8 +3,8 @@ import { m as pathExists } from "./utils-BfvDpbwh.js";
3
3
  import { t as formatDocsLink } from "./links-CNsP_rfF.js";
4
4
  import { r as theme } from "./theme-D-TumEpz.js";
5
5
  import { _ as resolveStateDir } from "./paths-Y4UT24Of.js";
6
- import { n as loadValidatedConfigForPluginRegistration, r as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-n3-Fy7S6.js";
7
- import { n as registerCoreCliByName, t as getCoreCliCommandNames } from "./command-registry-D6TzWVO8.js";
6
+ import { n as loadValidatedConfigForPluginRegistration, r as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-D5PoU4cG.js";
7
+ import { n as registerCoreCliByName, t as getCoreCliCommandNames } from "./command-registry-B9bgU9hV.js";
8
8
  import { t as getProgramContext } from "./program-context-Bv9xg3LZ.js";
9
9
  import path from "node:path";
10
10
  import os from "node:os";
@@ -0,0 +1,2 @@
1
+ import { a as registerCompletionCli } from "./completion-cli-CofiidKK.js";
2
+ export { registerCompletionCli };
@@ -13,7 +13,7 @@ import { a as formatExecSecretRefIdValidationMessage, c as isValidSecretProvider
13
13
  import { C as SecretProviderSchema } from "./zod-schema.core-CGoKjdG2.js";
14
14
  import { a as resolveSecretRefValue } from "./resolve-CFB7mNpd.js";
15
15
  import { l as discoverConfigSecretTargets, m as resolveConfigSecretTargetByPath } from "./command-secret-targets-DayQlnoD.js";
16
- import { i as redactConfigObject, n as readBestEffortRuntimeConfigSchema } from "./runtime-schema-D3Ib21WQ.js";
16
+ import { i as redactConfigObject, n as readBestEffortRuntimeConfigSchema } from "./runtime-schema-DUD60Mz3.js";
17
17
  import { n as setCommandJsonMode } from "./json-mode-DP5Id_4L.js";
18
18
  import fsSync from "node:fs";
19
19
  import JSON5 from "json5";
@@ -1,7 +1,7 @@
1
1
  import { t as resolveOpenClawPackageRoot } from "./openclaw-root-BYOI_ohY.js";
2
2
  import { r as resolveCliName } from "./command-format-CR4nOXgc.js";
3
3
  import { t as note } from "./note-C01OqYRg.js";
4
- import { c as usesSlowDynamicCompletion, i as isCompletionInstalled, o as resolveCompletionCachePath, r as installCompletion, s as resolveShellFromEnv, t as completionCacheExists } from "./completion-cli-D2QdjG2S.js";
4
+ import { c as usesSlowDynamicCompletion, i as isCompletionInstalled, o as resolveCompletionCachePath, r as installCompletion, s as resolveShellFromEnv, t as completionCacheExists } from "./completion-cli-CofiidKK.js";
5
5
  import path from "node:path";
6
6
  import { spawnSync } from "node:child_process";
7
7
  //#region src/commands/doctor-completion.ts
package/dist/entry.js CHANGED
@@ -204,7 +204,7 @@ function tryHandleRootHelpFastPath(argv, deps = {}) {
204
204
  }
205
205
  function runMainOrRootHelp(argv) {
206
206
  if (tryHandleRootHelpFastPath(argv)) return;
207
- import("./run-main-DM-Z_hpr.js").then(({ runCli }) => runCli(argv)).catch((error) => {
207
+ import("./run-main-GxMMbcni.js").then(({ runCli }) => runCli(argv)).catch((error) => {
208
208
  console.error("[openclaw] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
209
209
  process$1.exitCode = 1;
210
210
  });
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "fingerprint": "ef24c7e339e5f03791f6c9be916fb9dc046e157ae11ab2dd442ca99134e407a5",
3
- "generatedAt": "2026-03-30T05:23:44.708Z"
3
+ "generatedAt": "2026-04-29T08:49:56.455Z"
4
4
  }
@@ -376,18 +376,18 @@
376
376
  "license": "MIT"
377
377
  },
378
378
  "node_modules/oniguruma-parser": {
379
- "version": "0.12.1",
380
- "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.1.tgz",
381
- "integrity": "sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==",
379
+ "version": "0.12.2",
380
+ "resolved": "https://registry.npmjs.org/oniguruma-parser/-/oniguruma-parser-0.12.2.tgz",
381
+ "integrity": "sha512-6HVa5oIrgMC6aA6WF6XyyqbhRPJrKR02L20+2+zpDtO5QAzGHAUGw5TKQvwi5vctNnRHkJYmjAhRVQF2EKdTQw==",
382
382
  "license": "MIT"
383
383
  },
384
384
  "node_modules/oniguruma-to-es": {
385
- "version": "4.3.5",
386
- "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.5.tgz",
387
- "integrity": "sha512-Zjygswjpsewa0NLTsiizVuMQZbp0MDyM6lIt66OxsF21npUDlzpHi1Mgb/qhQdkb+dWFTzJmFbEWdvZgRho8eQ==",
385
+ "version": "4.3.6",
386
+ "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-4.3.6.tgz",
387
+ "integrity": "sha512-csuQ9x3Yr0cEIs/Zgx/OEt9iBw9vqIunAPQkx19R/fiMq2oGVTgcMqO/V3Ybqefr1TBvosI6jU539ksaBULJyA==",
388
388
  "license": "MIT",
389
389
  "dependencies": {
390
- "oniguruma-parser": "^0.12.1",
390
+ "oniguruma-parser": "^0.12.2",
391
391
  "regex": "^6.1.0",
392
392
  "regex-recursion": "^6.0.2"
393
393
  }
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2025 Steven Levithan
3
+ Copyright (c) 2025-2026 Steven Levithan
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -29,18 +29,45 @@ npm install oniguruma-parser
29
29
 
30
30
  ```js
31
31
  import {toOnigurumaAst} from 'oniguruma-parser';
32
+
33
+ const ast = toOnigurumaAst('^.*');
34
+ ```
35
+
36
+ <details>
37
+ <summary>Using CommonJS require</summary>
38
+
39
+ ```js
40
+ const {toOnigurumaAst} = require('oniguruma-parser-cjs');
41
+ ```
42
+
43
+ > **Note:** [oniguruma-parser-cjs](https://github.com/RedCMD/oniguruma-parser-cjs) is a third-party CommonJS wrapper for this library. It might not always be up to date with the latest version.
44
+ </details>
45
+
46
+ <details>
47
+ <summary>Using a CDN and global name</summary>
48
+
49
+ ```html
50
+ <script src="https://cdn.jsdelivr.net/npm/oniguruma-parser/dist/oniguruma-parser.min.js"></script>
51
+ <script>
52
+ const {toOnigurumaAst} = OnigurumaParser;
53
+ </script>
32
54
  ```
33
55
 
56
+ > **Note:** This bundle includes a subset of all available exports. See [`src/bundle.ts`](https://github.com/slevithan/oniguruma-parser/blob/main/src/bundle.ts).
57
+ </details>
58
+
59
+ ### Additional modules
60
+
34
61
  The following modules are available in addition to the root `'oniguruma-parser'` export:
35
62
 
36
- - [Parser module](https://github.com/slevithan/oniguruma-parser/blob/main/src/parser/README.md): Includes numerous functions and types for constructing and working with `OnigurumaAst` nodes. Also includes the `parse` function, wrapped by `toOnigurumaAst`.
37
- - [Traverser module](https://github.com/slevithan/oniguruma-parser/blob/main/src/traverser/README.md): Traverse and transform an `OnigurumaAst`.
38
- - [Generator module](https://github.com/slevithan/oniguruma-parser/blob/main/src/generator/README.md): Convert an `OnigurumaAst` to pattern and flags strings.
39
- - [Optimizer module](https://github.com/slevithan/oniguruma-parser/blob/main/src/optimizer/README.md): Minify and improve the performance of Oniguruma regexes.
63
+ - [Parser](https://github.com/slevithan/oniguruma-parser/blob/main/src/parser/README.md): Includes numerous functions and types for constructing and working with `OnigurumaAst` nodes. Also includes the core `parse` function that's wrapped by `toOnigurumaAst`.
64
+ - [Traverser](https://github.com/slevithan/oniguruma-parser/blob/main/src/traverser/README.md): Traverse and transform an `OnigurumaAst`.
65
+ - [Generator](https://github.com/slevithan/oniguruma-parser/blob/main/src/generator/README.md): Convert an `OnigurumaAst` to pattern and flags strings.
66
+ - [Optimizer](https://github.com/slevithan/oniguruma-parser/blob/main/src/optimizer/README.md): Minify and improve the performance of Oniguruma regexes.
40
67
 
41
- ## 🌿 Convert a pattern to an AST
68
+ ## 🌲 Convert a pattern to an AST
42
69
 
43
- To parse an Oniguruma pattern (with optional flags and compile-time options) and return an AST, call `toOnigurumaAst`, which uses the following type definition:
70
+ Call `toOnigurumaAst` to parse an Oniguruma pattern (with optional flags and compile-time options) and return an AST. It uses the following type definition:
44
71
 
45
72
  ```ts
46
73
  function toOnigurumaAst(
@@ -60,15 +87,15 @@ For example:
60
87
  ```js
61
88
  import {toOnigurumaAst} from 'oniguruma-parser';
62
89
 
63
- const ast = toOnigurumaAst('A.*');
90
+ const ast = toOnigurumaAst('^.*');
64
91
  console.log(ast);
65
92
  /* →
66
93
  { type: 'Regex',
67
94
  body: [
68
95
  { type: 'Alternative',
69
96
  body: [
70
- { type: 'Character',
71
- value: 65,
97
+ { type: 'Assertion',
98
+ kind: 'line_start',
72
99
  },
73
100
  { type: 'Quantifier',
74
101
  kind: 'greedy',
@@ -99,15 +126,15 @@ console.log(ast);
99
126
 
100
127
  An error is thrown if the provided pattern or flags aren't valid in Oniguruma.
101
128
 
102
- > **Note:** `toOnigurumaAst` is a wrapper around the [parser module](https://github.com/slevithan/oniguruma-parser/blob/main/src/parser/README.md)'s `parse` function that makes it easier to use by automatically providing the appropriate Unicode property validation data.
129
+ > **Note:** `toOnigurumaAst` is a wrapper around the [parser module](https://github.com/slevithan/oniguruma-parser/blob/main/src/parser/README.md)'s `parse` function that automatically provides the appropriate Unicode property validation data.
103
130
 
104
131
  ## 🌀 Traverse and transform an AST
105
132
 
106
- See details and examples in the [traverser module's readme](https://github.com/slevithan/oniguruma-parser/blob/main/src/traverser/README.md).
133
+ See details and examples in the [traverser module](https://github.com/slevithan/oniguruma-parser/blob/main/src/traverser/README.md)'s readme.
107
134
 
108
135
  ## ↩️ Convert an AST to a pattern
109
136
 
110
- See details and examples in the [generator module's readme](https://github.com/slevithan/oniguruma-parser/blob/main/src/generator/README.md).
137
+ See details and examples in the [generator module](https://github.com/slevithan/oniguruma-parser/blob/main/src/generator/README.md)'s readme.
111
138
 
112
139
  ## 🪄 Optimize regexes
113
140
 
@@ -127,7 +154,7 @@ Becomes:
127
154
 
128
155
  Optimized regexes always match exactly the same strings.
129
156
 
130
- See more details and examples in the [optimizer module's readme](https://github.com/slevithan/oniguruma-parser/blob/main/src/optimizer/README.md).
157
+ See more details and examples in the [optimizer module](https://github.com/slevithan/oniguruma-parser/blob/main/src/optimizer/README.md)'s readme.
131
158
 
132
159
  > [!TIP]
133
160
  > 🧪 Try the [optimizer demo](https://slevithan.github.io/oniguruma-parser/demo/).
@@ -146,7 +173,7 @@ The following rarely-used features throw errors since they aren't yet supported:
146
173
  - Conditionals: `(?(…)…)`, etc.
147
174
  - Non-built-in callouts: `(?{…})`, etc.
148
175
  - Numbered *forward* backreferences (incl. relative `\k<+N>`) and backreferences with recursion level (`\k<N+N>`, etc.).
149
- - Flags `D` `P` `S` `W` `y{g}` `y{w}` within pattern modifiers, and whole-pattern modifiers `C` `I` `L`.
176
+ - Flags `D` `P` `S` `W` `y{g}` `y{w}` within pattern modifiers, and whole-pattern flags `C` `I` `L` ([#26](https://github.com/slevithan/oniguruma-parser/issues/26)).
150
177
 
151
178
  Despite these gaps, more than 99.99% of real-world Oniguruma regexes are supported, based on a sample of ~55k regexes used in TextMate grammars (conditionals were used in three regexes, and other unsupported features weren't used at all). Some of the Oniguruma features above are so exotic that they aren't used in *any* public code on GitHub.
152
179
 
@@ -172,6 +199,16 @@ The following don't yet throw errors, but should:
172
199
  - Such subroutines error at compile time in Oniguruma.
173
200
  </details>
174
201
 
202
+ <details>
203
+ <summary>Future AST node types</summary>
204
+
205
+ Support for most of the currently unsupported features above will be added to the `OnigurumaAst` structure using existing node types (`Character`, `AbsenceFunction`, `Backreference`, etc.). However, the following node types will be added when their corresponding features are supported:
206
+
207
+ - `CharacterSequence`: New node type for code point sequences; will contain two or more `Character` nodes.
208
+ - `Conditional`: New node type for all conditional kinds.
209
+ - `Callout`: New node type for unnamed callouts.
210
+ </details>
211
+
175
212
  ### Behavior differences
176
213
 
177
214
  #### Unenclosed four-digit backreferences
@@ -250,9 +287,18 @@ Contributions are welcome. See the [guide](https://github.com/slevithan/onigurum
250
287
 
251
288
  Created by [Steven Levithan](https://github.com/slevithan) and [contributors](https://github.com/slevithan/oniguruma-parser/graphs/contributors).
252
289
 
290
+ ### Sponsors and backers
291
+
292
+ [<img src="https://github.com/roboflow.png" width="40" height="40">](https://github.com/roboflow)
293
+
294
+ ### Past sponsors
295
+
296
+ [<img src="https://github.com/antfu.png" width="40" height="40">](https://github.com/antfu)
297
+ [<img src="https://github.com/brc-dd.png" width="40" height="40">](https://github.com/brc-dd)
298
+
253
299
  If you want to support this project, I'd love your help by contributing improvements ([guide](https://github.com/slevithan/oniguruma-parser/blob/main/CONTRIBUTING.md)), sharing it with others, or [sponsoring](https://github.com/sponsors/slevithan) ongoing development.
254
300
 
255
- MIT License.
301
+ © 2025–present. MIT License.
256
302
 
257
303
  <!-- Badges -->
258
304
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/generator/generate.ts"],
4
- "sourcesContent": ["import type {GroupNode, Node, OnigurumaAst, ParentNode, QuantifierNode, RegexNode} from '../parser/parse.js';\nimport type {FlagProperties} from '../tokenizer/tokenize.js';\nimport {r, throwIfNullish} from '../utils.js';\n\ntype OnigurumaRegex = {\n pattern: string;\n flags: string;\n};\n\n/**\nGenerates an Oniguruma `pattern` and `flags` from an `OnigurumaAst`.\n*/\nfunction generate(ast: OnigurumaAst): OnigurumaRegex {\n const parentStack: Array<ParentNode> = [];\n let lastNode: Node = ast;\n const state: State = {\n inCharClass: false,\n lastNode,\n parent: ast,\n };\n const gen: Gen = node => {\n state.lastNode = lastNode;\n lastNode = node; // For the next iteration\n if (getFirstChild(state.lastNode) === node) {\n state.parent = state.lastNode as ParentNode;\n parentStack.push(state.parent);\n }\n const fn = throwIfNullish(generator[node.type], `Unexpected node type \"${node.type}\"`);\n // @ts-expect-error\n const result = fn(node, state, gen);\n if (getLastChild(state.parent) === node) {\n parentStack.pop();\n state.parent = parentStack.at(-1) ?? ast;\n };\n return result;\n };\n return {\n pattern: ast.body.map(gen).join('|'),\n // Could reset `lastNode` at this point via `lastNode = ast`, but it isn't needed by flags\n flags: gen(ast.flags),\n };\n}\n\ntype State = {\n inCharClass: boolean;\n lastNode: Node;\n parent: ParentNode;\n};\n\ntype NonRootNode = Exclude<Node, RegexNode>;\n\ntype Gen = (node: NonRootNode) => string;\n\ntype Generator = {\n [N in NonRootNode as N['type']]:\n (node: N, state: State, gen: Gen) => string\n};\n\nconst generator: Generator = {\n AbsenceFunction({body, kind}, _, gen) {\n if (kind !== 'repeater') {\n throw new Error(`Unexpected absence function kind \"${kind}\"`);\n }\n return `(?~${body.map(gen).join('|')})`;\n },\n\n Alternative({body}, _, gen) {\n return body.map(gen).join('');\n },\n\n Assertion({kind, negate}) {\n if (kind === 'text_segment_boundary') {\n return negate ? r`\\Y` : r`\\y`;\n }\n if (kind === 'word_boundary') {\n return negate ? r`\\B` : r`\\b`;\n }\n return throwIfNullish({\n line_end: '$',\n line_start: '^',\n search_start: r`\\G`,\n string_end: r`\\z`,\n string_end_newline: r`\\Z`,\n string_start: r`\\A`,\n }[kind], `Unexpected assertion kind \"${kind}\"`);\n },\n\n Backreference({ref}) {\n if (typeof ref === 'number') {\n // TODO: Won't be safe to indiscriminately unenclose when forward backrefs are supported\n return '\\\\' + ref;\n }\n // Onig doesn't allow chars `>` or `'` in backref names, so this is safe\n return `\\\\k<${ref}>`;\n },\n\n CapturingGroup({body, name}, _, gen) {\n const enclosedName = name ? `?${name.includes('>') ? `'${name}'` : `<${name}>`}` : '';\n return `(${enclosedName}${body.map(gen).join('|')})`;\n },\n\n Character(node, {inCharClass, lastNode, parent}) {\n const {value} = node;\n if (CharCodeEscapeMap.has(value)) {\n return CharCodeEscapeMap.get(value)!;\n }\n const escDigit = lastNode.type === 'Backreference';\n if (\n // Control chars, etc.; condition modeled on the Chrome developer console's display for strings\n value < 32 || (value > 126 && value < 160) ||\n // Unicode planes 4-16; unassigned, special purpose, and private use area\n value > 0x3FFFF ||\n // Avoid corrupting a preceding backref by immediately following it with a literal digit\n (escDigit && isDigitCharCode(value))\n ) {\n // Onig treats unenclosed `\\x80` to `\\xFF` as an encoded byte (a fragment of a code unit), so\n // we can't use them to represent a character. Also, don't convert value `0` to `\\0` since\n // that's corruptible by following literal digits\n return value > 0x7F ?\n `\\\\x{${value.toString(16).toUpperCase()}}` :\n `\\\\x${value.toString(16).toUpperCase().padStart(2, '0')}`;\n }\n const char = String.fromCodePoint(value);\n let escape = false;\n if (inCharClass) {\n const isDirectClassKid = parent.type === 'CharacterClass';\n const isFirst = isDirectClassKid && parent.body[0] === node;\n const isLast = isDirectClassKid && parent.body.at(-1) === node;\n // Avoid escaping in some optional special cases when escaping isn't needed due to position\n if (char === '^') {\n escape = isFirst && !parent.negate;\n } else if (char === ']') {\n escape = !isFirst;\n } else if (char === '-') {\n // Could also avoid escaping if it's immediately after a range or nested class, but don't\n // make that the default rendering\n escape = !isFirst && !isLast;\n } else {\n escape = CharClassEscapeChars.has(char);\n }\n } else {\n escape = BaseEscapeChars.has(char);\n }\n return `${escape ? '\\\\' : ''}${char}`;\n },\n\n CharacterClass({body, kind, negate}, state, gen) {\n function genClass() {\n if (\n state.parent.type === 'CharacterClass' &&\n state.parent.kind === 'intersection' &&\n kind === 'union' &&\n !body.length\n ) {\n // Prevent empty intersection like `[&&]` from becoming the invalid `[[]&&[]]`\n return '';\n }\n return `[${negate ? '^' : ''}${\n body.map(gen).join(kind === 'intersection' ? '&&' : '')\n }]`;\n }\n if (!state.inCharClass) {\n // For the outermost char class, set state\n state.inCharClass = true;\n const result = genClass();\n state.inCharClass = false;\n return result;\n }\n return genClass();\n },\n\n CharacterClassRange({min, max}, _, gen) {\n return `${gen(min)}-${gen(max)}`;\n },\n\n CharacterSet({kind, negate, value}, {inCharClass}) {\n switch (kind) {\n case 'any':\n return r`\\O`;\n case 'digit':\n return negate ? r`\\D` : r`\\d`;\n case 'dot':\n return '.';\n case 'hex':\n return negate ? r`\\H` : r`\\h`;\n case 'newline':\n return negate ? r`\\N` : r`\\R`;\n case 'posix':\n return inCharClass ?\n `[:${negate ? '^' : ''}${value}:]` :\n `${negate ? r`\\P` : r`\\p`}{${value}}`;\n case 'property':\n return `${negate ? r`\\P` : r`\\p`}{${value}}`;\n case 'space':\n return negate ? r`\\S` : r`\\s`;\n case 'text_segment':\n return r`\\X`;\n case 'word':\n return negate ? r`\\W` : r`\\w`;\n default:\n throw new Error(`Unexpected character set kind \"${kind}\"`);\n }\n },\n\n Directive({kind, flags}) {\n if (kind === 'flags') {\n const {enable = {}, disable = {}} = flags;\n const enableStr = getFlagsStr(enable);\n const disableStr = getFlagsStr(disable);\n return (enableStr || disableStr) ? `(?${enableStr}${disableStr ? `-${disableStr}` : ''})` : '';\n }\n if (kind === 'keep') {\n return r`\\K`;\n }\n throw new Error(`Unexpected directive kind \"${kind}\"`);\n },\n\n Flags(node) {\n return getFlagsStr(node);\n },\n\n Group({atomic, body, flags}, _, gen) {\n const contents = body.map(gen).join('|');\n return `(?${getGroupPrefix(atomic, flags)}${contents})`;\n },\n\n LookaroundAssertion({body, kind, negate}, _, gen) {\n const prefix = `${kind === 'lookahead' ? '' : '<'}${negate ? '!' : '='}`;\n return `(?${prefix}${body.map(gen).join('|')})`;\n },\n\n NamedCallout({kind, tag, arguments: args}) {\n if (kind === 'custom') {\n // TODO: If supporting custom callout names in the future (with an added `name` property for\n // `NamedCalloutNode`), will need to use `name` instead of `kind` if `kind` is `'custom'`\n throw new Error(`Unexpected named callout kind \"${kind}\"`);\n }\n return `(*${kind.toUpperCase()}${tag ? `[${tag}]` : ''}${args ? `{${args.join(',')}}` : ''})`;\n },\n\n Quantifier(node, {parent}, gen) {\n // Rendering Onig quantifiers is wildly, unnecessarily complex compared to other regex flavors\n // because of the combination of a few features unique to Onig:\n // - You can create quantifier chains (i.e., quantify a quantifier).\n // - An implicit zero min is allowed for interval quantifiers (ex: `{,2}`).\n // - Interval quantifiers can't use `+` to make them possessive (it creates a quantifier\n // chain), even though quantifiers `?` `*` `+` can.\n // - A reversed range in a quantifier makes it possessive (ex: `{2,1}`).\n // - `{,n}` is always greedy with an implicit zero min, and can't represent a possesive range\n // from n to infinity.\n const {body, kind, max, min} = node;\n // These errors shouldn't happen unless the AST is modified in an invalid way after parsing\n if (min === Infinity) {\n throw new Error(`Invalid quantifier: infinite min`);\n }\n if (min > max) {\n throw new Error(`Invalid quantifier: min \"${min}\" > max \"${max}\"`);\n }\n const kidIsGreedyQuantifier = (\n body.type === 'Quantifier' &&\n body.kind === 'greedy'\n );\n const parentIsPossessivePlus = (\n parent.type === 'Quantifier' &&\n parent.kind === 'possessive' &&\n parent.min === 1 &&\n parent.max === Infinity\n );\n // Can't render as a symbol, because the following (parent) quantifier, which is `++`, would\n // then alter this node's meaning to make it possessive, and the parent quantifier can't change\n // to avoid this because there's no interval representation possible for `++`. There's also no\n // other way to render `*+`, but a following `*` wouldn't alter the meaning of this node. `?+`\n // is also safe since it can use the alternative `{1,0}` representation (which is possessive)\n const forcedInterval = kind === 'greedy' && parentIsPossessivePlus;\n let base;\n if (isSymbolQuantifierCandidate(node) && !forcedInterval) {\n if (\n !min && max === 1 &&\n // Can't chain a base of `?` to any greedy quantifier since that would make it lazy\n !kidIsGreedyQuantifier\n ) {\n base = '?';\n } else if (!min && max === Infinity) {\n base = '*';\n } else if (\n min === 1 && max === Infinity &&\n ( // Can't chain a base of `+` to greedy `?`/`*`/`+` since that would make them possessive\n !(kidIsGreedyQuantifier && isSymbolQuantifierCandidate(body)) ||\n // ...but, we're forced to use `+` (and change the kid's rendering) if this is possessive\n // `++` since you can't use a possessive reversed range with `Infinity`\n kind === 'possessive'\n )\n ) {\n base = '+';\n }\n }\n const isIntervalQuantifier = !base;\n if (isIntervalQuantifier) {\n if (kind === 'possessive') {\n if (min === max) {\n // Can't add a `+` suffix to a fixed `{n}` interval quantifier\n throw new Error(`Invalid possessive quantifier: min and max are equal \"${min}\"`);\n }\n if (max === Infinity) {\n // Onig reversed ranges are possessive but `{,n}` is the same as greedy `{0,n}`, so\n // there's no way to represent this without adding additional nodes that aren't in the\n // AST. The exceptions are when `min` is 0 or 1 (`?+`, `*+`, `++`), but we've already\n // ruled out rendering as a symbol at this point\n throw new Error(`Invalid possessive quantifier: min \"${min}\" with infinite max\"`);\n }\n // Reversed range\n base = `{${max},${min}}`;\n } else if (min === max) {\n base = `{${min}}`;\n } else {\n base = `{${min},${max === Infinity ? '' : max}}`;\n }\n }\n const suffix = {\n greedy: '',\n lazy: '?',\n // Interval quantifiers are marked possessive by reversing their min/max; a `+` suffix would\n // create a quantifier chain\n possessive: isIntervalQuantifier ? '' : '+',\n }[kind];\n return `${gen(body)}${base}${suffix}`;\n },\n\n Subroutine({ref}) {\n if (typeof ref === 'string' && ref.includes('>')) {\n return r`\\g'${ref}'`;\n }\n return r`\\g<${ref}>`;\n },\n};\n\n// ---------------\n// --- Helpers ---\n// ---------------\n\nconst BaseEscapeChars = new Set([\n '$', '(', ')', '*', '+', '.', '?', '[', '\\\\', '^', '{', '|',\n]);\n\nconst CharClassEscapeChars = new Set([\n '&', '-', '[', '\\\\', ']', '^',\n]);\n\nconst CharCodeEscapeMap = new Map([\n [ 7, r`\\a`], // bell\n [ 9, r`\\t`], // horizontal tab\n [10, r`\\n`], // line feed\n [11, r`\\v`], // vertical tab\n [12, r`\\f`], // form feed\n [13, r`\\r`], // carriage return\n [27, r`\\e`], // escape\n [0x2028, r`\\u2028`], // line separator\n [0x2029, r`\\u2029`], // paragraph separator\n [0xFEFF, r`\\uFEFF`], // ZWNBSP/BOM\n]);\n\nfunction getFirstChild(node: Node) {\n if ('body' in node) {\n return Array.isArray(node.body) ? (node.body[0] ?? null) : node.body;\n }\n // Check for `type` to determine if it's a child node; quantifiers have a numeric `min`\n if ('min' in node && node.min.type) {\n return node.min;\n }\n return null;\n}\n\nfunction getLastChild(node: Node) {\n if ('body' in node) {\n return Array.isArray(node.body) ? (node.body.at(-1) ?? null) : node.body;\n }\n // Check for `type` to determine if it's a child node; quantifiers have a numeric `max`\n if ('max' in node && node.max.type) {\n return node.max;\n }\n return null;\n}\n\nfunction getFlagsStr({\n ignoreCase,\n dotAll,\n extended,\n digitIsAscii,\n posixIsAscii,\n spaceIsAscii,\n wordIsAscii,\n textSegmentMode,\n}: Partial<FlagProperties>): string {\n return `${\n ignoreCase ? 'i' : ''\n }${\n dotAll ? 'm' : ''\n }${\n extended ? 'x' : ''\n }${\n digitIsAscii ? 'D' : ''\n }${\n posixIsAscii ? 'P' : ''\n }${\n spaceIsAscii ? 'S' : ''\n }${\n wordIsAscii ? 'W' : ''\n }${\n textSegmentMode ? throwIfNullish({\n grapheme: 'y{g}',\n word: 'y{w}',\n }[textSegmentMode], `Unexpected text segment mode \"${textSegmentMode}\"`) : ''\n }`;\n}\n\nfunction getGroupPrefix(atomic: GroupNode['atomic'], flags?: GroupNode['flags']): string {\n if (atomic) {\n return '>';\n }\n let mods = '';\n if (flags) {\n const {enable = {}, disable = {}} = flags;\n const enableStr = getFlagsStr(enable);\n const disableStr = getFlagsStr(disable);\n mods = `${enableStr}${disableStr ? `-${disableStr}` : ''}`;\n }\n return `${mods}:`;\n}\n\nfunction isDigitCharCode(value: number): boolean {\n return value > 47 && value < 58;\n}\n\nfunction isSymbolQuantifierCandidate({min, max}: QuantifierNode): boolean {\n return (\n (!min && max === 1) || // `?`\n (!min && max === Infinity) || // `*`\n (min === 1 && max === Infinity) // `+`\n );\n}\n\nexport {\n type OnigurumaRegex,\n generate,\n};\n"],
4
+ "sourcesContent": ["import type {GroupNode, Node, OnigurumaAst, ParentNode, QuantifierNode, RegexNode} from '../parser/parse.js';\nimport type {FlagProperties} from '../tokenizer/tokenize.js';\nimport {r, throwIfNullish} from '../utils.js';\n\ntype OnigurumaRegex = {\n pattern: string;\n flags: string;\n};\n\n/**\nGenerates an Oniguruma `pattern` and `flags` from an `OnigurumaAst`.\n*/\nfunction generate(ast: OnigurumaAst): OnigurumaRegex {\n const parentStack: Array<ParentNode> = [];\n let lastNode: Node = ast;\n const state: State = {\n inCharClass: false,\n lastNode,\n parent: ast,\n };\n const gen: Gen = node => {\n state.lastNode = lastNode;\n lastNode = node; // For the next iteration\n if (getFirstChild(state.lastNode) === node) {\n state.parent = state.lastNode as ParentNode;\n parentStack.push(state.parent);\n }\n const fn = throwIfNullish(generator[node.type], `Unexpected node type \"${node.type}\"`);\n // @ts-expect-error\n const result = fn(node, state, gen);\n if (getLastChild(state.parent) === node) {\n parentStack.pop();\n state.parent = parentStack.at(-1) ?? ast;\n };\n return result;\n };\n return {\n pattern: ast.body.map(gen).join('|'),\n // Could reset `lastNode` at this point via `lastNode = ast`, but it isn't needed by flags\n flags: gen(ast.flags),\n };\n}\n\ntype State = {\n inCharClass: boolean;\n lastNode: Node;\n parent: ParentNode;\n};\n\ntype NonRootNode = Exclude<Node, RegexNode>;\n\ntype Gen = (node: NonRootNode) => string;\n\ntype Generator = {\n [N in NonRootNode as N['type']]:\n (node: N, state: State, gen: Gen) => string\n};\n\nconst generator: Generator = {\n AbsenceFunction({body, kind}, _, gen) {\n if (kind !== 'repeater') {\n throw new Error(`Unexpected absence function kind \"${kind}\"`);\n }\n return `(?~${body.map(gen).join('|')})`;\n },\n\n Alternative({body}, _, gen) {\n return body.map(gen).join('');\n },\n\n Assertion({kind, negate}) {\n if (kind === 'text_segment_boundary') {\n return negate ? r`\\Y` : r`\\y`;\n }\n if (kind === 'word_boundary') {\n return negate ? r`\\B` : r`\\b`;\n }\n return throwIfNullish({\n line_end: '$',\n line_start: '^',\n search_start: r`\\G`,\n string_end: r`\\z`,\n string_end_newline: r`\\Z`,\n string_start: r`\\A`,\n }[kind], `Unexpected assertion kind \"${kind}\"`);\n },\n\n Backreference({ref}) {\n if (typeof ref === 'number') {\n // TODO: Won't be safe to indiscriminately unenclose when forward backrefs are supported\n return '\\\\' + ref;\n }\n // Onig doesn't allow chars `>` or `'` in backref names, so this is safe\n return `\\\\k<${ref}>`;\n },\n\n CapturingGroup({body, name}, _, gen) {\n const enclosedName = name ? `?${name.includes('>') ? `'${name}'` : `<${name}>`}` : '';\n return `(${enclosedName}${body.map(gen).join('|')})`;\n },\n\n Character(node, {inCharClass, lastNode, parent}) {\n const {value} = node;\n if (CharCodeEscapeMap.has(value)) {\n return CharCodeEscapeMap.get(value)!;\n }\n const escDigit = lastNode.type === 'Backreference';\n if (\n // Control chars, etc.; condition modeled on the Chrome developer console's display for strings\n value < 32 || (value > 126 && value < 160) ||\n // Unicode planes 4-16; unassigned, special purpose, and private use area\n value > 0x3FFFF ||\n // Avoid corrupting a preceding backref by immediately following it with a literal digit\n (escDigit && isDigitCharCode(value))\n ) {\n // Onig treats unenclosed `\\x80` to `\\xFF` as an encoded byte (a fragment of a code unit), so\n // we can't use them to represent a character. Also, don't convert value `0` to `\\0` since\n // that's corruptible by following literal digits\n return value > 0x7F ?\n `\\\\x{${value.toString(16).toUpperCase()}}` :\n `\\\\x${value.toString(16).toUpperCase().padStart(2, '0')}`;\n }\n const char = String.fromCodePoint(value);\n let escape = false;\n if (inCharClass) {\n const isDirectClassKid = parent.type === 'CharacterClass';\n const isFirst = isDirectClassKid && parent.body[0] === node;\n const isLast = isDirectClassKid && parent.body.at(-1) === node;\n // Avoid escaping in some optional special cases when escaping isn't needed due to position\n if (char === '^') {\n escape = isFirst && !parent.negate;\n } else if (char === ']') {\n escape = !isFirst;\n } else if (char === '-') {\n // Could also avoid escaping if it's immediately after a range or nested class, but don't\n // make that the default rendering\n escape = !isFirst && !isLast;\n } else {\n escape = CharClassEscapeChars.has(char);\n }\n } else {\n escape = BaseEscapeChars.has(char);\n }\n return `${escape ? '\\\\' : ''}${char}`;\n },\n\n CharacterClass({body, kind, negate}, state, gen) {\n function genClass() {\n if (\n state.parent.type === 'CharacterClass' &&\n state.parent.kind === 'intersection' &&\n kind === 'union' &&\n !body.length\n ) {\n // Prevent empty intersection like `[&&]` from becoming the invalid `[[]&&[]]`\n return '';\n }\n return `[${negate ? '^' : ''}${\n body.map(gen).join(kind === 'intersection' ? '&&' : '')\n }]`;\n }\n if (!state.inCharClass) {\n // For the outermost char class, set state\n state.inCharClass = true;\n const result = genClass();\n state.inCharClass = false;\n return result;\n }\n return genClass();\n },\n\n CharacterClassRange({min, max}, _, gen) {\n return `${gen(min)}-${gen(max)}`;\n },\n\n CharacterSet({kind, negate, value}, {inCharClass}) {\n switch (kind) {\n case 'any':\n return r`\\O`;\n case 'digit':\n return negate ? r`\\D` : r`\\d`;\n case 'dot':\n return '.';\n case 'hex':\n return negate ? r`\\H` : r`\\h`;\n case 'newline':\n return negate ? r`\\N` : r`\\R`;\n case 'posix':\n return inCharClass ?\n `[:${negate ? '^' : ''}${value}:]` :\n `${negate ? r`\\P` : r`\\p`}{${value}}`;\n case 'property':\n return `${negate ? r`\\P` : r`\\p`}{${value}}`;\n case 'space':\n return negate ? r`\\S` : r`\\s`;\n case 'text_segment':\n return r`\\X`;\n case 'word':\n return negate ? r`\\W` : r`\\w`;\n default:\n throw new Error(`Unexpected character set kind \"${kind}\"`);\n }\n },\n\n Directive({kind, flags}) {\n if (kind === 'flags') {\n const {enable = {}, disable = {}} = flags;\n const enableStr = getFlagsStr(enable);\n const disableStr = getFlagsStr(disable);\n return (enableStr || disableStr) ? `(?${enableStr}${disableStr ? `-${disableStr}` : ''})` : '';\n }\n if (kind === 'keep') {\n return r`\\K`;\n }\n throw new Error(`Unexpected directive kind \"${kind}\"`);\n },\n\n Flags(node) {\n return getFlagsStr(node);\n },\n\n Group({atomic, body, flags}, _, gen) {\n const contents = body.map(gen).join('|');\n return `(?${getGroupPrefix(atomic, flags)}${contents})`;\n },\n\n LookaroundAssertion({body, kind, negate}, _, gen) {\n const prefix = `${kind === 'lookahead' ? '' : '<'}${negate ? '!' : '='}`;\n return `(?${prefix}${body.map(gen).join('|')})`;\n },\n\n NamedCallout({kind, tag, arguments: args}) {\n if (kind === 'custom') {\n // TODO: If supporting custom callout names in the future (with an added `name` property for\n // `NamedCalloutNode`), will need to use `name` instead of `kind` if `kind` is `'custom'`\n throw new Error(`Unexpected named callout kind \"${kind}\"`);\n }\n return `(*${kind.toUpperCase()}${tag ? `[${tag}]` : ''}${args ? `{${args.join(',')}}` : ''})`;\n },\n\n Quantifier(node, {parent}, gen) {\n // Rendering Onig quantifiers is wildly, unnecessarily complex compared to other regex flavors\n // because of the combination of a few features unique to Onig:\n // - You can create quantifier chains (i.e., quantify a quantifier).\n // - An implicit zero min is allowed for interval quantifiers (ex: `{,2}`).\n // - Interval quantifiers can't use `+` to make them possessive (it creates a quantifier\n // chain), even though quantifiers `?` `*` `+` can.\n // - A reversed range in a quantifier makes it possessive (ex: `{2,1}`).\n // - `{,n}` is always greedy with an implicit zero min, and can't represent a possessive\n // range from n to infinity.\n const {body, kind, max, min} = node;\n // These errors shouldn't happen unless the AST is modified in an invalid way after parsing\n if (min === Infinity) {\n throw new Error(`Invalid quantifier: infinite min`);\n }\n if (min > max) {\n throw new Error(`Invalid quantifier: min \"${min}\" > max \"${max}\"`);\n }\n const kidIsGreedyQuantifier = (\n body.type === 'Quantifier' &&\n body.kind === 'greedy'\n );\n const parentIsPossessivePlus = (\n parent.type === 'Quantifier' &&\n parent.kind === 'possessive' &&\n parent.min === 1 &&\n parent.max === Infinity\n );\n // Can't render as a symbol, because the following (parent) quantifier, which is `++`, would\n // then alter this node's meaning to make it possessive, and the parent quantifier can't change\n // to avoid this because there's no interval representation possible for `++`. There's also no\n // other way to render `*+`, but a following `*` wouldn't alter the meaning of this node. `?+`\n // is also safe since it can use the alternative `{1,0}` representation (which is possessive)\n const forcedInterval = kind === 'greedy' && parentIsPossessivePlus;\n let base;\n if (isSymbolQuantifierCandidate(node) && !forcedInterval) {\n if (\n !min && max === 1 &&\n // Can't chain a base of `?` to any greedy quantifier since that would make it lazy\n !kidIsGreedyQuantifier\n ) {\n base = '?';\n } else if (!min && max === Infinity) {\n base = '*';\n } else if (\n min === 1 && max === Infinity &&\n ( // Can't chain a base of `+` to greedy `?`/`*`/`+` since that would make them possessive\n !(kidIsGreedyQuantifier && isSymbolQuantifierCandidate(body)) ||\n // ...but, we're forced to use `+` (and change the kid's rendering) if this is possessive\n // `++` since you can't use a possessive reversed range with `Infinity`\n kind === 'possessive'\n )\n ) {\n base = '+';\n }\n }\n const isIntervalQuantifier = !base;\n if (isIntervalQuantifier) {\n if (kind === 'possessive') {\n if (min === max) {\n // Can't add a `+` suffix to a fixed `{n}` interval quantifier\n throw new Error(`Invalid possessive quantifier: min and max are equal \"${min}\"`);\n }\n if (max === Infinity) {\n // Onig reversed ranges are possessive but `{,n}` is the same as greedy `{0,n}`, so\n // there's no way to represent this without adding additional nodes that aren't in the\n // AST. The exceptions are when `min` is 0 or 1 (`?+`, `*+`, `++`), but we've already\n // ruled out rendering as a symbol at this point\n throw new Error(`Invalid possessive quantifier: min \"${min}\" with infinite max\"`);\n }\n // Reversed range\n base = `{${max},${min}}`;\n } else if (min === max) {\n base = `{${min}}`;\n } else {\n base = `{${min},${max === Infinity ? '' : max}}`;\n }\n }\n const suffix = {\n greedy: '',\n lazy: '?',\n // Interval quantifiers are marked possessive by reversing their min/max; a `+` suffix would\n // create a quantifier chain\n possessive: isIntervalQuantifier ? '' : '+',\n }[kind];\n return `${gen(body)}${base}${suffix}`;\n },\n\n Subroutine({ref}) {\n if (typeof ref === 'string' && ref.includes('>')) {\n return r`\\g'${ref}'`;\n }\n return r`\\g<${ref}>`;\n },\n};\n\n// ---------------\n// --- Helpers ---\n// ---------------\n\nconst BaseEscapeChars = new Set([\n '$', '(', ')', '*', '+', '.', '?', '[', '\\\\', '^', '{', '|',\n]);\n\nconst CharClassEscapeChars = new Set([\n '&', '-', '[', '\\\\', ']', '^',\n]);\n\nconst CharCodeEscapeMap = new Map([\n [ 7, r`\\a`], // bell\n [ 9, r`\\t`], // horizontal tab\n [10, r`\\n`], // line feed\n [11, r`\\v`], // vertical tab\n [12, r`\\f`], // form feed\n [13, r`\\r`], // carriage return\n [27, r`\\e`], // escape\n [0x2028, r`\\u2028`], // line separator\n [0x2029, r`\\u2029`], // paragraph separator\n [0xFEFF, r`\\uFEFF`], // ZWNBSP/BOM\n]);\n\nfunction getFirstChild(node: Node) {\n if ('body' in node) {\n return Array.isArray(node.body) ? (node.body[0] ?? null) : node.body;\n }\n // Check for `type` to determine if it's a child node; quantifiers have a numeric `min`\n if ('min' in node && node.min.type) {\n return node.min;\n }\n return null;\n}\n\nfunction getLastChild(node: Node) {\n if ('body' in node) {\n return Array.isArray(node.body) ? (node.body.at(-1) ?? null) : node.body;\n }\n // Check for `type` to determine if it's a child node; quantifiers have a numeric `max`\n if ('max' in node && node.max.type) {\n return node.max;\n }\n return null;\n}\n\nfunction getFlagsStr({\n ignoreCase,\n dotAll,\n extended,\n digitIsAscii,\n posixIsAscii,\n spaceIsAscii,\n wordIsAscii,\n textSegmentMode,\n}: Partial<FlagProperties>): string {\n return `${\n ignoreCase ? 'i' : ''\n }${\n dotAll ? 'm' : ''\n }${\n extended ? 'x' : ''\n }${\n digitIsAscii ? 'D' : ''\n }${\n posixIsAscii ? 'P' : ''\n }${\n spaceIsAscii ? 'S' : ''\n }${\n wordIsAscii ? 'W' : ''\n }${\n textSegmentMode ? throwIfNullish({\n grapheme: 'y{g}',\n word: 'y{w}',\n }[textSegmentMode], `Unexpected text segment mode \"${textSegmentMode}\"`) : ''\n }`;\n}\n\nfunction getGroupPrefix(atomic: GroupNode['atomic'], flags?: GroupNode['flags']): string {\n if (atomic) {\n return '>';\n }\n let mods = '';\n if (flags) {\n const {enable = {}, disable = {}} = flags;\n const enableStr = getFlagsStr(enable);\n const disableStr = getFlagsStr(disable);\n mods = `${enableStr}${disableStr ? `-${disableStr}` : ''}`;\n }\n return `${mods}:`;\n}\n\nfunction isDigitCharCode(value: number): boolean {\n return value > 47 && value < 58;\n}\n\nfunction isSymbolQuantifierCandidate({min, max}: QuantifierNode): boolean {\n return (\n (!min && max === 1) || // `?`\n (!min && max === Infinity) || // `*`\n (min === 1 && max === Infinity) // `+`\n );\n}\n\nexport {\n type OnigurumaRegex,\n generate,\n};\n"],
5
5
  "mappings": "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",
6
6
  "names": ["r", "throwIfNullish", "generate", "ast", "parentStack", "lastNode", "state", "gen", "node", "getFirstChild", "result", "generator", "getLastChild", "body", "kind", "_", "negate", "ref", "name", "inCharClass", "parent", "value", "CharCodeEscapeMap", "escDigit", "isDigitCharCode", "char", "escape", "isDirectClassKid", "isFirst", "isLast", "CharClassEscapeChars", "BaseEscapeChars", "genClass", "min", "max", "flags", "enable", "disable", "enableStr", "getFlagsStr", "disableStr", "atomic", "contents", "getGroupPrefix", "tag", "args", "kidIsGreedyQuantifier", "parentIsPossessivePlus", "forcedInterval", "base", "isSymbolQuantifierCandidate", "isIntervalQuantifier", "suffix", "ignoreCase", "dotAll", "extended", "digitIsAscii", "posixIsAscii", "spaceIsAscii", "wordIsAscii", "textSegmentMode", "mods"]
7
7
  }