@openclaw/signal 2026.9.4 → 2026.9.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (525) hide show
  1. package/assets/activity.svg +40 -0
  2. package/assets/icon.png +0 -0
  3. package/dist/{accounts-DO4HMqaK.js → .setup/accounts-BV6tDOTc.mjs} +20 -5
  4. package/dist/.setup/api-Cu01dJRP.mjs +12 -0
  5. package/dist/.setup/api-DbdeJVQ8.mjs +17 -0
  6. package/dist/{approval-auth-pNCKKotV.js → .setup/approval-auth-BBI9BTRm.mjs} +3 -3
  7. package/dist/{approval-handler.runtime-DCPJkIqo.js → .setup/approval-handler.runtime-Clf_1IZj.mjs} +11 -11
  8. package/dist/{approval-reactions-CjhdkJ8P.js → .setup/approval-reactions-B25QoVJc.mjs} +14 -14
  9. package/dist/{channel-CyQvEuyA.js → .setup/channel-gMpZmqLx.mjs} +56 -33
  10. package/dist/{channel.runtime--koF_1H0.js → .setup/channel.runtime-Dqc18A1e.mjs} +3 -3
  11. package/dist/{client-B3C0ciqU.js → .setup/client-BseAt7F7.mjs} +311 -41
  12. package/dist/{client-adapter-CNc5wzzs.js → .setup/client-adapter-dvFa47YL.mjs} +1 -1
  13. package/dist/{config-schema-DfEbpMVQ.js → .setup/config-schema-aQwwMGUj.mjs} +19 -3
  14. package/dist/{doctor-contract-api-D0SnglP4.js → .setup/doctor-contract-api-Rbq_sRTI.mjs} +79 -15
  15. package/dist/{install-signal-cli-QlEIfWBv.js → .setup/install-signal-cli-bXeTrTyL.mjs} +3 -4
  16. package/dist/{monitor-BiNWxMB3.js → .setup/monitor-DAMQw1pZ.mjs} +32 -20
  17. package/dist/{probe-kOJqyjWz.js → .setup/probe-IKCS9D-z.mjs} +3 -3
  18. package/dist/{question-reactions-BFR9Mf-O.js → .setup/question-reactions-DSNAD0cd.mjs} +3 -3
  19. package/dist/{reaction-runtime-api-CWqDv5-q.js → .setup/reaction-runtime-api-BnQGHcrB.mjs} +6 -5
  20. package/dist/{rpc-context-dXSy4NtF.js → .setup/rpc-context-CwwADZ1b.mjs} +1 -1
  21. package/dist/{send-Bz0x0JC1.js → .setup/send-CcetN4rk.mjs} +7 -6
  22. package/dist/{send.runtime-CeV1p7Sq.js → .setup/send.runtime-B7C4IP23.mjs} +1 -1
  23. package/dist/{transport-detection-Do2pYMAH.js → .setup/transport-detection-CqyR2vG8.mjs} +50 -21
  24. package/dist/{transport-detection.runtime-QasZp3BE.js → .setup/transport-detection.runtime-CW1lp2d9.mjs} +1 -1
  25. package/dist/{transport-policy-DxvSMHp9.js → .setup/transport-policy-5VSnj5ma.mjs} +2 -33
  26. package/dist/.setup/transport-probes.runtime-WprAyBbL.mjs +2 -0
  27. package/dist/.setup/transport-url-CAC0JcuI.mjs +55 -0
  28. package/dist/api.js +11 -16
  29. package/dist/channel-config-api.js +1 -1
  30. package/dist/channel-plugin-api.js +1 -1
  31. package/dist/contract-api.js +4 -4
  32. package/dist/doctor-contract-api.js +1 -1
  33. package/dist/reaction-runtime-api.js +1 -1
  34. package/dist/runtime-api.js +9 -9
  35. package/dist/setup-entry.js +2 -1
  36. package/node_modules/zod/README.md +27 -0
  37. package/node_modules/zod/compile.cjs +77 -0
  38. package/node_modules/zod/compile.d.cts +1 -0
  39. package/node_modules/zod/compile.d.ts +1 -0
  40. package/node_modules/zod/compile.js +52 -0
  41. package/node_modules/zod/index.cjs +2 -2
  42. package/node_modules/zod/index.d.cts +1 -2
  43. package/node_modules/zod/index.d.ts +1 -2
  44. package/node_modules/zod/index.js +5 -2
  45. package/node_modules/zod/package.json +13 -2
  46. package/node_modules/zod/src/compile.ts +56 -0
  47. package/node_modules/zod/src/index.ts +5 -2
  48. package/node_modules/zod/src/v3/ZodError.ts +22 -12
  49. package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
  50. package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
  51. package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
  52. package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
  53. package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
  54. package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
  55. package/node_modules/zod/src/v3/types.ts +5 -5
  56. package/node_modules/zod/src/v4/classic/checks.ts +1 -0
  57. package/node_modules/zod/src/v4/classic/compat.ts +26 -18
  58. package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
  59. package/node_modules/zod/src/v4/classic/errors.ts +59 -44
  60. package/node_modules/zod/src/v4/classic/external.ts +12 -9
  61. package/node_modules/zod/src/v4/classic/from-json-schema.ts +140 -78
  62. package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
  63. package/node_modules/zod/src/v4/classic/index.ts +2 -2
  64. package/node_modules/zod/src/v4/classic/iso.ts +2 -72
  65. package/node_modules/zod/src/v4/classic/parse.ts +10 -4
  66. package/node_modules/zod/src/v4/classic/schemas.ts +452 -262
  67. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
  68. package/node_modules/zod/src/v4/classic/tests/array.test.ts +2 -2
  69. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +135 -0
  70. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +30 -1
  71. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
  72. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
  73. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
  74. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
  75. package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
  76. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +720 -0
  77. package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
  78. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
  79. package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
  80. package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
  81. package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
  82. package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
  83. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +155 -13
  84. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +11 -0
  85. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
  86. package/node_modules/zod/src/v4/classic/tests/error.test.ts +274 -6
  87. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +425 -10
  88. package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
  89. package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
  90. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
  91. package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
  92. package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
  93. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +281 -0
  94. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +47 -0
  95. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
  96. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +183 -0
  97. package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
  98. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
  99. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
  100. package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
  101. package/node_modules/zod/src/v4/classic/tests/number.test.ts +46 -9
  102. package/node_modules/zod/src/v4/classic/tests/object.test.ts +245 -12
  103. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +234 -0
  104. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
  105. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
  106. package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
  107. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
  108. package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
  109. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +33 -2
  110. package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
  111. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
  112. package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
  113. package/node_modules/zod/src/v4/classic/tests/string.test.ts +127 -5
  114. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
  115. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +11 -2
  116. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1585 -173
  117. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
  118. package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
  119. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +76 -0
  120. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
  121. package/node_modules/zod/src/v4/core/api.ts +48 -12
  122. package/node_modules/zod/src/v4/core/checks.ts +57 -44
  123. package/node_modules/zod/src/v4/core/compile.ts +2188 -0
  124. package/node_modules/zod/src/v4/core/core.ts +98 -19
  125. package/node_modules/zod/src/v4/core/doc.ts +11 -7
  126. package/node_modules/zod/src/v4/core/errors.ts +115 -24
  127. package/node_modules/zod/src/v4/core/index.ts +3 -0
  128. package/node_modules/zod/src/v4/core/json-schema-generator.ts +6 -1
  129. package/node_modules/zod/src/v4/core/json-schema-processors.ts +257 -93
  130. package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
  131. package/node_modules/zod/src/v4/core/memoizer.ts +284 -0
  132. package/node_modules/zod/src/v4/core/parse.ts +131 -38
  133. package/node_modules/zod/src/v4/core/regexes.ts +30 -13
  134. package/node_modules/zod/src/v4/core/registries.ts +2 -2
  135. package/node_modules/zod/src/v4/core/schemas.ts +759 -461
  136. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +969 -0
  137. package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
  138. package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
  139. package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
  140. package/node_modules/zod/src/v4/core/tests/compile.test.ts +1639 -0
  141. package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
  142. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
  143. package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
  144. package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
  145. package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
  146. package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
  147. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +31 -0
  148. package/node_modules/zod/src/v4/core/to-json-schema.ts +275 -42
  149. package/node_modules/zod/src/v4/core/util.ts +268 -42
  150. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  151. package/node_modules/zod/src/v4/core/visit.ts +193 -0
  152. package/node_modules/zod/src/v4/index.ts +3 -3
  153. package/node_modules/zod/src/v4/locales/ar.ts +3 -0
  154. package/node_modules/zod/src/v4/locales/az.ts +3 -0
  155. package/node_modules/zod/src/v4/locales/be.ts +10 -0
  156. package/node_modules/zod/src/v4/locales/bg.ts +3 -0
  157. package/node_modules/zod/src/v4/locales/bn.ts +121 -0
  158. package/node_modules/zod/src/v4/locales/ca.ts +3 -0
  159. package/node_modules/zod/src/v4/locales/ckb.ts +138 -0
  160. package/node_modules/zod/src/v4/locales/cs.ts +3 -0
  161. package/node_modules/zod/src/v4/locales/da.ts +5 -2
  162. package/node_modules/zod/src/v4/locales/de.ts +3 -0
  163. package/node_modules/zod/src/v4/locales/el.ts +1 -0
  164. package/node_modules/zod/src/v4/locales/en.ts +15 -4
  165. package/node_modules/zod/src/v4/locales/eo.ts +3 -0
  166. package/node_modules/zod/src/v4/locales/es.ts +2 -0
  167. package/node_modules/zod/src/v4/locales/fa.ts +3 -0
  168. package/node_modules/zod/src/v4/locales/fi.ts +3 -0
  169. package/node_modules/zod/src/v4/locales/fr-CA.ts +3 -0
  170. package/node_modules/zod/src/v4/locales/fr.ts +19 -14
  171. package/node_modules/zod/src/v4/locales/gu.ts +121 -0
  172. package/node_modules/zod/src/v4/locales/he.ts +6 -1
  173. package/node_modules/zod/src/v4/locales/hi.ts +124 -0
  174. package/node_modules/zod/src/v4/locales/hr.ts +2 -0
  175. package/node_modules/zod/src/v4/locales/hu.ts +3 -0
  176. package/node_modules/zod/src/v4/locales/hy.ts +9 -0
  177. package/node_modules/zod/src/v4/locales/id.ts +3 -0
  178. package/node_modules/zod/src/v4/locales/index.ts +10 -0
  179. package/node_modules/zod/src/v4/locales/is.ts +3 -0
  180. package/node_modules/zod/src/v4/locales/it.ts +3 -0
  181. package/node_modules/zod/src/v4/locales/ja.ts +3 -0
  182. package/node_modules/zod/src/v4/locales/ka.ts +3 -0
  183. package/node_modules/zod/src/v4/locales/km.ts +3 -0
  184. package/node_modules/zod/src/v4/locales/kn.ts +124 -0
  185. package/node_modules/zod/src/v4/locales/ko.ts +3 -0
  186. package/node_modules/zod/src/v4/locales/lt.ts +2 -0
  187. package/node_modules/zod/src/v4/locales/mk.ts +3 -0
  188. package/node_modules/zod/src/v4/locales/ms.ts +3 -0
  189. package/node_modules/zod/src/v4/locales/ne.ts +126 -0
  190. package/node_modules/zod/src/v4/locales/nl.ts +3 -0
  191. package/node_modules/zod/src/v4/locales/nn.ts +119 -0
  192. package/node_modules/zod/src/v4/locales/no.ts +5 -2
  193. package/node_modules/zod/src/v4/locales/ota.ts +3 -0
  194. package/node_modules/zod/src/v4/locales/pl.ts +3 -0
  195. package/node_modules/zod/src/v4/locales/ps.ts +3 -0
  196. package/node_modules/zod/src/v4/locales/pt-BR.ts +159 -0
  197. package/node_modules/zod/src/v4/locales/pt.ts +99 -58
  198. package/node_modules/zod/src/v4/locales/ro.ts +1 -0
  199. package/node_modules/zod/src/v4/locales/ru.ts +10 -0
  200. package/node_modules/zod/src/v4/locales/sk.ts +121 -0
  201. package/node_modules/zod/src/v4/locales/sl.ts +3 -0
  202. package/node_modules/zod/src/v4/locales/sv.ts +5 -2
  203. package/node_modules/zod/src/v4/locales/ta.ts +3 -0
  204. package/node_modules/zod/src/v4/locales/th.ts +3 -0
  205. package/node_modules/zod/src/v4/locales/tk.ts +111 -0
  206. package/node_modules/zod/src/v4/locales/tr.ts +3 -0
  207. package/node_modules/zod/src/v4/locales/uk.ts +3 -0
  208. package/node_modules/zod/src/v4/locales/ur.ts +3 -0
  209. package/node_modules/zod/src/v4/locales/uz.ts +1 -0
  210. package/node_modules/zod/src/v4/locales/vi.ts +3 -0
  211. package/node_modules/zod/src/v4/locales/yo.ts +3 -0
  212. package/node_modules/zod/src/v4/locales/zh-CN.ts +3 -0
  213. package/node_modules/zod/src/v4/locales/zh-TW.ts +3 -0
  214. package/node_modules/zod/src/v4/mini/checks.ts +1 -0
  215. package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
  216. package/node_modules/zod/src/v4/mini/external.ts +10 -1
  217. package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
  218. package/node_modules/zod/src/v4/mini/parse.ts +2 -0
  219. package/node_modules/zod/src/v4/mini/schemas.ts +135 -56
  220. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
  221. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
  222. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
  223. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
  224. package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
  225. package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
  226. package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
  227. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
  228. package/node_modules/zod/src/v4/mini/tests/index.test.ts +72 -5
  229. package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
  230. package/node_modules/zod/src/v4/mini/tests/object.test.ts +65 -0
  231. package/node_modules/zod/src/v4/mini/tests/string.test.ts +21 -0
  232. package/node_modules/zod/v3/ZodError.cjs +22 -12
  233. package/node_modules/zod/v3/ZodError.d.cts +1 -1
  234. package/node_modules/zod/v3/ZodError.d.ts +1 -1
  235. package/node_modules/zod/v3/ZodError.js +22 -12
  236. package/node_modules/zod/v3/types.cjs +7 -5
  237. package/node_modules/zod/v3/types.js +7 -5
  238. package/node_modules/zod/v4/classic/checks.cjs +2 -1
  239. package/node_modules/zod/v4/classic/checks.d.cts +1 -1
  240. package/node_modules/zod/v4/classic/checks.d.ts +1 -1
  241. package/node_modules/zod/v4/classic/checks.js +1 -1
  242. package/node_modules/zod/v4/classic/compat.d.cts +9 -11
  243. package/node_modules/zod/v4/classic/compat.d.ts +9 -11
  244. package/node_modules/zod/v4/classic/deep-partial.cjs +39 -0
  245. package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
  246. package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
  247. package/node_modules/zod/v4/classic/deep-partial.js +13 -0
  248. package/node_modules/zod/v4/classic/errors.cjs +43 -34
  249. package/node_modules/zod/v4/classic/errors.d.cts +3 -4
  250. package/node_modules/zod/v4/classic/errors.d.ts +3 -4
  251. package/node_modules/zod/v4/classic/errors.js +43 -34
  252. package/node_modules/zod/v4/classic/external.cjs +30 -27
  253. package/node_modules/zod/v4/classic/external.d.cts +5 -2
  254. package/node_modules/zod/v4/classic/external.d.ts +5 -2
  255. package/node_modules/zod/v4/classic/external.js +5 -8
  256. package/node_modules/zod/v4/classic/from-json-schema.cjs +136 -75
  257. package/node_modules/zod/v4/classic/from-json-schema.js +136 -75
  258. package/node_modules/zod/v4/classic/in-out.cjs +63 -0
  259. package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
  260. package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
  261. package/node_modules/zod/v4/classic/in-out.js +36 -0
  262. package/node_modules/zod/v4/classic/index.cjs +2 -2
  263. package/node_modules/zod/v4/classic/index.d.cts +1 -2
  264. package/node_modules/zod/v4/classic/index.d.ts +1 -2
  265. package/node_modules/zod/v4/classic/index.js +2 -2
  266. package/node_modules/zod/v4/classic/iso.cjs +11 -22
  267. package/node_modules/zod/v4/classic/iso.d.cts +2 -17
  268. package/node_modules/zod/v4/classic/iso.d.ts +2 -17
  269. package/node_modules/zod/v4/classic/iso.js +2 -17
  270. package/node_modules/zod/v4/classic/parse.cjs +4 -1
  271. package/node_modules/zod/v4/classic/parse.d.cts +17 -4
  272. package/node_modules/zod/v4/classic/parse.d.ts +17 -4
  273. package/node_modules/zod/v4/classic/parse.js +1 -0
  274. package/node_modules/zod/v4/classic/schemas.cjs +498 -398
  275. package/node_modules/zod/v4/classic/schemas.d.cts +53 -18
  276. package/node_modules/zod/v4/classic/schemas.d.ts +53 -18
  277. package/node_modules/zod/v4/classic/schemas.js +492 -396
  278. package/node_modules/zod/v4/core/api.cjs +23 -4
  279. package/node_modules/zod/v4/core/api.d.cts +13 -9
  280. package/node_modules/zod/v4/core/api.d.ts +13 -9
  281. package/node_modules/zod/v4/core/api.js +21 -4
  282. package/node_modules/zod/v4/core/checks.cjs +37 -31
  283. package/node_modules/zod/v4/core/checks.d.cts +13 -13
  284. package/node_modules/zod/v4/core/checks.d.ts +13 -13
  285. package/node_modules/zod/v4/core/checks.js +37 -31
  286. package/node_modules/zod/v4/core/compile.cjs +1813 -0
  287. package/node_modules/zod/v4/core/compile.d.cts +51 -0
  288. package/node_modules/zod/v4/core/compile.d.ts +51 -0
  289. package/node_modules/zod/v4/core/compile.js +1783 -0
  290. package/node_modules/zod/v4/core/core.cjs +81 -18
  291. package/node_modules/zod/v4/core/core.d.cts +16 -4
  292. package/node_modules/zod/v4/core/core.d.ts +16 -4
  293. package/node_modules/zod/v4/core/core.js +82 -19
  294. package/node_modules/zod/v4/core/doc.cjs +5 -7
  295. package/node_modules/zod/v4/core/doc.d.cts +3 -1
  296. package/node_modules/zod/v4/core/doc.d.ts +3 -1
  297. package/node_modules/zod/v4/core/doc.js +5 -7
  298. package/node_modules/zod/v4/core/errors.cjs +110 -25
  299. package/node_modules/zod/v4/core/errors.d.cts +4 -0
  300. package/node_modules/zod/v4/core/errors.d.ts +4 -0
  301. package/node_modules/zod/v4/core/errors.js +110 -25
  302. package/node_modules/zod/v4/core/index.cjs +5 -1
  303. package/node_modules/zod/v4/core/index.d.cts +3 -0
  304. package/node_modules/zod/v4/core/index.d.ts +3 -0
  305. package/node_modules/zod/v4/core/index.js +3 -0
  306. package/node_modules/zod/v4/core/json-schema-generator.cjs +4 -0
  307. package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
  308. package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
  309. package/node_modules/zod/v4/core/json-schema-generator.js +4 -0
  310. package/node_modules/zod/v4/core/json-schema-processors.cjs +264 -95
  311. package/node_modules/zod/v4/core/json-schema-processors.js +243 -97
  312. package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
  313. package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
  314. package/node_modules/zod/v4/core/memoizer.cjs +272 -0
  315. package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
  316. package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
  317. package/node_modules/zod/v4/core/memoizer.js +265 -0
  318. package/node_modules/zod/v4/core/parse.cjs +96 -34
  319. package/node_modules/zod/v4/core/parse.d.cts +14 -11
  320. package/node_modules/zod/v4/core/parse.d.ts +14 -11
  321. package/node_modules/zod/v4/core/parse.js +94 -33
  322. package/node_modules/zod/v4/core/regexes.cjs +27 -15
  323. package/node_modules/zod/v4/core/regexes.d.cts +2 -0
  324. package/node_modules/zod/v4/core/regexes.d.ts +2 -0
  325. package/node_modules/zod/v4/core/regexes.js +24 -13
  326. package/node_modules/zod/v4/core/registries.js +2 -2
  327. package/node_modules/zod/v4/core/schemas.cjs +537 -326
  328. package/node_modules/zod/v4/core/schemas.d.cts +100 -31
  329. package/node_modules/zod/v4/core/schemas.d.ts +100 -31
  330. package/node_modules/zod/v4/core/schemas.js +526 -325
  331. package/node_modules/zod/v4/core/to-json-schema.cjs +242 -39
  332. package/node_modules/zod/v4/core/to-json-schema.d.cts +42 -3
  333. package/node_modules/zod/v4/core/to-json-schema.d.ts +42 -3
  334. package/node_modules/zod/v4/core/to-json-schema.js +241 -39
  335. package/node_modules/zod/v4/core/util.cjs +212 -31
  336. package/node_modules/zod/v4/core/util.d.cts +58 -1
  337. package/node_modules/zod/v4/core/util.d.ts +58 -1
  338. package/node_modules/zod/v4/core/util.js +202 -30
  339. package/node_modules/zod/v4/core/versions.cjs +2 -2
  340. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  341. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  342. package/node_modules/zod/v4/core/versions.js +2 -2
  343. package/node_modules/zod/v4/core/visit.cjs +195 -0
  344. package/node_modules/zod/v4/core/visit.d.cts +30 -0
  345. package/node_modules/zod/v4/core/visit.d.ts +30 -0
  346. package/node_modules/zod/v4/core/visit.js +169 -0
  347. package/node_modules/zod/v4/index.cjs +15 -5
  348. package/node_modules/zod/v4/index.d.cts +2 -2
  349. package/node_modules/zod/v4/index.d.ts +2 -2
  350. package/node_modules/zod/v4/index.js +3 -2
  351. package/node_modules/zod/v4/locales/ar.cjs +3 -0
  352. package/node_modules/zod/v4/locales/ar.js +3 -0
  353. package/node_modules/zod/v4/locales/az.cjs +3 -0
  354. package/node_modules/zod/v4/locales/az.js +3 -0
  355. package/node_modules/zod/v4/locales/be.cjs +10 -0
  356. package/node_modules/zod/v4/locales/be.js +10 -0
  357. package/node_modules/zod/v4/locales/bg.cjs +3 -0
  358. package/node_modules/zod/v4/locales/bg.js +3 -0
  359. package/node_modules/zod/v4/locales/bn.cjs +138 -0
  360. package/node_modules/zod/v4/locales/bn.d.cts +5 -0
  361. package/node_modules/zod/v4/locales/bn.d.ts +4 -0
  362. package/node_modules/zod/v4/locales/bn.js +111 -0
  363. package/node_modules/zod/v4/locales/ca.cjs +3 -0
  364. package/node_modules/zod/v4/locales/ca.js +3 -0
  365. package/node_modules/zod/v4/locales/ckb.cjs +158 -0
  366. package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
  367. package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
  368. package/node_modules/zod/v4/locales/ckb.js +131 -0
  369. package/node_modules/zod/v4/locales/cs.cjs +3 -0
  370. package/node_modules/zod/v4/locales/cs.js +3 -0
  371. package/node_modules/zod/v4/locales/da.cjs +5 -2
  372. package/node_modules/zod/v4/locales/da.js +5 -2
  373. package/node_modules/zod/v4/locales/de.cjs +3 -0
  374. package/node_modules/zod/v4/locales/de.js +3 -0
  375. package/node_modules/zod/v4/locales/el.cjs +1 -0
  376. package/node_modules/zod/v4/locales/el.js +1 -0
  377. package/node_modules/zod/v4/locales/en.cjs +14 -4
  378. package/node_modules/zod/v4/locales/en.js +14 -4
  379. package/node_modules/zod/v4/locales/eo.cjs +3 -0
  380. package/node_modules/zod/v4/locales/eo.js +3 -0
  381. package/node_modules/zod/v4/locales/es.cjs +2 -0
  382. package/node_modules/zod/v4/locales/es.js +2 -0
  383. package/node_modules/zod/v4/locales/fa.cjs +3 -0
  384. package/node_modules/zod/v4/locales/fa.js +3 -0
  385. package/node_modules/zod/v4/locales/fi.cjs +3 -0
  386. package/node_modules/zod/v4/locales/fi.js +3 -0
  387. package/node_modules/zod/v4/locales/fr-CA.cjs +3 -0
  388. package/node_modules/zod/v4/locales/fr-CA.js +3 -0
  389. package/node_modules/zod/v4/locales/fr.cjs +16 -14
  390. package/node_modules/zod/v4/locales/fr.js +16 -14
  391. package/node_modules/zod/v4/locales/gu.cjs +138 -0
  392. package/node_modules/zod/v4/locales/gu.d.cts +5 -0
  393. package/node_modules/zod/v4/locales/gu.d.ts +4 -0
  394. package/node_modules/zod/v4/locales/gu.js +111 -0
  395. package/node_modules/zod/v4/locales/he.cjs +5 -0
  396. package/node_modules/zod/v4/locales/he.js +5 -0
  397. package/node_modules/zod/v4/locales/hi.cjs +136 -0
  398. package/node_modules/zod/v4/locales/hi.d.cts +5 -0
  399. package/node_modules/zod/v4/locales/hi.d.ts +4 -0
  400. package/node_modules/zod/v4/locales/hi.js +109 -0
  401. package/node_modules/zod/v4/locales/hr.cjs +2 -0
  402. package/node_modules/zod/v4/locales/hr.js +2 -0
  403. package/node_modules/zod/v4/locales/hu.cjs +3 -0
  404. package/node_modules/zod/v4/locales/hu.js +3 -0
  405. package/node_modules/zod/v4/locales/hy.cjs +9 -0
  406. package/node_modules/zod/v4/locales/hy.js +9 -0
  407. package/node_modules/zod/v4/locales/id.cjs +3 -0
  408. package/node_modules/zod/v4/locales/id.js +3 -0
  409. package/node_modules/zod/v4/locales/index.cjs +22 -2
  410. package/node_modules/zod/v4/locales/index.d.cts +10 -0
  411. package/node_modules/zod/v4/locales/index.d.ts +10 -0
  412. package/node_modules/zod/v4/locales/index.js +10 -0
  413. package/node_modules/zod/v4/locales/is.cjs +3 -0
  414. package/node_modules/zod/v4/locales/is.js +3 -0
  415. package/node_modules/zod/v4/locales/it.cjs +3 -0
  416. package/node_modules/zod/v4/locales/it.js +3 -0
  417. package/node_modules/zod/v4/locales/ja.cjs +3 -0
  418. package/node_modules/zod/v4/locales/ja.js +3 -0
  419. package/node_modules/zod/v4/locales/ka.cjs +3 -0
  420. package/node_modules/zod/v4/locales/ka.js +3 -0
  421. package/node_modules/zod/v4/locales/km.cjs +3 -0
  422. package/node_modules/zod/v4/locales/km.js +3 -0
  423. package/node_modules/zod/v4/locales/kn.cjs +141 -0
  424. package/node_modules/zod/v4/locales/kn.d.cts +5 -0
  425. package/node_modules/zod/v4/locales/kn.d.ts +4 -0
  426. package/node_modules/zod/v4/locales/kn.js +114 -0
  427. package/node_modules/zod/v4/locales/ko.cjs +3 -0
  428. package/node_modules/zod/v4/locales/ko.js +3 -0
  429. package/node_modules/zod/v4/locales/lt.cjs +2 -0
  430. package/node_modules/zod/v4/locales/lt.js +2 -0
  431. package/node_modules/zod/v4/locales/mk.cjs +3 -0
  432. package/node_modules/zod/v4/locales/mk.js +3 -0
  433. package/node_modules/zod/v4/locales/ms.cjs +3 -0
  434. package/node_modules/zod/v4/locales/ms.js +3 -0
  435. package/node_modules/zod/v4/locales/ne.cjs +136 -0
  436. package/node_modules/zod/v4/locales/ne.d.cts +5 -0
  437. package/node_modules/zod/v4/locales/ne.d.ts +4 -0
  438. package/node_modules/zod/v4/locales/ne.js +109 -0
  439. package/node_modules/zod/v4/locales/nl.cjs +3 -0
  440. package/node_modules/zod/v4/locales/nl.js +3 -0
  441. package/node_modules/zod/v4/locales/nn.cjs +138 -0
  442. package/node_modules/zod/v4/locales/nn.d.cts +5 -0
  443. package/node_modules/zod/v4/locales/nn.d.ts +4 -0
  444. package/node_modules/zod/v4/locales/nn.js +111 -0
  445. package/node_modules/zod/v4/locales/no.cjs +5 -2
  446. package/node_modules/zod/v4/locales/no.js +5 -2
  447. package/node_modules/zod/v4/locales/ota.cjs +3 -0
  448. package/node_modules/zod/v4/locales/ota.js +3 -0
  449. package/node_modules/zod/v4/locales/pl.cjs +3 -0
  450. package/node_modules/zod/v4/locales/pl.js +3 -0
  451. package/node_modules/zod/v4/locales/ps.cjs +3 -0
  452. package/node_modules/zod/v4/locales/ps.js +3 -0
  453. package/node_modules/zod/v4/locales/pt-BR.cjs +168 -0
  454. package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
  455. package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
  456. package/node_modules/zod/v4/locales/pt-BR.js +141 -0
  457. package/node_modules/zod/v4/locales/pt.cjs +87 -55
  458. package/node_modules/zod/v4/locales/pt.js +87 -55
  459. package/node_modules/zod/v4/locales/ro.cjs +1 -0
  460. package/node_modules/zod/v4/locales/ro.js +1 -0
  461. package/node_modules/zod/v4/locales/ru.cjs +10 -0
  462. package/node_modules/zod/v4/locales/ru.js +10 -0
  463. package/node_modules/zod/v4/locales/sk.cjs +141 -0
  464. package/node_modules/zod/v4/locales/sk.d.cts +5 -0
  465. package/node_modules/zod/v4/locales/sk.d.ts +4 -0
  466. package/node_modules/zod/v4/locales/sk.js +114 -0
  467. package/node_modules/zod/v4/locales/sl.cjs +3 -0
  468. package/node_modules/zod/v4/locales/sl.js +3 -0
  469. package/node_modules/zod/v4/locales/sv.cjs +5 -2
  470. package/node_modules/zod/v4/locales/sv.js +5 -2
  471. package/node_modules/zod/v4/locales/ta.cjs +3 -0
  472. package/node_modules/zod/v4/locales/ta.js +3 -0
  473. package/node_modules/zod/v4/locales/th.cjs +3 -0
  474. package/node_modules/zod/v4/locales/th.js +3 -0
  475. package/node_modules/zod/v4/locales/tk.cjs +132 -0
  476. package/node_modules/zod/v4/locales/tk.d.cts +5 -0
  477. package/node_modules/zod/v4/locales/tk.d.ts +4 -0
  478. package/node_modules/zod/v4/locales/tk.js +105 -0
  479. package/node_modules/zod/v4/locales/tr.cjs +3 -0
  480. package/node_modules/zod/v4/locales/tr.js +3 -0
  481. package/node_modules/zod/v4/locales/uk.cjs +3 -0
  482. package/node_modules/zod/v4/locales/uk.js +3 -0
  483. package/node_modules/zod/v4/locales/ur.cjs +3 -0
  484. package/node_modules/zod/v4/locales/ur.js +3 -0
  485. package/node_modules/zod/v4/locales/uz.cjs +1 -0
  486. package/node_modules/zod/v4/locales/uz.js +1 -0
  487. package/node_modules/zod/v4/locales/vi.cjs +3 -0
  488. package/node_modules/zod/v4/locales/vi.js +3 -0
  489. package/node_modules/zod/v4/locales/yo.cjs +3 -0
  490. package/node_modules/zod/v4/locales/yo.js +3 -0
  491. package/node_modules/zod/v4/locales/zh-CN.cjs +3 -0
  492. package/node_modules/zod/v4/locales/zh-CN.js +3 -0
  493. package/node_modules/zod/v4/locales/zh-TW.cjs +3 -0
  494. package/node_modules/zod/v4/locales/zh-TW.js +3 -0
  495. package/node_modules/zod/v4/mini/checks.cjs +2 -1
  496. package/node_modules/zod/v4/mini/checks.d.cts +1 -1
  497. package/node_modules/zod/v4/mini/checks.d.ts +1 -1
  498. package/node_modules/zod/v4/mini/checks.js +1 -1
  499. package/node_modules/zod/v4/mini/deep-partial.cjs +39 -0
  500. package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
  501. package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
  502. package/node_modules/zod/v4/mini/deep-partial.js +13 -0
  503. package/node_modules/zod/v4/mini/external.cjs +12 -1
  504. package/node_modules/zod/v4/mini/external.d.cts +5 -2
  505. package/node_modules/zod/v4/mini/external.d.ts +5 -2
  506. package/node_modules/zod/v4/mini/external.js +3 -1
  507. package/node_modules/zod/v4/mini/in-out.cjs +63 -0
  508. package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
  509. package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
  510. package/node_modules/zod/v4/mini/in-out.js +36 -0
  511. package/node_modules/zod/v4/mini/parse.cjs +3 -1
  512. package/node_modules/zod/v4/mini/parse.d.cts +1 -1
  513. package/node_modules/zod/v4/mini/parse.d.ts +1 -1
  514. package/node_modules/zod/v4/mini/parse.js +1 -1
  515. package/node_modules/zod/v4/mini/schemas.cjs +75 -47
  516. package/node_modules/zod/v4/mini/schemas.d.cts +43 -13
  517. package/node_modules/zod/v4/mini/schemas.d.ts +43 -13
  518. package/node_modules/zod/v4/mini/schemas.js +71 -45
  519. package/openclaw.plugin.json +35 -42
  520. package/package.json +8 -6
  521. package/dist/transport-probes.runtime-DV7x4VWu.js +0 -2
  522. package/node_modules/zod/src/v4/core/config.ts +0 -15
  523. /package/dist/{identity-YXPmgFMu.js → .setup/identity-YXPmgFMu.mjs} +0 -0
  524. /package/dist/{normalize-l_b99hap.js → .setup/normalize-l_b99hap.mjs} +0 -0
  525. /package/dist/{rolldown-runtime-8H4AJuhK.js → .setup/rolldown-runtime-8H4AJuhK.mjs} +0 -0
@@ -0,0 +1,55 @@
1
+ import { pathToFileURL } from "node:url";
2
+ import { normalizeAccountId, resolveAccountKey } from "openclaw/plugin-sdk/account-resolution";
3
+ import { isIP } from "node:net";
4
+ import path from "node:path";
5
+ //#region extensions/signal/src/account-selection.ts
6
+ function resolveSignalAccountKey(accounts, accountId) {
7
+ return resolveAccountKey(accounts, normalizeAccountId(accountId), void 0, void 0, { channelId: "signal" });
8
+ }
9
+ function resolveSignalAccountEntry(accounts, accountId) {
10
+ const key = resolveSignalAccountKey(accounts, accountId);
11
+ return key === void 0 ? void 0 : accounts?.[key];
12
+ }
13
+ //#endregion
14
+ //#region extensions/signal/src/transport-url.ts
15
+ function normalizeSignalTransportUrl(value) {
16
+ const trimmed = value.trim();
17
+ if (!trimmed) throw new Error("Signal transport URL is required");
18
+ if (/^https?:/i.test(trimmed) && !/^https?:\/\/[^/]/i.test(trimmed)) throw new Error("Signal transport URL has a malformed HTTP scheme");
19
+ const explicitScheme = /^([a-z][a-z0-9+.-]*):\/\//i.exec(trimmed)?.[1]?.toLowerCase();
20
+ if (explicitScheme && explicitScheme !== "http" && explicitScheme !== "https") throw new Error(`Signal transport URL unsupported protocol: ${explicitScheme}:`);
21
+ const parsed = new URL(/^https?:\/\//i.test(trimmed) ? trimmed : `http://${trimmed}`);
22
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") throw new Error(`Signal transport URL unsupported protocol: ${parsed.protocol}`);
23
+ if (parsed.username || parsed.password) throw new Error("Signal transport URL must not include credentials");
24
+ const pathname = parsed.pathname === "/" ? "" : parsed.pathname.replace(/\/+$/, "");
25
+ return `${parsed.protocol}//${parsed.host}${pathname}`;
26
+ }
27
+ function normalizeSignalTransportHost(host) {
28
+ const trimmedHost = host.trim();
29
+ const hasOpeningBracket = trimmedHost.startsWith("[");
30
+ if (hasOpeningBracket !== trimmedHost.endsWith("]")) throw new Error("Signal transport host has mismatched IPv6 brackets");
31
+ const normalizedHost = hasOpeningBracket ? trimmedHost.slice(1, -1) : trimmedHost;
32
+ if (!normalizedHost || /[\s/\\?#@]/.test(normalizedHost)) throw new Error("Signal transport host must be a hostname or IP address");
33
+ if (isIP(normalizedHost) === 0) {
34
+ const hostname = normalizedHost.endsWith(".") ? normalizedHost.slice(0, -1) : normalizedHost;
35
+ const labels = hostname.split(".");
36
+ if (hostname.length > 253 || labels.some((label) => !label || label.length > 63 || !/^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i.test(label))) throw new Error("Signal transport host must be a hostname or IP address");
37
+ }
38
+ return normalizedHost;
39
+ }
40
+ function buildSignalTransportHttpUrl(host, port) {
41
+ const normalizedHost = normalizeSignalTransportHost(host);
42
+ return normalizeSignalTransportUrl(`http://${normalizedHost.includes(":") ? `[${normalizedHost}]` : normalizedHost}:${port}`);
43
+ }
44
+ /** Validate the opt-in shape without filesystem side effects during config resolution. */
45
+ function assertSignalSocketTransport(transport) {
46
+ if (transport.socketPath === void 0) return;
47
+ if (typeof transport.socketPath !== "string" || !/^\/(?!\/)[^\0]+$/.test(transport.socketPath) || transport.socketPath.endsWith("/") || path.posix.normalize(transport.socketPath) !== transport.socketPath || Buffer.byteLength(transport.socketPath, "utf8") > 103) throw new Error("Signal transport.socketPath must be a normalized absolute POSIX socket file path of at most 103 UTF-8 bytes.");
48
+ if (transport.url !== void 0 || transport.httpHost !== void 0 || transport.httpPort !== void 0) throw new Error("Signal transport.socketPath cannot be combined with url, httpHost, or httpPort.");
49
+ if (transport.receiveMode === "on-start") throw new Error("Signal socket transport requires receiveMode manual (or omitted).");
50
+ }
51
+ function buildSignalSocketUrl(socketPath) {
52
+ return `unix://${pathToFileURL(socketPath).pathname}`;
53
+ }
54
+ //#endregion
55
+ export { normalizeSignalTransportUrl as a, normalizeSignalTransportHost as i, buildSignalSocketUrl as n, resolveSignalAccountEntry as o, buildSignalTransportHttpUrl as r, resolveSignalAccountKey as s, assertSignalSocketTransport as t };
package/dist/api.js CHANGED
@@ -1,17 +1,12 @@
1
- import { i as resolveSignalAccount, n as listSignalAccountIds, r as resolveDefaultSignalAccountId, t as listEnabledSignalAccounts } from "./accounts-DO4HMqaK.js";
2
- import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./normalize-l_b99hap.js";
3
- import { a as normalizeSignalAllowRecipient, c as resolveSignalSender, i as isSignalSenderAllowed, l as looksLikeUuid, n as formatSignalSenderDisplay, o as resolveSignalPeerId, r as formatSignalSenderId, s as resolveSignalRecipient, t as formatSignalPairingIdLine } from "./identity-YXPmgFMu.js";
4
- import { c as resolveSignalReactionLevel, d as markdownToSignalTextChunks, s as signalMessageActions, t as detectSignalTransport, u as markdownToSignalText } from "./transport-detection-Do2pYMAH.js";
5
- import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-CWqDv5-q.js";
6
- import { a as normalizeSignalAccountInput, d as probeSignalTransport, f as writeSignalAccountTransport, l as signalSetupContract, n as createSignalPluginBase, p as resolveSignalOutboundTarget, r as signalSetupWizard, t as signalPlugin, u as prepareSignalManagedNativeTransport } from "./channel-CyQvEuyA.js";
7
- import { i as installSignalCli } from "./install-signal-cli-QlEIfWBv.js";
8
- import { t as monitorSignalProvider } from "./monitor-BiNWxMB3.js";
9
- import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./send-Bz0x0JC1.js";
10
- import { t as probeSignal } from "./probe-kOJqyjWz.js";
11
- //#region extensions/signal/src/channel.setup.ts
12
- const signalSetupPlugin = { ...createSignalPluginBase({
13
- setupWizard: signalSetupWizard,
14
- setupContract: signalSetupContract
15
- }) };
16
- //#endregion
1
+ import { i as resolveSignalAccount, n as listSignalAccountIds, r as resolveDefaultSignalAccountId, t as listEnabledSignalAccounts } from "./.setup/accounts-BV6tDOTc.mjs";
2
+ import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./.setup/normalize-l_b99hap.mjs";
3
+ import { a as normalizeSignalAllowRecipient, c as resolveSignalSender, i as isSignalSenderAllowed, l as looksLikeUuid, n as formatSignalSenderDisplay, o as resolveSignalPeerId, r as formatSignalSenderId, s as resolveSignalRecipient, t as formatSignalPairingIdLine } from "./.setup/identity-YXPmgFMu.mjs";
4
+ import { c as resolveSignalReactionLevel, d as markdownToSignalTextChunks, s as signalMessageActions, t as detectSignalTransport, u as markdownToSignalText } from "./.setup/transport-detection-CqyR2vG8.mjs";
5
+ import { n as sendReactionSignal, t as removeReactionSignal } from "./.setup/reaction-runtime-api-BnQGHcrB.mjs";
6
+ import { a as normalizeSignalAccountInput, d as probeSignalTransport, f as writeSignalAccountTransport, p as resolveSignalOutboundTarget, t as signalPlugin, u as prepareSignalManagedNativeTransport } from "./.setup/channel-gMpZmqLx.mjs";
7
+ import { t as signalSetupPlugin } from "./.setup/api-DbdeJVQ8.mjs";
8
+ import { r as installSignalCli } from "./.setup/install-signal-cli-bXeTrTyL.mjs";
9
+ import { t as monitorSignalProvider } from "./.setup/monitor-DAMQw1pZ.mjs";
10
+ import { n as sendReadReceiptSignal, r as sendTypingSignal, t as sendMessageSignal } from "./.setup/send-CcetN4rk.mjs";
11
+ import { t as probeSignal } from "./.setup/probe-IKCS9D-z.mjs";
17
12
  export { detectSignalTransport, formatSignalPairingIdLine, formatSignalSenderDisplay, formatSignalSenderId, installSignalCli, isSignalSenderAllowed, listEnabledSignalAccounts, listSignalAccountIds, looksLikeSignalTargetId, looksLikeUuid, markdownToSignalText, markdownToSignalTextChunks, monitorSignalProvider, normalizeSignalAccountInput, normalizeSignalAllowRecipient, normalizeSignalMessagingTarget, prepareSignalManagedNativeTransport, probeSignal, probeSignalTransport, removeReactionSignal, resolveDefaultSignalAccountId, resolveSignalAccount, resolveSignalOutboundTarget, resolveSignalPeerId, resolveSignalReactionLevel, resolveSignalRecipient, resolveSignalSender, sendMessageSignal, sendReactionSignal, sendReadReceiptSignal, sendTypingSignal, signalMessageActions, signalPlugin, signalSetupPlugin, writeSignalAccountTransport };
@@ -1,2 +1,2 @@
1
- import { t as SignalChannelConfigSchema } from "./config-schema-DfEbpMVQ.js";
1
+ import { t as SignalChannelConfigSchema } from "./.setup/config-schema-aQwwMGUj.mjs";
2
2
  export { SignalChannelConfigSchema };
@@ -1,2 +1,2 @@
1
- import { t as signalPlugin } from "./channel-CyQvEuyA.js";
1
+ import { t as signalPlugin } from "./.setup/channel-gMpZmqLx.mjs";
2
2
  export { signalPlugin };
@@ -1,4 +1,4 @@
1
- import { n as normalizeSignalMessagingTarget, r as normalizeSignalReactionRecipient, t as looksLikeSignalTargetId } from "./normalize-l_b99hap.js";
2
- import { i as isSignalSenderAllowed } from "./identity-YXPmgFMu.js";
3
- import { a as installSignalCliFromRelease, i as installSignalCli, n as downloadToFile, o as looksLikeArchive, r as extractSignalCliArchive, s as pickAsset, t as MAX_SIGNAL_CLI_EXTRACTED_BYTES } from "./install-signal-cli-QlEIfWBv.js";
4
- export { MAX_SIGNAL_CLI_EXTRACTED_BYTES, downloadToFile, extractSignalCliArchive, installSignalCli, installSignalCliFromRelease, isSignalSenderAllowed, looksLikeArchive, looksLikeSignalTargetId, normalizeSignalMessagingTarget, normalizeSignalReactionRecipient, pickAsset };
1
+ import { n as normalizeSignalMessagingTarget, r as normalizeSignalReactionRecipient, t as looksLikeSignalTargetId } from "./.setup/normalize-l_b99hap.mjs";
2
+ import { i as isSignalSenderAllowed } from "./.setup/identity-YXPmgFMu.mjs";
3
+ import { a as looksLikeArchive, i as installSignalCliFromRelease, n as extractSignalCliArchive, o as pickAsset, r as installSignalCli, t as downloadToFile } from "./.setup/install-signal-cli-bXeTrTyL.mjs";
4
+ export { downloadToFile, extractSignalCliArchive, installSignalCli, installSignalCliFromRelease, isSignalSenderAllowed, looksLikeArchive, looksLikeSignalTargetId, normalizeSignalMessagingTarget, normalizeSignalReactionRecipient, pickAsset };
@@ -1,2 +1,2 @@
1
- import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-api-D0SnglP4.js";
1
+ import { n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./.setup/doctor-contract-api-Rbq_sRTI.mjs";
2
2
  export { legacyConfigRules, normalizeCompatibilityConfig };
@@ -1,2 +1,2 @@
1
- import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-CWqDv5-q.js";
1
+ import { n as sendReactionSignal, t as removeReactionSignal } from "./.setup/reaction-runtime-api-BnQGHcrB.mjs";
2
2
  export { removeReactionSignal, sendReactionSignal };
@@ -1,12 +1,12 @@
1
- import { i as resolveSignalAccount, n as listSignalAccountIds, r as resolveDefaultSignalAccountId, t as listEnabledSignalAccounts } from "./accounts-DO4HMqaK.js";
2
- import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./normalize-l_b99hap.js";
3
- import { a as setSignalRuntime, c as resolveSignalReactionLevel, s as signalMessageActions } from "./transport-detection-Do2pYMAH.js";
4
- import { n as sendReactionSignal, t as removeReactionSignal } from "./reaction-runtime-api-CWqDv5-q.js";
5
- import { n as SignalConfigSchema } from "./config-schema-DfEbpMVQ.js";
6
- import { i as installSignalCli } from "./install-signal-cli-QlEIfWBv.js";
7
- import { t as monitorSignalProvider } from "./monitor-BiNWxMB3.js";
8
- import { t as sendMessageSignal } from "./send-Bz0x0JC1.js";
9
- import { t as probeSignal } from "./probe-kOJqyjWz.js";
1
+ import { i as resolveSignalAccount, n as listSignalAccountIds, r as resolveDefaultSignalAccountId, t as listEnabledSignalAccounts } from "./.setup/accounts-BV6tDOTc.mjs";
2
+ import { n as normalizeSignalMessagingTarget, t as looksLikeSignalTargetId } from "./.setup/normalize-l_b99hap.mjs";
3
+ import { a as setSignalRuntime, c as resolveSignalReactionLevel, s as signalMessageActions } from "./.setup/transport-detection-CqyR2vG8.mjs";
4
+ import { n as sendReactionSignal, t as removeReactionSignal } from "./.setup/reaction-runtime-api-BnQGHcrB.mjs";
5
+ import { n as SignalConfigSchema } from "./.setup/config-schema-aQwwMGUj.mjs";
6
+ import { r as installSignalCli } from "./.setup/install-signal-cli-bXeTrTyL.mjs";
7
+ import { t as monitorSignalProvider } from "./.setup/monitor-DAMQw1pZ.mjs";
8
+ import { t as sendMessageSignal } from "./.setup/send-CcetN4rk.mjs";
9
+ import { t as probeSignal } from "./.setup/probe-IKCS9D-z.mjs";
10
10
  import { resolveChannelMediaMaxBytes } from "openclaw/plugin-sdk/account-helpers";
11
11
  import { PAIRING_APPROVED_MESSAGE } from "openclaw/plugin-sdk/channel-status";
12
12
  import { buildBaseAccountStatusSnapshot, buildBaseChannelStatusSummary, collectStatusIssuesFromLastError, createDefaultChannelRuntimeState } from "openclaw/plugin-sdk/status-helpers";
@@ -1,9 +1,10 @@
1
1
  import { defineBundledChannelSetupEntry } from "openclaw/plugin-sdk/channel-entry-contract";
2
+ import { fileURLToPath } from "node:url";
2
3
  //#region extensions/signal/setup-entry.ts
3
4
  var setup_entry_default = defineBundledChannelSetupEntry({
4
5
  importMetaUrl: import.meta.url,
5
6
  plugin: {
6
- specifier: "./api.js",
7
+ specifier: fileURLToPath(new URL(".setup/api-Cu01dJRP.mjs", import.meta.url).href),
7
8
  exportName: "signalSetupPlugin"
8
9
  }
9
10
  });
@@ -113,6 +113,33 @@ await schema.parseAsync("hello");
113
113
  // => "hello"
114
114
  ```
115
115
 
116
+ ### AOT compilation
117
+
118
+ For hot validation paths, `z.compile(schema)` returns a schema clone with an ahead-of-time compiled fast path. Valid inputs take the compiled path; invalid inputs fall back to the regular parser so error reporting stays identical.
119
+
120
+ Across a 55-schema benchmark the median speedup is **2.4x**, and it scales with how much work the schema does per parse: a large array of objects is ~9x, a 20-key object ~9x, a nested object ~4.5x, while a bare `z.string()` gains nothing — compilation removes per-node dispatch and allocation, and a single `typeof` has none to remove.
121
+
122
+ ```ts
123
+ const CompiledPlayer = z.compile(Player);
124
+
125
+ CompiledPlayer.parse({ username: "billie", xp: 100 });
126
+ ```
127
+
128
+ To enable compilation globally for schemas constructed after import:
129
+
130
+ ```ts
131
+ import "zod/compile"; // place before modules that define schemas
132
+ ```
133
+
134
+ Things to know:
135
+
136
+ - Compilation uses `new Function`. Global mode is automatically disabled when `z.config({ jitless: true })` is set (e.g. CSP environments); calling `z.compile()` directly is an explicit opt-in.
137
+ - Schemas with async refinements or transforms can't be compiled, and neither can a few other constructs. That is not an error: `z.compile()` hands the schema back unchanged and it keeps using the regular parser, exactly as global mode leaves it. Pass `{ strict: true }` to throw `ZodCompileAsyncError` / `ZodCompileUnsupportedError` instead.
138
+ - On invalid input, refinements and transforms may run twice (fast path, then fallback).
139
+ - Deriving a new schema from a compiled one (`.refine()`, `.extend()`, etc.) returns an uncompiled schema — compile the final schema.
140
+
141
+ See [`compile` docs](https://zod.dev/compile) for details.
142
+
116
143
  ### Handling errors
117
144
 
118
145
  When validation fails, the `.parse()` method will throw a `ZodError` instance with granular information about the validation issues.
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ // Side-effect-only: installs the post-processor on `globalConfig`. Listed in `package.json`'s `sideEffects`, and nothing else references it, so apps that never import it drop the compiler.
3
+ //
4
+ // Usage:
5
+ //
6
+ // import "zod/compile";
7
+ // import * as z from "zod";
8
+ // // every schema constructed below this is compiled on first parse
9
+ //
10
+ // Module evaluation order matters: schemas constructed in modules that evaluate before this import will not be compiled. Place this import in the app entry point, before any module that constructs schemas at top level.
11
+ //
12
+ // Failure handling: if the compiler refuses a schema (async refinement, unsupported feature, etc.) the shim permanently restores the runtime `_zod.run` for that schema. The schema continues to work via the regular runtime parser — no observable difference to the caller.
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ const compile_js_1 = require("./v4/core/compile.cjs");
38
+ const core = __importStar(require("./v4/core/index.cjs"));
39
+ let compiling = false;
40
+ core.globalConfig.postProcessor = (inst) => {
41
+ if (compiling)
42
+ return;
43
+ const originalRun = inst._zod?.run;
44
+ if (typeof originalRun !== "function")
45
+ return;
46
+ const shim = (payload, ctx) => {
47
+ // Bypass the fast path for any non-forward / non-sync / check-skipping call. The runtime owns those contracts.
48
+ if (ctx?.async || ctx?.direction === "backward" || ctx?.skipChecks) {
49
+ return originalRun(payload, ctx);
50
+ }
51
+ compiling = true;
52
+ try {
53
+ // Respect the jitless config: it exists precisely so CSP/no-eval environments never reach `new Function`. Global mode must not bypass it (explicit z.compile calls remain an explicit opt-in).
54
+ if (core.globalConfig.jitless) {
55
+ inst._zod.run = originalRun;
56
+ return originalRun(payload, ctx);
57
+ }
58
+ // Strict: the shim owns its own fallback below, and a non-strict compile would hand back `inst` — whose run is this shim — and reinstall it on itself.
59
+ const compiled = (0, compile_js_1.compile)(inst, { strict: true });
60
+ // Only the run wrapper. Copying the compiled parse/safeParse closures would make their fallback re-enter this instance and run user callbacks a third time.
61
+ inst._zod.run = compiled._zod.run;
62
+ inst._zod.bag.fallbackRun = compiled._zod.bag.fallbackRun;
63
+ inst._zod.bag.validator = compiled._zod.bag.validator;
64
+ }
65
+ catch {
66
+ // Permanent fallback for unsupported schemas.
67
+ inst._zod.run = originalRun;
68
+ }
69
+ finally {
70
+ compiling = false;
71
+ }
72
+ return inst._zod.run(payload, ctx);
73
+ };
74
+ // Expose the pre-shim runtime so `compile()` invoked elsewhere can unwrap past the shim and capture the source-of-truth runtime. Without this, a user calling `z.compile(s)` after global mode is enabled would capture the shim itself, which would feed the wrapper into itself on fallback.
75
+ shim.__originalRun = originalRun;
76
+ inst._zod.run = shim;
77
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,52 @@
1
+ // Side-effect-only: installs the post-processor on `globalConfig`. Listed in `package.json`'s `sideEffects`, and nothing else references it, so apps that never import it drop the compiler.
2
+ //
3
+ // Usage:
4
+ //
5
+ // import "zod/compile";
6
+ // import * as z from "zod";
7
+ // // every schema constructed below this is compiled on first parse
8
+ //
9
+ // Module evaluation order matters: schemas constructed in modules that evaluate before this import will not be compiled. Place this import in the app entry point, before any module that constructs schemas at top level.
10
+ //
11
+ // Failure handling: if the compiler refuses a schema (async refinement, unsupported feature, etc.) the shim permanently restores the runtime `_zod.run` for that schema. The schema continues to work via the regular runtime parser — no observable difference to the caller.
12
+ import { compile } from "./v4/core/compile.js";
13
+ import * as core from "./v4/core/index.js";
14
+ let compiling = false;
15
+ core.globalConfig.postProcessor = (inst) => {
16
+ if (compiling)
17
+ return;
18
+ const originalRun = inst._zod?.run;
19
+ if (typeof originalRun !== "function")
20
+ return;
21
+ const shim = (payload, ctx) => {
22
+ // Bypass the fast path for any non-forward / non-sync / check-skipping call. The runtime owns those contracts.
23
+ if (ctx?.async || ctx?.direction === "backward" || ctx?.skipChecks) {
24
+ return originalRun(payload, ctx);
25
+ }
26
+ compiling = true;
27
+ try {
28
+ // Respect the jitless config: it exists precisely so CSP/no-eval environments never reach `new Function`. Global mode must not bypass it (explicit z.compile calls remain an explicit opt-in).
29
+ if (core.globalConfig.jitless) {
30
+ inst._zod.run = originalRun;
31
+ return originalRun(payload, ctx);
32
+ }
33
+ // Strict: the shim owns its own fallback below, and a non-strict compile would hand back `inst` — whose run is this shim — and reinstall it on itself.
34
+ const compiled = compile(inst, { strict: true });
35
+ // Only the run wrapper. Copying the compiled parse/safeParse closures would make their fallback re-enter this instance and run user callbacks a third time.
36
+ inst._zod.run = compiled._zod.run;
37
+ inst._zod.bag.fallbackRun = compiled._zod.bag.fallbackRun;
38
+ inst._zod.bag.validator = compiled._zod.bag.validator;
39
+ }
40
+ catch {
41
+ // Permanent fallback for unsupported schemas.
42
+ inst._zod.run = originalRun;
43
+ }
44
+ finally {
45
+ compiling = false;
46
+ }
47
+ return inst._zod.run(payload, ctx);
48
+ };
49
+ // Expose the pre-shim runtime so `compile()` invoked elsewhere can unwrap past the shim and capture the source-of-truth runtime. Without this, a user calling `z.compile(s)` after global mode is enabled would capture the shim itself, which would feed the wrapper into itself on fallback.
50
+ shim.__originalRun = originalRun;
51
+ inst._zod.run = shim;
52
+ };
@@ -26,8 +26,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
26
26
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.z = void 0;
29
+ exports.default = exports.z = void 0;
30
30
  const z = __importStar(require("./v4/classic/external.cjs"));
31
31
  exports.z = z;
32
- __exportStar(require("./v4/classic/external.cjs"), exports);
33
32
  exports.default = z;
33
+ __exportStar(require("./v4/classic/external.cjs"), exports);
@@ -1,4 +1,3 @@
1
1
  import * as z from "./v4/classic/external.cjs";
2
2
  export * from "./v4/classic/external.cjs";
3
- export { z };
4
- export default z;
3
+ export { z, z as default };
@@ -1,4 +1,3 @@
1
1
  import * as z from "./v4/classic/external.js";
2
2
  export * from "./v4/classic/external.js";
3
- export { z };
4
- export default z;
3
+ export { z, z as default };
@@ -1,4 +1,7 @@
1
1
  import * as z from "./v4/classic/external.js";
2
2
  export * from "./v4/classic/external.js";
3
- export { z };
4
- export default z;
3
+ // Aliasing the binding, instead of `export default z`, keeps the default export a
4
+ // re-export of `z` rather than a fresh namespace value. Rollup and Webpack can then
5
+ // shake `import z from "zod"` as they already shake `import { z } from "zod"` — without
6
+ // this they pull in every locale. See #6050.
7
+ export { z, z as default };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zod",
3
- "version": "4.4.3",
3
+ "version": "4.5.4",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "author": "Colin McDonnell <zod@colinhacks.com>",
@@ -10,7 +10,11 @@
10
10
  "llmsFull": "https://zod.dev/llms-full.txt",
11
11
  "mcpServer": "https://mcp.inkeep.com/zod/mcp",
12
12
  "funding": "https://github.com/sponsors/colinhacks",
13
- "sideEffects": false,
13
+ "sideEffects": [
14
+ "./compile.js",
15
+ "./compile.cjs",
16
+ "./src/compile.ts"
17
+ ],
14
18
  "files": [
15
19
  "src",
16
20
  "**/*.js",
@@ -36,6 +40,7 @@
36
40
  "./package.json": "./package.json",
37
41
  ".": "./src/index.ts",
38
42
  "./mini": "./src/mini/index.ts",
43
+ "./compile": "./src/compile.ts",
39
44
  "./locales": "./src/locales/index.ts",
40
45
  "./v3": "./src/v3/index.ts",
41
46
  "./v4": "./src/v4/index.ts",
@@ -63,6 +68,12 @@
63
68
  "import": "./mini/index.js",
64
69
  "require": "./mini/index.cjs"
65
70
  },
71
+ "./compile": {
72
+ "@zod/source": "./src/compile.ts",
73
+ "types": "./compile.d.cts",
74
+ "import": "./compile.js",
75
+ "require": "./compile.cjs"
76
+ },
66
77
  "./locales": {
67
78
  "@zod/source": "./src/locales/index.ts",
68
79
  "types": "./locales/index.d.cts",
@@ -0,0 +1,56 @@
1
+ // Side-effect-only: installs the post-processor on `globalConfig`. Listed in `package.json`'s `sideEffects`, and nothing else references it, so apps that never import it drop the compiler.
2
+ //
3
+ // Usage:
4
+ //
5
+ // import "zod/compile";
6
+ // import * as z from "zod";
7
+ // // every schema constructed below this is compiled on first parse
8
+ //
9
+ // Module evaluation order matters: schemas constructed in modules that evaluate before this import will not be compiled. Place this import in the app entry point, before any module that constructs schemas at top level.
10
+ //
11
+ // Failure handling: if the compiler refuses a schema (async refinement, unsupported feature, etc.) the shim permanently restores the runtime `_zod.run` for that schema. The schema continues to work via the regular runtime parser — no observable difference to the caller.
12
+
13
+ import { compile } from "./v4/core/compile.js";
14
+ import * as core from "./v4/core/index.js";
15
+
16
+ let compiling = false;
17
+
18
+ core.globalConfig.postProcessor = (inst: any) => {
19
+ if (compiling) return;
20
+ const originalRun = inst._zod?.run;
21
+ if (typeof originalRun !== "function") return;
22
+
23
+ const shim = (payload: any, ctx: any): any => {
24
+ // Bypass the fast path for any non-forward / non-sync / check-skipping call. The runtime owns those contracts.
25
+ if (ctx?.async || ctx?.direction === "backward" || ctx?.skipChecks) {
26
+ return originalRun(payload, ctx);
27
+ }
28
+
29
+ compiling = true;
30
+ try {
31
+ // Respect the jitless config: it exists precisely so CSP/no-eval environments never reach `new Function`. Global mode must not bypass it (explicit z.compile calls remain an explicit opt-in).
32
+ if (core.globalConfig.jitless) {
33
+ inst._zod.run = originalRun;
34
+ return originalRun(payload, ctx);
35
+ }
36
+ // Strict: the shim owns its own fallback below, and a non-strict compile would hand back `inst` — whose run is this shim — and reinstall it on itself.
37
+ const compiled = compile(inst, { strict: true });
38
+ // Only the run wrapper. Copying the compiled parse/safeParse closures would make their fallback re-enter this instance and run user callbacks a third time.
39
+ inst._zod.run = compiled._zod.run;
40
+ inst._zod.bag.fallbackRun = compiled._zod.bag.fallbackRun;
41
+ inst._zod.bag.validator = compiled._zod.bag.validator;
42
+ } catch {
43
+ // Permanent fallback for unsupported schemas.
44
+ inst._zod.run = originalRun;
45
+ } finally {
46
+ compiling = false;
47
+ }
48
+
49
+ return inst._zod.run(payload, ctx);
50
+ };
51
+
52
+ // Expose the pre-shim runtime so `compile()` invoked elsewhere can unwrap past the shim and capture the source-of-truth runtime. Without this, a user calling `z.compile(s)` after global mode is enabled would capture the shim itself, which would feed the wrapper into itself on fallback.
53
+ (shim as any).__originalRun = originalRun;
54
+
55
+ inst._zod.run = shim;
56
+ };
@@ -1,4 +1,7 @@
1
1
  import * as z from "./v4/classic/external.js";
2
2
  export * from "./v4/classic/external.js";
3
- export { z };
4
- export default z;
3
+ // Aliasing the binding, instead of `export default z`, keeps the default export a
4
+ // re-export of `z` rather than a fresh namespace value. Rollup and Webpack can then
5
+ // shake `import z from "zod"` as they already shake `import { z } from "zod"` — without
6
+ // this they pull in every locale. See #6050.
7
+ export { z, z as default };
@@ -238,21 +238,31 @@ export class ZodError<T = any> extends Error {
238
238
  const el = issue.path[i]!;
239
239
  const terminal = i === issue.path.length - 1;
240
240
 
241
- if (!terminal) {
242
- curr[el] = curr[el] || { _errors: [] };
243
- // if (typeof el === "string") {
244
- // curr[el] = curr[el] || { _errors: [] };
245
- // } else if (typeof el === "number") {
246
- // const errorArray: any = [];
247
- // errorArray._errors = [];
248
- // curr[el] = curr[el] || errorArray;
249
- // }
250
- } else {
251
- curr[el] = curr[el] || { _errors: [] };
252
- curr[el]._errors.push(mapper(issue));
241
+ // `_errors` is reserved by this legacy format, so merge a matching path segment into the current node instead of treating its array as a child.
242
+ if (el === "_errors") {
243
+ if (terminal) curr._errors.push(mapper(issue));
244
+ i++;
245
+ continue;
246
+ }
247
+
248
+ // Create `el` as an own data property. A segment naming an inherited member ("toString", "constructor") would otherwise read through to the prototype, and assigning "__proto__" would hit the setter and walk into Object.prototype.
249
+ if (!Object.prototype.hasOwnProperty.call(curr, el)) {
250
+ if (el === "__proto__") {
251
+ Object.defineProperty(curr, el, {
252
+ value: { _errors: [] },
253
+ writable: true,
254
+ enumerable: true,
255
+ configurable: true,
256
+ });
257
+ } else {
258
+ curr[el] = { _errors: [] };
259
+ }
253
260
  }
254
261
 
255
262
  curr = curr[el];
263
+ if (terminal) {
264
+ curr._errors.push(mapper(issue));
265
+ }
256
266
  i++;
257
267
  }
258
268
  }
@@ -549,3 +549,38 @@ test("when the message is falsy, it is used as is provided", () => {
549
549
  // expect(result.error.issues.length).toEqual(2);
550
550
  // }
551
551
  // });
552
+
553
+ test("format() handles Object.prototype names in the issue path", () => {
554
+ const result = z
555
+ .record(z.string(), z.object({ pwn: z.number() }))
556
+ .safeParse(JSON.parse('{"__proto__": {"pwn": "x"}}'));
557
+ expect(result.success).toEqual(false);
558
+ if (!result.success) {
559
+ // the node must be a real own data property, not the inherited accessor
560
+ const node = Object.getOwnPropertyDescriptor(result.error.format(), "__proto__")!.value;
561
+ expect(node.pwn._errors).toHaveLength(1);
562
+ }
563
+ expect(({} as any).pwn).toBeUndefined();
564
+
565
+ const inherited = z.record(z.string(), z.string()).safeParse(JSON.parse('{"toString": 1}'));
566
+ expect(inherited.success).toEqual(false);
567
+ if (!inherited.success) {
568
+ expect((inherited.error.format() as any).toString._errors).toHaveLength(1);
569
+ }
570
+ });
571
+
572
+ test("format() handles an input-derived _errors path", () => {
573
+ const result = z.object({ parent: z.record(z.string()) }).safeParse({ parent: { _errors: 1 } });
574
+ expect(result.success).toEqual(false);
575
+ if (!result.success) {
576
+ expect(result.error.format().parent?._errors).toEqual(["Expected string, received number"]);
577
+ }
578
+
579
+ const nested = z
580
+ .object({ parent: z.record(z.object({ child: z.string() })) })
581
+ .safeParse({ parent: { _errors: { child: 1 } } });
582
+ expect(nested.success).toEqual(false);
583
+ if (!nested.success) {
584
+ expect((nested.error.format() as any).parent.child._errors).toEqual(["Expected string, received number"]);
585
+ }
586
+ });
@@ -21,6 +21,24 @@ test("object intersection", () => {
21
21
  expect(() => z.intersection(BaseTeacher.strict(), HasID).parse({ ...data, extra: 12 })).toThrow();
22
22
  });
23
23
 
24
+ test("object intersection strips __proto__ from pass-through operands", () => {
25
+ const cases = [
26
+ [
27
+ z.intersection(z.object({ name: z.string() }), z.unknown()),
28
+ JSON.parse('{"__proto__":{"isAdmin":true},"name":"alice"}'),
29
+ { name: "alice" },
30
+ ],
31
+ [z.intersection(z.record(z.string(), z.unknown()), z.any()), JSON.parse('{"__proto__":{},"a":1}'), { a: 1 }],
32
+ ] as const;
33
+
34
+ for (const [schema, input, expected] of cases) {
35
+ const parsed = schema.parse(input);
36
+ expect(parsed).toEqual(expected);
37
+ expect(Object.getPrototypeOf(parsed)).toBe(Object.prototype);
38
+ expect(Object.prototype.hasOwnProperty.call(parsed, "__proto__")).toBe(false);
39
+ }
40
+ });
41
+
24
42
  test("deep intersection", () => {
25
43
  const Animal = z.object({
26
44
  properties: z.object({
@@ -4,8 +4,7 @@ import { test } from "vitest";
4
4
 
5
5
  // import { filePath } from "./language-server.source";
6
6
 
7
- // The following tool is helpful for understanding the TypeScript AST associated with these tests:
8
- // https://ts-ast-viewer.com/ (just copy the contents of language-server.source into the viewer)
7
+ // The following tool is helpful for understanding the TypeScript AST associated with these tests: https://ts-ast-viewer.com/ (just copy the contents of language-server.source into the viewer)
9
8
 
10
9
  test("", () => {});
11
10
  // describe("Executing Go To Definition (and therefore Find Usages and Rename Refactoring) using an IDE works on inferred object properties", () => {
@@ -122,14 +122,12 @@ test("catchall inference", () => {
122
122
  test("catchall overrides strict", () => {
123
123
  const o1 = z.object({ first: z.string().optional() }).strict().catchall(z.number());
124
124
 
125
- // should run fine
126
- // setting a catchall overrides the unknownKeys behavior
125
+ // should run fine setting a catchall overrides the unknownKeys behavior
127
126
  o1.parse({
128
127
  asdf: 1234,
129
128
  });
130
129
 
131
- // should only run catchall validation
132
- // against unknown keys
130
+ // should only run catchall validation against unknown keys
133
131
  o1.parse({
134
132
  first: "asdf",
135
133
  asdf: 1234,
@@ -144,8 +142,7 @@ test("catchall overrides strict", () => {
144
142
  .strict()
145
143
  .catchall(z.number());
146
144
 
147
- // should run fine
148
- // setting a catchall overrides the unknownKeys behavior
145
+ // should run fine setting a catchall overrides the unknownKeys behavior
149
146
  o1.parse({
150
147
  first: "asdf",
151
148
  asdf: 1234,