@openclaw/mattermost 2026.2.21 → 2026.6.11

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 (787) hide show
  1. package/README.md +13 -0
  2. package/dist/accounts-DnAHfb5f.js +438 -0
  3. package/dist/api.js +2 -0
  4. package/dist/channel-plugin-api.js +31 -0
  5. package/dist/channel-plugin-runtime-MXClEU4F.js +1160 -0
  6. package/dist/channel-plugin-runtime.js +2 -0
  7. package/dist/channel.runtime-W-pjr9zL.js +2671 -0
  8. package/dist/doctor-contract-api.js +2 -0
  9. package/dist/doctor-contract-ttH0DCuq.js +7 -0
  10. package/dist/gateway-auth-api.js +2 -0
  11. package/dist/gateway-auth-bypass-BHgOAkk8.js +37 -0
  12. package/dist/index.js +31 -0
  13. package/dist/monitor-auth-BiDuyvOc.js +183 -0
  14. package/dist/policy-api.js +2 -0
  15. package/dist/runtime-CNB4YGqJ.js +8 -0
  16. package/dist/runtime-api.js +24 -0
  17. package/dist/secret-contract-Cx0LUNXy.js +44 -0
  18. package/dist/secret-contract-api.js +2 -0
  19. package/dist/setup-entry.js +15 -0
  20. package/dist/slash-route-api.js +2 -0
  21. package/dist/slash-state-I1qleAHM.js +2251 -0
  22. package/node_modules/ws/LICENSE +20 -0
  23. package/node_modules/ws/README.md +548 -0
  24. package/node_modules/ws/browser.js +8 -0
  25. package/node_modules/ws/index.js +22 -0
  26. package/node_modules/ws/lib/buffer-util.js +131 -0
  27. package/node_modules/ws/lib/constants.js +19 -0
  28. package/node_modules/ws/lib/event-target.js +292 -0
  29. package/node_modules/ws/lib/extension.js +203 -0
  30. package/node_modules/ws/lib/limiter.js +55 -0
  31. package/node_modules/ws/lib/permessage-deflate.js +528 -0
  32. package/node_modules/ws/lib/receiver.js +760 -0
  33. package/node_modules/ws/lib/sender.js +607 -0
  34. package/node_modules/ws/lib/stream.js +161 -0
  35. package/node_modules/ws/lib/subprotocol.js +62 -0
  36. package/node_modules/ws/lib/validation.js +152 -0
  37. package/node_modules/ws/lib/websocket-server.js +562 -0
  38. package/node_modules/ws/lib/websocket.js +1407 -0
  39. package/node_modules/ws/package.json +70 -0
  40. package/node_modules/ws/wrapper.mjs +21 -0
  41. package/node_modules/zod/LICENSE +21 -0
  42. package/node_modules/zod/README.md +191 -0
  43. package/node_modules/zod/index.cjs +33 -0
  44. package/node_modules/zod/index.d.cts +4 -0
  45. package/node_modules/zod/index.d.ts +4 -0
  46. package/node_modules/zod/index.js +4 -0
  47. package/node_modules/zod/locales/index.cjs +17 -0
  48. package/node_modules/zod/locales/index.d.cts +1 -0
  49. package/node_modules/zod/locales/index.d.ts +1 -0
  50. package/node_modules/zod/locales/index.js +1 -0
  51. package/node_modules/zod/locales/package.json +7 -0
  52. package/node_modules/zod/mini/index.cjs +32 -0
  53. package/node_modules/zod/mini/index.d.cts +3 -0
  54. package/node_modules/zod/mini/index.d.ts +3 -0
  55. package/node_modules/zod/mini/index.js +3 -0
  56. package/node_modules/zod/mini/package.json +7 -0
  57. package/node_modules/zod/package.json +135 -0
  58. package/node_modules/zod/src/index.ts +4 -0
  59. package/node_modules/zod/src/locales/index.ts +1 -0
  60. package/node_modules/zod/src/mini/index.ts +3 -0
  61. package/node_modules/zod/src/v3/ZodError.ts +330 -0
  62. package/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
  63. package/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
  64. package/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
  65. package/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
  66. package/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
  67. package/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
  68. package/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
  69. package/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
  70. package/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
  71. package/node_modules/zod/src/v3/errors.ts +13 -0
  72. package/node_modules/zod/src/v3/external.ts +6 -0
  73. package/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
  74. package/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
  75. package/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
  76. package/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
  77. package/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
  78. package/node_modules/zod/src/v3/helpers/util.ts +224 -0
  79. package/node_modules/zod/src/v3/index.ts +4 -0
  80. package/node_modules/zod/src/v3/locales/en.ts +124 -0
  81. package/node_modules/zod/src/v3/standard-schema.ts +113 -0
  82. package/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
  83. package/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
  84. package/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
  85. package/node_modules/zod/src/v3/tests/array.test.ts +71 -0
  86. package/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
  87. package/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
  88. package/node_modules/zod/src/v3/tests/base.test.ts +29 -0
  89. package/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
  90. package/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
  91. package/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
  92. package/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
  93. package/node_modules/zod/src/v3/tests/complex.test.ts +70 -0
  94. package/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
  95. package/node_modules/zod/src/v3/tests/date.test.ts +32 -0
  96. package/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
  97. package/node_modules/zod/src/v3/tests/default.test.ts +112 -0
  98. package/node_modules/zod/src/v3/tests/description.test.ts +33 -0
  99. package/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
  100. package/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
  101. package/node_modules/zod/src/v3/tests/error.test.ts +551 -0
  102. package/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
  103. package/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
  104. package/node_modules/zod/src/v3/tests/function.test.ts +261 -0
  105. package/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
  106. package/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
  107. package/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
  108. package/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
  109. package/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
  110. package/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
  111. package/node_modules/zod/src/v3/tests/map.test.ts +110 -0
  112. package/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
  113. package/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
  114. package/node_modules/zod/src/v3/tests/nan.test.ts +24 -0
  115. package/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
  116. package/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
  117. package/node_modules/zod/src/v3/tests/number.test.ts +176 -0
  118. package/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
  119. package/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
  120. package/node_modules/zod/src/v3/tests/object.test.ts +434 -0
  121. package/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
  122. package/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
  123. package/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
  124. package/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
  125. package/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
  126. package/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
  127. package/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
  128. package/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
  129. package/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
  130. package/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
  131. package/node_modules/zod/src/v3/tests/record.test.ts +171 -0
  132. package/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
  133. package/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
  134. package/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
  135. package/node_modules/zod/src/v3/tests/set.test.ts +142 -0
  136. package/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
  137. package/node_modules/zod/src/v3/tests/string.test.ts +916 -0
  138. package/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
  139. package/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
  140. package/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
  141. package/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
  142. package/node_modules/zod/src/v3/tests/void.test.ts +15 -0
  143. package/node_modules/zod/src/v3/types.ts +5138 -0
  144. package/node_modules/zod/src/v4/classic/checks.ts +32 -0
  145. package/node_modules/zod/src/v4/classic/coerce.ts +27 -0
  146. package/node_modules/zod/src/v4/classic/compat.ts +70 -0
  147. package/node_modules/zod/src/v4/classic/errors.ts +82 -0
  148. package/node_modules/zod/src/v4/classic/external.ts +52 -0
  149. package/node_modules/zod/src/v4/classic/from-json-schema.ts +659 -0
  150. package/node_modules/zod/src/v4/classic/index.ts +5 -0
  151. package/node_modules/zod/src/v4/classic/iso.ts +90 -0
  152. package/node_modules/zod/src/v4/classic/parse.ts +82 -0
  153. package/node_modules/zod/src/v4/classic/schemas.ts +2672 -0
  154. package/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
  155. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +59 -0
  156. package/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
  157. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +216 -0
  158. package/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
  159. package/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
  160. package/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
  161. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
  162. package/node_modules/zod/src/v4/classic/tests/brand.test.ts +106 -0
  163. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +326 -0
  164. package/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
  165. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +573 -0
  166. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +703 -0
  167. package/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
  168. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +374 -0
  169. package/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
  170. package/node_modules/zod/src/v4/classic/tests/date.test.ts +62 -0
  171. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +302 -0
  172. package/node_modules/zod/src/v4/classic/tests/default.test.ts +409 -0
  173. package/node_modules/zod/src/v4/classic/tests/describe-meta-checks.test.ts +27 -0
  174. package/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
  175. package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +197 -0
  176. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +694 -0
  177. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
  178. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +807 -0
  179. package/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
  180. package/node_modules/zod/src/v4/classic/tests/file.test.ts +96 -0
  181. package/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +179 -0
  182. package/node_modules/zod/src/v4/classic/tests/fix-json-issue.test.ts +26 -0
  183. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +895 -0
  184. package/node_modules/zod/src/v4/classic/tests/function.test.ts +360 -0
  185. package/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
  186. package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +39 -0
  187. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +68 -0
  188. package/node_modules/zod/src/v4/classic/tests/index.test.ts +939 -0
  189. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +60 -0
  190. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +198 -0
  191. package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +46 -0
  192. package/node_modules/zod/src/v4/classic/tests/json.test.ts +109 -0
  193. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
  194. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +117 -0
  195. package/node_modules/zod/src/v4/classic/tests/locales_ka.test.ts +29 -0
  196. package/node_modules/zod/src/v4/classic/tests/locales_ro.test.ts +24 -0
  197. package/node_modules/zod/src/v4/classic/tests/map.test.ts +330 -0
  198. package/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
  199. package/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
  200. package/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +101 -0
  201. package/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
  202. package/node_modules/zod/src/v4/classic/tests/number.test.ts +325 -0
  203. package/node_modules/zod/src/v4/classic/tests/object.test.ts +717 -0
  204. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +333 -0
  205. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +450 -0
  206. package/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +211 -0
  207. package/node_modules/zod/src/v4/classic/tests/pipe.test.ts +101 -0
  208. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +74 -0
  209. package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +26 -0
  210. package/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +351 -0
  211. package/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
  212. package/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
  213. package/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
  214. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
  215. package/node_modules/zod/src/v4/classic/tests/record.test.ts +717 -0
  216. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +631 -0
  217. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +633 -0
  218. package/node_modules/zod/src/v4/classic/tests/registries.test.ts +243 -0
  219. package/node_modules/zod/src/v4/classic/tests/set.test.ts +181 -0
  220. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +134 -0
  221. package/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +125 -0
  222. package/node_modules/zod/src/v4/classic/tests/string.test.ts +1224 -0
  223. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +106 -0
  224. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +771 -0
  225. package/node_modules/zod/src/v4/classic/tests/to-json-schema-methods.test.ts +438 -0
  226. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +3125 -0
  227. package/node_modules/zod/src/v4/classic/tests/transform.test.ts +378 -0
  228. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +496 -0
  229. package/node_modules/zod/src/v4/classic/tests/union.test.ts +273 -0
  230. package/node_modules/zod/src/v4/classic/tests/url.test.ts +13 -0
  231. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
  232. package/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
  233. package/node_modules/zod/src/v4/core/api.ts +1823 -0
  234. package/node_modules/zod/src/v4/core/checks.ts +1293 -0
  235. package/node_modules/zod/src/v4/core/config.ts +15 -0
  236. package/node_modules/zod/src/v4/core/core.ts +153 -0
  237. package/node_modules/zod/src/v4/core/doc.ts +44 -0
  238. package/node_modules/zod/src/v4/core/errors.ts +455 -0
  239. package/node_modules/zod/src/v4/core/index.ts +16 -0
  240. package/node_modules/zod/src/v4/core/json-schema-generator.ts +126 -0
  241. package/node_modules/zod/src/v4/core/json-schema-processors.ts +666 -0
  242. package/node_modules/zod/src/v4/core/json-schema.ts +147 -0
  243. package/node_modules/zod/src/v4/core/parse.ts +195 -0
  244. package/node_modules/zod/src/v4/core/regexes.ts +190 -0
  245. package/node_modules/zod/src/v4/core/registries.ts +105 -0
  246. package/node_modules/zod/src/v4/core/schemas.ts +4730 -0
  247. package/node_modules/zod/src/v4/core/standard-schema.ts +159 -0
  248. package/node_modules/zod/src/v4/core/tests/extend.test.ts +59 -0
  249. package/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
  250. package/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
  251. package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +215 -0
  252. package/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
  253. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +181 -0
  254. package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +72 -0
  255. package/node_modules/zod/src/v4/core/tests/locales/he.test.ts +379 -0
  256. package/node_modules/zod/src/v4/core/tests/locales/hr.test.ts +163 -0
  257. package/node_modules/zod/src/v4/core/tests/locales/nl.test.ts +46 -0
  258. package/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
  259. package/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
  260. package/node_modules/zod/src/v4/core/tests/locales/uz.test.ts +105 -0
  261. package/node_modules/zod/src/v4/core/tests/record-constructor.test.ts +125 -0
  262. package/node_modules/zod/src/v4/core/tests/recursive-tuples.test.ts +45 -0
  263. package/node_modules/zod/src/v4/core/to-json-schema.ts +622 -0
  264. package/node_modules/zod/src/v4/core/util.ts +983 -0
  265. package/node_modules/zod/src/v4/core/versions.ts +5 -0
  266. package/node_modules/zod/src/v4/core/zsf.ts +323 -0
  267. package/node_modules/zod/src/v4/index.ts +4 -0
  268. package/node_modules/zod/src/v4/locales/ar.ts +115 -0
  269. package/node_modules/zod/src/v4/locales/az.ts +111 -0
  270. package/node_modules/zod/src/v4/locales/be.ts +176 -0
  271. package/node_modules/zod/src/v4/locales/bg.ts +128 -0
  272. package/node_modules/zod/src/v4/locales/ca.ts +116 -0
  273. package/node_modules/zod/src/v4/locales/cs.ts +118 -0
  274. package/node_modules/zod/src/v4/locales/da.ts +123 -0
  275. package/node_modules/zod/src/v4/locales/de.ts +116 -0
  276. package/node_modules/zod/src/v4/locales/el.ts +121 -0
  277. package/node_modules/zod/src/v4/locales/en.ts +123 -0
  278. package/node_modules/zod/src/v4/locales/eo.ts +118 -0
  279. package/node_modules/zod/src/v4/locales/es.ts +141 -0
  280. package/node_modules/zod/src/v4/locales/fa.ts +126 -0
  281. package/node_modules/zod/src/v4/locales/fi.ts +121 -0
  282. package/node_modules/zod/src/v4/locales/fr-CA.ts +116 -0
  283. package/node_modules/zod/src/v4/locales/fr.ts +132 -0
  284. package/node_modules/zod/src/v4/locales/he.ts +246 -0
  285. package/node_modules/zod/src/v4/locales/hr.ts +131 -0
  286. package/node_modules/zod/src/v4/locales/hu.ts +117 -0
  287. package/node_modules/zod/src/v4/locales/hy.ts +164 -0
  288. package/node_modules/zod/src/v4/locales/id.ts +115 -0
  289. package/node_modules/zod/src/v4/locales/index.ts +52 -0
  290. package/node_modules/zod/src/v4/locales/is.ts +119 -0
  291. package/node_modules/zod/src/v4/locales/it.ts +116 -0
  292. package/node_modules/zod/src/v4/locales/ja.ts +114 -0
  293. package/node_modules/zod/src/v4/locales/ka.ts +123 -0
  294. package/node_modules/zod/src/v4/locales/kh.ts +7 -0
  295. package/node_modules/zod/src/v4/locales/km.ts +119 -0
  296. package/node_modules/zod/src/v4/locales/ko.ts +121 -0
  297. package/node_modules/zod/src/v4/locales/lt.ts +239 -0
  298. package/node_modules/zod/src/v4/locales/mk.ts +118 -0
  299. package/node_modules/zod/src/v4/locales/ms.ts +115 -0
  300. package/node_modules/zod/src/v4/locales/nl.ts +121 -0
  301. package/node_modules/zod/src/v4/locales/no.ts +116 -0
  302. package/node_modules/zod/src/v4/locales/ota.ts +117 -0
  303. package/node_modules/zod/src/v4/locales/pl.ts +118 -0
  304. package/node_modules/zod/src/v4/locales/ps.ts +126 -0
  305. package/node_modules/zod/src/v4/locales/pt.ts +116 -0
  306. package/node_modules/zod/src/v4/locales/ro.ts +129 -0
  307. package/node_modules/zod/src/v4/locales/ru.ts +176 -0
  308. package/node_modules/zod/src/v4/locales/sl.ts +118 -0
  309. package/node_modules/zod/src/v4/locales/sv.ts +119 -0
  310. package/node_modules/zod/src/v4/locales/ta.ts +118 -0
  311. package/node_modules/zod/src/v4/locales/th.ts +119 -0
  312. package/node_modules/zod/src/v4/locales/tr.ts +111 -0
  313. package/node_modules/zod/src/v4/locales/ua.ts +7 -0
  314. package/node_modules/zod/src/v4/locales/uk.ts +117 -0
  315. package/node_modules/zod/src/v4/locales/ur.ts +119 -0
  316. package/node_modules/zod/src/v4/locales/uz.ts +117 -0
  317. package/node_modules/zod/src/v4/locales/vi.ts +117 -0
  318. package/node_modules/zod/src/v4/locales/yo.ts +124 -0
  319. package/node_modules/zod/src/v4/locales/zh-CN.ts +116 -0
  320. package/node_modules/zod/src/v4/locales/zh-TW.ts +115 -0
  321. package/node_modules/zod/src/v4/mini/checks.ts +32 -0
  322. package/node_modules/zod/src/v4/mini/coerce.ts +27 -0
  323. package/node_modules/zod/src/v4/mini/external.ts +41 -0
  324. package/node_modules/zod/src/v4/mini/index.ts +3 -0
  325. package/node_modules/zod/src/v4/mini/iso.ts +66 -0
  326. package/node_modules/zod/src/v4/mini/parse.ts +14 -0
  327. package/node_modules/zod/src/v4/mini/schemas.ts +1947 -0
  328. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +24 -0
  329. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
  330. package/node_modules/zod/src/v4/mini/tests/brand.test.ts +94 -0
  331. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
  332. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +548 -0
  333. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
  334. package/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
  335. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +5 -0
  336. package/node_modules/zod/src/v4/mini/tests/index.test.ts +993 -0
  337. package/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
  338. package/node_modules/zod/src/v4/mini/tests/object.test.ts +227 -0
  339. package/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
  340. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +325 -0
  341. package/node_modules/zod/src/v4/mini/tests/standard-schema.test.ts +50 -0
  342. package/node_modules/zod/src/v4/mini/tests/string.test.ts +352 -0
  343. package/node_modules/zod/src/v4-mini/index.ts +3 -0
  344. package/node_modules/zod/v3/ZodError.cjs +138 -0
  345. package/node_modules/zod/v3/ZodError.d.cts +164 -0
  346. package/node_modules/zod/v3/ZodError.d.ts +164 -0
  347. package/node_modules/zod/v3/ZodError.js +133 -0
  348. package/node_modules/zod/v3/errors.cjs +17 -0
  349. package/node_modules/zod/v3/errors.d.cts +5 -0
  350. package/node_modules/zod/v3/errors.d.ts +5 -0
  351. package/node_modules/zod/v3/errors.js +9 -0
  352. package/node_modules/zod/v3/external.cjs +22 -0
  353. package/node_modules/zod/v3/external.d.cts +6 -0
  354. package/node_modules/zod/v3/external.d.ts +6 -0
  355. package/node_modules/zod/v3/external.js +6 -0
  356. package/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
  357. package/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
  358. package/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
  359. package/node_modules/zod/v3/helpers/enumUtil.js +1 -0
  360. package/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
  361. package/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
  362. package/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
  363. package/node_modules/zod/v3/helpers/errorUtil.js +6 -0
  364. package/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
  365. package/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
  366. package/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
  367. package/node_modules/zod/v3/helpers/parseUtil.js +109 -0
  368. package/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
  369. package/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
  370. package/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
  371. package/node_modules/zod/v3/helpers/partialUtil.js +1 -0
  372. package/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
  373. package/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
  374. package/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
  375. package/node_modules/zod/v3/helpers/typeAliases.js +1 -0
  376. package/node_modules/zod/v3/helpers/util.cjs +137 -0
  377. package/node_modules/zod/v3/helpers/util.d.cts +85 -0
  378. package/node_modules/zod/v3/helpers/util.d.ts +85 -0
  379. package/node_modules/zod/v3/helpers/util.js +133 -0
  380. package/node_modules/zod/v3/index.cjs +33 -0
  381. package/node_modules/zod/v3/index.d.cts +4 -0
  382. package/node_modules/zod/v3/index.d.ts +4 -0
  383. package/node_modules/zod/v3/index.js +4 -0
  384. package/node_modules/zod/v3/locales/en.cjs +112 -0
  385. package/node_modules/zod/v3/locales/en.d.cts +3 -0
  386. package/node_modules/zod/v3/locales/en.d.ts +3 -0
  387. package/node_modules/zod/v3/locales/en.js +109 -0
  388. package/node_modules/zod/v3/package.json +7 -0
  389. package/node_modules/zod/v3/standard-schema.cjs +2 -0
  390. package/node_modules/zod/v3/standard-schema.d.cts +102 -0
  391. package/node_modules/zod/v3/standard-schema.d.ts +102 -0
  392. package/node_modules/zod/v3/standard-schema.js +1 -0
  393. package/node_modules/zod/v3/types.cjs +3777 -0
  394. package/node_modules/zod/v3/types.d.cts +1034 -0
  395. package/node_modules/zod/v3/types.d.ts +1034 -0
  396. package/node_modules/zod/v3/types.js +3695 -0
  397. package/node_modules/zod/v4/classic/checks.cjs +33 -0
  398. package/node_modules/zod/v4/classic/checks.d.cts +1 -0
  399. package/node_modules/zod/v4/classic/checks.d.ts +1 -0
  400. package/node_modules/zod/v4/classic/checks.js +1 -0
  401. package/node_modules/zod/v4/classic/coerce.cjs +47 -0
  402. package/node_modules/zod/v4/classic/coerce.d.cts +17 -0
  403. package/node_modules/zod/v4/classic/coerce.d.ts +17 -0
  404. package/node_modules/zod/v4/classic/coerce.js +17 -0
  405. package/node_modules/zod/v4/classic/compat.cjs +61 -0
  406. package/node_modules/zod/v4/classic/compat.d.cts +50 -0
  407. package/node_modules/zod/v4/classic/compat.d.ts +50 -0
  408. package/node_modules/zod/v4/classic/compat.js +31 -0
  409. package/node_modules/zod/v4/classic/errors.cjs +74 -0
  410. package/node_modules/zod/v4/classic/errors.d.cts +30 -0
  411. package/node_modules/zod/v4/classic/errors.d.ts +30 -0
  412. package/node_modules/zod/v4/classic/errors.js +48 -0
  413. package/node_modules/zod/v4/classic/external.cjs +73 -0
  414. package/node_modules/zod/v4/classic/external.d.cts +16 -0
  415. package/node_modules/zod/v4/classic/external.d.ts +16 -0
  416. package/node_modules/zod/v4/classic/external.js +20 -0
  417. package/node_modules/zod/v4/classic/from-json-schema.cjs +625 -0
  418. package/node_modules/zod/v4/classic/from-json-schema.d.cts +12 -0
  419. package/node_modules/zod/v4/classic/from-json-schema.d.ts +12 -0
  420. package/node_modules/zod/v4/classic/from-json-schema.js +599 -0
  421. package/node_modules/zod/v4/classic/index.cjs +33 -0
  422. package/node_modules/zod/v4/classic/index.d.cts +4 -0
  423. package/node_modules/zod/v4/classic/index.d.ts +4 -0
  424. package/node_modules/zod/v4/classic/index.js +4 -0
  425. package/node_modules/zod/v4/classic/iso.cjs +60 -0
  426. package/node_modules/zod/v4/classic/iso.d.cts +22 -0
  427. package/node_modules/zod/v4/classic/iso.d.ts +22 -0
  428. package/node_modules/zod/v4/classic/iso.js +30 -0
  429. package/node_modules/zod/v4/classic/package.json +7 -0
  430. package/node_modules/zod/v4/classic/parse.cjs +41 -0
  431. package/node_modules/zod/v4/classic/parse.d.cts +31 -0
  432. package/node_modules/zod/v4/classic/parse.d.ts +31 -0
  433. package/node_modules/zod/v4/classic/parse.js +15 -0
  434. package/node_modules/zod/v4/classic/schemas.cjs +1511 -0
  435. package/node_modules/zod/v4/classic/schemas.d.cts +767 -0
  436. package/node_modules/zod/v4/classic/schemas.d.ts +767 -0
  437. package/node_modules/zod/v4/classic/schemas.js +1395 -0
  438. package/node_modules/zod/v4/core/api.cjs +1227 -0
  439. package/node_modules/zod/v4/core/api.d.cts +325 -0
  440. package/node_modules/zod/v4/core/api.d.ts +325 -0
  441. package/node_modules/zod/v4/core/api.js +1087 -0
  442. package/node_modules/zod/v4/core/checks.cjs +601 -0
  443. package/node_modules/zod/v4/core/checks.d.cts +278 -0
  444. package/node_modules/zod/v4/core/checks.d.ts +278 -0
  445. package/node_modules/zod/v4/core/checks.js +575 -0
  446. package/node_modules/zod/v4/core/core.cjs +85 -0
  447. package/node_modules/zod/v4/core/core.d.cts +70 -0
  448. package/node_modules/zod/v4/core/core.d.ts +70 -0
  449. package/node_modules/zod/v4/core/core.js +78 -0
  450. package/node_modules/zod/v4/core/doc.cjs +39 -0
  451. package/node_modules/zod/v4/core/doc.d.cts +14 -0
  452. package/node_modules/zod/v4/core/doc.d.ts +14 -0
  453. package/node_modules/zod/v4/core/doc.js +35 -0
  454. package/node_modules/zod/v4/core/errors.cjs +216 -0
  455. package/node_modules/zod/v4/core/errors.d.cts +221 -0
  456. package/node_modules/zod/v4/core/errors.d.ts +221 -0
  457. package/node_modules/zod/v4/core/errors.js +185 -0
  458. package/node_modules/zod/v4/core/index.cjs +47 -0
  459. package/node_modules/zod/v4/core/index.d.cts +16 -0
  460. package/node_modules/zod/v4/core/index.d.ts +16 -0
  461. package/node_modules/zod/v4/core/index.js +16 -0
  462. package/node_modules/zod/v4/core/json-schema-generator.cjs +99 -0
  463. package/node_modules/zod/v4/core/json-schema-generator.d.cts +65 -0
  464. package/node_modules/zod/v4/core/json-schema-generator.d.ts +65 -0
  465. package/node_modules/zod/v4/core/json-schema-generator.js +95 -0
  466. package/node_modules/zod/v4/core/json-schema-processors.cjs +644 -0
  467. package/node_modules/zod/v4/core/json-schema-processors.d.cts +49 -0
  468. package/node_modules/zod/v4/core/json-schema-processors.d.ts +49 -0
  469. package/node_modules/zod/v4/core/json-schema-processors.js +601 -0
  470. package/node_modules/zod/v4/core/json-schema.cjs +2 -0
  471. package/node_modules/zod/v4/core/json-schema.d.cts +88 -0
  472. package/node_modules/zod/v4/core/json-schema.d.ts +88 -0
  473. package/node_modules/zod/v4/core/json-schema.js +1 -0
  474. package/node_modules/zod/v4/core/package.json +7 -0
  475. package/node_modules/zod/v4/core/parse.cjs +131 -0
  476. package/node_modules/zod/v4/core/parse.d.cts +49 -0
  477. package/node_modules/zod/v4/core/parse.d.ts +49 -0
  478. package/node_modules/zod/v4/core/parse.js +93 -0
  479. package/node_modules/zod/v4/core/regexes.cjs +172 -0
  480. package/node_modules/zod/v4/core/regexes.d.cts +85 -0
  481. package/node_modules/zod/v4/core/regexes.d.ts +85 -0
  482. package/node_modules/zod/v4/core/regexes.js +139 -0
  483. package/node_modules/zod/v4/core/registries.cjs +56 -0
  484. package/node_modules/zod/v4/core/registries.d.cts +35 -0
  485. package/node_modules/zod/v4/core/registries.d.ts +35 -0
  486. package/node_modules/zod/v4/core/registries.js +51 -0
  487. package/node_modules/zod/v4/core/schemas.cjs +2270 -0
  488. package/node_modules/zod/v4/core/schemas.d.cts +1184 -0
  489. package/node_modules/zod/v4/core/schemas.d.ts +1184 -0
  490. package/node_modules/zod/v4/core/schemas.js +2239 -0
  491. package/node_modules/zod/v4/core/standard-schema.cjs +2 -0
  492. package/node_modules/zod/v4/core/standard-schema.d.cts +126 -0
  493. package/node_modules/zod/v4/core/standard-schema.d.ts +126 -0
  494. package/node_modules/zod/v4/core/standard-schema.js +1 -0
  495. package/node_modules/zod/v4/core/to-json-schema.cjs +457 -0
  496. package/node_modules/zod/v4/core/to-json-schema.d.cts +114 -0
  497. package/node_modules/zod/v4/core/to-json-schema.d.ts +114 -0
  498. package/node_modules/zod/v4/core/to-json-schema.js +448 -0
  499. package/node_modules/zod/v4/core/util.cjs +734 -0
  500. package/node_modules/zod/v4/core/util.d.cts +200 -0
  501. package/node_modules/zod/v4/core/util.d.ts +200 -0
  502. package/node_modules/zod/v4/core/util.js +674 -0
  503. package/node_modules/zod/v4/core/versions.cjs +8 -0
  504. package/node_modules/zod/v4/core/versions.d.cts +5 -0
  505. package/node_modules/zod/v4/core/versions.d.ts +5 -0
  506. package/node_modules/zod/v4/core/versions.js +5 -0
  507. package/node_modules/zod/v4/index.cjs +22 -0
  508. package/node_modules/zod/v4/index.d.cts +3 -0
  509. package/node_modules/zod/v4/index.d.ts +3 -0
  510. package/node_modules/zod/v4/index.js +3 -0
  511. package/node_modules/zod/v4/locales/ar.cjs +133 -0
  512. package/node_modules/zod/v4/locales/ar.d.cts +5 -0
  513. package/node_modules/zod/v4/locales/ar.d.ts +4 -0
  514. package/node_modules/zod/v4/locales/ar.js +106 -0
  515. package/node_modules/zod/v4/locales/az.cjs +132 -0
  516. package/node_modules/zod/v4/locales/az.d.cts +5 -0
  517. package/node_modules/zod/v4/locales/az.d.ts +4 -0
  518. package/node_modules/zod/v4/locales/az.js +105 -0
  519. package/node_modules/zod/v4/locales/be.cjs +183 -0
  520. package/node_modules/zod/v4/locales/be.d.cts +5 -0
  521. package/node_modules/zod/v4/locales/be.d.ts +4 -0
  522. package/node_modules/zod/v4/locales/be.js +156 -0
  523. package/node_modules/zod/v4/locales/bg.cjs +147 -0
  524. package/node_modules/zod/v4/locales/bg.d.cts +5 -0
  525. package/node_modules/zod/v4/locales/bg.d.ts +4 -0
  526. package/node_modules/zod/v4/locales/bg.js +120 -0
  527. package/node_modules/zod/v4/locales/ca.cjs +134 -0
  528. package/node_modules/zod/v4/locales/ca.d.cts +5 -0
  529. package/node_modules/zod/v4/locales/ca.d.ts +4 -0
  530. package/node_modules/zod/v4/locales/ca.js +107 -0
  531. package/node_modules/zod/v4/locales/cs.cjs +138 -0
  532. package/node_modules/zod/v4/locales/cs.d.cts +5 -0
  533. package/node_modules/zod/v4/locales/cs.d.ts +4 -0
  534. package/node_modules/zod/v4/locales/cs.js +111 -0
  535. package/node_modules/zod/v4/locales/da.cjs +142 -0
  536. package/node_modules/zod/v4/locales/da.d.cts +5 -0
  537. package/node_modules/zod/v4/locales/da.d.ts +4 -0
  538. package/node_modules/zod/v4/locales/da.js +115 -0
  539. package/node_modules/zod/v4/locales/de.cjs +135 -0
  540. package/node_modules/zod/v4/locales/de.d.cts +5 -0
  541. package/node_modules/zod/v4/locales/de.d.ts +4 -0
  542. package/node_modules/zod/v4/locales/de.js +108 -0
  543. package/node_modules/zod/v4/locales/el.cjs +136 -0
  544. package/node_modules/zod/v4/locales/el.d.cts +5 -0
  545. package/node_modules/zod/v4/locales/el.d.ts +4 -0
  546. package/node_modules/zod/v4/locales/el.js +109 -0
  547. package/node_modules/zod/v4/locales/en.cjs +140 -0
  548. package/node_modules/zod/v4/locales/en.d.cts +5 -0
  549. package/node_modules/zod/v4/locales/en.d.ts +4 -0
  550. package/node_modules/zod/v4/locales/en.js +113 -0
  551. package/node_modules/zod/v4/locales/eo.cjs +136 -0
  552. package/node_modules/zod/v4/locales/eo.d.cts +5 -0
  553. package/node_modules/zod/v4/locales/eo.d.ts +4 -0
  554. package/node_modules/zod/v4/locales/eo.js +109 -0
  555. package/node_modules/zod/v4/locales/es.cjs +159 -0
  556. package/node_modules/zod/v4/locales/es.d.cts +5 -0
  557. package/node_modules/zod/v4/locales/es.d.ts +4 -0
  558. package/node_modules/zod/v4/locales/es.js +132 -0
  559. package/node_modules/zod/v4/locales/fa.cjs +141 -0
  560. package/node_modules/zod/v4/locales/fa.d.cts +5 -0
  561. package/node_modules/zod/v4/locales/fa.d.ts +4 -0
  562. package/node_modules/zod/v4/locales/fa.js +114 -0
  563. package/node_modules/zod/v4/locales/fi.cjs +139 -0
  564. package/node_modules/zod/v4/locales/fi.d.cts +5 -0
  565. package/node_modules/zod/v4/locales/fi.d.ts +4 -0
  566. package/node_modules/zod/v4/locales/fi.js +112 -0
  567. package/node_modules/zod/v4/locales/fr-CA.cjs +134 -0
  568. package/node_modules/zod/v4/locales/fr-CA.d.cts +5 -0
  569. package/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
  570. package/node_modules/zod/v4/locales/fr-CA.js +107 -0
  571. package/node_modules/zod/v4/locales/fr.cjs +152 -0
  572. package/node_modules/zod/v4/locales/fr.d.cts +5 -0
  573. package/node_modules/zod/v4/locales/fr.d.ts +4 -0
  574. package/node_modules/zod/v4/locales/fr.js +125 -0
  575. package/node_modules/zod/v4/locales/he.cjs +241 -0
  576. package/node_modules/zod/v4/locales/he.d.cts +5 -0
  577. package/node_modules/zod/v4/locales/he.d.ts +4 -0
  578. package/node_modules/zod/v4/locales/he.js +214 -0
  579. package/node_modules/zod/v4/locales/hr.cjs +149 -0
  580. package/node_modules/zod/v4/locales/hr.d.cts +5 -0
  581. package/node_modules/zod/v4/locales/hr.d.ts +4 -0
  582. package/node_modules/zod/v4/locales/hr.js +122 -0
  583. package/node_modules/zod/v4/locales/hu.cjs +135 -0
  584. package/node_modules/zod/v4/locales/hu.d.cts +5 -0
  585. package/node_modules/zod/v4/locales/hu.d.ts +4 -0
  586. package/node_modules/zod/v4/locales/hu.js +108 -0
  587. package/node_modules/zod/v4/locales/hy.cjs +174 -0
  588. package/node_modules/zod/v4/locales/hy.d.cts +5 -0
  589. package/node_modules/zod/v4/locales/hy.d.ts +4 -0
  590. package/node_modules/zod/v4/locales/hy.js +147 -0
  591. package/node_modules/zod/v4/locales/id.cjs +133 -0
  592. package/node_modules/zod/v4/locales/id.d.cts +5 -0
  593. package/node_modules/zod/v4/locales/id.d.ts +4 -0
  594. package/node_modules/zod/v4/locales/id.js +106 -0
  595. package/node_modules/zod/v4/locales/index.cjs +111 -0
  596. package/node_modules/zod/v4/locales/index.d.cts +52 -0
  597. package/node_modules/zod/v4/locales/index.d.ts +52 -0
  598. package/node_modules/zod/v4/locales/index.js +52 -0
  599. package/node_modules/zod/v4/locales/is.cjs +136 -0
  600. package/node_modules/zod/v4/locales/is.d.cts +5 -0
  601. package/node_modules/zod/v4/locales/is.d.ts +4 -0
  602. package/node_modules/zod/v4/locales/is.js +109 -0
  603. package/node_modules/zod/v4/locales/it.cjs +135 -0
  604. package/node_modules/zod/v4/locales/it.d.cts +5 -0
  605. package/node_modules/zod/v4/locales/it.d.ts +4 -0
  606. package/node_modules/zod/v4/locales/it.js +108 -0
  607. package/node_modules/zod/v4/locales/ja.cjs +134 -0
  608. package/node_modules/zod/v4/locales/ja.d.cts +5 -0
  609. package/node_modules/zod/v4/locales/ja.d.ts +4 -0
  610. package/node_modules/zod/v4/locales/ja.js +107 -0
  611. package/node_modules/zod/v4/locales/ka.cjs +139 -0
  612. package/node_modules/zod/v4/locales/ka.d.cts +5 -0
  613. package/node_modules/zod/v4/locales/ka.d.ts +4 -0
  614. package/node_modules/zod/v4/locales/ka.js +112 -0
  615. package/node_modules/zod/v4/locales/kh.cjs +12 -0
  616. package/node_modules/zod/v4/locales/kh.d.cts +5 -0
  617. package/node_modules/zod/v4/locales/kh.d.ts +5 -0
  618. package/node_modules/zod/v4/locales/kh.js +5 -0
  619. package/node_modules/zod/v4/locales/km.cjs +137 -0
  620. package/node_modules/zod/v4/locales/km.d.cts +5 -0
  621. package/node_modules/zod/v4/locales/km.d.ts +4 -0
  622. package/node_modules/zod/v4/locales/km.js +110 -0
  623. package/node_modules/zod/v4/locales/ko.cjs +138 -0
  624. package/node_modules/zod/v4/locales/ko.d.cts +5 -0
  625. package/node_modules/zod/v4/locales/ko.d.ts +4 -0
  626. package/node_modules/zod/v4/locales/ko.js +111 -0
  627. package/node_modules/zod/v4/locales/lt.cjs +230 -0
  628. package/node_modules/zod/v4/locales/lt.d.cts +5 -0
  629. package/node_modules/zod/v4/locales/lt.d.ts +4 -0
  630. package/node_modules/zod/v4/locales/lt.js +203 -0
  631. package/node_modules/zod/v4/locales/mk.cjs +136 -0
  632. package/node_modules/zod/v4/locales/mk.d.cts +5 -0
  633. package/node_modules/zod/v4/locales/mk.d.ts +4 -0
  634. package/node_modules/zod/v4/locales/mk.js +109 -0
  635. package/node_modules/zod/v4/locales/ms.cjs +134 -0
  636. package/node_modules/zod/v4/locales/ms.d.cts +5 -0
  637. package/node_modules/zod/v4/locales/ms.d.ts +4 -0
  638. package/node_modules/zod/v4/locales/ms.js +107 -0
  639. package/node_modules/zod/v4/locales/nl.cjs +137 -0
  640. package/node_modules/zod/v4/locales/nl.d.cts +5 -0
  641. package/node_modules/zod/v4/locales/nl.d.ts +4 -0
  642. package/node_modules/zod/v4/locales/nl.js +110 -0
  643. package/node_modules/zod/v4/locales/no.cjs +135 -0
  644. package/node_modules/zod/v4/locales/no.d.cts +5 -0
  645. package/node_modules/zod/v4/locales/no.d.ts +4 -0
  646. package/node_modules/zod/v4/locales/no.js +108 -0
  647. package/node_modules/zod/v4/locales/ota.cjs +136 -0
  648. package/node_modules/zod/v4/locales/ota.d.cts +5 -0
  649. package/node_modules/zod/v4/locales/ota.d.ts +4 -0
  650. package/node_modules/zod/v4/locales/ota.js +109 -0
  651. package/node_modules/zod/v4/locales/package.json +7 -0
  652. package/node_modules/zod/v4/locales/pl.cjs +136 -0
  653. package/node_modules/zod/v4/locales/pl.d.cts +5 -0
  654. package/node_modules/zod/v4/locales/pl.d.ts +4 -0
  655. package/node_modules/zod/v4/locales/pl.js +109 -0
  656. package/node_modules/zod/v4/locales/ps.cjs +141 -0
  657. package/node_modules/zod/v4/locales/ps.d.cts +5 -0
  658. package/node_modules/zod/v4/locales/ps.d.ts +4 -0
  659. package/node_modules/zod/v4/locales/ps.js +114 -0
  660. package/node_modules/zod/v4/locales/pt.cjs +135 -0
  661. package/node_modules/zod/v4/locales/pt.d.cts +5 -0
  662. package/node_modules/zod/v4/locales/pt.d.ts +4 -0
  663. package/node_modules/zod/v4/locales/pt.js +108 -0
  664. package/node_modules/zod/v4/locales/ro.cjs +146 -0
  665. package/node_modules/zod/v4/locales/ro.d.cts +5 -0
  666. package/node_modules/zod/v4/locales/ro.d.ts +4 -0
  667. package/node_modules/zod/v4/locales/ro.js +119 -0
  668. package/node_modules/zod/v4/locales/ru.cjs +183 -0
  669. package/node_modules/zod/v4/locales/ru.d.cts +5 -0
  670. package/node_modules/zod/v4/locales/ru.d.ts +4 -0
  671. package/node_modules/zod/v4/locales/ru.js +156 -0
  672. package/node_modules/zod/v4/locales/sl.cjs +136 -0
  673. package/node_modules/zod/v4/locales/sl.d.cts +5 -0
  674. package/node_modules/zod/v4/locales/sl.d.ts +4 -0
  675. package/node_modules/zod/v4/locales/sl.js +109 -0
  676. package/node_modules/zod/v4/locales/sv.cjs +137 -0
  677. package/node_modules/zod/v4/locales/sv.d.cts +5 -0
  678. package/node_modules/zod/v4/locales/sv.d.ts +4 -0
  679. package/node_modules/zod/v4/locales/sv.js +110 -0
  680. package/node_modules/zod/v4/locales/ta.cjs +137 -0
  681. package/node_modules/zod/v4/locales/ta.d.cts +5 -0
  682. package/node_modules/zod/v4/locales/ta.d.ts +4 -0
  683. package/node_modules/zod/v4/locales/ta.js +110 -0
  684. package/node_modules/zod/v4/locales/th.cjs +137 -0
  685. package/node_modules/zod/v4/locales/th.d.cts +5 -0
  686. package/node_modules/zod/v4/locales/th.d.ts +4 -0
  687. package/node_modules/zod/v4/locales/th.js +110 -0
  688. package/node_modules/zod/v4/locales/tr.cjs +132 -0
  689. package/node_modules/zod/v4/locales/tr.d.cts +5 -0
  690. package/node_modules/zod/v4/locales/tr.d.ts +4 -0
  691. package/node_modules/zod/v4/locales/tr.js +105 -0
  692. package/node_modules/zod/v4/locales/ua.cjs +12 -0
  693. package/node_modules/zod/v4/locales/ua.d.cts +5 -0
  694. package/node_modules/zod/v4/locales/ua.d.ts +5 -0
  695. package/node_modules/zod/v4/locales/ua.js +5 -0
  696. package/node_modules/zod/v4/locales/uk.cjs +135 -0
  697. package/node_modules/zod/v4/locales/uk.d.cts +5 -0
  698. package/node_modules/zod/v4/locales/uk.d.ts +4 -0
  699. package/node_modules/zod/v4/locales/uk.js +108 -0
  700. package/node_modules/zod/v4/locales/ur.cjs +137 -0
  701. package/node_modules/zod/v4/locales/ur.d.cts +5 -0
  702. package/node_modules/zod/v4/locales/ur.d.ts +4 -0
  703. package/node_modules/zod/v4/locales/ur.js +110 -0
  704. package/node_modules/zod/v4/locales/uz.cjs +137 -0
  705. package/node_modules/zod/v4/locales/uz.d.cts +5 -0
  706. package/node_modules/zod/v4/locales/uz.d.ts +4 -0
  707. package/node_modules/zod/v4/locales/uz.js +110 -0
  708. package/node_modules/zod/v4/locales/vi.cjs +135 -0
  709. package/node_modules/zod/v4/locales/vi.d.cts +5 -0
  710. package/node_modules/zod/v4/locales/vi.d.ts +4 -0
  711. package/node_modules/zod/v4/locales/vi.js +108 -0
  712. package/node_modules/zod/v4/locales/yo.cjs +134 -0
  713. package/node_modules/zod/v4/locales/yo.d.cts +5 -0
  714. package/node_modules/zod/v4/locales/yo.d.ts +4 -0
  715. package/node_modules/zod/v4/locales/yo.js +107 -0
  716. package/node_modules/zod/v4/locales/zh-CN.cjs +136 -0
  717. package/node_modules/zod/v4/locales/zh-CN.d.cts +5 -0
  718. package/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
  719. package/node_modules/zod/v4/locales/zh-CN.js +109 -0
  720. package/node_modules/zod/v4/locales/zh-TW.cjs +134 -0
  721. package/node_modules/zod/v4/locales/zh-TW.d.cts +5 -0
  722. package/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
  723. package/node_modules/zod/v4/locales/zh-TW.js +107 -0
  724. package/node_modules/zod/v4/mini/checks.cjs +34 -0
  725. package/node_modules/zod/v4/mini/checks.d.cts +1 -0
  726. package/node_modules/zod/v4/mini/checks.d.ts +1 -0
  727. package/node_modules/zod/v4/mini/checks.js +1 -0
  728. package/node_modules/zod/v4/mini/coerce.cjs +52 -0
  729. package/node_modules/zod/v4/mini/coerce.d.cts +7 -0
  730. package/node_modules/zod/v4/mini/coerce.d.ts +7 -0
  731. package/node_modules/zod/v4/mini/coerce.js +22 -0
  732. package/node_modules/zod/v4/mini/external.cjs +63 -0
  733. package/node_modules/zod/v4/mini/external.d.cts +13 -0
  734. package/node_modules/zod/v4/mini/external.d.ts +13 -0
  735. package/node_modules/zod/v4/mini/external.js +14 -0
  736. package/node_modules/zod/v4/mini/index.cjs +32 -0
  737. package/node_modules/zod/v4/mini/index.d.cts +3 -0
  738. package/node_modules/zod/v4/mini/index.d.ts +3 -0
  739. package/node_modules/zod/v4/mini/index.js +3 -0
  740. package/node_modules/zod/v4/mini/iso.cjs +64 -0
  741. package/node_modules/zod/v4/mini/iso.d.cts +22 -0
  742. package/node_modules/zod/v4/mini/iso.d.ts +22 -0
  743. package/node_modules/zod/v4/mini/iso.js +34 -0
  744. package/node_modules/zod/v4/mini/package.json +7 -0
  745. package/node_modules/zod/v4/mini/parse.cjs +16 -0
  746. package/node_modules/zod/v4/mini/parse.d.cts +1 -0
  747. package/node_modules/zod/v4/mini/parse.d.ts +1 -0
  748. package/node_modules/zod/v4/mini/parse.js +1 -0
  749. package/node_modules/zod/v4/mini/schemas.cjs +1083 -0
  750. package/node_modules/zod/v4/mini/schemas.d.cts +445 -0
  751. package/node_modules/zod/v4/mini/schemas.d.ts +445 -0
  752. package/node_modules/zod/v4/mini/schemas.js +961 -0
  753. package/node_modules/zod/v4/package.json +7 -0
  754. package/node_modules/zod/v4-mini/index.cjs +32 -0
  755. package/node_modules/zod/v4-mini/index.d.cts +3 -0
  756. package/node_modules/zod/v4-mini/index.d.ts +3 -0
  757. package/node_modules/zod/v4-mini/index.js +3 -0
  758. package/node_modules/zod/v4-mini/package.json +7 -0
  759. package/npm-shrinkwrap.json +54 -0
  760. package/openclaw.plugin.json +997 -1
  761. package/package.json +48 -7
  762. package/index.ts +0 -17
  763. package/src/channel.test.ts +0 -235
  764. package/src/channel.ts +0 -433
  765. package/src/config-schema.ts +0 -61
  766. package/src/group-mentions.ts +0 -15
  767. package/src/mattermost/accounts.ts +0 -128
  768. package/src/mattermost/client.test.ts +0 -19
  769. package/src/mattermost/client.ts +0 -230
  770. package/src/mattermost/index.ts +0 -9
  771. package/src/mattermost/monitor-helpers.ts +0 -93
  772. package/src/mattermost/monitor-onchar.ts +0 -25
  773. package/src/mattermost/monitor-websocket.test.ts +0 -232
  774. package/src/mattermost/monitor-websocket.ts +0 -221
  775. package/src/mattermost/monitor.ts +0 -1030
  776. package/src/mattermost/probe.ts +0 -73
  777. package/src/mattermost/reactions.test-helpers.ts +0 -83
  778. package/src/mattermost/reactions.test.ts +0 -103
  779. package/src/mattermost/reactions.ts +0 -124
  780. package/src/mattermost/reconnect.test.ts +0 -192
  781. package/src/mattermost/reconnect.ts +0 -103
  782. package/src/mattermost/send.ts +0 -231
  783. package/src/normalize.ts +0 -46
  784. package/src/onboarding-helpers.ts +0 -1
  785. package/src/onboarding.ts +0 -186
  786. package/src/runtime.ts +0 -14
  787. package/src/types.ts +0 -57
@@ -1,230 +0,0 @@
1
- export type MattermostClient = {
2
- baseUrl: string;
3
- apiBaseUrl: string;
4
- token: string;
5
- request: <T>(path: string, init?: RequestInit) => Promise<T>;
6
- };
7
-
8
- export type MattermostUser = {
9
- id: string;
10
- username?: string | null;
11
- nickname?: string | null;
12
- first_name?: string | null;
13
- last_name?: string | null;
14
- };
15
-
16
- export type MattermostChannel = {
17
- id: string;
18
- name?: string | null;
19
- display_name?: string | null;
20
- type?: string | null;
21
- team_id?: string | null;
22
- };
23
-
24
- export type MattermostPost = {
25
- id: string;
26
- user_id?: string | null;
27
- channel_id?: string | null;
28
- message?: string | null;
29
- file_ids?: string[] | null;
30
- type?: string | null;
31
- root_id?: string | null;
32
- create_at?: number | null;
33
- props?: Record<string, unknown> | null;
34
- };
35
-
36
- export type MattermostFileInfo = {
37
- id: string;
38
- name?: string | null;
39
- mime_type?: string | null;
40
- size?: number | null;
41
- };
42
-
43
- export function normalizeMattermostBaseUrl(raw?: string | null): string | undefined {
44
- const trimmed = raw?.trim();
45
- if (!trimmed) {
46
- return undefined;
47
- }
48
- const withoutTrailing = trimmed.replace(/\/+$/, "");
49
- return withoutTrailing.replace(/\/api\/v4$/i, "");
50
- }
51
-
52
- function buildMattermostApiUrl(baseUrl: string, path: string): string {
53
- const normalized = normalizeMattermostBaseUrl(baseUrl);
54
- if (!normalized) {
55
- throw new Error("Mattermost baseUrl is required");
56
- }
57
- const suffix = path.startsWith("/") ? path : `/${path}`;
58
- return `${normalized}/api/v4${suffix}`;
59
- }
60
-
61
- async function readMattermostError(res: Response): Promise<string> {
62
- const contentType = res.headers.get("content-type") ?? "";
63
- if (contentType.includes("application/json")) {
64
- const data = (await res.json()) as { message?: string } | undefined;
65
- if (data?.message) {
66
- return data.message;
67
- }
68
- return JSON.stringify(data);
69
- }
70
- return await res.text();
71
- }
72
-
73
- export function createMattermostClient(params: {
74
- baseUrl: string;
75
- botToken: string;
76
- fetchImpl?: typeof fetch;
77
- }): MattermostClient {
78
- const baseUrl = normalizeMattermostBaseUrl(params.baseUrl);
79
- if (!baseUrl) {
80
- throw new Error("Mattermost baseUrl is required");
81
- }
82
- const apiBaseUrl = `${baseUrl}/api/v4`;
83
- const token = params.botToken.trim();
84
- const fetchImpl = params.fetchImpl ?? fetch;
85
-
86
- const request = async <T>(path: string, init?: RequestInit): Promise<T> => {
87
- const url = buildMattermostApiUrl(baseUrl, path);
88
- const headers = new Headers(init?.headers);
89
- headers.set("Authorization", `Bearer ${token}`);
90
- if (typeof init?.body === "string" && !headers.has("Content-Type")) {
91
- headers.set("Content-Type", "application/json");
92
- }
93
- const res = await fetchImpl(url, { ...init, headers });
94
- if (!res.ok) {
95
- const detail = await readMattermostError(res);
96
- throw new Error(
97
- `Mattermost API ${res.status} ${res.statusText}: ${detail || "unknown error"}`,
98
- );
99
- }
100
-
101
- if (res.status === 204) {
102
- return undefined as T;
103
- }
104
-
105
- const contentType = res.headers.get("content-type") ?? "";
106
- if (contentType.includes("application/json")) {
107
- return (await res.json()) as T;
108
- }
109
-
110
- return (await res.text()) as T;
111
- };
112
-
113
- return { baseUrl, apiBaseUrl, token, request };
114
- }
115
-
116
- export async function fetchMattermostMe(client: MattermostClient): Promise<MattermostUser> {
117
- return await client.request<MattermostUser>("/users/me");
118
- }
119
-
120
- export async function fetchMattermostUser(
121
- client: MattermostClient,
122
- userId: string,
123
- ): Promise<MattermostUser> {
124
- return await client.request<MattermostUser>(`/users/${userId}`);
125
- }
126
-
127
- export async function fetchMattermostUserByUsername(
128
- client: MattermostClient,
129
- username: string,
130
- ): Promise<MattermostUser> {
131
- return await client.request<MattermostUser>(`/users/username/${encodeURIComponent(username)}`);
132
- }
133
-
134
- export async function fetchMattermostChannel(
135
- client: MattermostClient,
136
- channelId: string,
137
- ): Promise<MattermostChannel> {
138
- return await client.request<MattermostChannel>(`/channels/${channelId}`);
139
- }
140
-
141
- export async function sendMattermostTyping(
142
- client: MattermostClient,
143
- params: { channelId: string; parentId?: string },
144
- ): Promise<void> {
145
- const payload: Record<string, string> = {
146
- channel_id: params.channelId,
147
- };
148
- const parentId = params.parentId?.trim();
149
- if (parentId) {
150
- payload.parent_id = parentId;
151
- }
152
- await client.request<Record<string, unknown>>("/users/me/typing", {
153
- method: "POST",
154
- body: JSON.stringify(payload),
155
- });
156
- }
157
-
158
- export async function createMattermostDirectChannel(
159
- client: MattermostClient,
160
- userIds: string[],
161
- ): Promise<MattermostChannel> {
162
- return await client.request<MattermostChannel>("/channels/direct", {
163
- method: "POST",
164
- body: JSON.stringify(userIds),
165
- });
166
- }
167
-
168
- export async function createMattermostPost(
169
- client: MattermostClient,
170
- params: {
171
- channelId: string;
172
- message: string;
173
- rootId?: string;
174
- fileIds?: string[];
175
- },
176
- ): Promise<MattermostPost> {
177
- const payload: Record<string, string> = {
178
- channel_id: params.channelId,
179
- message: params.message,
180
- };
181
- if (params.rootId) {
182
- payload.root_id = params.rootId;
183
- }
184
- if (params.fileIds?.length) {
185
- (payload as Record<string, unknown>).file_ids = params.fileIds;
186
- }
187
- return await client.request<MattermostPost>("/posts", {
188
- method: "POST",
189
- body: JSON.stringify(payload),
190
- });
191
- }
192
-
193
- export async function uploadMattermostFile(
194
- client: MattermostClient,
195
- params: {
196
- channelId: string;
197
- buffer: Buffer;
198
- fileName: string;
199
- contentType?: string;
200
- },
201
- ): Promise<MattermostFileInfo> {
202
- const form = new FormData();
203
- const fileName = params.fileName?.trim() || "upload";
204
- const bytes = Uint8Array.from(params.buffer);
205
- const blob = params.contentType
206
- ? new Blob([bytes], { type: params.contentType })
207
- : new Blob([bytes]);
208
- form.append("files", blob, fileName);
209
- form.append("channel_id", params.channelId);
210
-
211
- const res = await fetch(`${client.apiBaseUrl}/files`, {
212
- method: "POST",
213
- headers: {
214
- Authorization: `Bearer ${client.token}`,
215
- },
216
- body: form,
217
- });
218
-
219
- if (!res.ok) {
220
- const detail = await readMattermostError(res);
221
- throw new Error(`Mattermost API ${res.status} ${res.statusText}: ${detail || "unknown error"}`);
222
- }
223
-
224
- const data = (await res.json()) as { file_infos?: MattermostFileInfo[] };
225
- const info = data.file_infos?.[0];
226
- if (!info?.id) {
227
- throw new Error("Mattermost file upload failed");
228
- }
229
- return info;
230
- }
@@ -1,9 +0,0 @@
1
- export {
2
- listEnabledMattermostAccounts,
3
- listMattermostAccountIds,
4
- resolveDefaultMattermostAccountId,
5
- resolveMattermostAccount,
6
- } from "./accounts.js";
7
- export { monitorMattermostProvider } from "./monitor.js";
8
- export { probeMattermost } from "./probe.js";
9
- export { sendMessageMattermost } from "./send.js";
@@ -1,93 +0,0 @@
1
- import type { OpenClawConfig } from "openclaw/plugin-sdk";
2
- export { createDedupeCache, rawDataToString } from "openclaw/plugin-sdk";
3
-
4
- export type ResponsePrefixContext = {
5
- model?: string;
6
- modelFull?: string;
7
- provider?: string;
8
- thinkingLevel?: string;
9
- identityName?: string;
10
- };
11
-
12
- export function extractShortModelName(fullModel: string): string {
13
- const slash = fullModel.lastIndexOf("/");
14
- const modelPart = slash >= 0 ? fullModel.slice(slash + 1) : fullModel;
15
- return modelPart.replace(/-\d{8}$/, "").replace(/-latest$/, "");
16
- }
17
-
18
- export function formatInboundFromLabel(params: {
19
- isGroup: boolean;
20
- groupLabel?: string;
21
- groupId?: string;
22
- directLabel: string;
23
- directId?: string;
24
- groupFallback?: string;
25
- }): string {
26
- if (params.isGroup) {
27
- const label = params.groupLabel?.trim() || params.groupFallback || "Group";
28
- const id = params.groupId?.trim();
29
- return id ? `${label} id:${id}` : label;
30
- }
31
-
32
- const directLabel = params.directLabel.trim();
33
- const directId = params.directId?.trim();
34
- if (!directId || directId === directLabel) {
35
- return directLabel;
36
- }
37
- return `${directLabel} id:${directId}`;
38
- }
39
-
40
- function normalizeAgentId(value: string | undefined | null): string {
41
- const trimmed = (value ?? "").trim();
42
- if (!trimmed) {
43
- return "main";
44
- }
45
- if (/^[a-z0-9][a-z0-9_-]{0,63}$/i.test(trimmed)) {
46
- return trimmed;
47
- }
48
- return (
49
- trimmed
50
- .toLowerCase()
51
- .replace(/[^a-z0-9_-]+/g, "-")
52
- .replace(/^-+/, "")
53
- .replace(/-+$/, "")
54
- .slice(0, 64) || "main"
55
- );
56
- }
57
-
58
- type AgentEntry = NonNullable<NonNullable<OpenClawConfig["agents"]>["list"]>[number];
59
-
60
- function listAgents(cfg: OpenClawConfig): AgentEntry[] {
61
- const list = cfg.agents?.list;
62
- if (!Array.isArray(list)) {
63
- return [];
64
- }
65
- return list.filter((entry): entry is AgentEntry => Boolean(entry && typeof entry === "object"));
66
- }
67
-
68
- function resolveAgentEntry(cfg: OpenClawConfig, agentId: string): AgentEntry | undefined {
69
- const id = normalizeAgentId(agentId);
70
- return listAgents(cfg).find((entry) => normalizeAgentId(entry.id) === id);
71
- }
72
-
73
- export function resolveIdentityName(cfg: OpenClawConfig, agentId: string): string | undefined {
74
- const entry = resolveAgentEntry(cfg, agentId);
75
- return entry?.identity?.name?.trim() || undefined;
76
- }
77
-
78
- export function resolveThreadSessionKeys(params: {
79
- baseSessionKey: string;
80
- threadId?: string | null;
81
- parentSessionKey?: string;
82
- useSuffix?: boolean;
83
- }): { sessionKey: string; parentSessionKey?: string } {
84
- const threadId = (params.threadId ?? "").trim();
85
- if (!threadId) {
86
- return { sessionKey: params.baseSessionKey, parentSessionKey: undefined };
87
- }
88
- const useSuffix = params.useSuffix ?? true;
89
- const sessionKey = useSuffix
90
- ? `${params.baseSessionKey}:thread:${threadId}`
91
- : params.baseSessionKey;
92
- return { sessionKey, parentSessionKey: params.parentSessionKey };
93
- }
@@ -1,25 +0,0 @@
1
- const DEFAULT_ONCHAR_PREFIXES = [">", "!"];
2
-
3
- export function resolveOncharPrefixes(prefixes: string[] | undefined): string[] {
4
- const cleaned = prefixes?.map((entry) => entry.trim()).filter(Boolean) ?? DEFAULT_ONCHAR_PREFIXES;
5
- return cleaned.length > 0 ? cleaned : DEFAULT_ONCHAR_PREFIXES;
6
- }
7
-
8
- export function stripOncharPrefix(
9
- text: string,
10
- prefixes: string[],
11
- ): { triggered: boolean; stripped: string } {
12
- const trimmed = text.trimStart();
13
- for (const prefix of prefixes) {
14
- if (!prefix) {
15
- continue;
16
- }
17
- if (trimmed.startsWith(prefix)) {
18
- return {
19
- triggered: true,
20
- stripped: trimmed.slice(prefix.length).trimStart(),
21
- };
22
- }
23
- }
24
- return { triggered: false, stripped: text };
25
- }
@@ -1,232 +0,0 @@
1
- import type { RuntimeEnv } from "openclaw/plugin-sdk";
2
- import { describe, expect, it, vi } from "vitest";
3
- import {
4
- createMattermostConnectOnce,
5
- type MattermostWebSocketLike,
6
- WebSocketClosedBeforeOpenError,
7
- } from "./monitor-websocket.js";
8
- import { runWithReconnect } from "./reconnect.js";
9
-
10
- class FakeWebSocket implements MattermostWebSocketLike {
11
- public readonly sent: string[] = [];
12
- public closeCalls = 0;
13
- public terminateCalls = 0;
14
- private openListeners: Array<() => void> = [];
15
- private messageListeners: Array<(data: Buffer) => void | Promise<void>> = [];
16
- private closeListeners: Array<(code: number, reason: Buffer) => void> = [];
17
- private errorListeners: Array<(err: unknown) => void> = [];
18
-
19
- on(event: "open", listener: () => void): void;
20
- on(event: "message", listener: (data: Buffer) => void | Promise<void>): void;
21
- on(event: "close", listener: (code: number, reason: Buffer) => void): void;
22
- on(event: "error", listener: (err: unknown) => void): void;
23
- on(event: "open" | "message" | "close" | "error", listener: unknown): void {
24
- if (event === "open") {
25
- this.openListeners.push(listener as () => void);
26
- return;
27
- }
28
- if (event === "message") {
29
- this.messageListeners.push(listener as (data: Buffer) => void | Promise<void>);
30
- return;
31
- }
32
- if (event === "close") {
33
- this.closeListeners.push(listener as (code: number, reason: Buffer) => void);
34
- return;
35
- }
36
- this.errorListeners.push(listener as (err: unknown) => void);
37
- }
38
-
39
- send(data: string): void {
40
- this.sent.push(data);
41
- }
42
-
43
- close(): void {
44
- this.closeCalls++;
45
- }
46
-
47
- terminate(): void {
48
- this.terminateCalls++;
49
- }
50
-
51
- emitOpen(): void {
52
- for (const listener of this.openListeners) {
53
- listener();
54
- }
55
- }
56
-
57
- emitMessage(data: Buffer): void {
58
- for (const listener of this.messageListeners) {
59
- void listener(data);
60
- }
61
- }
62
-
63
- emitClose(code: number, reason = ""): void {
64
- const buffer = Buffer.from(reason, "utf8");
65
- for (const listener of this.closeListeners) {
66
- listener(code, buffer);
67
- }
68
- }
69
-
70
- emitError(err: unknown): void {
71
- for (const listener of this.errorListeners) {
72
- listener(err);
73
- }
74
- }
75
- }
76
-
77
- const testRuntime = (): RuntimeEnv =>
78
- ({
79
- log: vi.fn(),
80
- error: vi.fn(),
81
- exit: ((code: number): never => {
82
- throw new Error(`exit ${code}`);
83
- }) as RuntimeEnv["exit"],
84
- }) as RuntimeEnv;
85
-
86
- describe("mattermost websocket monitor", () => {
87
- it("rejects when websocket closes before open", async () => {
88
- const socket = new FakeWebSocket();
89
- const connectOnce = createMattermostConnectOnce({
90
- wsUrl: "wss://example.invalid/api/v4/websocket",
91
- botToken: "token",
92
- runtime: testRuntime(),
93
- nextSeq: () => 1,
94
- onPosted: async () => {},
95
- webSocketFactory: () => socket,
96
- });
97
-
98
- queueMicrotask(() => {
99
- socket.emitClose(1006, "connection refused");
100
- });
101
-
102
- const failure = connectOnce();
103
- await expect(failure).rejects.toBeInstanceOf(WebSocketClosedBeforeOpenError);
104
- await expect(failure).rejects.toMatchObject({
105
- message: "websocket closed before open (code 1006)",
106
- });
107
- });
108
-
109
- it("retries when first attempt errors before open and next attempt succeeds", async () => {
110
- const abort = new AbortController();
111
- const reconnectDelays: number[] = [];
112
- const onError = vi.fn();
113
- const patches: Array<Record<string, unknown>> = [];
114
- const sockets: FakeWebSocket[] = [];
115
- let disconnects = 0;
116
-
117
- const connectOnce = createMattermostConnectOnce({
118
- wsUrl: "wss://example.invalid/api/v4/websocket",
119
- botToken: "token",
120
- runtime: testRuntime(),
121
- nextSeq: (() => {
122
- let seq = 1;
123
- return () => seq++;
124
- })(),
125
- onPosted: async () => {},
126
- abortSignal: abort.signal,
127
- statusSink: (patch) => {
128
- patches.push(patch as Record<string, unknown>);
129
- if (patch.lastDisconnect) {
130
- disconnects++;
131
- if (disconnects >= 2) {
132
- abort.abort();
133
- }
134
- }
135
- },
136
- webSocketFactory: () => {
137
- const socket = new FakeWebSocket();
138
- const attempt = sockets.length;
139
- sockets.push(socket);
140
- queueMicrotask(() => {
141
- if (attempt === 0) {
142
- socket.emitError(new Error("boom"));
143
- socket.emitClose(1006, "connection refused");
144
- return;
145
- }
146
- socket.emitOpen();
147
- socket.emitClose(1000);
148
- });
149
- return socket;
150
- },
151
- });
152
-
153
- await runWithReconnect(connectOnce, {
154
- abortSignal: abort.signal,
155
- initialDelayMs: 1,
156
- onError,
157
- onReconnect: (delay) => reconnectDelays.push(delay),
158
- });
159
-
160
- expect(sockets).toHaveLength(2);
161
- expect(sockets[0].closeCalls).toBe(1);
162
- expect(sockets[1].sent).toHaveLength(1);
163
- expect(JSON.parse(sockets[1].sent[0])).toMatchObject({
164
- action: "authentication_challenge",
165
- data: { token: "token" },
166
- seq: 1,
167
- });
168
- expect(onError).toHaveBeenCalledTimes(1);
169
- expect(reconnectDelays).toEqual([1]);
170
- expect(patches.some((patch) => patch.connected === true)).toBe(true);
171
- expect(patches.filter((patch) => patch.connected === false)).toHaveLength(2);
172
- });
173
-
174
- it("dispatches reaction events to the reaction handler", async () => {
175
- const socket = new FakeWebSocket();
176
- const onPosted = vi.fn(async () => {});
177
- const onReaction = vi.fn(async (payload) => payload);
178
- const connectOnce = createMattermostConnectOnce({
179
- wsUrl: "wss://example.invalid/api/v4/websocket",
180
- botToken: "token",
181
- runtime: testRuntime(),
182
- nextSeq: () => 1,
183
- onPosted,
184
- onReaction,
185
- webSocketFactory: () => socket,
186
- });
187
-
188
- const connected = connectOnce();
189
- queueMicrotask(() => {
190
- socket.emitOpen();
191
- socket.emitMessage(
192
- Buffer.from(
193
- JSON.stringify({
194
- event: "reaction_added",
195
- data: {
196
- reaction: JSON.stringify({
197
- user_id: "user-1",
198
- post_id: "post-1",
199
- emoji_name: "thumbsup",
200
- }),
201
- },
202
- }),
203
- ),
204
- );
205
- socket.emitClose(1000);
206
- });
207
-
208
- await connected;
209
-
210
- expect(onReaction).toHaveBeenCalledTimes(1);
211
- expect(onPosted).not.toHaveBeenCalled();
212
- const payload = onReaction.mock.calls[0]?.[0];
213
- expect(payload).toMatchObject({
214
- event: "reaction_added",
215
- data: {
216
- reaction: JSON.stringify({
217
- user_id: "user-1",
218
- post_id: "post-1",
219
- emoji_name: "thumbsup",
220
- }),
221
- },
222
- });
223
- expect(payload.data?.reaction).toBe(
224
- JSON.stringify({
225
- user_id: "user-1",
226
- post_id: "post-1",
227
- emoji_name: "thumbsup",
228
- }),
229
- );
230
- expect(payload.data?.reaction).toBeDefined();
231
- });
232
- });