@openclaw/zalo 2026.9.4 → 2026.9.6

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 (551) hide show
  1. package/assets/activity.svg +40 -0
  2. package/assets/icon.png +0 -0
  3. package/dist/{actions.runtime-2MsIGd0H.js → .setup/actions.runtime-B7EqgwH6.mjs} +1 -1
  4. package/dist/.setup/api-BDqk_OyX.mjs +6 -0
  5. package/dist/{channel-mgXGK008.js → .setup/channel-C4-ovULW.mjs} +14 -12
  6. package/dist/{channel.runtime-aikbF-5l.js → .setup/channel.runtime-Bm9k5qqB.mjs} +3 -3
  7. package/dist/{monitor-CXlZtCk9.js → .setup/monitor-BXzlUPAd.mjs} +6 -7
  8. package/dist/{monitor.webhook-DOCUBaE5.js → .setup/monitor.webhook-B_9qJI4O.mjs} +2 -2
  9. package/dist/.setup/secret-contract-api-DKDS_ZlS.mjs +3 -0
  10. package/dist/{send-CIMDH1gH.js → .setup/send-Div0xZFE.mjs} +34 -15
  11. package/dist/{setup-surface--Y84d_LY.js → .setup/setup-surface-CNyPRzlv.mjs} +1 -1
  12. package/dist/{webhook-spool-CPxf_Kwe.js → .setup/webhook-spool-BSTKDQ8X.mjs} +2 -2
  13. package/dist/api.js +3 -3
  14. package/dist/channel-plugin-api.js +1 -1
  15. package/dist/contract-api.js +1 -1
  16. package/dist/runtime-api.js +1 -1
  17. package/dist/secret-contract-api.js +1 -1
  18. package/dist/setup-api.js +2 -2
  19. package/dist/setup-entry.js +3 -2
  20. package/dist/setup-surface.js +2 -2
  21. package/node_modules/zod/README.md +29 -2
  22. package/node_modules/zod/compile.cjs +96 -0
  23. package/node_modules/zod/compile.d.cts +1 -0
  24. package/node_modules/zod/compile.d.ts +1 -0
  25. package/node_modules/zod/compile.js +52 -0
  26. package/node_modules/zod/index.cjs +21 -2
  27. package/node_modules/zod/index.d.cts +1 -2
  28. package/node_modules/zod/index.d.ts +1 -2
  29. package/node_modules/zod/index.js +5 -2
  30. package/node_modules/zod/locales/index.cjs +19 -0
  31. package/node_modules/zod/mini/index.cjs +19 -0
  32. package/node_modules/zod/package.json +20 -8
  33. package/node_modules/zod/src/compile.ts +56 -0
  34. package/node_modules/zod/src/index.ts +5 -2
  35. package/node_modules/zod/src/v3/ZodError.ts +22 -12
  36. package/node_modules/zod/src/v3/helpers/errorUtil.ts +1 -1
  37. package/node_modules/zod/src/v3/tests/error.test.ts +35 -0
  38. package/node_modules/zod/src/v3/tests/intersection.test.ts +18 -0
  39. package/node_modules/zod/src/v3/tests/language-server.test.ts +1 -2
  40. package/node_modules/zod/src/v3/tests/object.test.ts +3 -6
  41. package/node_modules/zod/src/v3/tests/readonly.test.ts +0 -80
  42. package/node_modules/zod/src/v3/tests/string.test.ts +6 -0
  43. package/node_modules/zod/src/v3/types.ts +5 -5
  44. package/node_modules/zod/src/v4/classic/checks.ts +1 -0
  45. package/node_modules/zod/src/v4/classic/compat.ts +26 -18
  46. package/node_modules/zod/src/v4/classic/deep-partial.ts +76 -0
  47. package/node_modules/zod/src/v4/classic/errors.ts +59 -44
  48. package/node_modules/zod/src/v4/classic/external.ts +14 -9
  49. package/node_modules/zod/src/v4/classic/from-json-schema.ts +363 -78
  50. package/node_modules/zod/src/v4/classic/in-out.ts +45 -0
  51. package/node_modules/zod/src/v4/classic/index.ts +2 -2
  52. package/node_modules/zod/src/v4/classic/iso.ts +2 -72
  53. package/node_modules/zod/src/v4/classic/parse.ts +10 -4
  54. package/node_modules/zod/src/v4/classic/schemas.ts +640 -375
  55. package/node_modules/zod/src/v4/classic/tests/apply.test.ts +27 -0
  56. package/node_modules/zod/src/v4/classic/tests/array.test.ts +2 -2
  57. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +186 -0
  58. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +36 -1
  59. package/node_modules/zod/src/v4/classic/tests/catch.test.ts +278 -0
  60. package/node_modules/zod/src/v4/classic/tests/codec-examples.test.ts +1 -2
  61. package/node_modules/zod/src/v4/classic/tests/codec.test.ts +2 -1
  62. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +3 -3
  63. package/node_modules/zod/src/v4/classic/tests/credit-card.test.ts +76 -0
  64. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +985 -0
  65. package/node_modules/zod/src/v4/classic/tests/date.test.ts +30 -0
  66. package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +32 -18
  67. package/node_modules/zod/src/v4/classic/tests/deep-partial.test.ts +380 -0
  68. package/node_modules/zod/src/v4/classic/tests/default-locale.test.ts +32 -0
  69. package/node_modules/zod/src/v4/classic/tests/default.test.ts +46 -0
  70. package/node_modules/zod/src/v4/classic/tests/detached-methods.test.ts +31 -7
  71. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +261 -13
  72. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +20 -0
  73. package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +112 -2
  74. package/node_modules/zod/src/v4/classic/tests/error.test.ts +403 -6
  75. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +582 -10
  76. package/node_modules/zod/src/v4/classic/tests/function.test.ts +31 -0
  77. package/node_modules/zod/src/v4/classic/tests/global-config.test.ts +2 -9
  78. package/node_modules/zod/src/v4/classic/tests/hash.test.ts +1 -2
  79. package/node_modules/zod/src/v4/classic/tests/iban.test.ts +81 -0
  80. package/node_modules/zod/src/v4/classic/tests/in-out.test.ts +159 -0
  81. package/node_modules/zod/src/v4/classic/tests/index.test.ts +21 -2
  82. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +319 -0
  83. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +67 -0
  84. package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +136 -0
  85. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +215 -0
  86. package/node_modules/zod/src/v4/classic/tests/jitless-allows-eval.test.ts +3 -10
  87. package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +36 -1
  88. package/node_modules/zod/src/v4/classic/tests/literal.test.ts +12 -1
  89. package/node_modules/zod/src/v4/classic/tests/map.test.ts +12 -0
  90. package/node_modules/zod/src/v4/classic/tests/number.test.ts +85 -9
  91. package/node_modules/zod/src/v4/classic/tests/object.test.ts +301 -12
  92. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +235 -0
  93. package/node_modules/zod/src/v4/classic/tests/optional.test.ts +49 -16
  94. package/node_modules/zod/src/v4/classic/tests/partial.test.ts +51 -4
  95. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +70 -0
  96. package/node_modules/zod/src/v4/classic/tests/preprocess-types.test.ts +20 -2
  97. package/node_modules/zod/src/v4/classic/tests/properties.test.ts +141 -0
  98. package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +0 -68
  99. package/node_modules/zod/src/v4/classic/tests/record.test.ts +186 -18
  100. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +79 -3
  101. package/node_modules/zod/src/v4/classic/tests/redos.test.ts +68 -0
  102. package/node_modules/zod/src/v4/classic/tests/refine.test.ts +60 -0
  103. package/node_modules/zod/src/v4/classic/tests/set.test.ts +9 -0
  104. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +19 -0
  105. package/node_modules/zod/src/v4/classic/tests/string.test.ts +222 -6
  106. package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +18 -0
  107. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +44 -3
  108. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +1812 -204
  109. package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +45 -30
  110. package/node_modules/zod/src/v4/classic/tests/union.test.ts +39 -2
  111. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +645 -0
  112. package/node_modules/zod/src/v4/classic/tests/validations.test.ts +2 -2
  113. package/node_modules/zod/src/v4/core/api.ts +87 -35
  114. package/node_modules/zod/src/v4/core/checks.ts +119 -146
  115. package/node_modules/zod/src/v4/core/compile.ts +2313 -0
  116. package/node_modules/zod/src/v4/core/core.ts +99 -22
  117. package/node_modules/zod/src/v4/core/doc.ts +17 -9
  118. package/node_modules/zod/src/v4/core/errors.ts +113 -25
  119. package/node_modules/zod/src/v4/core/index.ts +3 -0
  120. package/node_modules/zod/src/v4/core/json-schema-generator.ts +8 -3
  121. package/node_modules/zod/src/v4/core/json-schema-processors.ts +424 -156
  122. package/node_modules/zod/src/v4/core/json-schema.ts +2 -1
  123. package/node_modules/zod/src/v4/core/memoizer.ts +331 -0
  124. package/node_modules/zod/src/v4/core/parse.ts +164 -50
  125. package/node_modules/zod/src/v4/core/regexes.ts +42 -15
  126. package/node_modules/zod/src/v4/core/registries.ts +2 -2
  127. package/node_modules/zod/src/v4/core/schemas.ts +1000 -538
  128. package/node_modules/zod/src/v4/core/tests/cached.test.ts +54 -0
  129. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +1004 -0
  130. package/node_modules/zod/src/v4/core/tests/compile-generative.test.ts +445 -0
  131. package/node_modules/zod/src/v4/core/tests/compile-global.test.ts +89 -0
  132. package/node_modules/zod/src/v4/core/tests/compile-off-by-default.test.ts +26 -0
  133. package/node_modules/zod/src/v4/core/tests/compile-stats.test.ts +34 -0
  134. package/node_modules/zod/src/v4/core/tests/compile.test.ts +2036 -0
  135. package/node_modules/zod/src/v4/core/tests/email-regex.test.ts +140 -0
  136. package/node_modules/zod/src/v4/core/tests/locales/el.test.ts +1 -2
  137. package/node_modules/zod/src/v4/core/tests/locales/es.test.ts +1 -2
  138. package/node_modules/zod/src/v4/core/tests/locales/fr.test.ts +3 -3
  139. package/node_modules/zod/src/v4/core/tests/locales/parity.test.ts +42 -0
  140. package/node_modules/zod/src/v4/core/tests/locales/tg.test.ts +85 -0
  141. package/node_modules/zod/src/v4/core/tests/locales/tk.test.ts +69 -0
  142. package/node_modules/zod/src/v4/core/tests/polyfill-collision.test.ts +46 -0
  143. package/node_modules/zod/src/v4/core/tests/treeshake.test.ts +51 -0
  144. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +133 -0
  145. package/node_modules/zod/src/v4/core/to-json-schema.ts +283 -48
  146. package/node_modules/zod/src/v4/core/util.ts +454 -157
  147. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  148. package/node_modules/zod/src/v4/core/visit.ts +193 -0
  149. package/node_modules/zod/src/v4/index.ts +3 -3
  150. package/node_modules/zod/src/v4/locales/ar.ts +5 -0
  151. package/node_modules/zod/src/v4/locales/az.ts +5 -0
  152. package/node_modules/zod/src/v4/locales/be.ts +12 -0
  153. package/node_modules/zod/src/v4/locales/bg.ts +5 -0
  154. package/node_modules/zod/src/v4/locales/bn.ts +123 -0
  155. package/node_modules/zod/src/v4/locales/ca.ts +5 -0
  156. package/node_modules/zod/src/v4/locales/ckb.ts +140 -0
  157. package/node_modules/zod/src/v4/locales/cs.ts +5 -0
  158. package/node_modules/zod/src/v4/locales/da.ts +7 -2
  159. package/node_modules/zod/src/v4/locales/de.ts +5 -0
  160. package/node_modules/zod/src/v4/locales/el.ts +3 -0
  161. package/node_modules/zod/src/v4/locales/en.ts +17 -4
  162. package/node_modules/zod/src/v4/locales/eo.ts +5 -0
  163. package/node_modules/zod/src/v4/locales/es.ts +4 -0
  164. package/node_modules/zod/src/v4/locales/fa.ts +5 -0
  165. package/node_modules/zod/src/v4/locales/fi.ts +5 -0
  166. package/node_modules/zod/src/v4/locales/fr-CA.ts +5 -0
  167. package/node_modules/zod/src/v4/locales/fr.ts +21 -14
  168. package/node_modules/zod/src/v4/locales/gu.ts +123 -0
  169. package/node_modules/zod/src/v4/locales/he.ts +8 -1
  170. package/node_modules/zod/src/v4/locales/hi.ts +126 -0
  171. package/node_modules/zod/src/v4/locales/hr.ts +4 -0
  172. package/node_modules/zod/src/v4/locales/hu.ts +5 -0
  173. package/node_modules/zod/src/v4/locales/hy.ts +11 -0
  174. package/node_modules/zod/src/v4/locales/id.ts +5 -0
  175. package/node_modules/zod/src/v4/locales/index.ts +11 -0
  176. package/node_modules/zod/src/v4/locales/is.ts +5 -0
  177. package/node_modules/zod/src/v4/locales/it.ts +5 -0
  178. package/node_modules/zod/src/v4/locales/ja.ts +5 -0
  179. package/node_modules/zod/src/v4/locales/ka.ts +5 -0
  180. package/node_modules/zod/src/v4/locales/km.ts +5 -0
  181. package/node_modules/zod/src/v4/locales/kn.ts +126 -0
  182. package/node_modules/zod/src/v4/locales/ko.ts +5 -0
  183. package/node_modules/zod/src/v4/locales/lt.ts +4 -0
  184. package/node_modules/zod/src/v4/locales/mk.ts +5 -0
  185. package/node_modules/zod/src/v4/locales/ms.ts +5 -0
  186. package/node_modules/zod/src/v4/locales/ne.ts +128 -0
  187. package/node_modules/zod/src/v4/locales/nl.ts +5 -0
  188. package/node_modules/zod/src/v4/locales/nn.ts +121 -0
  189. package/node_modules/zod/src/v4/locales/no.ts +7 -2
  190. package/node_modules/zod/src/v4/locales/ota.ts +5 -0
  191. package/node_modules/zod/src/v4/locales/pl.ts +5 -0
  192. package/node_modules/zod/src/v4/locales/ps.ts +5 -0
  193. package/node_modules/zod/src/v4/locales/pt-BR.ts +161 -0
  194. package/node_modules/zod/src/v4/locales/pt.ts +101 -58
  195. package/node_modules/zod/src/v4/locales/ro.ts +3 -0
  196. package/node_modules/zod/src/v4/locales/ru.ts +12 -0
  197. package/node_modules/zod/src/v4/locales/sk.ts +123 -0
  198. package/node_modules/zod/src/v4/locales/sl.ts +5 -0
  199. package/node_modules/zod/src/v4/locales/sv.ts +7 -2
  200. package/node_modules/zod/src/v4/locales/ta.ts +5 -0
  201. package/node_modules/zod/src/v4/locales/tg.ts +135 -0
  202. package/node_modules/zod/src/v4/locales/th.ts +5 -0
  203. package/node_modules/zod/src/v4/locales/tk.ts +113 -0
  204. package/node_modules/zod/src/v4/locales/tr.ts +5 -0
  205. package/node_modules/zod/src/v4/locales/uk.ts +5 -0
  206. package/node_modules/zod/src/v4/locales/ur.ts +5 -0
  207. package/node_modules/zod/src/v4/locales/uz.ts +3 -0
  208. package/node_modules/zod/src/v4/locales/vi.ts +5 -0
  209. package/node_modules/zod/src/v4/locales/yo.ts +5 -0
  210. package/node_modules/zod/src/v4/locales/zh-CN.ts +5 -0
  211. package/node_modules/zod/src/v4/locales/zh-TW.ts +5 -0
  212. package/node_modules/zod/src/v4/mini/checks.ts +1 -0
  213. package/node_modules/zod/src/v4/mini/deep-partial.ts +73 -0
  214. package/node_modules/zod/src/v4/mini/external.ts +12 -1
  215. package/node_modules/zod/src/v4/mini/in-out.ts +45 -0
  216. package/node_modules/zod/src/v4/mini/parse.ts +2 -0
  217. package/node_modules/zod/src/v4/mini/schemas.ts +167 -63
  218. package/node_modules/zod/src/v4/mini/tests/apply.test.ts +33 -0
  219. package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +62 -1
  220. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +14 -0
  221. package/node_modules/zod/src/v4/mini/tests/codec.test.ts +35 -1
  222. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +11 -17
  223. package/node_modules/zod/src/v4/mini/tests/cyclic-data.test.ts +84 -0
  224. package/node_modules/zod/src/v4/mini/tests/deep-partial.test.ts +54 -0
  225. package/node_modules/zod/src/v4/mini/tests/error.test.ts +23 -4
  226. package/node_modules/zod/src/v4/mini/tests/functions.test.ts +9 -0
  227. package/node_modules/zod/src/v4/mini/tests/index.test.ts +158 -5
  228. package/node_modules/zod/src/v4/mini/tests/number.test.ts +14 -0
  229. package/node_modules/zod/src/v4/mini/tests/object.test.ts +65 -0
  230. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +16 -0
  231. package/node_modules/zod/src/v4/mini/tests/string.test.ts +44 -0
  232. package/node_modules/zod/v3/ZodError.cjs +41 -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/errors.cjs +19 -0
  237. package/node_modules/zod/v3/external.cjs +19 -0
  238. package/node_modules/zod/v3/helpers/enumUtil.cjs +19 -0
  239. package/node_modules/zod/v3/helpers/errorUtil.cjs +20 -1
  240. package/node_modules/zod/v3/helpers/errorUtil.js +1 -1
  241. package/node_modules/zod/v3/helpers/parseUtil.cjs +19 -0
  242. package/node_modules/zod/v3/helpers/partialUtil.cjs +19 -0
  243. package/node_modules/zod/v3/helpers/typeAliases.cjs +19 -0
  244. package/node_modules/zod/v3/helpers/util.cjs +19 -0
  245. package/node_modules/zod/v3/index.cjs +19 -0
  246. package/node_modules/zod/v3/standard-schema.cjs +19 -0
  247. package/node_modules/zod/v3/types.cjs +26 -5
  248. package/node_modules/zod/v3/types.js +7 -5
  249. package/node_modules/zod/v4/classic/checks.cjs +21 -1
  250. package/node_modules/zod/v4/classic/checks.d.cts +1 -1
  251. package/node_modules/zod/v4/classic/checks.d.ts +1 -1
  252. package/node_modules/zod/v4/classic/checks.js +1 -1
  253. package/node_modules/zod/v4/classic/coerce.cjs +19 -0
  254. package/node_modules/zod/v4/classic/compat.cjs +19 -0
  255. package/node_modules/zod/v4/classic/compat.d.cts +9 -11
  256. package/node_modules/zod/v4/classic/compat.d.ts +9 -11
  257. package/node_modules/zod/v4/classic/deep-partial.cjs +58 -0
  258. package/node_modules/zod/v4/classic/deep-partial.d.cts +14 -0
  259. package/node_modules/zod/v4/classic/deep-partial.d.ts +14 -0
  260. package/node_modules/zod/v4/classic/deep-partial.js +13 -0
  261. package/node_modules/zod/v4/classic/errors.cjs +62 -34
  262. package/node_modules/zod/v4/classic/errors.d.cts +3 -4
  263. package/node_modules/zod/v4/classic/errors.d.ts +3 -4
  264. package/node_modules/zod/v4/classic/errors.js +43 -34
  265. package/node_modules/zod/v4/classic/external.cjs +51 -27
  266. package/node_modules/zod/v4/classic/external.d.cts +5 -2
  267. package/node_modules/zod/v4/classic/external.d.ts +5 -2
  268. package/node_modules/zod/v4/classic/external.js +5 -8
  269. package/node_modules/zod/v4/classic/from-json-schema.cjs +376 -75
  270. package/node_modules/zod/v4/classic/from-json-schema.js +357 -75
  271. package/node_modules/zod/v4/classic/in-out.cjs +82 -0
  272. package/node_modules/zod/v4/classic/in-out.d.cts +8 -0
  273. package/node_modules/zod/v4/classic/in-out.d.ts +8 -0
  274. package/node_modules/zod/v4/classic/in-out.js +36 -0
  275. package/node_modules/zod/v4/classic/index.cjs +21 -2
  276. package/node_modules/zod/v4/classic/index.d.cts +1 -2
  277. package/node_modules/zod/v4/classic/index.d.ts +1 -2
  278. package/node_modules/zod/v4/classic/index.js +2 -2
  279. package/node_modules/zod/v4/classic/iso.cjs +30 -22
  280. package/node_modules/zod/v4/classic/iso.d.cts +2 -17
  281. package/node_modules/zod/v4/classic/iso.d.ts +2 -17
  282. package/node_modules/zod/v4/classic/iso.js +2 -17
  283. package/node_modules/zod/v4/classic/parse.cjs +23 -1
  284. package/node_modules/zod/v4/classic/parse.d.cts +17 -4
  285. package/node_modules/zod/v4/classic/parse.d.ts +17 -4
  286. package/node_modules/zod/v4/classic/parse.js +1 -0
  287. package/node_modules/zod/v4/classic/schemas.cjs +591 -426
  288. package/node_modules/zod/v4/classic/schemas.d.cts +68 -19
  289. package/node_modules/zod/v4/classic/schemas.d.ts +68 -19
  290. package/node_modules/zod/v4/classic/schemas.js +564 -424
  291. package/node_modules/zod/v4/core/api.cjs +66 -24
  292. package/node_modules/zod/v4/core/api.d.cts +22 -12
  293. package/node_modules/zod/v4/core/api.d.ts +22 -12
  294. package/node_modules/zod/v4/core/api.js +44 -24
  295. package/node_modules/zod/v4/core/checks.cjs +88 -128
  296. package/node_modules/zod/v4/core/checks.d.cts +29 -13
  297. package/node_modules/zod/v4/core/checks.d.ts +29 -13
  298. package/node_modules/zod/v4/core/checks.js +68 -127
  299. package/node_modules/zod/v4/core/compile.cjs +1908 -0
  300. package/node_modules/zod/v4/core/compile.d.cts +65 -0
  301. package/node_modules/zod/v4/core/compile.d.ts +65 -0
  302. package/node_modules/zod/v4/core/compile.js +1858 -0
  303. package/node_modules/zod/v4/core/core.cjs +101 -19
  304. package/node_modules/zod/v4/core/core.d.cts +16 -4
  305. package/node_modules/zod/v4/core/core.d.ts +16 -4
  306. package/node_modules/zod/v4/core/core.js +83 -20
  307. package/node_modules/zod/v4/core/doc.cjs +31 -9
  308. package/node_modules/zod/v4/core/doc.d.cts +3 -1
  309. package/node_modules/zod/v4/core/doc.d.ts +3 -1
  310. package/node_modules/zod/v4/core/doc.js +12 -9
  311. package/node_modules/zod/v4/core/errors.cjs +126 -25
  312. package/node_modules/zod/v4/core/errors.d.cts +4 -0
  313. package/node_modules/zod/v4/core/errors.d.ts +4 -0
  314. package/node_modules/zod/v4/core/errors.js +107 -25
  315. package/node_modules/zod/v4/core/index.cjs +24 -1
  316. package/node_modules/zod/v4/core/index.d.cts +3 -0
  317. package/node_modules/zod/v4/core/index.d.ts +3 -0
  318. package/node_modules/zod/v4/core/index.js +3 -0
  319. package/node_modules/zod/v4/core/json-schema-generator.cjs +24 -1
  320. package/node_modules/zod/v4/core/json-schema-generator.d.cts +2 -2
  321. package/node_modules/zod/v4/core/json-schema-generator.d.ts +2 -2
  322. package/node_modules/zod/v4/core/json-schema-generator.js +6 -2
  323. package/node_modules/zod/v4/core/json-schema-processors.cjs +441 -156
  324. package/node_modules/zod/v4/core/json-schema-processors.d.cts +16 -0
  325. package/node_modules/zod/v4/core/json-schema-processors.d.ts +16 -0
  326. package/node_modules/zod/v4/core/json-schema-processors.js +400 -158
  327. package/node_modules/zod/v4/core/json-schema.cjs +19 -0
  328. package/node_modules/zod/v4/core/json-schema.d.cts +2 -1
  329. package/node_modules/zod/v4/core/json-schema.d.ts +2 -1
  330. package/node_modules/zod/v4/core/memoizer.cjs +360 -0
  331. package/node_modules/zod/v4/core/memoizer.d.cts +15 -0
  332. package/node_modules/zod/v4/core/memoizer.d.ts +15 -0
  333. package/node_modules/zod/v4/core/memoizer.js +311 -0
  334. package/node_modules/zod/v4/core/parse.cjs +148 -46
  335. package/node_modules/zod/v4/core/parse.d.cts +14 -11
  336. package/node_modules/zod/v4/core/parse.d.ts +14 -11
  337. package/node_modules/zod/v4/core/parse.js +127 -45
  338. package/node_modules/zod/v4/core/regexes.cjs +54 -17
  339. package/node_modules/zod/v4/core/regexes.d.cts +5 -0
  340. package/node_modules/zod/v4/core/regexes.d.ts +5 -0
  341. package/node_modules/zod/v4/core/regexes.js +32 -15
  342. package/node_modules/zod/v4/core/registries.cjs +19 -0
  343. package/node_modules/zod/v4/core/registries.js +2 -2
  344. package/node_modules/zod/v4/core/schemas.cjs +785 -386
  345. package/node_modules/zod/v4/core/schemas.d.cts +123 -34
  346. package/node_modules/zod/v4/core/schemas.d.ts +123 -34
  347. package/node_modules/zod/v4/core/schemas.js +753 -386
  348. package/node_modules/zod/v4/core/standard-schema.cjs +19 -0
  349. package/node_modules/zod/v4/core/to-json-schema.cjs +269 -45
  350. package/node_modules/zod/v4/core/to-json-schema.d.cts +45 -5
  351. package/node_modules/zod/v4/core/to-json-schema.d.ts +45 -5
  352. package/node_modules/zod/v4/core/to-json-schema.js +247 -44
  353. package/node_modules/zod/v4/core/util.cjs +372 -157
  354. package/node_modules/zod/v4/core/util.d.cts +79 -1
  355. package/node_modules/zod/v4/core/util.d.ts +79 -1
  356. package/node_modules/zod/v4/core/util.js +341 -156
  357. package/node_modules/zod/v4/core/versions.cjs +21 -2
  358. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  359. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  360. package/node_modules/zod/v4/core/versions.js +2 -2
  361. package/node_modules/zod/v4/core/visit.cjs +214 -0
  362. package/node_modules/zod/v4/core/visit.d.cts +30 -0
  363. package/node_modules/zod/v4/core/visit.d.ts +30 -0
  364. package/node_modules/zod/v4/core/visit.js +169 -0
  365. package/node_modules/zod/v4/index.cjs +34 -5
  366. package/node_modules/zod/v4/index.d.cts +2 -2
  367. package/node_modules/zod/v4/index.d.ts +2 -2
  368. package/node_modules/zod/v4/index.js +3 -2
  369. package/node_modules/zod/v4/locales/ar.cjs +5 -0
  370. package/node_modules/zod/v4/locales/ar.js +5 -0
  371. package/node_modules/zod/v4/locales/az.cjs +5 -0
  372. package/node_modules/zod/v4/locales/az.js +5 -0
  373. package/node_modules/zod/v4/locales/be.cjs +12 -0
  374. package/node_modules/zod/v4/locales/be.js +12 -0
  375. package/node_modules/zod/v4/locales/bg.cjs +5 -0
  376. package/node_modules/zod/v4/locales/bg.js +5 -0
  377. package/node_modules/zod/v4/locales/bn.cjs +140 -0
  378. package/node_modules/zod/v4/locales/bn.d.cts +5 -0
  379. package/node_modules/zod/v4/locales/bn.d.ts +4 -0
  380. package/node_modules/zod/v4/locales/bn.js +113 -0
  381. package/node_modules/zod/v4/locales/ca.cjs +5 -0
  382. package/node_modules/zod/v4/locales/ca.js +5 -0
  383. package/node_modules/zod/v4/locales/ckb.cjs +160 -0
  384. package/node_modules/zod/v4/locales/ckb.d.cts +5 -0
  385. package/node_modules/zod/v4/locales/ckb.d.ts +4 -0
  386. package/node_modules/zod/v4/locales/ckb.js +133 -0
  387. package/node_modules/zod/v4/locales/cs.cjs +5 -0
  388. package/node_modules/zod/v4/locales/cs.js +5 -0
  389. package/node_modules/zod/v4/locales/da.cjs +7 -2
  390. package/node_modules/zod/v4/locales/da.js +7 -2
  391. package/node_modules/zod/v4/locales/de.cjs +5 -0
  392. package/node_modules/zod/v4/locales/de.js +5 -0
  393. package/node_modules/zod/v4/locales/el.cjs +3 -0
  394. package/node_modules/zod/v4/locales/el.js +3 -0
  395. package/node_modules/zod/v4/locales/en.cjs +16 -4
  396. package/node_modules/zod/v4/locales/en.js +16 -4
  397. package/node_modules/zod/v4/locales/eo.cjs +5 -0
  398. package/node_modules/zod/v4/locales/eo.js +5 -0
  399. package/node_modules/zod/v4/locales/es.cjs +4 -0
  400. package/node_modules/zod/v4/locales/es.js +4 -0
  401. package/node_modules/zod/v4/locales/fa.cjs +5 -0
  402. package/node_modules/zod/v4/locales/fa.js +5 -0
  403. package/node_modules/zod/v4/locales/fi.cjs +5 -0
  404. package/node_modules/zod/v4/locales/fi.js +5 -0
  405. package/node_modules/zod/v4/locales/fr-CA.cjs +5 -0
  406. package/node_modules/zod/v4/locales/fr-CA.js +5 -0
  407. package/node_modules/zod/v4/locales/fr.cjs +18 -14
  408. package/node_modules/zod/v4/locales/fr.js +18 -14
  409. package/node_modules/zod/v4/locales/gu.cjs +140 -0
  410. package/node_modules/zod/v4/locales/gu.d.cts +5 -0
  411. package/node_modules/zod/v4/locales/gu.d.ts +4 -0
  412. package/node_modules/zod/v4/locales/gu.js +113 -0
  413. package/node_modules/zod/v4/locales/he.cjs +7 -0
  414. package/node_modules/zod/v4/locales/he.js +7 -0
  415. package/node_modules/zod/v4/locales/hi.cjs +138 -0
  416. package/node_modules/zod/v4/locales/hi.d.cts +5 -0
  417. package/node_modules/zod/v4/locales/hi.d.ts +4 -0
  418. package/node_modules/zod/v4/locales/hi.js +111 -0
  419. package/node_modules/zod/v4/locales/hr.cjs +4 -0
  420. package/node_modules/zod/v4/locales/hr.js +4 -0
  421. package/node_modules/zod/v4/locales/hu.cjs +5 -0
  422. package/node_modules/zod/v4/locales/hu.js +5 -0
  423. package/node_modules/zod/v4/locales/hy.cjs +11 -0
  424. package/node_modules/zod/v4/locales/hy.js +11 -0
  425. package/node_modules/zod/v4/locales/id.cjs +5 -0
  426. package/node_modules/zod/v4/locales/id.js +5 -0
  427. package/node_modules/zod/v4/locales/index.cjs +43 -2
  428. package/node_modules/zod/v4/locales/index.d.cts +11 -0
  429. package/node_modules/zod/v4/locales/index.d.ts +11 -0
  430. package/node_modules/zod/v4/locales/index.js +11 -0
  431. package/node_modules/zod/v4/locales/is.cjs +5 -0
  432. package/node_modules/zod/v4/locales/is.js +5 -0
  433. package/node_modules/zod/v4/locales/it.cjs +5 -0
  434. package/node_modules/zod/v4/locales/it.js +5 -0
  435. package/node_modules/zod/v4/locales/ja.cjs +5 -0
  436. package/node_modules/zod/v4/locales/ja.js +5 -0
  437. package/node_modules/zod/v4/locales/ka.cjs +5 -0
  438. package/node_modules/zod/v4/locales/ka.js +5 -0
  439. package/node_modules/zod/v4/locales/km.cjs +5 -0
  440. package/node_modules/zod/v4/locales/km.js +5 -0
  441. package/node_modules/zod/v4/locales/kn.cjs +143 -0
  442. package/node_modules/zod/v4/locales/kn.d.cts +5 -0
  443. package/node_modules/zod/v4/locales/kn.d.ts +4 -0
  444. package/node_modules/zod/v4/locales/kn.js +116 -0
  445. package/node_modules/zod/v4/locales/ko.cjs +5 -0
  446. package/node_modules/zod/v4/locales/ko.js +5 -0
  447. package/node_modules/zod/v4/locales/lt.cjs +4 -0
  448. package/node_modules/zod/v4/locales/lt.js +4 -0
  449. package/node_modules/zod/v4/locales/mk.cjs +5 -0
  450. package/node_modules/zod/v4/locales/mk.js +5 -0
  451. package/node_modules/zod/v4/locales/ms.cjs +5 -0
  452. package/node_modules/zod/v4/locales/ms.js +5 -0
  453. package/node_modules/zod/v4/locales/ne.cjs +138 -0
  454. package/node_modules/zod/v4/locales/ne.d.cts +5 -0
  455. package/node_modules/zod/v4/locales/ne.d.ts +4 -0
  456. package/node_modules/zod/v4/locales/ne.js +111 -0
  457. package/node_modules/zod/v4/locales/nl.cjs +5 -0
  458. package/node_modules/zod/v4/locales/nl.js +5 -0
  459. package/node_modules/zod/v4/locales/nn.cjs +140 -0
  460. package/node_modules/zod/v4/locales/nn.d.cts +5 -0
  461. package/node_modules/zod/v4/locales/nn.d.ts +4 -0
  462. package/node_modules/zod/v4/locales/nn.js +113 -0
  463. package/node_modules/zod/v4/locales/no.cjs +7 -2
  464. package/node_modules/zod/v4/locales/no.js +7 -2
  465. package/node_modules/zod/v4/locales/ota.cjs +5 -0
  466. package/node_modules/zod/v4/locales/ota.js +5 -0
  467. package/node_modules/zod/v4/locales/pl.cjs +5 -0
  468. package/node_modules/zod/v4/locales/pl.js +5 -0
  469. package/node_modules/zod/v4/locales/ps.cjs +5 -0
  470. package/node_modules/zod/v4/locales/ps.js +5 -0
  471. package/node_modules/zod/v4/locales/pt-BR.cjs +170 -0
  472. package/node_modules/zod/v4/locales/pt-BR.d.cts +5 -0
  473. package/node_modules/zod/v4/locales/pt-BR.d.ts +4 -0
  474. package/node_modules/zod/v4/locales/pt-BR.js +143 -0
  475. package/node_modules/zod/v4/locales/pt.cjs +89 -55
  476. package/node_modules/zod/v4/locales/pt.js +89 -55
  477. package/node_modules/zod/v4/locales/ro.cjs +3 -0
  478. package/node_modules/zod/v4/locales/ro.js +3 -0
  479. package/node_modules/zod/v4/locales/ru.cjs +12 -0
  480. package/node_modules/zod/v4/locales/ru.js +12 -0
  481. package/node_modules/zod/v4/locales/sk.cjs +143 -0
  482. package/node_modules/zod/v4/locales/sk.d.cts +5 -0
  483. package/node_modules/zod/v4/locales/sk.d.ts +4 -0
  484. package/node_modules/zod/v4/locales/sk.js +116 -0
  485. package/node_modules/zod/v4/locales/sl.cjs +5 -0
  486. package/node_modules/zod/v4/locales/sl.js +5 -0
  487. package/node_modules/zod/v4/locales/sv.cjs +7 -2
  488. package/node_modules/zod/v4/locales/sv.js +7 -2
  489. package/node_modules/zod/v4/locales/ta.cjs +5 -0
  490. package/node_modules/zod/v4/locales/ta.js +5 -0
  491. package/node_modules/zod/v4/locales/tg.cjs +144 -0
  492. package/node_modules/zod/v4/locales/tg.d.cts +5 -0
  493. package/node_modules/zod/v4/locales/tg.d.ts +4 -0
  494. package/node_modules/zod/v4/locales/tg.js +117 -0
  495. package/node_modules/zod/v4/locales/th.cjs +5 -0
  496. package/node_modules/zod/v4/locales/th.js +5 -0
  497. package/node_modules/zod/v4/locales/tk.cjs +134 -0
  498. package/node_modules/zod/v4/locales/tk.d.cts +5 -0
  499. package/node_modules/zod/v4/locales/tk.d.ts +4 -0
  500. package/node_modules/zod/v4/locales/tk.js +107 -0
  501. package/node_modules/zod/v4/locales/tr.cjs +5 -0
  502. package/node_modules/zod/v4/locales/tr.js +5 -0
  503. package/node_modules/zod/v4/locales/uk.cjs +5 -0
  504. package/node_modules/zod/v4/locales/uk.js +5 -0
  505. package/node_modules/zod/v4/locales/ur.cjs +5 -0
  506. package/node_modules/zod/v4/locales/ur.js +5 -0
  507. package/node_modules/zod/v4/locales/uz.cjs +3 -0
  508. package/node_modules/zod/v4/locales/uz.js +3 -0
  509. package/node_modules/zod/v4/locales/vi.cjs +5 -0
  510. package/node_modules/zod/v4/locales/vi.js +5 -0
  511. package/node_modules/zod/v4/locales/yo.cjs +5 -0
  512. package/node_modules/zod/v4/locales/yo.js +5 -0
  513. package/node_modules/zod/v4/locales/zh-CN.cjs +5 -0
  514. package/node_modules/zod/v4/locales/zh-CN.js +5 -0
  515. package/node_modules/zod/v4/locales/zh-TW.cjs +5 -0
  516. package/node_modules/zod/v4/locales/zh-TW.js +5 -0
  517. package/node_modules/zod/v4/mini/checks.cjs +21 -1
  518. package/node_modules/zod/v4/mini/checks.d.cts +1 -1
  519. package/node_modules/zod/v4/mini/checks.d.ts +1 -1
  520. package/node_modules/zod/v4/mini/checks.js +1 -1
  521. package/node_modules/zod/v4/mini/coerce.cjs +19 -0
  522. package/node_modules/zod/v4/mini/deep-partial.cjs +58 -0
  523. package/node_modules/zod/v4/mini/deep-partial.d.cts +14 -0
  524. package/node_modules/zod/v4/mini/deep-partial.d.ts +14 -0
  525. package/node_modules/zod/v4/mini/deep-partial.js +13 -0
  526. package/node_modules/zod/v4/mini/external.cjs +33 -1
  527. package/node_modules/zod/v4/mini/external.d.cts +5 -2
  528. package/node_modules/zod/v4/mini/external.d.ts +5 -2
  529. package/node_modules/zod/v4/mini/external.js +3 -1
  530. package/node_modules/zod/v4/mini/in-out.cjs +82 -0
  531. package/node_modules/zod/v4/mini/in-out.d.cts +8 -0
  532. package/node_modules/zod/v4/mini/in-out.d.ts +8 -0
  533. package/node_modules/zod/v4/mini/in-out.js +36 -0
  534. package/node_modules/zod/v4/mini/index.cjs +19 -0
  535. package/node_modules/zod/v4/mini/iso.cjs +19 -0
  536. package/node_modules/zod/v4/mini/parse.cjs +22 -1
  537. package/node_modules/zod/v4/mini/parse.d.cts +1 -1
  538. package/node_modules/zod/v4/mini/parse.d.ts +1 -1
  539. package/node_modules/zod/v4/mini/parse.js +1 -1
  540. package/node_modules/zod/v4/mini/schemas.cjs +117 -53
  541. package/node_modules/zod/v4/mini/schemas.d.cts +49 -14
  542. package/node_modules/zod/v4/mini/schemas.d.ts +49 -14
  543. package/node_modules/zod/v4/mini/schemas.js +92 -51
  544. package/node_modules/zod/v4-mini/index.cjs +19 -0
  545. package/openclaw.plugin.json +12 -28
  546. package/package.json +9 -6
  547. package/node_modules/zod/src/v4/core/config.ts +0 -15
  548. /package/dist/{group-access-8qHRzDHx.js → .setup/group-access-8qHRzDHx.mjs} +0 -0
  549. /package/dist/{runtime-Dfhzt7qb.js → .setup/runtime-Dfhzt7qb.mjs} +0 -0
  550. /package/dist/{secret-contract-Cpsqe5Cv.js → .setup/secret-contract-Cpsqe5Cv.mjs} +0 -0
  551. /package/dist/{setup-core-CCMLSh4Q.js → .setup/setup-core-CCMLSh4Q.mjs} +0 -0
@@ -116,6 +116,27 @@ test("z.extend", () => {
116
116
  expect(z.safeParse(extendedSchema, { name: "John", age: 30, isAdmin: true }).success).toBe(true);
117
117
  });
118
118
 
119
+ test("z.merge", () => {
120
+ const mergedSchema = z.merge(userSchema, z.object({ isAdmin: z.boolean() }));
121
+ type MergedUser = z.infer<typeof mergedSchema>;
122
+ expectTypeOf<MergedUser>().toEqualTypeOf<{
123
+ name: string;
124
+ age: number;
125
+ email?: string | undefined;
126
+ isAdmin: boolean;
127
+ }>();
128
+ expect(z.safeParse(mergedSchema, { name: "John", age: 30, isAdmin: true }).success).toBe(true);
129
+
130
+ // the second schema's catchall wins, matching classic
131
+ const strict = z.merge(userSchema, z.strictObject({ isAdmin: z.boolean() }));
132
+ expect(z.safeParse(strict, { name: "John", age: 30, isAdmin: true, extra: 1 }).success).toBe(false);
133
+
134
+ expect(() =>
135
+ // @ts-expect-error second argument is a schema, not a shape
136
+ z.merge(userSchema, { isAdmin: z.boolean() })
137
+ ).toThrow("Invalid input to merge");
138
+ });
139
+
119
140
  test("z.safeExtend", () => {
120
141
  const extended = z.safeExtend(userSchema, { name: z.string() });
121
142
  expect(z.safeParse(extended, { name: "John", age: 30 }).success).toBe(true);
@@ -168,6 +189,50 @@ test("z.partial with mask", () => {
168
189
  expect(z.safeParse(partialSchemaWithMask, { name: "John" }).success).toBe(false);
169
190
  });
170
191
 
192
+ test("z.exactPartial", () => {
193
+ const partialSchema = z.exactPartial(userSchema);
194
+ type PartialUser = z.infer<typeof partialSchema>;
195
+ expectTypeOf<PartialUser>().toEqualTypeOf<{
196
+ name?: string;
197
+ age?: number;
198
+ email?: string | undefined;
199
+ }>();
200
+ expect(z.safeParse(partialSchema, { name: "John" }).success).toBe(true);
201
+ expect(z.safeParse(partialSchema, {}).success).toBe(true);
202
+ expect(z.safeParse(partialSchema, { name: undefined }).success).toBe(false);
203
+ expect(z.safeParse(partialSchema, { email: undefined }).success).toBe(true);
204
+ });
205
+
206
+ test("z.exactPartial with mask", () => {
207
+ const partialSchemaWithMask = z.exactPartial(userSchema, { name: true });
208
+ type PartialUserWithMask = z.infer<typeof partialSchemaWithMask>;
209
+ expectTypeOf<PartialUserWithMask>().toEqualTypeOf<{
210
+ name?: string;
211
+ age: number;
212
+ email?: string | undefined;
213
+ }>();
214
+ expect(z.safeParse(partialSchemaWithMask, { age: 30 }).success).toBe(true);
215
+ expect(z.safeParse(partialSchemaWithMask, { age: 30, name: undefined }).success).toBe(false);
216
+ });
217
+
218
+ test("z.required", () => {
219
+ const requiredSchema = z.required(userSchema);
220
+ type RequiredUser = z.infer<typeof requiredSchema>;
221
+ expectTypeOf<RequiredUser>().toEqualTypeOf<{ name: string; age: number; email: string }>();
222
+ expect(requiredSchema.shape.email).toBeInstanceOf(z.ZodMiniNonOptional);
223
+ expect(z.safeParse(requiredSchema, { name: "John", age: 30 }).success).toBe(false);
224
+ expect(z.safeParse(requiredSchema, { name: "John", age: 30, email: "john@example.com" }).success).toBe(true);
225
+ });
226
+
227
+ test("z.required with mask", () => {
228
+ const schema = z.object({ name: z.optional(z.string()), age: z.optional(z.number()) });
229
+ const requiredSchemaWithMask = z.required(schema, { name: true });
230
+ type RequiredWithMask = z.infer<typeof requiredSchemaWithMask>;
231
+ expectTypeOf<RequiredWithMask>().toEqualTypeOf<{ name: string; age?: number | undefined }>();
232
+ expect(requiredSchemaWithMask.shape.name).toBeInstanceOf(z.ZodMiniNonOptional);
233
+ expect(requiredSchemaWithMask.shape.age).toBeInstanceOf(z.ZodMiniOptional);
234
+ });
235
+
171
236
  test("z.pick/omit/partial/required - do not allow unknown keys", () => {
172
237
  const schema = z.object({
173
238
  name: z.string(),
@@ -1,6 +1,22 @@
1
1
  import { expect, expectTypeOf, test } from "vitest";
2
2
  import { z } from "zod/mini";
3
3
 
4
+ test("recursive object schema type aliases", () => {
5
+ type ObjectField = z.ZodMiniObject<{ [k: string]: ObjectField }>;
6
+ type Field = z.ZodMiniString<string> | z.ZodMiniObject<{ [k: string]: Field }>;
7
+ type ObjectValue = { [k: string]: ObjectValue };
8
+ type Value = string | { [k: string]: Value };
9
+ expectTypeOf<z.input<ObjectField>>().toEqualTypeOf<ObjectValue>();
10
+ expectTypeOf<z.output<ObjectField>>().toEqualTypeOf<ObjectValue>();
11
+ expectTypeOf<keyof z.input<ObjectField>>().toEqualTypeOf<string>();
12
+ expectTypeOf<keyof z.output<ObjectField>>().toEqualTypeOf<string>();
13
+ expectTypeOf<z.input<Field>>().toEqualTypeOf<Value>();
14
+ expectTypeOf<z.output<Field>>().toEqualTypeOf<Value>();
15
+ const schema: Field = z.object({ nested: z.object({ name: z.string() }) });
16
+ expect(schema.parse({ nested: { name: "a", extra: true } })).toEqual({ nested: { name: "a" } });
17
+ expect(schema.safeParse({ nested: { name: 123 } }).success).toBe(false);
18
+ });
19
+
4
20
  test("recursion with z.lazy", () => {
5
21
  const data = {
6
22
  name: "I",
@@ -177,6 +177,13 @@ test("z.nanoid", () => {
177
177
  expect(() => z.parse(a, "abc")).toThrow();
178
178
  });
179
179
 
180
+ test("z.nanoid custom length", () => {
181
+ const a = z.nanoid({ length: 64 });
182
+ const id = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
183
+ expect(z.parse(a, id)).toEqual(id);
184
+ expect(() => z.parse(a, "8FHZpIxleEK3axQRBNNjN")).toThrow();
185
+ });
186
+
180
187
  test("z.cuid", () => {
181
188
  const a = z.cuid();
182
189
  expect(z.parse(a, "cixs7y0c0000f7x3b1z6m3w6r")).toEqual("cixs7y0c0000f7x3b1z6m3w6r");
@@ -317,6 +324,36 @@ test("z.e164", () => {
317
324
  expect(() => z.parse(a, 123)).toThrow();
318
325
  });
319
326
 
327
+ test("z.creditCard", () => {
328
+ const a = z.creditCard();
329
+ // valid credit card
330
+ expect(z.parse(a, "4111111111111111")).toEqual("4111111111111111");
331
+ expect(z.parse(a, "4111 1111 1111 1111")).toEqual("4111 1111 1111 1111");
332
+ // failed Luhn checksum
333
+ expect(() => z.parse(a, "4111111111111112")).toThrow();
334
+ // outside the 12-19 digit range
335
+ expect(() => z.parse(a, "40000000006")).toThrow();
336
+ expect(() => z.parse(a, "hello")).toThrow();
337
+ // wrong type
338
+ expect(() => z.parse(a, 123)).toThrow();
339
+ });
340
+
341
+ test("z.iban", () => {
342
+ const a = z.iban();
343
+ // valid iban
344
+ expect(z.parse(a, "DE89370400440532013000")).toEqual("DE89370400440532013000");
345
+ expect(z.parse(a, "NO9386011117947")).toEqual("NO9386011117947");
346
+ // failed mod 97 checksum
347
+ expect(() => z.parse(a, "DE89370400440532013001")).toThrow();
348
+ // formatting violations
349
+ expect(() => z.parse(a, "de89370400440532013000")).toThrow();
350
+ expect(() => z.parse(a, "DE89 3704 0044 0532 0130 00")).toThrow();
351
+ expect(() => z.parse(a, "NO938601111794")).toThrow();
352
+ expect(() => z.parse(a, "hello")).toThrow();
353
+ // wrong type
354
+ expect(() => z.parse(a, 123)).toThrow();
355
+ });
356
+
320
357
  test("z.jwt", () => {
321
358
  const a = z.jwt();
322
359
  // valid jwt
@@ -350,3 +387,10 @@ test("z.hash generic format", () => {
350
387
  z.ZodMiniCustomStringFormat<"sha384_base64url">
351
388
  >();
352
389
  });
390
+
391
+ test("z.currencyCode", () => {
392
+ const a = z.currencyCode();
393
+ expectTypeOf(a).toEqualTypeOf<z.ZodMiniCustomStringFormat<"currency_code">>();
394
+ expect(z.parse(a, "EUR")).toBe("EUR");
395
+ expect(z.safeParse(a, "eur")).toMatchObject(FAIL);
396
+ });
@@ -75,21 +75,31 @@ class ZodError extends Error {
75
75
  while (i < issue.path.length) {
76
76
  const el = issue.path[i];
77
77
  const terminal = i === issue.path.length - 1;
78
- if (!terminal) {
79
- curr[el] = curr[el] || { _errors: [] };
80
- // if (typeof el === "string") {
81
- // curr[el] = curr[el] || { _errors: [] };
82
- // } else if (typeof el === "number") {
83
- // const errorArray: any = [];
84
- // errorArray._errors = [];
85
- // curr[el] = curr[el] || errorArray;
86
- // }
78
+ // `_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.
79
+ if (el === "_errors") {
80
+ if (terminal)
81
+ curr._errors.push(mapper(issue));
82
+ i++;
83
+ continue;
87
84
  }
88
- else {
89
- curr[el] = curr[el] || { _errors: [] };
90
- curr[el]._errors.push(mapper(issue));
85
+ // 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.
86
+ if (!Object.prototype.hasOwnProperty.call(curr, el)) {
87
+ if (el === "__proto__") {
88
+ Object.defineProperty(curr, el, {
89
+ value: { _errors: [] },
90
+ writable: true,
91
+ enumerable: true,
92
+ configurable: true,
93
+ });
94
+ }
95
+ else {
96
+ curr[el] = { _errors: [] };
97
+ }
91
98
  }
92
99
  curr = curr[el];
100
+ if (terminal) {
101
+ curr._errors.push(mapper(issue));
102
+ }
93
103
  i++;
94
104
  }
95
105
  }
@@ -136,3 +146,22 @@ ZodError.create = (issues) => {
136
146
  const error = new ZodError(issues);
137
147
  return error;
138
148
  };
149
+
150
+ // seal-cjs-exports
151
+ (function () {
152
+ var keys = Object.getOwnPropertyNames(exports);
153
+ for (var i = 0; i < keys.length; i++) {
154
+ var desc = Object.getOwnPropertyDescriptor(exports, keys[i]);
155
+ if (!desc || !desc.get || !desc.configurable) continue;
156
+ var value;
157
+ try {
158
+ value = desc.get();
159
+ } catch (e) {
160
+ continue;
161
+ }
162
+ // a circular require may not have settled this one yet, so leave it live
163
+ if (value === undefined) continue;
164
+ Object.defineProperty(exports, keys[i], { value: value, writable: false, enumerable: desc.enumerable, configurable: false });
165
+ }
166
+ Object.freeze(exports);
167
+ })();
@@ -10,13 +10,13 @@ export type typeToFlattenedError<T, U = string> = {
10
10
  };
11
11
  };
12
12
  export declare const ZodIssueCode: {
13
- custom: "custom";
14
13
  invalid_type: "invalid_type";
15
14
  too_big: "too_big";
16
15
  too_small: "too_small";
17
16
  not_multiple_of: "not_multiple_of";
18
17
  unrecognized_keys: "unrecognized_keys";
19
18
  invalid_union: "invalid_union";
19
+ custom: "custom";
20
20
  invalid_literal: "invalid_literal";
21
21
  invalid_union_discriminator: "invalid_union_discriminator";
22
22
  invalid_enum_value: "invalid_enum_value";
@@ -10,13 +10,13 @@ export type typeToFlattenedError<T, U = string> = {
10
10
  };
11
11
  };
12
12
  export declare const ZodIssueCode: {
13
- custom: "custom";
14
13
  invalid_type: "invalid_type";
15
14
  too_big: "too_big";
16
15
  too_small: "too_small";
17
16
  not_multiple_of: "not_multiple_of";
18
17
  unrecognized_keys: "unrecognized_keys";
19
18
  invalid_union: "invalid_union";
19
+ custom: "custom";
20
20
  invalid_literal: "invalid_literal";
21
21
  invalid_union_discriminator: "invalid_union_discriminator";
22
22
  invalid_enum_value: "invalid_enum_value";
@@ -71,21 +71,31 @@ export class ZodError extends Error {
71
71
  while (i < issue.path.length) {
72
72
  const el = issue.path[i];
73
73
  const terminal = i === issue.path.length - 1;
74
- if (!terminal) {
75
- curr[el] = curr[el] || { _errors: [] };
76
- // if (typeof el === "string") {
77
- // curr[el] = curr[el] || { _errors: [] };
78
- // } else if (typeof el === "number") {
79
- // const errorArray: any = [];
80
- // errorArray._errors = [];
81
- // curr[el] = curr[el] || errorArray;
82
- // }
74
+ // `_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.
75
+ if (el === "_errors") {
76
+ if (terminal)
77
+ curr._errors.push(mapper(issue));
78
+ i++;
79
+ continue;
83
80
  }
84
- else {
85
- curr[el] = curr[el] || { _errors: [] };
86
- curr[el]._errors.push(mapper(issue));
81
+ // 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.
82
+ if (!Object.prototype.hasOwnProperty.call(curr, el)) {
83
+ if (el === "__proto__") {
84
+ Object.defineProperty(curr, el, {
85
+ value: { _errors: [] },
86
+ writable: true,
87
+ enumerable: true,
88
+ configurable: true,
89
+ });
90
+ }
91
+ else {
92
+ curr[el] = { _errors: [] };
93
+ }
87
94
  }
88
95
  curr = curr[el];
96
+ if (terminal) {
97
+ curr._errors.push(mapper(issue));
98
+ }
89
99
  i++;
90
100
  }
91
101
  }
@@ -15,3 +15,22 @@ function setErrorMap(map) {
15
15
  function getErrorMap() {
16
16
  return overrideErrorMap;
17
17
  }
18
+
19
+ // seal-cjs-exports
20
+ (function () {
21
+ var keys = Object.getOwnPropertyNames(exports);
22
+ for (var i = 0; i < keys.length; i++) {
23
+ var desc = Object.getOwnPropertyDescriptor(exports, keys[i]);
24
+ if (!desc || !desc.get || !desc.configurable) continue;
25
+ var value;
26
+ try {
27
+ value = desc.get();
28
+ } catch (e) {
29
+ continue;
30
+ }
31
+ // a circular require may not have settled this one yet, so leave it live
32
+ if (value === undefined) continue;
33
+ Object.defineProperty(exports, keys[i], { value: value, writable: false, enumerable: desc.enumerable, configurable: false });
34
+ }
35
+ Object.freeze(exports);
36
+ })();
@@ -20,3 +20,22 @@ __exportStar(require("./helpers/typeAliases.cjs"), exports);
20
20
  __exportStar(require("./helpers/util.cjs"), exports);
21
21
  __exportStar(require("./types.cjs"), exports);
22
22
  __exportStar(require("./ZodError.cjs"), exports);
23
+
24
+ // seal-cjs-exports
25
+ (function () {
26
+ var keys = Object.getOwnPropertyNames(exports);
27
+ for (var i = 0; i < keys.length; i++) {
28
+ var desc = Object.getOwnPropertyDescriptor(exports, keys[i]);
29
+ if (!desc || !desc.get || !desc.configurable) continue;
30
+ var value;
31
+ try {
32
+ value = desc.get();
33
+ } catch (e) {
34
+ continue;
35
+ }
36
+ // a circular require may not have settled this one yet, so leave it live
37
+ if (value === undefined) continue;
38
+ Object.defineProperty(exports, keys[i], { value: value, writable: false, enumerable: desc.enumerable, configurable: false });
39
+ }
40
+ Object.freeze(exports);
41
+ })();
@@ -1,2 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+
4
+ // seal-cjs-exports
5
+ (function () {
6
+ var keys = Object.getOwnPropertyNames(exports);
7
+ for (var i = 0; i < keys.length; i++) {
8
+ var desc = Object.getOwnPropertyDescriptor(exports, keys[i]);
9
+ if (!desc || !desc.get || !desc.configurable) continue;
10
+ var value;
11
+ try {
12
+ value = desc.get();
13
+ } catch (e) {
14
+ continue;
15
+ }
16
+ // a circular require may not have settled this one yet, so leave it live
17
+ if (value === undefined) continue;
18
+ Object.defineProperty(exports, keys[i], { value: value, writable: false, enumerable: desc.enumerable, configurable: false });
19
+ }
20
+ Object.freeze(exports);
21
+ })();
@@ -4,6 +4,25 @@ exports.errorUtil = void 0;
4
4
  var errorUtil;
5
5
  (function (errorUtil) {
6
6
  errorUtil.errToObj = (message) => typeof message === "string" ? { message } : message || {};
7
- // biome-ignore lint:
7
+ // biome-ignore lint/suspicious/noShadowRestrictedNames: renaming churns 31 v3 call sites
8
8
  errorUtil.toString = (message) => typeof message === "string" ? message : message?.message;
9
9
  })(errorUtil || (exports.errorUtil = errorUtil = {}));
10
+
11
+ // seal-cjs-exports
12
+ (function () {
13
+ var keys = Object.getOwnPropertyNames(exports);
14
+ for (var i = 0; i < keys.length; i++) {
15
+ var desc = Object.getOwnPropertyDescriptor(exports, keys[i]);
16
+ if (!desc || !desc.get || !desc.configurable) continue;
17
+ var value;
18
+ try {
19
+ value = desc.get();
20
+ } catch (e) {
21
+ continue;
22
+ }
23
+ // a circular require may not have settled this one yet, so leave it live
24
+ if (value === undefined) continue;
25
+ Object.defineProperty(exports, keys[i], { value: value, writable: false, enumerable: desc.enumerable, configurable: false });
26
+ }
27
+ Object.freeze(exports);
28
+ })();
@@ -1,6 +1,6 @@
1
1
  export var errorUtil;
2
2
  (function (errorUtil) {
3
3
  errorUtil.errToObj = (message) => typeof message === "string" ? { message } : message || {};
4
- // biome-ignore lint:
4
+ // biome-ignore lint/suspicious/noShadowRestrictedNames: renaming churns 31 v3 call sites
5
5
  errorUtil.toString = (message) => typeof message === "string" ? message : message?.message;
6
6
  })(errorUtil || (errorUtil = {}));
@@ -122,3 +122,22 @@ const isValid = (x) => x.status === "valid";
122
122
  exports.isValid = isValid;
123
123
  const isAsync = (x) => typeof Promise !== "undefined" && x instanceof Promise;
124
124
  exports.isAsync = isAsync;
125
+
126
+ // seal-cjs-exports
127
+ (function () {
128
+ var keys = Object.getOwnPropertyNames(exports);
129
+ for (var i = 0; i < keys.length; i++) {
130
+ var desc = Object.getOwnPropertyDescriptor(exports, keys[i]);
131
+ if (!desc || !desc.get || !desc.configurable) continue;
132
+ var value;
133
+ try {
134
+ value = desc.get();
135
+ } catch (e) {
136
+ continue;
137
+ }
138
+ // a circular require may not have settled this one yet, so leave it live
139
+ if (value === undefined) continue;
140
+ Object.defineProperty(exports, keys[i], { value: value, writable: false, enumerable: desc.enumerable, configurable: false });
141
+ }
142
+ Object.freeze(exports);
143
+ })();
@@ -1,2 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+
4
+ // seal-cjs-exports
5
+ (function () {
6
+ var keys = Object.getOwnPropertyNames(exports);
7
+ for (var i = 0; i < keys.length; i++) {
8
+ var desc = Object.getOwnPropertyDescriptor(exports, keys[i]);
9
+ if (!desc || !desc.get || !desc.configurable) continue;
10
+ var value;
11
+ try {
12
+ value = desc.get();
13
+ } catch (e) {
14
+ continue;
15
+ }
16
+ // a circular require may not have settled this one yet, so leave it live
17
+ if (value === undefined) continue;
18
+ Object.defineProperty(exports, keys[i], { value: value, writable: false, enumerable: desc.enumerable, configurable: false });
19
+ }
20
+ Object.freeze(exports);
21
+ })();
@@ -1,2 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+
4
+ // seal-cjs-exports
5
+ (function () {
6
+ var keys = Object.getOwnPropertyNames(exports);
7
+ for (var i = 0; i < keys.length; i++) {
8
+ var desc = Object.getOwnPropertyDescriptor(exports, keys[i]);
9
+ if (!desc || !desc.get || !desc.configurable) continue;
10
+ var value;
11
+ try {
12
+ value = desc.get();
13
+ } catch (e) {
14
+ continue;
15
+ }
16
+ // a circular require may not have settled this one yet, so leave it live
17
+ if (value === undefined) continue;
18
+ Object.defineProperty(exports, keys[i], { value: value, writable: false, enumerable: desc.enumerable, configurable: false });
19
+ }
20
+ Object.freeze(exports);
21
+ })();
@@ -135,3 +135,22 @@ const getParsedType = (data) => {
135
135
  }
136
136
  };
137
137
  exports.getParsedType = getParsedType;
138
+
139
+ // seal-cjs-exports
140
+ (function () {
141
+ var keys = Object.getOwnPropertyNames(exports);
142
+ for (var i = 0; i < keys.length; i++) {
143
+ var desc = Object.getOwnPropertyDescriptor(exports, keys[i]);
144
+ if (!desc || !desc.get || !desc.configurable) continue;
145
+ var value;
146
+ try {
147
+ value = desc.get();
148
+ } catch (e) {
149
+ continue;
150
+ }
151
+ // a circular require may not have settled this one yet, so leave it live
152
+ if (value === undefined) continue;
153
+ Object.defineProperty(exports, keys[i], { value: value, writable: false, enumerable: desc.enumerable, configurable: false });
154
+ }
155
+ Object.freeze(exports);
156
+ })();
@@ -31,3 +31,22 @@ const z = __importStar(require("./external.cjs"));
31
31
  exports.z = z;
32
32
  __exportStar(require("./external.cjs"), exports);
33
33
  exports.default = z;
34
+
35
+ // seal-cjs-exports
36
+ (function () {
37
+ var keys = Object.getOwnPropertyNames(exports);
38
+ for (var i = 0; i < keys.length; i++) {
39
+ var desc = Object.getOwnPropertyDescriptor(exports, keys[i]);
40
+ if (!desc || !desc.get || !desc.configurable) continue;
41
+ var value;
42
+ try {
43
+ value = desc.get();
44
+ } catch (e) {
45
+ continue;
46
+ }
47
+ // a circular require may not have settled this one yet, so leave it live
48
+ if (value === undefined) continue;
49
+ Object.defineProperty(exports, keys[i], { value: value, writable: false, enumerable: desc.enumerable, configurable: false });
50
+ }
51
+ Object.freeze(exports);
52
+ })();
@@ -1,2 +1,21 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+
4
+ // seal-cjs-exports
5
+ (function () {
6
+ var keys = Object.getOwnPropertyNames(exports);
7
+ for (var i = 0; i < keys.length; i++) {
8
+ var desc = Object.getOwnPropertyDescriptor(exports, keys[i]);
9
+ if (!desc || !desc.get || !desc.configurable) continue;
10
+ var value;
11
+ try {
12
+ value = desc.get();
13
+ } catch (e) {
14
+ continue;
15
+ }
16
+ // a circular require may not have settled this one yet, so leave it live
17
+ if (value === undefined) continue;
18
+ Object.defineProperty(exports, keys[i], { value: value, writable: false, enumerable: desc.enumerable, configurable: false });
19
+ }
20
+ Object.freeze(exports);
21
+ })();
@@ -394,7 +394,7 @@ const emailRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z
394
394
  // const emailRegex =
395
395
  // /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\.[a-z0-9\-]+)*$/i;
396
396
  // from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression
397
- const _emojiRegex = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;
397
+ const _emojiRegex = `^[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$`;
398
398
  let emojiRegex;
399
399
  // faster, simpler, safer
400
400
  const ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;
@@ -2528,7 +2528,11 @@ function mergeValues(a, b) {
2528
2528
  const bKeys = util_js_1.util.objectKeys(b);
2529
2529
  const sharedKeys = util_js_1.util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);
2530
2530
  const newObj = { ...a, ...b };
2531
+ if (Object.prototype.hasOwnProperty.call(newObj, "__proto__"))
2532
+ delete newObj.__proto__;
2531
2533
  for (const key of sharedKeys) {
2534
+ if (key === "__proto__")
2535
+ continue;
2532
2536
  const sharedValue = mergeValues(a[key], b[key]);
2533
2537
  if (!sharedValue.valid) {
2534
2538
  return { valid: false };
@@ -2937,8 +2941,7 @@ class ZodFunction extends ZodType {
2937
2941
  const params = { errorMap: ctx.common.contextualErrorMap };
2938
2942
  const fn = ctx.data;
2939
2943
  if (this._def.returns instanceof ZodPromise) {
2940
- // Would love a way to avoid disabling this rule, but we need
2941
- // an alias (using an arrow function was what caused 2651).
2944
+ // Would love a way to avoid disabling this rule, but we need an alias (using an arrow function was what caused 2651).
2942
2945
  // eslint-disable-next-line @typescript-eslint/no-this-alias
2943
2946
  const me = this;
2944
2947
  return (0, parseUtil_js_1.OK)(async function (...args) {
@@ -2958,8 +2961,7 @@ class ZodFunction extends ZodType {
2958
2961
  });
2959
2962
  }
2960
2963
  else {
2961
- // Would love a way to avoid disabling this rule, but we need
2962
- // an alias (using an arrow function was what caused 2651).
2964
+ // Would love a way to avoid disabling this rule, but we need an alias (using an arrow function was what caused 2651).
2963
2965
  // eslint-disable-next-line @typescript-eslint/no-this-alias
2964
2966
  const me = this;
2965
2967
  return (0, parseUtil_js_1.OK)(function (...args) {
@@ -3775,3 +3777,22 @@ exports.coerce = {
3775
3777
  date: ((arg) => ZodDate.create({ ...arg, coerce: true })),
3776
3778
  };
3777
3779
  exports.NEVER = parseUtil_js_1.INVALID;
3780
+
3781
+ // seal-cjs-exports
3782
+ (function () {
3783
+ var keys = Object.getOwnPropertyNames(exports);
3784
+ for (var i = 0; i < keys.length; i++) {
3785
+ var desc = Object.getOwnPropertyDescriptor(exports, keys[i]);
3786
+ if (!desc || !desc.get || !desc.configurable) continue;
3787
+ var value;
3788
+ try {
3789
+ value = desc.get();
3790
+ } catch (e) {
3791
+ continue;
3792
+ }
3793
+ // a circular require may not have settled this one yet, so leave it live
3794
+ if (value === undefined) continue;
3795
+ Object.defineProperty(exports, keys[i], { value: value, writable: false, enumerable: desc.enumerable, configurable: false });
3796
+ }
3797
+ Object.freeze(exports);
3798
+ })();
@@ -385,7 +385,7 @@ const emailRegex = /^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z
385
385
  // const emailRegex =
386
386
  // /^[a-z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-z0-9-]+(?:\.[a-z0-9\-]+)*$/i;
387
387
  // from https://thekevinscott.com/emojis-in-javascript/#writing-a-regular-expression
388
- const _emojiRegex = `^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;
388
+ const _emojiRegex = `^[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$`;
389
389
  let emojiRegex;
390
390
  // faster, simpler, safer
391
391
  const ipv4Regex = /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;
@@ -2503,7 +2503,11 @@ function mergeValues(a, b) {
2503
2503
  const bKeys = util.objectKeys(b);
2504
2504
  const sharedKeys = util.objectKeys(a).filter((key) => bKeys.indexOf(key) !== -1);
2505
2505
  const newObj = { ...a, ...b };
2506
+ if (Object.prototype.hasOwnProperty.call(newObj, "__proto__"))
2507
+ delete newObj.__proto__;
2506
2508
  for (const key of sharedKeys) {
2509
+ if (key === "__proto__")
2510
+ continue;
2507
2511
  const sharedValue = mergeValues(a[key], b[key]);
2508
2512
  if (!sharedValue.valid) {
2509
2513
  return { valid: false };
@@ -2907,8 +2911,7 @@ export class ZodFunction extends ZodType {
2907
2911
  const params = { errorMap: ctx.common.contextualErrorMap };
2908
2912
  const fn = ctx.data;
2909
2913
  if (this._def.returns instanceof ZodPromise) {
2910
- // Would love a way to avoid disabling this rule, but we need
2911
- // an alias (using an arrow function was what caused 2651).
2914
+ // Would love a way to avoid disabling this rule, but we need an alias (using an arrow function was what caused 2651).
2912
2915
  // eslint-disable-next-line @typescript-eslint/no-this-alias
2913
2916
  const me = this;
2914
2917
  return OK(async function (...args) {
@@ -2928,8 +2931,7 @@ export class ZodFunction extends ZodType {
2928
2931
  });
2929
2932
  }
2930
2933
  else {
2931
- // Would love a way to avoid disabling this rule, but we need
2932
- // an alias (using an arrow function was what caused 2651).
2934
+ // Would love a way to avoid disabling this rule, but we need an alias (using an arrow function was what caused 2651).
2933
2935
  // eslint-disable-next-line @typescript-eslint/no-this-alias
2934
2936
  const me = this;
2935
2937
  return OK(function (...args) {